模糊控制提出至今已有半个世纪,但在控制领域至今仍未工程上广泛应用。但学习了解还是很有必要的,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语言等方式实现模糊控制器,在此不作一一介绍。

推荐阅读

天青色等烟雨,而我在等你,等你轻轻点右下的   好看