模糊pid 步骤_模糊PID控制与Simulink仿真(二)

 7d8cf45292c36fee4f206e24b301926c.png

本文将带领大家在Matlab中使用fuzzy工具箱搭建一个PID模糊控制器。在阅读本文之前,请确保你已经安装:

1.  Matlab

2.  Fuzzy Logic Toolbox

相关的安装教程网络上已经有很多了,在这里就不多赘述。

创建PID模糊控制器

◾ 新建一个模糊控制器

    (滑动查看具体步骤)

启动Matlab,在命令行窗口输入fuzzy以启动Fuzzy Logic Designer。

02840e4101701ab72af641673c60f70f.png

创建输入输出量

我们创建两个输入量,三个输出量,分别对应误差E,误差变化率Ec,Kp,Ki,KD。

1402fc9bd0ea0cf50bf70dd316694e1c.png03812cac8e0bacb1b15408355e276095.png

编辑输入/输出量

以输入量误差E为例,双击(黄色方块)打开Memebership Function Editor。

764893056a8474c44894a09066c78cda.png

修改论域

在上一篇文章中我们假定了E的论域是(-3,3),那现在我们就以此数据为例来修改它。

13b6251e70cf04f32dd02a976fb13d7d.png

◾划分模糊等级

    (滑动查看具体步骤)

点击Remove All MFs,删除现有的所有模糊等级

5f270a9f5d5d34cf770bab6e5623865e.png

再点击Add MFs,添加7个模糊等级

ad52dc287f134d3fd92407f8821b30cb.png

编辑每一个模糊等级对应的隶属度函数。用户可以自由指定隶属度函数的类型以及隶属度函数的函数图像。      

注意别忘了修改名字哦!

92bd18a5236d6476e21d17a7010e033e.png

重复1-3步,编辑剩余的输入/输出量

◾ 创建模糊规则表

    (滑动查看具体步骤)

找到上一篇文章中提供的PID模糊规则表

e4f0204e082d125fed28151a361bc189.png

回到Fuzzy Logic Designer的主界面,点击Edit-Rules

80f044df3ba8fb7dfcca23cc950e366e.png

照上面的模糊规则表,把总计49的数据录入到软件中。

举个例子,拿第一条规则来说,当E是NB,EC是NB时,KP是PB,KI是ZO,KD是PS。同时我们还需要注意,if条件的连接是and关系。

b69fc508fabcada3ab4671686738710d.png

到这里,我们就已经成功地在Matlab中创建了一个PID模糊控制器了,注意最后不要忘记保存哦,保存好的fis文件在下一篇文章中会应用在Simulink中。

db70b3779018fa15883d4ef6f6d5233d.gif

简单测试PID模糊控制器

当所有规则全部录入完成时,我们可以使用软件进行简单的测试验证这个模糊控制器。   还是在刚刚的窗口,我们点击View-Rules,打开Rules Viewer。

当我们在下方Input栏给误差E赋值为-1,误差变化率Ec赋值为0,按回车键,便可看到程序计算出来的KP,KI,KD的数值。不仅如此,我们同时还可以清晰的看到匹配的规则和应用的隶属度函数,十分方便快捷。

26225ad5a69c24213f3b7be2c7e9d9e4.png97ca4033fe562397b62420eda6a1f9d5.gif

引用

杨益兴, 崔大连, 周爱军. 模糊自适应 PID 控制器及 Simulink 仿真实现[ J]. 舰船电子工程, 2010 (4): 127-130. [online] Available at: 

https://wenku.baidu.com/view/3e0f8ae9856a561252d36f2d.html

Ekkone. 模糊PID基本原理及matlab仿真实现(新手!新手!新手!) [online] Available at: 

https://blog.csdn.net/qq_41913616/article/details/82020685

作者:李昱昊

编辑/校订:崔乐怡

排版:黎馨泽

长按扫码关注我们

0f72dc72da5baa3fd7e1e5e2b6ee52b1.png

版权声明:本文为weixin_42525632原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。