水箱液位matlab模糊控制例程sltank详解

  • 格式:doc
  • 大小:367.00 KB
  • 文档页数:9

一问题描述
水位控制系统是由水箱(Tank),进水管、出水管和控制阀门等构成。

在进水管上,安装有一液压阀门,控制它的位置,可以控制流入水箱的流量。

出水管道的面积(Out pipe crossection) 保持常数,因此,流出出水管的流量主要与水箱的水位和水压有关。

系统具有明显的非线性特性。

我们的目的是构建一个模糊闭环控制系统。

其控制目的是通过调整控制阀门的开度,达到控制水箱水位的目的,并使其能够快速跟随所设定的水位(给定输入)。

除控制对象外,控制系统应包含有水位检测装置,控制器(常规PID 控制器或模糊控制器)及执行机构。

二控制系统动态结构图
流速计算依据为简化伯努利方程或托里拆利定律,二者结论一致。

其中托里拆利定律内容为:忽略粘滞性,任何液体止点从小孔中流出的速度与它从h高度处自由落下的速度相等。

Level flow out
动态模型中主要用到的计算关系式如下:
液位=容积/底面积level=tank volume/area
流量=流速*出水口面积
流速=(2*g*level)^0.5
被控对象水箱模型
搭建按照上述动态结构图进行,实际设计的水箱模型如下:
封装后
执行机构:
VALVE
三水位控制系统模型
四模型使用方法
启动matlab,命令行输入sltank,既可打开水位模糊控制仿真模型。

设置const大于等于0,系统工作于PID控制模式
设置const小于0,系统工作于模糊控制模式
模糊控制时液位输入输出关系(双击Comparison示波器)
液位动画
PID控制时液位的输入输出关系
比较两种控制模式下液位曲线可以发现PID控制有超调,这一点在液位动画中也有体现。

修改模型参数
PID参数的调整可以直接双击PID Controller模块设置,这里着重介绍模糊控制器参数的修改。

用到的主要命令如下:
例如可通过以下代码以文本形式显示tank
a=readfis('tank') %读取tank文件
showfis(a); %显示
在这里通过模糊推理的用户界面来修改水位控制的规则库,查看对控制效果的影响。

具体步骤如下:
(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日星期二。