模糊控制器介绍和应用
前言:
此篇博客是scalerstalk的模糊复盘文章修改过来的。现在真是感谢S的邀请,让我做了模糊控制的介绍课,随后在hemon的督促下完成了课程的文章版。希望对有兴趣的朋友有所帮助。我的另一个博客地址:http://blog.csdn.net/hxychy
一、框架
l 一维燃气模糊控制器
l 二维燃气模糊控制器
l 模糊控制器的特点
l 其他应用
其中,模糊控制器的设定按照下图1所示流程,我将介绍a.模糊化b.推理机制c.精确化三个步骤。另外,两个重要的概念——隶属度函数和模糊控制分别会在模糊化之前和精确化之后进行介绍,值的注意。
图1 模糊控制系统结构示意图
二、一维燃气模糊控制器
为了方便理解,模糊控制的讲解从具体实例中开始。见以下例题
已知某一燃气热水器,要求温度保持在40℃恒定。控制要求:
1) 若水温低于40℃,则加气;低的越多加气越多。
2) 若水温高于40℃,则减气;高的越多减气越少。
3) 若水温等于40℃,则保持不变。
在解决模糊控制的实例前,需要理解第一个重要概念——隶属度函数。
这里用温度解释隶属度。在一般情况下,大部分人把15~25℃的室温称作“舒适”的温度,而把15℃以下称为“冷”,25℃以上称为“热”,如下图2所示(Y轴值“1”=“属于”,“0”=“不属于”)。
图2 冷、舒适和热的一般表示
如果按上图2所示,哪怕14.9℃只能属于冷,15.1℃却属于舒适,显然这与人的感觉是不一致的,因此需要另一种表示方式——用具有0~1之间变化的隶属度的特征函数来描述某一模糊的元素(比如此处的冷、舒适、热),模糊集合中的特征函数就称作隶属度函数(见下图3,虽然不严谨,对于初学者,可以将此图理解为隶属度函数的一种图像表示方法)。
图3 冷、舒适和热的模糊表示
理解好隶属度函数的概念后,回到一维燃气模糊控制器的例题,主要分成三个步骤a.模糊化b.推理机制c.精确化。
首先需要明确,此控制器的输入是“水温”,输出是“燃气量”,那么就需要输入信息模糊化和输出信息模糊化,见下图4和图5。如图,我把输入与输出都分成了五部分,每个部分都用三角形简单的表示每部分隶属度。
图4 输入信息模糊化
图5 输出信息模糊化
这就完成了第一步模糊化,接下来是推理机制。根据三条控制要求,可以设定出5条控制规则:
1. If (水温 is很低) then (燃气量 is大幅度增加)
2. If (水温 is低) then (燃气量 is稍微增加)
3. If (水温 is正好) then (燃气量 is不变)
4. If (水温 is高) then (燃气量 is稍微减少)
5. If (水温 is很高) then (燃气量 is大幅度减少)
设定完推理规则后,通过MATLAB的模糊控制箱就可以轻松得到精确化的模糊输出如下图6 。
图6 输出模糊的精确化
现在整个模糊控制器就已经基本解决了,从以上步骤中,可以定义出模糊控制:模糊控制器的输出是通过观察过程的状态和一些如何控制过程的规则的推理得到的。
下面就可以轻松的解决更复杂点的二维燃气模糊控制器。
三、二维燃气模糊控制器
现实生活中,一维的控制器的效果往往不能满足要求,二维控制器一般拥有更好的稳定性和快速性。基于上个例题,再加入温度变化率的输入变量。通样的将此变量分为五部分,将其模糊化得到温度变化率的隶属度函数,如下图7 。
图7 水温变化率的输入模糊化
接下来,是推理机制的设定,两种输入共有25种规则,下面写出比较有代表性的十条规则:
1) If (水温 is正好) and (水温变化率 is降低快) then (燃气量 is大幅度增加)
2) If (水温 is正好) and (水温变化率 is降低慢) then (燃气量 is稍微增加)
3) If (水温 is正好) and (水温变化率 is不变) then (燃气量 is不变)
4) If (水温 is正好) and (水温变化率 is升高慢) then (燃气量 is稍微减少)
5) If (水温 is正好) and (水温变化率 is升高快) then (燃气量 is大幅度减少)
6) If (水温 is高) and (水温变化率 is降低快) then (燃气量 is稍微增加)
7) If (水温 is高) and (水温变化率 is降低慢) then (燃气量 is不变)
8) If (水温 is高) and (水温变化率 is不变) then (燃气量 is稍微减少)
9) If (水温 is高) and (水温变化率 is升高慢) then (燃气量 is大幅度减少)
10) If (水温 is高) and (水温变化率 is升高快) then (燃气量 is大幅度减少)
最后通过MATLAB 的模糊控制工具箱得到精确化的模糊输出,因为多了一维,所以精确化的输出是三维立体图,如下图8所示 。离散化后得到类似入下图9的平面图形。
在线上课堂中,加入了MATLAB的仿真演示,有兴趣的朋友可以百度“MATLAB模糊控制箱的使用方法”,自己试验不仅有趣而且有助于深入理解。
图8 二维控制器的输出精确化
图9 离散化的二维模糊控制器MATLAB仿真
四、模糊控制器的特点
综上两个事例,可以总结出模糊控制器如下的特点:
l 无需知道被控对象的数学模型
l 与人类思维的特点一致
模糊性
经验性
l 构造容易
l 鲁棒性好(robust):控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。
五、其他应用
模糊控制还有其他的应用,比如:
1) 模糊推理
如果 A1 且 B1,那么 C1和 如果 A2 且 B2,那么 C2。
已知 A3 且 B3,那么 C3 =?
2) 模糊PID控制器
3) 模糊控制实际应用(多级倒立摆)
视频链接(http://v.ku6.com/show/kqQy86Oh9KDaBeD8.html)推荐
以上相关内容参照的教材:《智能控制基础》韦巍 何衍编著
六、致谢
l 感谢ScalersTalk 成长会的朋友们~
l 河北工业大学智能系的所有老师谆谆教导~