如果觉得这篇文章对你有帮助请点赞收藏加关注啊,真的很谢谢大家!大家可以进入我的CSDN主页查看其它文章,都是我在进行课后题目与课程设计时遇到的一些问题,如果你正在学习人工智能,一定会有所收获,并且可以在我的GitHub仓库主页下载相关代码,如无法进入GitHub仓库主页也可以进入Gitee进行查看,后续我也会根据需求不断完善。
 

同时如果想要系统化的学习人工智能,可以进入下面的网站进行学习,作为人工智能专业的学生,我认为该网站的课程设置足够专业与完整,由浅入深,基本涵盖了当前人工智能的热门领域并且在不断完善,目录简洁明了,大家可以对照目录进行查漏补缺,作为读者,我发现课程内容通俗易懂,风趣幽默,可以激发大家的学习兴趣。

文章描述

通过模糊控制实现PID参数Kp、Ki、Kd的整定问题,从而获得比单独PID更好的控制效果。

我是毕设第一次接触PID控制系统,故刚开始设计时进入了一个误区:单独PID的参数难以确定,而模糊PID则借助模糊系统能很好的确定PID的参数,不需对参数有任何的主观判断。在不断的试错过程中才意识到模糊PID中的模糊系统输出的是参数的调整值,故也应给定一组初始参数,在初始参数基础上不断调整参数并输入到PID系统中。

设计过程分为模糊系统的设计及模糊系统与PID的连接两部分。

模糊系统设计

模糊系统的输入为误差和误差变化率,输出为Kp、Ki、Kd的调整值。

  • 模糊规则建立

阅读相关文献,得到Kp、Ki、Kd的模糊规则如下表1,2,3。

表1 Kp模糊规则表

      ec

e

NB

NM

NS

ZO

PS

PM

PB

NB

PB

PB

PM

PM

PS

ZO

ZO

NM

PB

PB

PM

PS

PS

ZO

NS

NS

PM

PM

PM

PS

ZO

NS

NS

ZO

PM

PM

PS

ZO

NS

NM

NM

PS

PS

PS

ZO

NS

NS

NM

NM

PM

PS

ZO

NS

NM

NM

NM

NB

PB

ZO

ZO

NM

NM

NM

NB

NB

表2 Ki模糊规则表

      ec

e

NB

NM

NS

ZO

PS

PM

PB

NB

NB

NB

NM

NM

NS

ZO

ZO

NM

NB

NB

NM

NS

NS

ZO

ZO

NS

NB

NM

NS

NS

ZO

PS

PS

ZO

NM

NM

NS

ZO

PS

PM

PM

PS

NM

NS

ZO

PS

PS

PM

PB

PM

ZO

ZO

PS

PS

PM

PB

PB

PB

ZO

ZO

PS

PM

PM

PB

PB

表3 Kd模糊规则表

      e

ec

NB

NM

NS

ZO

PS

PM

PB

NB

PS

NS

NB

NB

NB

NM

PS

NM

PS

NS

NB

NM

NM

NS

ZO

NS

ZO

NS

NM

NM

NS

NS

ZO

ZO

ZO

NS

NS

ZS

NS

NS

ZO

PS

ZO

ZO

ZO

ZO

ZO

ZO

ZO

PM

PB

NS

PS

PS

PS

PS

PB

PB

PB

PM

PM

PS

PS

PS

PB

在LabVIEW前面板菜单栏中选择工具->控制和仿真->模糊系统设计器,建立隶属关系及相关规则,如下图所示,将建立的模糊系统保存到本地文件中。


LabVIEW实现模糊PID控制_github

图1 模糊系统设计器

  • 导入模糊系统,输出调整值

通过文件读取函数导入本地模糊系统,输出PID参数的调整值,程序框图如下图2所示。


LabVIEW实现模糊PID控制_labview_02

图2 模糊系统程序框图

图中第一个除以2的部分是求上下限的平均值,由此可以自动确定控制的目标值,后面部分都是将值量化到论域用的,比如目标值是338,然后数据的范围是[330, 346],那么实际值与目标值的误差必须乘一个参数0.375,才能将原本是[-8, 8]的误差范围量化到设定的论域[-3, 3],同理误差变化率部分也设置了一个量化因子。

模糊系统与PID的连接

模糊系统与PID的连接即将模糊系统输出的参数与定义的初始参数求和后输入到PID系统中,然而在实践过程中采用该方法的效果很差,故将初始参数和模糊系统求得的参数分别传入两个PID系统中,再将PID系统输出求和即为模糊PID系统的输出值。在PID函数后还应加入一个系统自定义函数,自定义函数可由自带范例“通用PID控制器”中复制得来,这样输出值才为正确值,整个系统的程序框图如下图3所示。


LabVIEW实现模糊PID控制_labview_03

图3 模糊PID程序框图


系统通过输入的上下限计算期望值,移位寄存器分别存储误差,调整值及系统调节的起始值,从而实现误差和误差变化率的计算,并对输入值突变做出反应。

模糊系统输出的参数后乘了一定的系数实现对输出值的放缩。

模糊系统传入值前的一系列操作实现了对超出界限值的响应及量化因子对参数的量化。

该程序为自定义VI,需在其它程序中调用,故循环的退出条件为循环执行10次,如有需要可改成布尔按钮自由控制执行过程。