1、一 问题描述
水位控制系统是由水箱(Tank),进水管、出水管和控制阀门等构成。在进水管上,安装有一液压阀门,控制它的位置,可以控制流入水箱的流量。出水管道的面积(Out pipe crossection) 保持常数,因此,流出出水管的流量主要与水箱的水位和水压有关。系统具有明显的非线性特性。
我们的目的是构建一个模糊闭环控制系统。其控制目的是通过调整控制阀门的开度,达到控制水箱水位的目的,并使其能够快速跟随所设定的水位(给定输入)。
除控制对象外,控制系统应包含有水位检测装置,控制器(常规PID控制器或模糊控制器)及执行机构。
二 控制系统动态结构图
2、
流速计算依据为简化伯努利方程或托里拆利定律,二者结论一致。其中托里拆利定律内容为:忽略粘滞性,任何液体止点从小孔中流出的速度与它从h高度处自由落下的速度相等。
flow out
Level
动态模型中主要用到的计算关系式如下:
液位=容积/底面积 level=tank volume/area
流量=流速*出水口面积
流速=(2*g*level)^0.5
被控对象水箱模型
搭建按照上述动态结构图进行,实际设计的水箱模型如下:
封装后
执行机构:
3、VALVE
三 水位控制系统模型
四 模型使用方法
启动matlab,命令行输入sltank,既可打开水位模糊控制仿真模型。
设置const大于等于0,系统工作于PID控制模式
设置const小于0,系统工作于模糊控制模式
模糊控制模式
模糊控制时液位输入输出关系(双击Comparison示波器)
液位动画
PID控制模式
PID控制时液位的输入输出关系
比较两种控制模式下液位曲线可以发现PID控制有超调,这一点在液位动画中也有体现。
修改模型参数
PID参数的
4、调整可以直接双击 PID Controller模块设置,这里着重介绍模糊控制器参数的修改。用到的主要命令如下:
函数名
功能说明
fuzzy
打开模糊推理系统GUI, fuzzy name打开name的fis系统。
readfis
读取已有fis,例如readfis('tank')可打开水箱控制的fis
showfis
文本形式显示已存在的fis
例如可通过以下代码以文本形式显示tank
a=readfis('tank') %读取tank文件
showfis(a); %显示
在这里通过模糊推理的用户界面来修改水位控制的规则库,查看对控制效果的影响。具体步骤如下:
5、
(1) 输入sltank打开simulink仿真界面
(2) 输入fuzzy tank打开FIS界面,可编辑变量和推理规则。
(3) 打开tank的模糊规则编辑界面,将规则4和5删除,新的规则如下:
(4) 单击File —Export—to workspace,弹出的对话框直接点ok。
注意:建议不要选to file,因为会改变原始文件。
(5) 运行sltank,控制效果如下,可见调节效果比PID控制还差。
(6) 关闭sltank模型和tank fis界面,均选择不保存修改,以保证例程的完整性。
五 结论
模糊控制效果取决于模糊推理规则,如果规则设置不当,则控制效果会比传统PID控制效果更差。模糊控制一般和其他智能控制算法结合使用,比如模糊PID,模糊神经网络等,其主要作用是智能控制算法中的一些控制参数进行模糊调节。
伍银波 2012年11月13日星期二