资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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 的程序,大家可以参考下! 所含文件: 1 1 模糊数学的基本概念模糊数学的基本概念? 集合是指具有某种共同属性且彼此间可以区别的事物的总体。组成集合的事物称为元 或元素,元素与集合之间的关系是属于或不属于的关系,非此即彼。模糊集合是经典集合 的拓展, 事物是否属于它所描述的概念,不能绝对地以“是”或“非”来加以区别。这里 的属于与不属于之间无明显的界限,而是在某种程度上的属于,这是无法用经典集合来描 述的,而只能用模糊集合来描述这种模糊概念。这里首先介绍用模糊集合来描述模糊概念 的初步知识。 定义定义 1 1 设给定域(指被讨论的全体对象)U,U到0,1闭区间的任一映射 :0,1;( ) AA Uuu 都确定U的一个模糊子集A。 其中,称为模糊子集的隶属函数,称为u对于的隶属度。 也就是说,论域u上的模糊子集A由隶属函数A(u)来表征, A(u)的取值范围是 0,1 ,A(u)的大小反映了u对于A从属程度的高低。正确地确定隶属函数是利用模糊 集合解决实际问题的基础。 定义定义 2 2 设A、B是论域 U 上的两个模糊子集,对于U上的每一个元素,规定A与B的“并” 运算AB、“交”运算AB及“补”运算 的隶属函数分别如下: 定义定义 3 3 设A与B分别是X和Y上的模糊集,其隶属函数分别是A(x)和B(x)。模糊条 件语句“若A则B”表示从X到Y的一个模糊关系,即AB,它的隶属函数为 ( )maxmin( ),( ),1( ) ABABA xxxx= 2 2 基于模糊数学的软测量基于模糊数学的软测量? 1) 软测量在粮情测控系统中的应用? (1) 辅助变量的选择。 选择粮食水分、 粮食温度以及空气湿度作为辅助变量, 粮食状态作为主导变量。 (2) 测量的输入数据的预处理。对粮食状态的预测不是根据粮仓中的某一点粮食的温度、 水分以及空气湿度来进行的,因为这样的预测不能全面反映整个粮仓粮食的实际状态。 在 这里我们采用复合滤波法,其原理是:先将N个采样点数据按照从小到大的顺序排列,即 x1x2xN(N3),则可认为测量的数据为 121 2 N N xxx x x + = 这样就可比较客观地反映实际的粮食状态, 预测的结果也比较真实。 根据水分传感器、温度传感器及湿度传感器所测得的数据来表示水分、 温度的高低和湿 度的大小具有模糊性。通常用隶属度描述模糊集,通过隶属度的大小来反映模糊事物接近 其客观事物的程度。 ? 该系统中三种传感器分别测得的数据范围:水分为 10%16%;温度为-3050;湿 度为 20%98%RH。 水分含量高的隶属度函数为 温度高的隶属度函数为 湿度大的隶属度函数为 0 10 % x 12 % 1 2 12% 1 () 0.02 x + 12 % x=0:0.1:10; y=gaussmf(x,2 5); plot(x,y) xlabel(gaussmf, P=2 5) 结果为图 6-1。 图 6-1 6.1.6.1.2 2 两边型高斯隶属函数两边型高斯隶属函数 函数 gauss2mfgauss2mf 格式 y = gauss2mf(x,sig1 c1 sig2 c2) 说明 sig1、c1、sig2、c2 为命令 1 中数学表达式中的两对参数 例 6-2 x = (0:0.1:10); y1 = gauss2mf(x, 2 4 1 8); y2 = gauss2mf(x, 2 5 1 7); y3 = gauss2mf(x, 2 6 1 6); y4 = gauss2mf(x, 2 7 1 5); y5 = gauss2mf(x, 2 8 1 4); plot(x, y1 y2 y3 y4 y5); set(gcf, name, gauss2mf, numbertitle, off); 结果为图 6-2。 6.1.3 6.1.3 建立一般钟型隶属函数建立一般钟型隶属函数 函数 gbellmfgbellmf 格式 y = gbellmf(x,params) 说明 一般钟型隶属函数依靠函数表达式 这里x指定变量定义域范围, 参数b通常为正, 参数c位于曲线中心, 第二个参数变量params 是一个各项分别为 a,b 和 c 的向量。 例 6-3 x=0:0.1:10; y=gbellmf(x,2 4 6); plot(x,y) xlabel(gbellmf, P=2 4 6) 结果为图 6-3。 图 6-2 图 6-3 6.1.4 6.1.4 两个两个 sigmoidsigmoid 型隶属函数之差组成的隶属函数型隶属函数之差组成的隶属函数 函数 dsigmfdsigmf 格式 y = dsigmf(x,a1 c1 a2 c2) 说明 这里 sigmoid 型隶属函数由下式给出 x 是变量,a,c 是参数。dsigmf 使用四个参数 a1,c1,a2,c2,并且是两个 sigmoid 型函数 之差: ,参数按顺序 列出。 例 6-4 x=0:0.1:10; y=dsigmf(x,5 2 5 7); plot(x,y) 结果为图 6-4 图 6-4 6.1.5 6.1.5 通用隶属函数计算通用隶属函数计算 函数 evalmfevalmf 格式 y = evalmf(x, mfParams, mfType) 说明 evalmf 可以计算任意隶属函数,这里 x 是变量定义域,mfType 是工具箱提供的一种 隶属函数,mfParams 是此隶属函数的相应参数,如果你想创建自定义的隶属函数,evalmf 仍可以工作,因为它可以计算它不知道名字的任意隶属函数。 例 6-5 x=0:0.1:10; mfparams = 2 4 6; mftype = gbellmf; y=evalmf(x,mfparams,mftype); plot(x,y) xlabel(gbellmf, P=2 4 6) 结果为图 6-5。 图 6-5 6.1.6 6.1.6 建立型隶属函数建立型隶属函数 函数 primfprimf 格式 y = pimf(x,a b c d) 说明 向量 x 指定函数自变量的定义域,该函数在向量 x 的指定点处进行计算,参数 a,b,c,d决定了函数的形状,a 和 d 分别对应曲线下部的左右两个拐点,b 和 c 分别对应 曲线上部的左右两个拐点。 例 6-6 x=0:0.1:10; y=pimf(x,1 4 5 10); plot(x,y) xlabel(pimf, P=1 4 5 10) 结果为图 6-6。 6.1.7 6.1.7 通过两个通过两个 sigmoidsigmoid 型隶属函数的乘积构造隶属函数型隶属函数的乘积构造隶属函数 函数 ps
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号