资源预览内容
第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;( )AAUuu都确定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( )ABABAxxxx2 2 基于模糊数学的软测量基于模糊数学的软测量1) 软测量在粮情测控系统中的应用(1) 辅助变量的选择。 选择粮食水分、 粮食温度以及空气湿度作为辅助变量, 粮食状态作为主导变量。 (2) 测量的输入数据的预处理。对粮食状态的预测不是根据粮仓中的某一点粮食的温度、 水分以及空气湿度来进行的,因为这样的预测不能全面反映整个粮仓粮食的实际状态。 在这里我们采用复合滤波法,其原理是:先将N个采样点数据按照从小到大的顺序排列, 即x1x2xN(N3),则可认为测量的数据为 1212.NNxxxxx这样就可比较客观地反映实际的粮食状态, 预测的结果也比较真实。 根据水分传感器、温度传感器及湿度传感器所测得的数据来表示水分、 温度的高低和 湿度的大小具有模糊性。通常用隶属度描述模糊集,通过隶属度的大小来反映模糊事物接 近其客观事物的程度。 该系统中三种传感器分别测得的数据范围:水分为 10%16%;温度为-3050;湿 度为 20%98%RH。 水分含量高的隶属度函数为 0 10 % x 12 % 1212%1 ()0.02x12 % x=0:0.1:10;y=gaussmf(x,2 5);plot(x,y)xlabel(gaussmf, P=2 5)结果为图 6-1。图 6-16.1.26.1.2 两边型高斯隶属函数两边型高斯隶属函数函数 gauss2mfgauss2mf格式 y = gauss2mf(x,sig1 c1 sig2 c2)说明 sig1、c1、sig2、c2 为命令 1 中数学表达式中的两对参数例 6-2x = (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.36.1.3 建立一般钟型隶属函数建立一般钟型隶属函数函数 gbellmfgbellmf格式 y = gbellmf(x,params)说明 一般钟型隶属函数依靠函数表达式这里 x 指定变量定义域范围,参数 b 通常为正,参数 c 位于曲线中心,第二个参数变量params 是一个各项分别为 a,b 和 c 的向量。例 6-3x=0:0.1:10;y=gbellmf(x,2 4 6);plot(x,y)xlabel(gbellmf, P=2 4 6)结果为图 6-3。图 6-2 图 6-36.1.46.1.4 两个两个 sigmoidsigmoid 型隶属函数之差组成的隶属函数型隶属函数之差组成的隶属函数函数 dsigmfdsigmf格式 y = dsigmf(x,a1 c1 a2 c2)说明 这里 sigmoid 型隶属函数由下式给出x 是变量,a,c 是参数。dsigmf 使用四个参数 a1,c1,a2,c2,并且是两个 sigmoid 型函数之差: ,参数按顺序 列出。例 6-4x=0:0.1:10;y=dsigmf(x,5 2 5 7);plot(x,y)结果为图 6-4图 6-46.1.56.1.5 通用隶属函数计算通用隶属函数计算函数 evalmfevalmf格式 y = evalmf(x, mfParams, mfType)说明 evalmf 可以计算任意隶属函数,这里 x 是变量定义域,mfType 是工具箱提供的一种隶属函数,mfParams 是此隶属函数的相应参数,如果你想创建自定义的隶属函数,evalmf仍可以工作,因为它可以计算它不知道名字的任意隶属函数。例 6-5x=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-56.1.66.1.6 建立建立 型隶属函数型隶属函数函数 primfprimf格式 y = pimf(x,a b c d)说明 向量 x 指定函数自变量的定义域,该函数在向量 x 的指定点处进行计算,参数a,b,c,d决定了函数的形状,a 和 d 分别对应曲线下部的左右两个拐点,b 和 c 分别对应曲线上部的左右两个拐点。例 6-6x=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.76.1.7 通过两个通过两个 sigmoidsigmoid 型隶属函数的乘积构造隶属函数型隶属函数的乘积构造隶属函数函数 psigmfpsigmf格式 y = psigmf(x,a1 c1 a2 c2)说明 这里 sigmoid 型隶属函数
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号