稳定性及稳态误差实验(实验三)
一、实验要求
自行设计控制系统,研究以下几个问题:
1.控制系统特征方程与稳定性的关系;
2.分析给定输入的系统稳态误差影响;
3.分析扰动情况下的稳态误差影响;
4.稳态误差减小与消除措施。
二、实验简介
稳态误差的分类
稳态误差按照产生的原因分为原理性误差和实际性误差两类。通常,伺服系统为无静差系统,而自动调节系统为有静差系统。
1.原理性误差
对于无静差系统,无静差性是相对于某种特定形式的输入信号或扰动作用而言的。一个控制系统对于单位阶跃函数(见拉普拉斯变换)的输入信号或扰动作用是无静差的,并不表示它对单位斜坡函数的输入或扰扰动也是无静差的。
对于同时有输入r(t)和扰动n(t)作用的控制系统在系统为渐近稳定(见稳定性)的前提下,原理性误差ess规定为t→∞时控制误差e(t)的值。ess由两部分组成,一部分是由输入信号引起的稳态误差esr,另一部分是由扰动作用引起的稳态误差esn,即ess=esr+esn。用G1(s)、G2(s)、H(s)分别表示系统各部分的传递函数,并令G(s)=G1(s)G2(s)为系统前馈通道的传递函数,则系统稳态误差与系统传递函数间的关系为: τ y x = μ ( ∂ u x ∂ y + ∂ u y ∂ x ) \tau_{y x}=\mu\left(\frac{\partial u_{x}}{\partial y}+\frac{\partial u_{y}}{\partial x}\right) τyx=μ(∂y∂ux+∂x∂uy)
2.实际性误差
系统的组成部件中的不完善因素(如摩擦、间隙、不灵敏区等)所造成的稳态误差。
系统的结构类型 在控制系统的研究中,常常按系统组成中所包含的积分环节的个数对系统进行分类,这对研究不同典型输入作用下系统的稳态误差是很方便的。
系统前馈通道中不包含积分环节时称为0型系统,包含一个积分环节时称为Ⅰ型系统,包含两个积分环节时称为Ⅱ型系统。高于Ⅱ型的系统一般没有实际意义,这种结构的控制系统很难具有满意的过渡过程性能,在工程上几乎不采用。
下图为各型控制系统在三种典型输入信号
(单位阶跃函数1(t)、单位斜坡函数t、单位加速度函数t2)作用下的稳态误差ess,其中K 表示系统的开环增益。
**
**
三、实验过程
1.控制系统特征方程与稳定性的关系
对于线性定常系统,在脉冲扰动的作用下,系统的运动随着时间的增长,可以逐渐趋于零态,则称该系统是稳定的。否则系统是不稳定的。
线性系统只有唯一的平衡点,就是系统运动的各阶导数全部为零,包括零阶导数也为零。由于线性定常系统自由运动的微分方程为
d n d t n [ c ( t ) ] + a n − 1 d n − 1 d t n − 1 [ c ( t ) ] + ⋯ + a 1 d d t [ c ( t ) ] + a 0 c ( t ) = 0 \frac{\mathrm{d}^{n}}{\mathrm{~d} t^{n}}[c(t)]+a_{n-1} \frac{\mathrm{d}^{n-1}}{\mathrm{~d} t^{n-1}}[c(t)]+\cdots+a_{1} \frac{d}{\mathrm{~d} t}[c(t)]+a_{0} c(t)=0 dtndn[c(t)]+an−1 dtn−1dn−1[c(t)]+⋯+a1 dtd[c(t)]+a0c(t)=0
依照平衡点的条件,当 c ( t ) c(t) c(t) 的各阶导数为零时有 a 0 c ( t ) = 0 a_{0} c(t)=0 a0c(t)=0, 故而有
c ( t ) = 0 c(t)=0 c(t)=0
所以,在平衡点邻域, 随着时间的增加,系统的运动 c ( t ) c(t) c(t) 是收敛于该点,还是发散,就是要讨论的线性系统的稳定性分析问题。
在分析控制系统时, 判断一个线性定常系统是否稳定经常使用的方法是求出闭环系统特征方程式所有的根, 然后根据闭环特征根的分布情况来确定系统的稳定性。
对线性系统来说,如果一个线性定常系统的所有闭环特征根都位于复平面左半平面,则该系统是稳定的。线性定常的特征方程式可以表示
a n s n + a n − 1 s n − 1 + ⋯ + a 1 s + a 0 = 0 a_{n} s^{n}+a_{n-1} s^{n-1}+\cdots+a_{1} s+a_{0}=0 ansn+an−1sn−1+⋯+a1s+a0=0
我们可以调用MATLAB 中根据特征多项式求特征根的函数为 **roots( )**来求取特征多项式的根。
2.分析给定输入的系统稳态误差影响
由: E ( s ) = R ( s ) − C ( s ) = R ( s ) − G e ( s ) R ( s ) = [ 1 − G e ( s ) ] R ( s ) \begin{aligned} E(s) &=R(s)-C(s) \\ &=R(s)-G_{\mathrm{e}}(s) R(s) \\ &=\left[1-G_{\mathrm{e}}(s)\right] R(s) \end{aligned} E(s)=R(s)−C(s)=R(s)−Ge(s)R(s)=[1−Ge(s)]R(s)
所以,误差传递函数为
G E ( s ) = E ( s ) R ( s ) = [ 1 − G c ( s ) ] = 1 − G 0 ( s ) 1 + G o ( s ) = 1 1 + G o ( s ) \begin{aligned} G_{\mathrm{E}}(s) &=\frac{E(s)}{R(s)}=\left[1-G_{\mathrm{c}}(s)\right] \\ &=1-\frac{G_{0}(s)}{1+G_{\mathrm{o}}(s)} \\ &=\frac{1}{1+G_{\mathrm{o}}(s)} \end{aligned} GE(s)=R(s)E(s)=[1−Gc(s)]=1−1+Go(s)G0(s)=1+Go(s)1
式中, G o ( s ) G_{\mathrm{o}}(s) Go(s) 为系统的开环传递函数。
开环传递函数 G 0 ( s ) G_{0}(s) G0(s) 表示为
G o ( s ) = K 0 s ν ⋅ G n ( s ) G_{\mathrm{o}}(s)=\frac{K_{0}}{s^{\nu}} \cdot G_{\mathrm{n}}(s) Go(s)=sνK0⋅Gn(s)
该式由三部分组成: K o K_{\mathrm{o}} Ko 一称为系统的开环增益; 1 s ν \frac{1}{s^{\nu}} sν1 业前向通道积分环节的个数,如图 3 − 54 3-54 3−54 所示; G n ( s ) G_{n}(s) Gn(s) 零、极点因子的环节增益归一表达式。 开环增益 K o K_{\mathrm{o}} Ko 可以由下式求得
K o = lims s → 0 s ν G o ( s ) K_{\mathrm{o}}=\operatorname{lims}_{s \rightarrow 0} s^{\nu} G_{\mathrm{o}}(s) Ko=limss→0sνGo(s)
因为
G o ( s ) = K o s ν G n ( s ) G_{\mathrm{o}}(s)=\frac{K_{\mathrm{o}}}{s^{\nu}} G_{\mathrm{n}}(s) Go(s)=sνKoGn(s)
所以
K a G n ( s ) = s ν G 0 ( s ) K_{a} G_{n}(s)=s^{\nu} G_{0}(s) KaGn(s)=sνG0(s)
两边取极限
lim s → 0 K 0 G n ( s ) = lims s → 0 ν G o ( s ) \lim _{s \rightarrow 0} K_{0} G_{n}(s)=\operatorname{lims}_{s \rightarrow 0}{ }^{\nu} G_{\mathrm{o}}(s) s→0limK0Gn(s)=limss→0νGo(s)
因为
lim s → 0 G n ( s ) = 1 \lim _{s \rightarrow 0} G_{n}(s)=1 s→0limGn(s)=1
所以有
K o = lims s → 0 ν G o ( s ) K_{\mathrm{o}}=\operatorname{lims}_{s \rightarrow 0}{ }^{\nu} \boldsymbol{G}_{\mathrm{o}}(s) Ko=limss→0νGo(s)
对于系统的数学模型作如上的分解,完全是为了系统稳态误差的表达简捷明了与推导计算 方便。所以.一般情况下,先要将系统变换成如上所述的表达形式。 综上所述,控制系统的稳态误差主要由三方面确定:
(1) 输人信号的类型, 即所需跟踪的基准信号,如 δ ( t ) 、 1 ( t ) 、 , 1 2 t 2 \delta(t) 、 1(t) 、, \frac{1}{2} t^{2} δ(t)、1(t)、,21t2 等;
(2) 系统的开环增益 K 0 K_{0} K0, 它可以确定有差系统稳态误差的大小;
(3) 系统的无差度 ν \nu ν,它可以确定能够无差跟踪的信号的阶数。 上述三项因素也称为稳态误差的三要素。
0型二阶系统
根据终值定理,可以计算出该系统对阶跃、斜坡以及抛物线的稳态误差为:
阶跃响应稳态误差:e0=0.75
斜坡响应稳态误差:e1=∞
抛物线响应稳态误差:e2=∞
Ⅰ型二阶系统
设 I型系统的方框图如图所示。根据终值定理,可以计算出该系统对阶跃、斜坡以及抛物线的稳态误差为:
阶跃响应稳态误差: 0
斜坡响应稳态误差: 3
抛物线响应稳态误差:∞
II 型二阶系统
设 I型系统的方框图如图2-2-1所示。根据终值定理,可以计算出该系统对阶跃、斜坡以及抛物线的稳态误差为:
阶跃响应稳态误差: 0
斜坡响应稳态误差: 0
抛物线响应稳态误差:0.5
3.扰动情况下对系统稳态误差的影响
通常控制系统的方框图如图所示。
其中 G1(S),G2(S)为系统前向通道的传递函数,H(S)为其反馈通道的传递函数。N(S)是扰动信号
可得误差传递函数
当系统为稳定系统时,由上式可知,系统的误差E(S)不仅与其结构和参数有关,而且也与输入信号N(S)的形式和大小有关。 如果系统稳定, 且误差的终值存在,则可用下列的终值定理求取系统的稳态误差
逐渐增加G1(s)放大系数,逐渐增加G1(s)中积分环节个数。分别得到所示曲线
4.稳态误差减小与消除措施
通过上述实验我们可以得知,为了减小稳态误差,可增加积分环节个数或提高开环增益。但是系统找中积分换届个数和开环增益过大会破坏系统稳定。参考资料,我们得知通常采用复合控制来对误差进行补偿。我们通过实验来验证两种复合控制的补偿作用。
给输入补偿
如果要求对误差实行全补偿:
C
(
s
)
=
[
G
1
(
s
)
+
G
r
(
s
)
]
⋅
G
2
(
s
)
1
+
G
1
(
s
)
G
2
(
s
)
⋅
R
(
s
)
E
(
s
)
=
R
(
s
)
−
C
(
s
)
=
0
∴
R
(
s
)
=
C
(
s
)
∴
G
r
(
s
)
=
1
G
2
(
s
)
\begin{aligned} &C(s)=\left[G_{1}(s)+G_{r}(s)\right] \cdot \frac{G_{2}(s)}{1+G_{1}(s) G_{2}(s)} \cdot R(s) \\ &E(s)=R(s)-C(s)=0 \\ &\therefore R(s)=C(s) \therefore G_{r}(s)=\frac{1}{G_{2}(s)} \end{aligned}
C(s)=[G1(s)+Gr(s)]⋅1+G1(s)G2(s)G2(s)⋅R(s)E(s)=R(s)−C(s)=0∴R(s)=C(s)∴Gr(s)=G2(s)1
采用图3-2中的控制系统,由于实现(s+1)较为困难,因此令。
通过图4-2可知,加入给输入补偿后,系统的稳态误差大幅度减小。
按扰动输入补偿
如果加于系统的干扰是能测量的,同时干扰 对系统的影响是明确的,则可按干扰补偿的办法办法提高稳态精度。
在扰动作用下的输出为:
C
(
s
)
=
G
2
(
s
)
+
G
n
(
s
)
G
1
(
s
)
G
2
(
s
)
1
+
G
1
(
s
)
G
2
(
s
)
⋅
N
(
s
)
若
G
n
(
s
)
=
−
1
/
G
1
(
s
)
,
则
C
(
s
)
=
0
,
\begin{aligned} &C(s)=\frac{G_{2}(s)+G_{n}(s) G_{1}(s) G_{2}(s)}{1+G_{1}(s) G_{2}(s)} \cdot N(s) \\ &\text { 若 } G_{n}(s)=-1 / G_{1}(s), \text { 则 } C(s)=0, \end{aligned}
C(s)=1+G1(s)G2(s)G2(s)+Gn(s)G1(s)G2(s)⋅N(s) 若 Gn(s)=−1/G1(s), 则 C(s)=0,
采用图3-2中的控制系统,由于实现较为困难,因此令
此时可得图4-4的误差图像,由此图我们可以看出增加扰动补偿后,系统的稳态误差最终减小为0.
附matlab代码:
1.给定输入的系统稳态误差影响
sys1=zpk([],[-3.-1],1);%0型系统
num3=[1];den3=[1];
sys3=tf(num3,den3);
sys=feedback(sys1,sys3);
t=0:0.5:10;
y1=step(sys1,t);
alaph1=1;alaph2=0.5;
ramp1=alaph1*t;ramp2=alaph2*t.^2;
y11=step(sys3,t);
[y2,t]=lsim(sys,ramp1,t);
[y22,t]=lsim(sys3,ramp1,t);
[y3,t]=lsim(sys,ramp2,t);
[y33,t]=lsim(sys3,ramp2,t);
plot(t,y1-y11,t,y22-y2,t,y33-y3)
legend('阶跃输入','斜坡输入','抛物线输入')
grid on
sys1=zpk([],[-3.-1,0],1);%1型系统
num3=[1];den3=[1];
sys3=tf(num3,den3);
sys=feedback(sys1,sys3);
t=0:0.5:10;
y1=step(sys1,t);
alaph1=1;alaph2=0.5;
ramp1=alaph1*t;ramp2=alaph2*t.^2;
y11=step(sys3,t);
[y2,t]=lsim(sys,ramp1,t);
[y22,t]=lsim(sys3,ramp1,t);
[y3,t]=lsim(sys,ramp2,t);
[y33,t]=lsim(sys3,ramp2,t);
plot(t,y1-y11,t,y22-y2,t,y33-y3)
legend('阶跃输入','斜坡输入','抛物线输入')
grid on
sys1=zpk([-2],[0,0],1);%2型系统
num3=[1];den3=[1];
sys3=tf(num3,den3);
sys=feedback(sys1,sys3);
t=0:0.5:10;
y1=step(sys1,t);
alaph1=1;alaph2=0.5;
ramp1=alaph1*t;ramp2=alaph2*t.^2;
y11=step(sys3,t);
[y2,t]=lsim(sys,ramp1,t);
[y22,t]=lsim(sys3,ramp1,t);
[y3,t]=lsim(sys,ramp2,t);
[y33,t]=lsim(sys3,ramp2,t);
plot(t,y1-y11,t,y22-y2,t,y33-y3)
legend('阶跃输入','斜坡输入','抛物线输入')
grid on
num1=[1];den1=[1 1];
num2=[-1];%可取-1、-3、-5
den2=[1 5];
num3=[1];den3=[1];
sys1=tf(num1,den1) ;
sys2=tf(num2,den2);
sys3=tf(num3,den3);
sys=feedback(sys1,sys2,1)
t=0:0.1:10;
y1=step(sys,t);
y2=step(sys3,t);
plot(t,y1)
hold on
grid on
num1=[1];den1=[1 1];
num2=[-1];
den2=[1 5 ];%可变为0、1、2型系统
num3=[1];den3=[1];
sys1=tf(num1,den1) ;
sys2=tf(num2,den2);
sys3=tf(num3,den3);
sys=feedback(sys1,sys2,1)
t=0:0.1:30;
y1=step(sys,t);
y2=step(sys3,t);
plot(t,y1)
hold on
grid on
2.扰动情况下对系统稳态误差的影响
sys1=zpk([],[-2],1);
num3=[1];den3=[1];
num5=[2];den5=[1];
sys5=tf(num5,den5);
sys3=tf(num3,den3);
sys4=feedback(sys1,sys3);
sys=feedback(sys4,sys5,1);
t=0:0.1:10;
y1=step(sys,t);
y2=step(sys4,t);
y11=step(sys3,t);
plot(t,y11-y2,t,y11-y1)
legend('初始','给定输入后')
grid on