logo资料库

模糊PID概述.doc

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
模糊 PID 2011-03-16 17:57:36| 分类: 学习 |字号大中小 订阅 Fuzzy - simulink 有关模糊 PID 问题概述 最近很多 人问我关于模糊 PID 的问题,我就把模糊 PID 的问题综合了一下,希 望对大家有所帮助。 一、模糊 PID 就是指自适应模糊 PID 吗? 不是,通常 模糊控制和 PID 控制结合的方式有以下几种: 1、大误差范围内采用模糊控制,小误差 范围内转换成 PID 控制 的模糊 PID 开 关切换控 制。 2、PID 控制与模糊控制并联而成的混合型模糊 PID 控制。 3、利用模糊控制器在线整定 PID 控制器参数的自适应模糊 PID 控制。 一般用1和3比较多,MATLAB 自带的水箱液位控制 tank 采用的就是开关切换控 制。由于自适应模糊 PID 控制效果更加良好,而且大多数人选用自适应模糊 PID 控制器,所以在这里主要指自适应模糊 PID 控制器。 二、自适应模糊 PID 的概念 根据 PID 控制器的三个参数与偏差 e 和偏差的变化 ec 之间的模 糊关系,在运行 时不断检测 e 及 ec,通过事 先确定的关系,利用模糊推理的方法,在线修改 PID 控制器的三个参数,让 PID 参数可自整定。就我的理解而言,它最终还是一个 PID 控制器,但是因为参数可自动调整的缘故,所以也能解决不少一般的非线性 问题,但是假如系统的非线性、不确定性很严重时,那模糊 PID 的控制效果就 会不理想啦。 三、模糊 PID 控制规则是怎么定的? 这个控制规则当然很重要,一般经验: (1)当 e 较大时,为使系统具有较好的跟踪性能,应取较大的 Kp 与较小的 Kd, 同时为避免系统响应出现较大的超调,应对积分作用加以限制,通常取 Ki=0。 (2)当 e 处于中等大小时,为使系统响应具有较小的超调,Kp 应 取得小些。在 这种情况下,Kd 的取值对系统响应的影响较大,Ki 的取值要适当。 (3)当 e 较小时,为使系统具有较好的稳定性能,Kp 与 Ki 均应 取得大些,同时 为避免系统在设定值附近出现振荡,Kd 值的选择根据|ec|值较大时,Kd 取较小 值,通常 Kd 为中等大小。
另外主要还得根据系统本身的特性和你自己的经验 来整定,当然你先得弄明白 PID 三个参数 Kp,Ki,Kd 各自的作用,尤其对于你控制的这个系统。 四、量化因子 Ke,Kec,Ku 该如何确定? 有个一般的公式:Ke=n/e(max),Kec=m/ec(max),Ku=u(max)/l。n,m,l 分别为 Ke, Kec,Ku 的量化等级,一般可取6或7。e(max),ec(max),u(max)分别为误差,误差 变化率,控制输出的论域。不过通过我实际的调试,有时候这些公式并不 好使。 所以我一般都采用凑试法,根据你的经验,先确定 Ku,这个直接关系着你的输 出是发散的还是收敛的。再确定 Ke,这个直接关系着输出的稳态误差响应。最 后确定 Kec,前面两个参数确定好了,这个应该也不会难了。 五、在仿真的时候会出现刚开始仿真的时候时间进度很慢,从 e-10次方等等开始, 该怎么解决? 这时候肯定会有许多人跳出来说是步长的问题,等 你改完步长,能运行了,一 看结果,惨不忍睹!我只能说这个情况有可能是你的参数有错误,但如果各项参 数是正确的前提下,你可以在方框图里 面加饱和输出模块或者改变阶跃信号的 sample time,让不从0开始或者加 个延迟模块或者加零阶保持器看看…… 六、仿真到一半的时候仿真不动了是 什么原因? 仿真图形很有可能发散了,加个零阶保持器,饱和输出模块看看 效果。改变 Ke, Kec,Ku 的参数。 七、仿真图形怎么反了? 把 Ku 里面的参数改变一下符号,比如说从正变为负。模糊 PID 的话改变 Kp 的 就可 以。 八、还有人问我为什么有的自适应模 糊 PID 里有相加的模块 而有的没有? 相加的是与 PID 的初值相加。最后出来的各项参数 Kp=△Kp+Kp0,Ki=△Ki+Ki0, Kd=△Kd+Kd0。Kp0,Ki0,Kd0分别为 PID 的初 值。有的系统并没有设定 PID 的初值。 九、我照着论文搭建的,什么都是正 确的,为什么最后就是结果不对? 你修改下参数或者重新搭建一遍。哪一点出了点小 问题,都有可能导致失败。 …… 大家还有什么问题就在帖子后面留言哈,如果模型实在是搭建不成功的话可以给 我看看,大家有问题一起 解决!附件里面是两个自适应模糊 PID 的程序,大家 可以参考下! 所含文件:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
1. 模糊数学的基本概念 集合是指具有某种共同属性且彼此间可以区别的事物的总体。组成集合的事 物称为元或元素,元素与集合之间的关系是属于或不属于的关系,非此即彼。模 糊集合是经典集合的拓展,事物是否属于它所描述的概念,不能绝对地以“是” 或“非”来加以区别。这里的属于与不属于之间无明显的界限,而是在某种程度 上的属于,这是无法用经典集合来描述的,而只能用模糊集合来描述这种模糊概 念。这里首先介绍用模糊集合来描述模糊概念的初步知识。 定义1 设给定域(指被讨论的全体对象)U,U到[0,1]闭区间的任一映射 < xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" /> 都确定 U的一个模糊子集 A。 其中,称为模糊子集的隶属函数,称为 u对于的 隶属度。 也就是说,论域 u上的模糊子集 A由隶属函数μA(u)来表征, μA(u)的取 值范围是[0,1],μA(u)的大小反映了 u对于 A从属程度的高低。正确地确定 隶属函数是利用模糊集合解决实际问题的基础。 定义2 设 A、B是论域 U 上的两个模糊子集,对于 U上的每一个元素,规定 A与 B的“并”运算 A∪B、“交”运算 A∩B及“补”运算 的隶属函数分别如下: 定义3 设 A与 B分别是 X和 Y上的模糊集,其隶属函数分别是μA(x)和μB(x)。 模糊条件语句“若 A则 B”表示从 X到 Y的一个模糊关系,即 A→B,它的隶属函 数为 2. 基于模糊数学的软测量 1) 软测量在粮情测控系统中的应用 (1) 辅助变量的选择。 选择粮食水分、 粮食温度以及空气湿度作为辅助变量,粮食状态作为主导 变量。
(2) 测量的输入数据的预处理。对粮食状态的预测不是根据粮仓中的某一点粮 食的温度、水分以及空气湿度来进行的,因为这样的预测不能全面反映整个粮仓 粮食的实际状态。在这里我们采用复合滤波法,其原理是:先将 N个采样点数据 按照从小到大的顺序排列,即 x1≤x2≤…≤xN(N≥3),则可认为测量的数据为 这样就可比较客观地反映实际的粮食状态,预测的结果也比较真实。 根据水分传感器、温度传感器及湿度传感器所测得的数据来表示水分、温度的 高低和湿度的大小具有模糊性。通常用隶属度描述模糊集,通过隶属度的大小来 反映模糊事物接近其客观事物的程度。 该系统中三种传感器分别测得的数据范围:水分为10%~16%;温度为-30~ 10 % ≤x ≤12 % 50℃;湿度为20%~98%RH。 水分含量高的隶属度函数为 0 12 % 温度高的隶属度函数为 0 x ≤25
x≤25 f(x)= 湿度大的隶属度函数为 0 0 ≤x ≤20 % 20 %
2) 软测量模型的建立 (1)基于模糊技术的软测量的输入变量和输出变量。为了表达的方便,将粮 食储备中粮食状态出现的所有模糊量表示如下: 高=PB; 较高=PM; 正常=ZR; 较低=NM;低=NB 安全=D1;较安全=D2; 较危险=D3; 危险=D4 输入模糊量 A、B、C 分别为粮食水分、粮食温度和空气湿度,其论域都为[-3, 3],模糊子集={PB,PM,ZR,NM,NB}。 其隶属度函数图如图7-19所示。 图7-19 输入模糊量隶属度函数图 图7-20 输出模糊变量 D(粮食状态)隶属度函数图 (2) 模糊规则。根据模型特点最多可抽取125条规则,而实际上由于样本数据 所包含的一定规律性和重叠性,再加上对模糊规则的进一步筛选,故抽取出了以 下16条可信推理规则: 1.If A= PBand B= PBand C= PBthen D= D4 2.If A= PBand B= PMand C= PMthen D= D4 3.If A= PBand B= ZRand C= ZRthen D= D3 4.If A= PBand B= NMand C= NMthen D= D2 5.If A= PBand C= NBand D= NBthen D= D1 6.If A= PMand B= PBand C= PBthen D= D3 7.If A= PMand B= ZRand C= ZRthen D= D2 8.If A= PMand B= NMand C= NMthen D= D2 9.If A= PMand B= NBand C= NBthen D= D1 10.If A= ZRand B= PBand C= PBthen D= D2
11.If A= ZRand B= PMand C= PMthen D= D2 12.If A= ZRand B= ZRand C= ZRthen D= D1 13.If A= NMand B= PBand C= PBthen D= D2 14.If A= NMand B= PMand C= PMthen D= D1 15.If A= NMand B= ZRand C= ZRthen D= D1 16.If A= NBand B= PBand C= PBthen D= D1 3) 模糊推理的实现 这里我们利用 BP 神经网络实现模糊推理。模糊输入变量 A、 B、C的论域都 为[-3,3],模糊子集都为{PB,PM,ZR,NM,NB},而模糊输出变量 D 的论域 为[-2, 3],模糊子集为{D1, D2, D3, D4}, 则输入层神经元的个数为21 个,输出层的神经元为6个,隐层神经元的个数为16个。由于网络输入层神经元 的个数太多,故训练推理过程所需的时间太长,这里对 A、B 和 C 进行了“编码”。 由于论域中各元素的隶属度有联系,故可用一个数字代替模糊集,模糊集编码表 如表7-3所示。 表7-3 BP 神经网络的输入变量模糊集编码表 PB PM ZR NB NM 1 2 3 4 5 图7-21 输入为编码的 BP 网络结构图 4) 仿真 这里用 MATLAB 6.1进行训练和预测。选取某粮食储备库2002年4月、6月以 及8月中的50组测量数据经处理后对 BP 网络进行训练。训练完成后,对9月中的6 组测量数据的储粮状态进行预测,这6组数据经数据处理后用模糊语言可分别描
述为: (1) A=NB B=PB C=NM; (2) A=PB B=ZR C=NM; (3) A=PM B=PB C=ZR; (4) A=PB B=PM C=NM; (5) A=NB B=ZR C=NB; (6) A=PB B=NM C=NB。 对应的编码即神经网络的输入分别为: (1) [5 1 4 ] (2) [1 3 4 ] (3) [2 1 3 ] (4) [1 2 4 ] (5) [5 3 5 ] (6) [1 4 5 ] 可得出输出 D 的模糊集分别为: (1) [ 0.0002 –0.0003 -0.0013 0.0544 0.5093 0.9670]; (2) [ -0.0005 0.5004 0.9990 0.4993 0.0008 -0.0005 ]; (3) [0.0043 0.4996 1.0012 0.5606 -0.0022 -0.0014]; (4) [0.5008 1.0024 -0.0002 0.0013 0.0019 -0.0042] ; (5 ) [0.0010 -0.0001 -0.0029 0.0206 0.4957 0.9834] ; (6) [-0.0030 0.0002 0.0079 1.0027 0.49902 0.0078]。 2 模糊控制隶属函数 函数 gaussmf 格式 y=gaussmf(x,[sig c]) 高斯隶属函数 说明 高斯隶属函数的数学表达式为: ,其中 为参数,x 为自变量,sig 为数学表 达式中的参数 。 例6-1 >>x=0:0.1:10; >>y=gaussmf(x,[2 5]); >>plot(x,y) >>xlabel('gaussmf, P=[2 5]') 结果为图6-1。 图6-1 < xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />6.1.2两
分享到:
收藏