注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 模糊自适应PID的matlab仿真  

2012-08-16 21:40:24|  分类: 模糊控制 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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) ,

转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客 

转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客 
转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客

 

转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客

例子:下面是一个常见例子二阶惯性加纯滞后环节,传递函数为

转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客 T1=1,T2=1, 转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客 =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) 来表示。对于模糊控制规则按照上面的表选取。 

转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客

 仿真结果:

转 模糊自适应PID的matlab仿真 - 易拉罐bb - 易拉罐的博客
 

 2. 仿真中常见问题

(1)量化因子KeKecKu 该如何确定

      有个一般的公式Ke=n/e(max),Kec=m/ec(max),Ku=u(max)/ln,m,l 分别为KeKecKu 量化等级,一般可取6 7e(max),ec(max),u(max)分别为误差,误差变化率,控制输出的论域。

不过实际调试时,这些公式并不好使。所以一般都采用凑试法,根据经验,先确定Ku,这个直接关系着输出是发散的还是收敛的。再确定Ke,这个直接关系着输出的稳态误差响应。最后确定Kec,前面两个参数确定好了,这个应该也不会难了。

(2)在仿真的时候会出现刚开始仿真的时候时间进度很慢,从e-10 次方等等开始,该怎么解决?

    这时候肯定会有许多人跳出来说是步长的问题,等你改完步长,能运行了,一看结果,惨不忍睹!我只能说这个情况有可能是你的参数有错误,但如果各项参数是正确的前提下,你可以在方框图里面加饱和输出模块或者改变阶跃信号的sample time,让不从0 开始或者加个延迟模块或者加零阶保持器看看……

(3)仿真到一半的时候仿真不动了是什么原因

    仿真图形很有可能发散了,加个零阶保持器,饱和输出模块看看效果。改变KeKecKu 的参数。

(4)仿真图形怎么反了?

    把Ku 里面的参数改变一下符号,比如说从正变为负。模糊PID 的话改变Kp 的就可以。

  评论这张
 
阅读(597)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017