基于模糊控制的PID设计(simulink仿真)

1目的

主要是学习在一个控制系统中,PID控制和模糊控制PID的比较

2使用软件

matlab和simulink

3实验过程

3.1首先创立模糊控制器

在matlab界面命令行窗口输入fuzzy,然后弹出模糊控制器。

接下来需要设置的是输入和输出的数量(edit-add variable-input/output),以及更改名字name

双击FIS Variables的每一个模块,然后分别更改论域range(输入是【-8 8】,输出是【-10 10】),增加语言值个数(先清空原有的edit-remove all mfs,然后添加所需要的数量edit-add mfs,可以改数量和函数类型 )

接下来就是制定模糊规则,双击图一的中间白色部分(mhkzq,正常情况是Untitled),然后制定规则,弄完之后点击close退出,然后保存文件到电脑(file-export-to file),让控制器保存到工作区(file-export-to workspace)

3.2在simulink仿真

同时监测了三种控制过程(传统传函,pid控制传函,模糊+pid控制传函)。

注意的是在库中导入模糊控制器(fuzzy)后,要双击他,把名字改成你上面保存的模糊控制器名字。

仿真结果图像

4实验分析

可以看出,原本的传函(黄色曲线):超调明显,持续多次小幅度震荡,收敛慢,稳态误差较大

引入pid控制(蓝色曲线):相应速度最快(瞬间冲到1),峰值时间远小于另外两条,无稳态误差,缺点是有一定的超调,动态平稳性不如模糊控制

模糊控制器(橙色曲线):响应速度慢于其他两条,牺牲一点响应时间,换来极佳的动态平稳特性,无超调,无震荡,稳态最终收敛于1

结论:最求极致响应,允许小幅度超调,选用pid

被控对象不允许超调,要求平稳无波动(如液位,温度),选模糊pid