simulink实现模糊PID控制的资源链接如右:simulink实现模糊PID控制资源
LabVIEW实现模糊PID控制可参考博客:LabVIEW实现模糊PID控制博客
GitHub地址为:simulink实现模糊PID控制
求点赞关注
如果觉得这篇文章对你有帮助请点赞收藏加关注啊,真的很谢谢大家!大家可以进入我的CSDN主页查看其它文章,都是我在进行课后题目与课程设计时遇到的一些问题,如果你正在学习人工智能,一定会有所收获,并且可以在我的GitHub仓库主页下载相关代码,如无法进入GitHub仓库主页也可以进入Gitee进行查看,后续我也会根据需求不断完善。
同时如果想要系统化的学习人工智能,可以进入下面的网站进行学习
作为人工智能专业的学生,我认为该网站的课程设置足够专业与完整,由浅入深,基本涵盖了当前人工智能的热门领域并且在不断完善,目录简洁明了,大家可以对照目录进行查漏补缺,作为读者,我发现课程内容通俗易懂,风趣幽默,可以激发大家的学习兴趣。
模糊系统建立
在matlab命令行输入fuzzy打开模糊系统设计器,设定输入个数为2,范围均为[-3,3],输出个数为3,范围均为[-1,1],模糊系统如下图。根据相关文献定义规则,将建立好的模糊文件命名为Fuzzy_PID并保存到本地文件中,用于下一步的导入。
simulink实现
主程序设计
通过阶跃函数模拟输入信号,将输入信号分别传入自带PID模块与编写的模糊PID模块,将两个模块的控制结果及阶跃信号值通过scope函数进行展示,整体程序框图如下。
PID模块参数设置为P:0.05,I:0.01,D:0.005。
模糊PID模块
将阶跃信号传入系统,系统通过反馈计算误差及误差变化率,将误差及误差变化率乘以各自的量化因子,模糊系统的误差及误差变化率的值域均为[-3,3],假设实际的误差范围为[-8,8],误差变化率范围为[-16,16],则量化因子分别为0.375和0.1875。量化后的值通过saturation函数处理后传入模糊系统,模糊系统设定如下图,其中Fuzzy_PID应在命令行通过如下语句导入到系统中。
Fuzzy_PID = readfis('Fuzzy_PID')
模糊系统设定输出的范围均为[-1,1],因此也应根据相关经验乘以量化因子,并与初始PID参数,即P:0.05,I:0.01,D:0.005求和,处理后的参数传入PID系统中,结合了模糊规则及PID控制的系统即为模糊PID控制系统,系统的程序框图如下。
结果展示
运行程序,点击scope可查看运行结果如下图,可以看出模糊PID比单独PID更早到达设定值,具有更好的响应速度。