一阶线性时滞系统的模糊控制器仿真
(深圳大学机电与控制工程学院 深圳 518060)
摘要:MATLAB里面有一个模糊逻辑编辑器FIS Editor,它极大地方便了模糊控制器的设计.基于MATLAB的Simulink,针对一阶时滞系统,设计一个简单的模糊控制器,将其控制效果与相应的PID(Proportional Integral Derivative )控制器对比,可以发现模糊控制器的控制性能明显优于PID控制器.
关键字:一阶线性时滞系统;模糊控制器;PID;
中图分类号:TP273+.4 文献标识码:A
针对一阶线性时滞系统,利用MATLAB的模糊逻辑工具箱FIS Editor设计模糊控制器,在Simulink环境中进行仿真,将其结果与PID控制器的控制性能进行比较.
在Simulink中添加To Workspace,命名为“YourName”,将其连接到输出波形;
‚双击To Workspace,将Save format改为Array;
ƒ运行Simulink,结束后会在MATLAB的Workspace中生成变量“YourName”;
„右键“YourName”,选择plot(YourName)绘图,按住Shift键可以选中多个变量名绘图;
…编辑图形,添加注释、坐标、单位等;
†保存图为需要的格式.
注意Samp time的设置,不要设置得太小,会导致仿真速度变慢.
‚To workspace的作用是将输出波形导入Workspace,方便后面编辑图形.
图 1 模糊控制原理
图1为模糊控制器原理框图.虚线框内为模糊控制器,包括模糊化、去模糊化、知识库和模糊推理4个部分.被控对象为一阶线性时滞系统,传递函数是.
3.2 FIS(Fuzzy Inference System)
如图1所示,模糊控制器的输入为单位阶跃信号Step,输出为y,误差为e,误差变化率为ec,被控制对象的输入为u. e、ec和u的论域均为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},其模糊子集均为{NB,NM,NS,ZO,PS,PM,PB},分别表示负大、负中,负小,零,正小,正中,正大,因此共有49条模糊控制规则,如表1所示.
表 1 模糊控制规则
e
ec |
NB |
NM |
NS |
ZO |
PS |
PM |
PB |
NB |
PB |
PB |
PB |
PB |
PM |
ZO |
ZO |
NM |
PB |
PB |
PB |
PB |
PM |
ZO |
ZO |
NS |
PM |
PM |
PM |
PM |
ZO |
NS |
NS |
ZO |
PM |
PM |
PS |
ZO |
NM |
NM |
NM |
PS |
PS |
PS |
ZO |
NM |
NM |
NM |
NM |
PM |
ZO |
ZO |
NM |
NB |
NB |
NB |
NB |
PB |
ZO |
ZO |
NM |
NB |
NB |
NB |
NB |
在MATLAB中键入fuzzy,进入模糊逻辑编辑窗口,建立e、ec和u的隶属度函数,如图2所示.选择三角形(trimf)隶属度函数.模糊决策采用Mamdani的最大最小法,解模糊采用重心法.
图 2 FIS设置
FIS设置好后存盘,使用时,在模糊逻辑编辑窗口中File/Import/From Disk…导入FIS,由File/Export/To Workspace…导入到Workspace.
图 3 Simulink框图
图3输入Step信号,分成3路,上面一路直接导入示波器,为后面模糊控制器和PID控制器的结果做参考.
中间一路导入模糊控制器,与模糊控制器最终结果的反馈值求和,然后分别输入到P模块,PD模块和PI模块.其中P模块和PD模块分别经过一个限幅器,之后输入到模糊控制器Fuzzy Logic Controller.其结果经过一个放大器Gain3后与PI模块的输出求和.最后将求和结果通过一个限幅器和一个0阶保持器输入到控制对象.
下面一路导入PID控制器.Step信号与PID控制器最终结果的反馈值求和,然后输入到PID控制器中,最后输入到控制对象.
图3中有4个放大器.Gain为误差量化因子,取值为1;Gain1为误差变化因子,取值为0.1;Gain3为控制输出比例因子,取值为-0.68;Gain2为积分因子,取值为0.563.
PID控制器的参数为Kp=7.059,Ki=1,Kd=0.25,采用稳定边界法确定.即让调节器按照比例调节工作,从大到小逐渐改变调节器的比例度,直至产生等幅振荡,记下此时的临界比例度Pm和等幅振荡周期Tm.然后按照表2中的经验公式计算Kp、Ki和Kd.
表 2 PID控制器参数的确定
参数
调节规律 |
Kp |
Ki |
Kd |
P |
2Pm |
\ |
\ |
PI |
2.2Pm |
0.85Tm |
\ |
PID |
1.7Pm |
0.50Tm |
0.125Tm |
因为有示波器Scope有Step信号、模糊控制信号和PID控制信号3路输入,所以会显示3条响应曲线
0阶保持器的作用是在信号传递过程中,把第nT时刻的采样值一直保持到第(n+1)T时刻的前一瞬时,把第(n+1)T时刻的采样值一直保持到(n+2)T时刻,以此类推,从而把一个脉冲序列变成一个连续的阶梯信号.注意:图3所示系统为离散系统.
图 4 模糊控制器与PID控制器仿真效果对比
图4为模糊控制器与PID控制器仿真结果的对比.蓝色的曲线是直接导入示波器Scope的阶跃信号Step.Step信号在第1s的时候由0跳变到1,而模糊控制器的响应曲线和PID控制器的响应曲线相对于Step信号都有一个0.5s的延时,所以在1.5s时开始上升.此时,红色的PID控制器有一个微弱的振荡,然后上升到最大值1.461左右,3次振荡后趋于稳定.绿色的模糊控制器响应曲线在1.5s时开始上升,达到最大值1.145左右,然后缓慢下降,趋近于1.
从图4中可以明显地观察到模糊控制器的控制性能优于PID控制器,超调量比PID控制器小很多,而且PID控制器在初期存在一个微弱的振荡.
针对一阶线性时滞系统,相对于PID控制,模糊控制器能够表现出更好的控制性能.最大超调量更小,稳定性更好,振荡次数更少,调整时间更短.基于MATLAB的模糊控制器设计简单易行,使得原本复杂的模糊控制器更为普及.相信,同等条件下,模糊控制器将会是更多人的选择.
参考文献:
[1] 侯北平,卢佩,陈锋军. MATLAB下模糊控制器的设计与运用[J]. 测控技术,2001,20(10).
[2] 殷云华,陈闽鄂,郑宾等. 基于MATLAB的模糊控制器设计及仿真[J]. 控制工程,2007,14(5).
[3] 许力. 智能控制与智能系统[M]. 北京:机械工业出版社,2006.
用户377235 2015-7-27 16:06
用户377235 2014-9-2 17:54
用户429502 2012-11-21 10:55
用户1278632 2010-10-7 14:27
用户1559198 2010-9-28 18:24
用户219871 2009-9-3 15:28
用户117347 2009-9-2 21:52
12864_944456583 2009-9-1 10:13