基于simulink的模糊PID控制例子..doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于simulink的模糊PID控制例子.

模糊PID 用命令Fuzzy 打开模糊控制工具箱。Anfisedit打开自适应神经模糊控制器,它用给定的输入输出数据建个一个模糊推理系统,并用一个反向传播或者与最小二乘法结合的来完成隶属函数的调节。Surfview(newfis)可以打开表面视图窗口 8.1 模糊PID 串联型 新建一个simulink模型同时拖入一个fuzzy logic controller 模块,双击输入已经保存的fis模糊控制器的名字。由于这个控制模块只有一个输入端口,需要用到mux模块。模糊结合PID,当输出误差较大时,用模糊校正,当较小时,用PID校正。 8.2 模糊自适应PID  (1)PID 参数模糊自整定的原则 PID 调节器的控制规律为: u( k) = Kp e( k) + Ki Σe( i) + Kd ec( k) 其中: Kp 为比例系数; Ki 为积分系数; Kd为微分系数; e( k) 、ec( k) 分别为偏差和偏差变化率.模糊自整定PID 参数的目的是使参数Kp 、Ki 、Kd随着e 和ec 的变化而自行调整,故应首先建立它们间的关系. 根据实际经验,参数Kp 、Ki 、Kd在不同的e 和ec 下的自调整要满足如下调整原则: (1) 当e 较大时,为加快系统的响应速度,防止因开始时e 的瞬间变大可能会引起的微分溢出,应取较大的Kp 和较小的Kd ,同时由于积分作用太强会使系统超调加大,因而要对积分作用加以限制,通常取较小的Ki值; (2) 当e 中等大小时,为减小系统的超调量, 保证一定的响应速度, Kp 应适当减小;同时Kd 和Ki的取值大小要适中; (3) 当e 较小时,为了减小稳态误差, Kp 与Ki 应取得大些,为了避免输出响应在设定值附近振荡,同时考虑系统的抗干扰性能, Kd 值的选择根据|ec|值较大时,Kd 取较小值,通常Kd 为中等大小。 同时按照需要,将输入语言变量E 和EC 分为7 个模糊子集,分别用语言值正大( PB) 、正中( PM) 、正小( PS) 、零(Z) 、负小(NS) 、负中(NM) 、负大(NB) 来表示,它们的隶属函数为高斯型(gaussmf) ,输出语言变量Kp′、Ki′、Kd′用语言值小正大( PB) 、正中( PM) 、正小( PS) 、零(Z) 、负小(NS) 、负中(NM) 、负大(NB) 来表示隶属函数为三角型(t rimf) , 方法二: 图-1模糊自适应simulink模型根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计分数阶PID参数的模糊矩阵表,算出参数代入下式计算: Kp=Kp0+(E,EC)p;Ki=Ki0+(E,EC)I;Kd=Kd0+(E,EC)d 式中:Kp0、Ki0、Kd0为PID参数的初始设计值,由传统的PID控制器的参数整定方法设计。(E,EC)p、(E,EC)i、(E,EC)d即(Δ Kp, Δ Ki, Δ Kd)为模糊控制器的3个输出,可根据被控对象的状态自动调整PID三个控制参数的取值。 PID控制器部分 例子:下面是一个例子工业控制常见例子二阶惯性加纯滞后环节,传递函数为,T1=1,T2=1,=0.3,模糊化因子,ke=kec=0.01;解模糊因子k1=0.5,k2=0.05,k3=0.05;PID初始值Kp0=6.5;Ki0=1;Kd0=3.5;设置采样频率为0.01s。建立simulink系统模型如下。其中模糊控制器变量论域取[-6 6]. 同时按照需要,将输入语言变量E 和EC 分为7 个模糊子集,分别用语言值正大( PB) 、正中( PM) 、正小( PS) 、零(Z) 、负小(NS) 、负中(NM) 、负大(NB) 来表示。对于模糊控制规则按照上面的表选取。 图5-绿色线为fuzzy_pid输出,红色线为常规PID输出 四、量化因子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 次方等等开始,该怎么 解决? 这时候肯定会有许多人跳出来说是步长的问题,等 你改完步长,能运行了,一看结果,惨 不忍睹!我只能说这个情况有可能是你的参数有错误,但如果各项参数是正确的前提下, 你可以

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档