1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Matlab下的模糊控制水箱液位

Matlab下的模糊控制水箱液位

时间:2021-12-25 04:24:04

相关推荐

Matlab下的模糊控制水箱液位

该模型实现了在Simulink模型中模糊推理系统(FIS)+水箱液位控制。

Simulink模型

该模型使用模糊逻辑控制器块实现的模糊推理系统来控制水箱中的水位。控制模型如下图

open_system('sltank')

对于这个系统,你可以使用阀门控制流入水箱的水。流出率取决于输出管的直径(恒定)和水箱中的压力(随水位变化)。因此,该系统具有非线性特性。

模糊推理系统

模糊系统在MATLAB工作空间中的FIS对象tank中定义。

模糊系统的两个输入是水位误差和水位变化率。每个输入有三个成员函数。

figureplotmf(tank,'input',1)figureplotmf(tank,'input',2)

模糊系统的输出是控制阀打开或关闭的速率,该控制阀有五个隶属函数。

plotmf(tank,'output',1)

由于出水管道的直径,该系统中的水箱排空的速度比注满的速度慢。为了补偿这种不平衡,关闭慢阀和打开慢阀的隶属函数是不对称的。PID控制器不支持这种不对称性。

模糊系统有五条规则。前三条规则仅根据水位误差调整阀门。

如果水位正常,则不要调整阀门。

如果水位低,则快速打开阀门。

如果水位高,则快速关闭阀门。

当水位接近设定点时,其他两条规则根据水位变化率调整阀门。

如果水位正常且正在上升,则缓慢关闭阀门。

如果水位正常且下降,则缓慢打开阀门。

tank.Rulesans =1×5 fisrule 数组 - 属性:DescriptionAntecedentConsequentWeightConnectionDetails:Description______________________________________________________1 "level==okay => valve=no_change (1)"2 "level==low => valve=open_fast (1)"3 "level==high => valve=close_fast (1)"4 "level==okay & rate==positive => valve=close_slow (1)"5 "level==okay & rate==negative => valve=open_slow (1)"

在此模型中,还可以使用PID控制器控制水位。要切换到PID控制器,将const块设置为大于或等于零的值。

模拟

该模型通过水位设定点的周期性变化来模拟控制器。运行模拟。

​​​​​​​

sim('sltank',100)open_system('sltank/Comparison')

水位很好地跟踪设定点。可以通过修改油箱FIS的规则来调整控制器的性能。例如,如果删除后两条类似于衍生控制动作的规则,控制器的性能会很差,水位会出现大幅波动。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。