EDA365电子论坛网
标题: 基于simulink 的模糊PID仿真实现 [打印本页]
作者: PEELAY 时间: 2019-11-29 18:03
标题: 基于simulink 的模糊PID仿真实现
本帖最后由 PEELAY 于 2019-11-29 18:03 编辑 ; ]3 u7 y, v! r
4 e3 G4 m/ E A% x
模糊自适应PID控制器结构,该设计的控制器核心在于模糊控制器的模糊规则的编写。一直模糊控制器是一个两输入、三输出的控制器,其中输入量为系统的误差和误差的变化率。设输入误差的语言变量为E,误差变化率的的语言变化率为EC,由系统可知两个变量的论域为 ,则论文设相对应的语言值为{大负(NB),中负(NM),小负(NS),零值(ZO),小正(PS),中正(PM),大正(PB)}。根据相对应的输出的比例、积分、微分三个参数,论文分别将三个PID参数的语言变量设为KP、KI、KD。因为PID的参数不会小于零。因此KP、KI、KD三者的论域都为{0,1,2,3}。相对应的语言值为{零(ZO),小正(PS),中正(PM),大正(PB)}。而输入输出的变量的隶属度函数都采用三角函数。
我们可以得出比例、积分、微分三个参数对系统的控制起着不同的作用。因此在建立模糊控制表时就需要考虑到PID三个参数在不同的时刻时相互之间的作用和关系。
模型搭建步骤如下:
(1)打开MATLAB在上方选择Simulink按钮进入到Simulink界面。选择新建一个仿真项目
(2)按照之前设计的控制器的结构完成模糊自适应PID控制器仿真模型的搭建。输入信号选择阶跃信号。选择合适的数学模块,选择增益项,积分项和微分项搭建PID控制器,运用FLC控制器来搭建模糊控制工具,搭建完后的效果图如下:
+ K* g, F" a* R
$ g% A" L5 e' Y
输入信号选用阶跃信号,因为系统的动态性能是以系统阶跃响应为基础来衡量的。一般认为阶跃输入对系统而言是比较严峻的工作状态,即系统突然达到输出为1,那么可以认为系统在其他形式的输入作用下,其动态性能也是令人满意的。其中仿真模块分为上下两部分,上半部分为传统的PID控制系统,而下半部分为使用模糊PID改进的PID控制系统,通过传统PID和改进型PID之间的对比来验证论文设计模糊PID的优化性能。由于一阶系统的控制较为简单,因此本文选用被控对象选择的是一个二阶系统。
使用MATLAB的模糊控制工具箱将模糊规则运用到仿真模型中。具体步骤如下:
(1)在MATLAB的控制窗口键入fuzzy进入到模糊控制工具中
1 i0 ~! i; K. h* q/ t4 {6 B
' V6 x: c5 a' p: u: S" M# O8 l
(2)在模糊工具箱中调整输入输出,因为设计的是一个两输入、三输出的系统。通过模糊工具箱的Edit按钮调整至两输入、三输出状态。其中左侧为输入量为误差和误差变化率。右侧为输出的KP、KI、KD三个参数。
* |- [* a+ ~% h; C8 y. G
}& i" E: |) ~2 v(3)在FIS类型选择Mamdani型。启动推理规则选择min法,合成规则选择max法,对于传统的模糊控制来说,使用min法和max法都可以满足论文的需要。解模糊规则选择centroid法则。通过在上一章得出了每个变量的论域和相对应的语言法则输入进模糊控制器中。
( O) D3 p6 @; M/ |+ b. ^$ r* H# i5 t2 b& Z# c4 s
至此,MATLAB模糊工具箱的基本搭建完成。根据View按钮中surf按钮,可以得出各个参数的控制曲面图
# ~: A. Y- H! U: C6 x' t2 G( U c' d& u
+ {1 [$ k8 Q4 }4 B
在模糊控制的规则完成之后,则需要将模糊控制的规则库导入至MATLAB的工作空间,方便在SIMULINK中使用FLC控件进行读取模糊控制规规则。模糊自适应PID控制器基本搭建完成,双击FLC控制,在选取FIS文件将设置号的模糊控制规则导入至FLC控制器中,完成模糊自适应PID控制器仿真模型的最终输入
完成设定仿真时间,点击RUN按钮开始仿真
7 m4 s& q, u2 U) o
作者: ccapsemi 时间: 2019-11-29 18:14
赞一个!!!
作者: fumeiqi0529 时间: 2020-1-9 20:22
学渣跪求第一张图的清晰版!!! 邮箱fumeiqi1992@gmail.com 站内也可!谢谢!
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) |
Powered by Discuz! X3.2 |