二阶带有纯延迟系统的PID与模糊控制设计对比(研究生课程实验)

实验步骤及方法

选择被控对象

现有一个带有纯延迟的长方体水槽液位控制系统,调节阀与贮水槽有一段较长距离,调节阀开度变化会引起流入水量的变化,但是需要经过一段传输时间 τ \tau τ后才能对水槽的液位产生影响,其中 τ \tau τ称为纯延迟时间,由物理特性,本题 τ \tau τ 1 1 1。水槽进水量 Q i Q_i Qi由进水调节阀控制,出水量 Q o Q_o Qo根据需求改变。系统的被调节量为水位高度 h h h,因水槽为长方体形状,所以其值直接反映了 Δ Q = Q i − Q o \Delta Q=Q_i-Q_o ΔQ=QiQo. 现定义 Δ h \Delta h Δh为液位的减少量, u u u表示进水调节阀的开度。
由上述工程背景,得到 Δ h \Delta h Δh u u u之间的微分方程为:
u ( t − 1 ) = h ( t − 1 ) + 1 2 d 2 h ( t ) d t 2 + d h ( t ) d t u(t-1) = h(t-1)+\frac{1}{2} \frac {d^2 h(t)}{dt^2}+\frac{dh(t)}{dt} u(t1)=h(t1)+21dt2d2h(t)+dtdh(t)
上式的物理意义为:式中 d h ( t ) d t \frac{dh(t)}{dt} dtdh(t)为水位变化率,与放水和进水流速差成正比例关系, d 2 h ( t ) d t 2 \frac{d^2 h(t)}{dt^2} dt2d2h(t)与流速差的变化率成正比例关系。水阀的调节根据水位高低、流速差、流速差的变化率来进行改变,以此对水位进行控制。但是其中水位由超声波监测,可以获得实时数据,但是流速差和其变化率由水轮测得,因惯性和其它因素,其测量值的获取存在 1 s 1s 1s的延迟。

将方程式用 s s s域形式表达,为:
H ( s ) U ( s ) = 2 e − s s 2 + 2 s + 2 e − s \frac{H(s)}{U(s)} = \frac{2e^{-s}}{s^2+2s+2e^{-s}} U(s)H(s)=s2+2s+2es2es
上式即为系统的闭环传递函数 Φ ( s ) \Phi(s) Φ(s),所以:
Φ ( s ) = H ( s ) U ( s ) = 2 e − s s 2 + 2 s + 2 e − s \Phi(s) = \frac{H(s)}{U(s)} = \frac{2e^{-s}}{s^2+2s+2e^{-s}} Φ(s)=U(s)H(s)=s2+2s+2es2es
求得开环传递函数 G ( s ) G(s) G(s):
G ( s ) = 2 e − s s 2 + 2 s G(s) = \frac{2e^{-s}}{s^2+2s} G(s)=s2+2s2es
综上,使用simulink绘制系统结构图如图

利用matlab绘图命令:

plot(simout1)title('Step Response');
xlabel('t/s');
ylabel('amplitude');

绘制系统单位阶跃响应曲线如图。
在这里插入图片描述

设计常规PID控制器

1、比例 ( P ) (P) (P)控制:是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。

2、积分 ( I ) (I) (I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分 ( P I ) (PI) (PI)控制器,可以使系统在进入稳态后无稳态误差。

3、微分 ( D ) (D) (D)控制:在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后 ( d e l a y ) (delay) (delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。
解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而需要增加的是“微分项”,它能预测误差变化的趋势。
这样,具有比例 + + +微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例 + + +微分 ( P D ) (PD) (PD)控制器能改善系统在调节过程中的动态特性。 [ 1 ] ^{[1]} [1]

根据上述介绍,在 G ( s ) G(s) G(s)前串联校正 G c ( s ) G_c(s) Gc(s),得到如图
在这里插入图片描述

其中, P I D    C o n t r o l l e r PID~~Controller PID  Controller模块可以设置控制系统的PID参数,经过调试,最终选取参数如图
在这里插入图片描述

比例系数P=0.8,积分系数I=0.1,微分系数D=1,对照公式
G c ( s ) = P + I 1 s + D N 1 + N 1 s G_c(s)=P+I\frac{1}{s}+D\frac{N}{1+N\frac{1}{s}} Gc(s)=P+Is1+D1+Ns1N
将P、I、D的值带入,得 G c ( s ) = 0.8 + 1 10 s + 100 1 + 100 s G_c(s)=0.8+\frac{1}{10s}+\frac{100}{1+\frac{100}{s}} Gc(s)=0.8+10s1+1+s100100

所以系统开环传递函数为:
G ( s ) = 2 e − s s 2 + 2 s ( 0.8 + 1 10 s + 100 1 + 100 s ) G(s) = \frac{2e^{-s}}{s^2+2s}(0.8+\frac{1}{10s}+\frac{100}{1+\frac{100}{s}}) G(s)=s2+2s2es(0.8+10s1+1+s100100)

使用MATLAB对绘制校正后的系统单位阶跃响应曲线如图
qw

由图可得:校正后系统的单位阶跃相应较好,相比于校正前超调量 σ % \sigma\% σ%有所降低,约为50%,调节时间 t p t_p tp约为30s.
\subsection{设计模糊控制器}
虽然本系统可以用PID进行控制,但是因为具有纯延迟环节,被控量不能及时地反映系统所遇到或承受的扰动,即使检测到了信号使控制器动作,也要经过一段延迟时间后才能使被控制量得到控制。这样系统必然会经过较长的调节时间并产生明显的超调。带延迟特性的被控系统的控制难度随滞后程度的增加而加大,所以PID并不是最佳选择。 [ 2 ] ^{[2]} [2]

对于此种复杂的控制系统,虽然PID难以有效解决,但是人类凭借经验等信息往往较为容易将其控制特性保持很好,所以可以通过使用模糊控制设计将专家经验等模糊概念量子化,用来控制系统。

模糊控制器的输入通常是偏差和偏差的变化率,即E和EC,输出为控制量,如图
在这里插入图片描述

在本题中E为h的偏差量,EC为h偏差量的变化率,U为输出至水阀的控制量。搭建模糊控制框架,如图中模糊控制器 F u z z y   L o g i c   C o n t r o l l e r Fuzzy~Logic~Controller Fuzzy Logic Controller替代了PID控制中的 P I D   C o n t r o l l e r PID~Controller PID Controller。按照模糊控制设计流程,应将输入输出数据转化为模糊集合,存入控制系统中,在控制时实时调用。
在这里插入图片描述

利用simulink的 F u z z y Fuzzy Fuzzy工具箱(如图)可以轻松设置模糊集合。

设计E的论域为 ( − 10 ∼ 10 ) (-10\sim 10) (1010),EC的论域为 ( − 10 ∼ 10 ) (-10\sim 10) (1010),U的论域为 ( − 5 ∼ 5 ) (-5\sim 5) (55)。E中定义5个模糊集合,EC中定义6个,U中定义5个,各集合定义如表在这里插入图片描述

在这里插入图片描述

E、EC、U的隶属度和模糊关系:

表格解释:
在右下角的 6 × 5 6\times5 6×5共30个数据的整列中,第一行第一列dd表示当E是DD,且EC是DD时,U是dd.第三行第四列zx表示当E是ZG,EC是ZZ时,U是zx,以此类推。用模糊语言表示此表为:\
If (E is GG) and (EC is GGG) then (U is xx)\
If (E is ZG) and (EC is GG在这里插入图片描述
G) then (U is xx)
双击模糊控制器 F u z z y   L o g i c   C o n t r o l l e r Fuzzy~Logic~Controller Fuzzy Logic Controller,将fuzzy1.fis文件导入,运行仿真,得到的输出数据simout2使用matlab的plot命令

hold on
plot(simout1,'.k');
plot(simout,'-r');    %PID
plot(simout2,'-.');   %模糊
legend('未加校正','加入PID后','模糊控制');
title('Step Response');
xlabel('t/s');
ylabel('amplitude');
\end{lstlisting}
绘图结果如图\ref{mohu1eps}.
\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\textwidth]{mohu1.eps}
	\caption{未加控制、PID、模糊控制后单位阶跃响应曲线}\label{mohu1eps}

由图可得:当前模糊控制下的系统在受到单位阶跃信号时产生振荡,在时间到达30s后产生振幅约为1.4的等幅、正弦振荡,系统不稳定。

分析模糊控制的论域、隶属函数。模糊关系后,发现U的论域过大,在低强度的输入值(E、EC)下,输出值U相比较大,更改其论域与隶属函数,修改后的隶属函数如图
在这里插入图片描述

改进隶属函数后的系统单位阶跃相应如图
在这里插入图片描述

观察图,PID控制下的系统超调量约为50%,调节时间30s,稳态误差为0(无差跟踪)。而模糊控制下的系统超调量只有18%,且只经过20s的时间即达到稳定,控制性能明显优于PID控制,虽然调节时间依然较长,但是对于带有纯延迟的被控对象,此结果已经相当可观。

改变规则,调试模糊控制器

调试模糊控制器的参数一般是调试其模糊关系,即相应的“规则”,改变规则类似于调试PID控制的比例、积分、微分系数,一个优秀的控制器规则可以使被控对象获得优异的运行状态。
上述模糊控制器的隶属函数都是三角形,理论上,两个隶属度函数重叠时,交点值越小(越低),效果越好。基于此特性,将输入的隶属函数由三角形改成高斯型。又因为隶属函数斜率的绝对值越大,即形状越陡,系统分辨率越高,其控制灵敏度也就越高,系统响应越平滑。基于此性质,将U的论域从(-2,2)改成(-1.8,1.8),各个隶属函数相应改变。
经过对论域、隶属度函数等参数的调节,最终改进的模糊控制效果接近临界阻尼(实际上是稍过阻尼状态,这也是系统调节效果里面比较满意的情况)。超调量为0.7%,几乎不存在,调节时间为10S.

实验目标达成,实验结束。

总结

心得体会

本次实验让我重拾了利用matlab-simulink仿真系统控制的方法,在实验初期遇到了很多困难,如对PID理解不够透彻、模糊控制参数设置经验不够等等,但是实验的意义就在于不断提出-否定-完善自己的想法,最终获得成功。最终我确实也成功了,不仅更加熟悉经典的PID控制,学习了PID参数调节,而且还掌握了带有纯延迟的二阶系统的控制特性。更为重要的是我利用智能控制课程上学习的理论知识,运用到实际,设计出了我的第一个模糊控制系统。

对实验方法和手段的改进

实验通过对“带有延迟测量数据的水槽灌水模型”,分别用PID控制和模糊控制进行计算机建模,在多次调整控制参数后,对比两种控制方法的控制结果,结合理论知识,进行分析。

在实验中,对误差输入E分割成5个模糊集合,EC分割成6个模糊集合,从排列组合的角度即有 5 × 6 = 30 5\times6=30 5×6=30种配对的情况。在此30种情况下,又分成5个不同的输出集合,也就是U中的5个模糊集合。这样 30 ⟶ 5 30\longrightarrow5 305的对应就是其规则,因为在实验中最后调试出的阶跃响应曲线已经符合工程应用,所以对于规则库没有过多精雕细琢,如果使用更多的时间微调规则库,其控制特性可能会继续得到优化。

在判断系统控制性能时,除了阶跃响应曲线,还可以根据根轨迹、幅频特性、相频特性等参数进行判断,但是由于时间关系,实验过程将这一步骤省略,如果有更多的时间或更深入研究的机会,可以利用仿真软件从频域或复频域入手,探索对应于本物理背景下的更多控制参数,在考虑的维度增加以后,各个系统的优缺点就会更加彻底的暴露出来,对于日后的选择有积极作用。

总结

PID控制:调节精度高,有一套成熟的计算理论。对于单输入单输出的常见系统,控制效果很好。但是鲁棒性差,响应速度在某些领域不够。

模糊控制:原理简单、使用方便,对于复杂系统有较好的适用性和控制能力。无需建立数学模型且可以自学习。但是模糊控制在模糊化和逆模糊化过程中没有系统的方法,且不具有积分环节,稳态精度不高。

对于模糊控制而言,各个模糊集合的隶属度函数应该能够较好地覆盖整个论域,避免出现论域中某一段不属于任何一个隶属函数的情况,同时也要尽量减少过多的函数范围交叉,否则相关模糊集在概念上自相矛盾,这一点与人的概念很相似,类比到人的思维上就是概念混乱。但是不可避免的会有重叠(例如高斯分布的隶属度函数,其覆盖区域是整个论域),所以在实际运用时应该尽可能将重叠区域的各隶属度函数交叉点尽可能小,重叠部分任何点的隶属度的和应该小于1

下载链接

之前写作业的时候用的文件:github下载链接

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值