ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:24.27KB ,
资源ID:10246425      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10246425.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模糊PID控制问题.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

模糊PID控制问题.docx

1、模糊PID控制问题Fuzzy - simulink 有关模糊 PID 问题概述最近很多 人问我关于模糊 PID 的问题,我就把模糊 PID 的问题综合了一下,希望对大家有所帮助。一、模糊 PID 就是指自适应模糊 PID 吗?不是,通常 模糊控制和 PID 控制结合的方式有以下几种:1、大误差范围内采用模糊控制,小误差 范围内转换成 PID控制 的模糊PID开关切换控制。2、PID 控制与模糊控制并联而成的混合型模糊 PID 控制。3、利用模糊控制器在线整定 PID 控制器参数的自适应模糊PID 控制。一般用 1 和 3 比较多,MATLAB 自带的水箱液位控制 tank 采用的就是开关切换控

2、制。 由于自适应模糊 PID 控制效果更加良好,而且大多数人选用自适应模糊 PID 控制器,所以在这里主要指自适应模糊 PID 控制器。二、自适应模糊 PID 的概念根据 PID 控制器的三个参数与偏差 e 和偏差的变化 ec 之间的模 糊关系,在运行时不断检测 e 及 ec,通过事 先确定的关系,利用模糊推理的方法, 在线修改 PID 控制器的三个参数,让 PID 参数可自整定。就我的理解而言,它最终还是一个 PID 控制器,但是因为参数可自动调整的缘故,所以也能解决不少一般的非线性问题,但是假如系统的非线性、不确定性很严重时,那模糊 PID 的控制效果就会不理想啦。三、模糊 PID 控制规

3、则是怎么定的?这个控制规则当然很重要,一般经验:(1)当 e 较大时,为使系统具有较好的跟踪性能,应取较大的 Kp 与较小的 Kd ,同时为避免系统响应出现较大的超调,应对积分作用加以限制,通常取 Ki=0 。(2)当 e 处于中等大小时, 为使系统响应具有较小的超调, Kp 应 取得小些。在这种情况下, Kd 的取值对系统响应的影响较大, Ki 的取值要适当。(3)当 e 较小时,为使系统具有较好的稳定性能, Kp 与 Ki 均应 取得大些,同时为避免系统在设定值附近出现振荡, Kd 值的选择根据 |ec|值较大时, Kd 取较小值,通常 Kd 为中等大小。另外主要还得根据系统本身的特性和你

4、自己的经验 来整定,当然你先得弄明白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,这个直接关系着输出的稳态误差响

5、应。最后确定 Kec,前面两个参数确定好了,这个应该也不会难了。五、在仿真的时候会出现刚开始仿真的时候时间进度很慢,从 e-10 次方等等开始,该怎么解决?这时候肯定会有许多人跳出来说是 步长的问题 ,等 你改完步长,能运行了,一看结果,惨不忍睹!我只能说这个情况有可能是你的参数有错误,但如果各项参数是正确的前提下,你可以在方框图里 面加饱和输出模块或者改变阶跃信号的 sample time,让不从 0 开始或者加 个延迟模块或者加零阶保持器 看看六、仿真到一半的时候仿真不动了是 什么原因?仿真图形很有可能发散了,加个零阶保持器,饱和输出模块看看 效果。改变 Ke,Kec,Ku 的参数。七、仿

6、真图形怎么反了?把 Ku 里面的参数改变一下符号 ,比如说从正变为负。模糊 PID 的话改变 Kp 的就可 以。八、还有人问我为什么有的自适应模 糊 PID 里有相加的模块 而有的没有?相加的是与 PID 的初值相加。最后出来的各项参数 Kp= Kp+Kp0 ,Ki= Ki+Ki0, Kd=Kd+Kd0 。Kp0,Ki0 , Kd0 分别为PID 的初 值。有的系统并没有设定PID 的初值。九、我照着论文搭建的,什么都是正 确的,为什么最后就是结果不对?你修改下参数或者重新搭建一遍。哪一点出了点小 问题,都有可能导致失败。大家还有什么问题就在帖子后面留言哈,如果模型实在是搭建不成功的话可以给我

7、看看,大家有问题一起 解决!附件里面是两个自适应模糊 PID 的程序,大家可以参考下!所含文件:1集合是指具有某种共同属性且彼此间可以区别的事物的总体。组成集合的事物称为元或元素,元素与集合之间的关系是属于或不属于的关系,非此即彼。模糊集合是经典集合的拓展, 事物是否属于它所描述的概念,不能绝对地以“是”或“非”来加以区别。这里的属于与不属于之间无明显的界限,而是在某种程度上的属于,这是无法用经典集合来描述的,而只能用模糊集合来描述这种模糊概念。这里首先介绍用模糊集合来描述模糊概念的初步知识。定义 1 设给定域(指被讨论的全体对象) U,U到0 ,1 闭区间的任一映射A : U 0,1; uA

8、 (u)都确定 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 及“补”运算的隶属函数分别如下:和B x。模糊条定义3设 A 与 B 分别是 X 和 Y 上的模糊集,其隶属函数分别是 A x( )( )件语句“若 A 则

9、 B”表示从 X 到 Y 的一个模糊关系,即 AB,它的隶属函数为A B ( x) max minA (x), B ( x),1 A ( x)2 基于模糊数学的软测量1)(1) 辅助变量的选择。选择粮食水分、粮食温度以及空气湿度作为辅助变量,粮食状态作为主导变量。(2) 测量的输入数据的预处理。 对粮食状态的预测不是根据粮仓中的某一点粮食的温度、水分以及空气湿度来进行的, 因为这样的预测不能全面反映整个粮仓粮食的实际状态。在这里我们采用复合滤波法,其原理是:先将N 个采样点数据按照从小到大的顺序排列,即x x xN N3),则可认为测量的数据为1 2,(x1x2 . xN 1xxN 2这样就可

10、比较客观地反映实际的粮食状态,预测的结果也比较真实。根据水分传感器、 温度传感器及湿度传感器所测得的数据来表示水分、温度的高低和湿度的大小具有模糊性。通常用隶属度描述模糊集,通过隶属度的大小来反映模糊事物接近其客观事物的程度。该系统中三种传感器分别测得的数据范围:水分为 10% 16%;温度为 -30 50;湿度为 20%98%RH。水分含量高的隶属度函数为010 %f(x)=1 ( x 12% ) 210.0212 % x 16 %温度高的隶属度函数为0f(x)=x251 ( x 25 ) 215湿度大的隶属度函数为00 xf(x)=1 ( 3( x 20%) 210.0120 % x=0:

11、0.1:10; y=gaussmf(x,2 5); plot(x,y) xlabel(gaussmf, P=2 5)结果为图 6-1 。图 6-16.1.2 两边型高斯隶属函数函数 gauss2mf格式 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

12、 = gauss2mf(x, 2 8 1 4);plot(x, y1 y2 y3 y4 y5);set(gcf, name, gauss2mf, numbertitle, off);结果为图 6-2 。6.1.3 建立一般钟型隶属函数函数 gbellmf格式 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(gbe

13、llmf, P=2 4 6)结果为图 6-3 。图 6-2 图 6-36.1.4 两个 sigmoid 型隶属函数之差组成的隶属函数函数 dsigmf格式 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-46.1.5 通用隶属函数计算函数 evalmf格式 y = evalmf(x

14、, 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-56.1.6 建立 型隶属函数函数 primf格式

15、 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.7 通过两个 sigmoid 型隶属函数的乘积构造隶属函数函数 psigmf格式 y = psigmf(x,a1 c1 a2 c2)说明 这里 sigmoid 型隶属函数由下式给出x 是变

16、量, a,c 是参数。 psigmf 使用四个参数 a1,c1, a2,c2,并且是两个 sigmoid 型函数之积: ,参数按顺序 列出。例 6-7 x=0:0.1:10; y=psigmf(x,2 3 -5 8); plot(x,y)xlabel(psigmf, P=2 3 -5 8)结果为图 6-7 。图 6-6图 6-76.1.8建立 Sigmoid 型隶属函数函数 sigmf格式 y = sigmf(x,a c)说明 ,定义域由向量 x 给出,形状由参数 a 和 c 确定。例 6-8 x=0:0.1:10; y=sigmf(x,2 4); plot(x,y) xlabel(sigmf

17、, P=2 4)结果为图 6-8 。图 6-8例 6-9x = (0:0.2:10) ;y1 = sigmf(x,-1 5);y2 = sigmf(x,-3 5);y3 = sigmf(x,4 5);4subplot(2,1,1),plot(x,y 1 y2 y3 y4);y1 = sigmf(x,5 2);y2 = sigmf(x,5 4);y3 = sigmf(x,5 6);y4 = sigmf(x,5 8);subplot(2,1,2),plot(x,y 1 y2 y3 y4);结果为图 6-9 。图 6-96.1.9 建立 S 型隶属函数函数 smf格式 y = smf(x,a b)

18、% x 为变量, a 为 b 参数,用于定位曲线的斜坡部分。例 6-10 x=0:0.1:10; y=smf(x,1 8);plot(x,y)结果为图 6-10 。图 6-10例 6-11x = 0:0.1:10;subplot(3,1,1);plot(x,smf(x,2 8);subplot(3,1,2);plot(x,smf(x,4 6);subplot(3,1,3);plot(x,smf(x,6 4);结果为图 6-11 。图 6-116.1.10 建立梯形隶属函数函数 trapmf格式 y = trapmf(x,a b c d)说明 这里梯形隶属函数表达式:或f(x;a,b,c,d)=

19、 max(min(,定义域由向量x 确定,曲线形状由参数a,b,c,d确定,参数 a 和 d 对应梯形下部的左右两个拐点,参数b 和c 对应梯形上部的左右两个拐点。例 6-12 x=0:0.1:10; y=trapmf(x,1 5 7 8); plot(x,y)xlabel(trapmf, P=1 5 7 8)结果为图 6-12 。例 6-13x = (0:0.1:10) ;y = trapmf(x,2 3 79);1y = trapmf(x,3 4 6 8);2y3= trapmf(x,4 5 57);y4= trapmf(x,5 6 46);plot(x,y 1 y2 y3 y4);结果为图6-13 。图6-12图6-136.1.11 建立三角形隶属函数函数 trimf格式 y = trimf(x,params)y = trimf(x,a b c)说明 三角形隶属函数表达式:或者 f(x;a,b,c,) = max(min(定义域由向量 x 确定,曲线形状由参数 a,b,c 确定,参数 a 和 c 对应三角形下部的左右两个顶点,参数 b 对应三角形上部的顶点,这里要求 a , 生成的隶属函数总有一个统一的高度,若想有一个高度小于统一高度的三角形

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1