模糊控制提出至今已有半个世纪,但在控制领域至今仍未工程上广泛应用。但学习了解还是很有必要的,matlab/simulink有专门的模糊控制的库,足以说明其重要性,本文通过简单的simulink模糊PID控制为例,对matlab模糊控制进行介绍。
模糊控制
之所以称为模糊,意思就是你的输入或对应的输出并不具体,具有模糊性。模糊控制器的构成主要包括输入模糊化,模糊推理,去模糊化三个主要环节。
模糊控制系统结构
模糊化主要将数字形式的输入转化为模糊语言标识的值,该过程一般隶属函数作为模糊化函数,函数由三角形、梯形、高斯型等等,在matlab命令窗口输入’fuzzy‘命令可打开模糊设计器界面。
模糊设计器
输入模糊化
模糊推理(知识库)
该部分主要根据输入的信号,建立相应的输出规则,模糊规则主要为‘if...then...’的条件语句形式,常用的模糊规则以表的形式表示出来如下(E和EC为输入):
模糊规则表
常用的模糊语言变量符号意义如下:
负大 NB(Negative Big) 负中 NM(Negative Medium) 负小 NS(Negative Small) 零 ZE(Zero) 正小 PS(Positive Small) 正中 PM(Positive Medium) 正大 PB(Positive Big)
去模糊化
该过程主要是反模糊的过程,即在前两步基础上,选择合适的输出值,一般有三种方法确定具体输出值:最大隶属度函数法、重心法、加权平均法。
模糊PID控制,即利用模糊逻辑并根据一定的模糊规则对PID的参数进行实时的优化,以克服传统PID参数无法实时调整PID参数的缺点,当然参数合适的情况下。
模糊PID控制框图
simulink模型实现
根据控制原理框图,搭建传统PID和模糊PID控制模型并进对比,模型如下:
整体模型
模糊控制部分
模糊控制部分
FIS Edit界面
模糊规则
仿真结果
从图中(红色:原始信号,黄色:PID,蓝色:fuzzy PID)可以看出模糊PID控制的优势明显。
最后,为方便初学者对模糊控制学习,matlab也提控了相应的例子,在matlab命令窗口输出sllookuptable便可打开,赶紧尝试起来:
matlab模糊pid demo
当然,限于篇幅及时间,作者仅仅,只能粗略地介绍一下模糊控制。另外还有模糊规则观察器、模糊曲面观察器、输入输出变量曲线,当然还可以通过查询表、m语言等方式实现模糊控制器,在此不作一一介绍。
推荐阅读
天青色等烟雨,而我在等你,等你轻轻点右下的 好看