主要参考学习资料:《控制之美》王天威 编著
概述
- 控制系统由控制器和动态系统组成,根据有无反馈分为开环控制系统和闭环控制系统。
- 线性时不变系统是符合叠加原理、输入输出关系不随时间变化的系统。
- 线性时不变系统的输入输出关系是卷积。
- 拉普拉斯变换通过将时域映射到复数域,简化了线性时不变系统的分析过程。
- 传递函数是零初始条件下,系统输出的拉普拉斯变换与系统输入的拉普拉斯变换的比值。
- 传递函数的收敛域和极点可用于分析系统的因果性和稳定性。
控制系统
控制理论的研究对象是动态系统,即状态随时间变化的系统,其特点为系统的状态变量是时间的函数。
上图质量为 m m m的小车是一个动态系统,该系统的输入为外力 u ( t ) u(t) u(t),输出(响应)为其状态变量位移 x ( t ) x(t) x(t)。根据牛顿第二定律,该系统的微分方程为
u ( t ) = m d 2 x ( t ) d t 2 u(t)=m\frac{\mathrm d^2x(t)}{\mathrm dt^2} u(t)=mdt2d2x(t)
若无特别说明,本系列研究的动态系统特指线性时不变系统。
线性指系统的输入与输出是线性映射的,符合叠加原理。
时不变性指如果系统的输入信号延迟了时间 T T T,那么系统的输出也会延迟时间 T T T。
一般控制系统由控制器和动态系统组成。对于开环控制系统,控制器根据参考值 r ( t ) r(t) r(t)决定控制量,即动态系统的输入 u ( t ) u(t) u(t)。
更精确的控制需要闭环控制系统。闭环控制会测量系统的输出,并将其反馈到输入端与参考值比较,参考值与实际系统输出的差称为误差,控制器将根据误差调整控制量。
传递函数
卷积
线性时不变系统的输入输出关系为卷积关系,即系统任一时刻的输入将对未来一段时间之内的系统输出产生影响,而系统任一时刻的输出是所有时刻输入对该时刻输出影响的叠加。
由于系统的线性性质,系统任一时刻的输入与其引起的任一时刻的输出成比例关系,因此我们可以先确定单位输入引起的系统输出。考虑一个单位脉冲方波 δ Δ ( t ) \delta_\Delta(t) δΔ(t),它的宽度为 Δ T \Delta T ΔT,长度为 1 Δ T \displaystyle\frac1{\Delta T} ΔT1,面积为 Δ T × 1 Δ T = 1 \Delta T\times\displaystyle\frac1{\Delta T}=1 ΔT×ΔT1=1,即包含了一个单位面积的能量。当 u ( t ) = δ Δ ( t ) u(t)=\delta_\Delta(t) u(t)=δΔ(t)作用在系统上时,假设系统对其响应 x ( t ) = h Δ ( t ) x(t)=h_\Delta(t) x(t)=hΔ(t)如下图所示:
根据线性时不变系统的性质,将 A A A倍单位面积的 δ Δ ( t ) \delta_\Delta(t) δΔ(t)延迟 T T T后(即 A δ Δ ( t − T ) A\delta_\Delta(t-T) AδΔ(t−T))作用于系统时,系统的输出为 A h Δ ( t − T ) Ah_\Delta(t-T) AhΔ(t−T)。
对于一段连续输入,我们可以应用微积分的思想将其分割为一系列脉冲方波,分别计算其系统输出再叠加,最后再取 Δ T → 0 \Delta T\rightarrow0 ΔT→0的极限。以上图为例,对于输入的每个脉冲方波,我们有
{ u 0 ( t ) = u ( 0 ) Δ T δ Δ ( t ) u 1 ( t ) = u ( Δ T ) Δ T δ Δ ( t − Δ T ) u 2 ( t ) = u ( 2 Δ T ) Δ T δ Δ ( t − 2 Δ T ) \left\{\begin{split} &u_0(t)=u(0)\Delta T\delta_\Delta(t)\\ &u_1(t)=u(\Delta T)\Delta T\delta_\Delta(t-\Delta T)\\ &u_2(t)=u(2\Delta T)\Delta T\delta_\Delta(t-2\Delta T) \end{split}\right. ⎩ ⎨ ⎧u0(t)=u(0)ΔTδΔ(t)u1(t)=u(ΔT)ΔTδΔ(t−ΔT)u2(t)=u(2ΔT)ΔTδΔ(t−2ΔT)
则每个脉冲方波引起的输出为
{ x 0 ( t ) = u ( 0 ) Δ T h Δ ( t ) x 1 ( t ) = u ( Δ T ) Δ T h Δ ( t − Δ T ) x 2 ( t ) = u ( 2 Δ T ) Δ T h Δ ( t − 2 Δ T ) \left\{\begin{split} &x_0(t)=u(0)\Delta Th_\Delta(t)\\ &x_1(t)=u(\Delta T)\Delta Th_\Delta(t-\Delta T)\\ &x_2(t)=u(2\Delta T)\Delta Th_\Delta(t-2\Delta T) \end{split}\right. ⎩ ⎨ ⎧x0(t)=u(0)ΔThΔ(t)x1(t)=u(ΔT)ΔThΔ(t−ΔT)x2(t)=u(2ΔT)ΔThΔ(t−2ΔT)
对上述输出求和得到完整的系统输出
x ( t ) = ∑ i = 0 2 x i ( t ) = ∑ i = 0 2 u ( i Δ T ) Δ T h Δ ( t − i Δ T ) x(t)=\sum^2_{i=0}x_i(t)=\sum^2_{i=0}u(i\Delta T)\Delta Th_\Delta(t-i\Delta T) x(t)=i=0∑2xi(t)=i=0∑2u(iΔT)ΔThΔ(t−iΔT)
现将分割间隔 Δ T \Delta T ΔT减小,若分割方波数量为 n + 1 n+1 n+1,则有
x ( t ) = ∑ i = 0 n u ( i Δ T ) Δ T h Δ ( t − i Δ T ) x(t)=\sum^n_{i=0}u(i\Delta T)\Delta Th_\Delta(t-i\Delta T) x(t)=i=0∑nu(iΔT)ΔThΔ(t−iΔT)
对上式取 Δ → 0 \Delta\rightarrow0 Δ→0的极限,得到的积分形式即为卷积运算,用符号 ∗ * ∗表示
x ( t ) = lim Δ T → 0 ∑ i = 0 n u ( i Δ T ) Δ T h Δ ( t − i Δ T ) = ∫ 0 t u ( τ ) h ( t − τ ) d τ = u ( t ) ∗ h ( t ) \begin{split} x(t)&=\lim_{\Delta T\rightarrow0}\sum^n_{i=0}u(i\Delta T)\Delta Th_\Delta(t-i\Delta T)\\ &=\int^t_0u(\tau)h(t-\tau)\mathrm d\tau\\ &=u(t)*h(t) \end{split} x(t)=ΔT→0limi=0∑nu(iΔT)ΔThΔ(t−iΔT)=∫0tu(τ)h(t−τ)dτ=u(t)∗h(t)
其中 h ( t ) h(t) h(t)是系统对于冲激函数 δ ( t ) = lim Δ T → 0 δ Δ ( t ) \delta(t)=\displaystyle\lim_{\Delta T\rightarrow0}\delta_{\Delta}(t) δ(t)=ΔT→0limδΔ(t)的冲激响应,它包含了线性时不变系统的全部特性。一个用卷积表示的系统框图如下:
拉普拉斯变换
拉普拉斯变换被用于简化线性时不变系统的分析过程,它将函数 f ( t ) f(t) f(t)从时域( t t t)转换到复数域( s s s)
L [ f ( t ) ] = F ( s ) = ∫ 0 ∞ f ( t ) e − s t d t \mathcal L[f(t)]=F(s)=\int^\infty_0f(t)e^{-st}\mathrm dt L[f(t)]=F(s)=∫0∞f(t)e−stdt
这里不赘述拉普拉斯变换求积分的过程,重点在于利用其性质:
- 线性叠加性质: L [ a f ( t ) + b g ( t ) ] = a F ( s ) + b G ( s ) \mathcal L[af(t)+bg(t)]=aF(s)+bG(s) L[af(t)+bg(t)]=aF(s)+bG(s)
- 导数的拉普拉斯变换:
L
[
d
f
(
t
)
d
t
]
=
s
F
(
s
)
−
f
(
0
)
\mathcal L\left[\displaystyle\frac{\mathrm df(t)}{\mathrm dt}\right]=sF(s)-f(0)
L[dtdf(t)]=sF(s)−f(0)
- f ( 0 ) f(0) f(0)是函数的初始条件。
- 扩展到高阶导数有 L [ d n f ( t ) d t n ] = s n F ( s ) − ∑ k = 1 n s n − k f ( k − 1 ) ( 0 − ) \displaystyle\mathcal{L}\left[ \frac{d^n f(t)}{dt^n} \right] = s^n F(s) - \sum_{k=1}^{n} s^{n-k} f^{(k-1)}(0^-) L[dtndnf(t)]=snF(s)−k=1∑nsn−kf(k−1)(0−)
- 该性质将微分方程简化为代数运算。
- 卷积的拉普拉斯变换:
L
[
f
(
t
)
∗
g
(
t
)
]
=
F
(
s
)
G
(
s
)
\mathcal L[f(t)*g(t)]=F(s)G(s)
L[f(t)∗g(t)]=F(s)G(s)
- 该性质将卷积运算简化化为乘法运算。
使得拉普拉斯变换中的积分收敛的 s s s的集合是拉普拉斯变换的收敛域。
原函数 | 拉普拉斯变换 | 收敛域 |
---|---|---|
δ ( t ) \delta(t) δ(t) | 1 1 1 | ∞ > s > − ∞ \infty>s>-\infty ∞>s>−∞ |
1 1 1 | 1 s \displaystyle\frac1s s1 | s > 0 s>0 s>0 |
e − a t e^{-at} e−at | 1 s + a \displaystyle\frac1{s+a} s+a1 | s > − a s>-a s>−a |
sin ( a t ) \sin(at) sin(at) | a s 2 + a 2 \displaystyle\frac a{s^2+a^2} s2+a2a | s > 0 s>0 s>0 |
cos ( a t ) \cos(at) cos(at) | s s 2 + a 2 \displaystyle\frac s{s^2+a^2} s2+a2s | s > 0 s>0 s>0 |
sinh ( a t ) \sinh(at) sinh(at) | a s 2 − a 2 \displaystyle\frac a{s^2-a^2} s2−a2a | s > ∣ a ∣ s>\mid a\mid s>∣a∣ |
cosh ( a t ) \cosh(at) cosh(at) | s s 2 − a 2 \displaystyle\frac s{s^2-a^2} s2−a2s | s > ∣ a ∣ s>\mid a\mid s>∣a∣ |
e a t sin ( b t ) e^{at}\sin(bt) eatsin(bt) | b ( s − a ) 2 + b 2 \displaystyle\frac b{(s-a)^2+b^2} (s−a)2+b2b | s > a s>a s>a |
e a t cos ( b t ) e^{at}\cos(bt) eatcos(bt) | s − a ( s − a ) 2 + b 2 \displaystyle\frac {s-a}{(s-a)^2+b^2} (s−a)2+b2s−a | s > a s>a s>a |
e a t sinh ( b t ) e^{at}\sinh(bt) eatsinh(bt) | b ( s − a ) 2 − b 2 \displaystyle\frac b{(s-a)^2-b^2} (s−a)2−b2b | s − a > ∣ b ∣ s-a>\mid b\mid s−a>∣b∣ |
e a t cosh ( b t ) e^{at}\cosh(bt) eatcosh(bt) | s − a ( s − a ) 2 − b 2 \displaystyle\frac {s-a}{(s-a)^2-b^2} (s−a)2−b2s−a | s − a > ∣ b ∣ s-a>\mid b\mid s−a>∣b∣ |
收敛域影响系统的因果性和稳定性。当收敛域包含右半平面( s > σ s>\sigma s>σ)时,系统是因果的,即当前输入仅取决于当前和过去的输出,可以在物理上实现。当收敛域包含虚轴( s = 0 s=0 s=0)时,系统才有可能稳定,即输出能收敛于某个值,具体判据将在后文给出。
拉普拉斯逆变换反向使用拉普拉斯变换,将 F ( s ) F(s) F(s)变回时域函数 f ( t ) f(t) f(t),即:
f ( t ) = L − 1 [ F ( s ) ] f(t)=\mathcal L^{-1}[F(s)] f(t)=L−1[F(s)]
由常见的拉普拉斯公式表可知,许多拉普拉斯变换的结果是分数形式,因此拉普拉斯逆变换的常用解法是先分式分解,再通过分式查表,最后应用线性叠加原理相加。通过拉普拉斯变换和拉普拉斯逆变换,我们可以方便地求解系统的卷积关系。
传递函数
系统的传递函数的定义是在零初始条件( x ( 0 ) = 0 x(0)=0 x(0)=0)下,系统输出的拉普拉斯变换 X ( s ) X(s) X(s)与系统输入的拉普拉斯变换 U ( s ) U(s) U(s)之间的比值
G
(
s
)
=
X
(
s
)
U
(
s
)
G(s)=\frac{X(s)}{U(s)}
G(s)=U(s)X(s)
传递函数也是系统冲激响应
h
(
t
)
h(t)
h(t)的拉普拉斯变换,
X
(
s
)
=
G
(
s
)
U
(
s
)
X(s)=G(s)U(s)
X(s)=G(s)U(s)即线性时不变系统卷积关系
x
(
t
)
=
h
(
t
)
∗
u
(
t
)
x(t)=h(t)*u(t)
x(t)=h(t)∗u(t)的拉普拉斯变换形式,用系统框图表示为:
利用拉普拉斯变换求解系统的传递函数,再由传递函数的拉普拉斯逆变换即可得到系统的冲激响应。
传递函数的极点
输入幅值不为零但使得系统输出的拉普拉斯变换 X ( s ) X(s) X(s)趋于无穷大(输出的分母部分为零)的点称为系统的极点。输出的分母部分的因式分别来自 U ( s ) U(s) U(s)和 G ( s ) G(s) G(s),因而极点也分为输入引入的极点和传递函数的极点。
极点的正负和虚实可以直接反映系统输出是否收敛、以何种形式收敛。简单来说,实数极点的系统输出的项为指数形式 x ( t ) = e a t x(t)=e^{at} x(t)=eat,而复数极点的系统输出为振荡形式 x ( t ) = e a t sin ( ω t + φ ) x(t)=e^{at}\sin(\omega t+\varphi) x(t)=eatsin(ωt+φ)。在复平面上,仅当极点均位于左半平面(包括虚轴)时,系统输出收敛,即 a < 0 a<0 a<0。关于稳定性的详细展开将在后续章节探讨。
用拉普拉斯变换分析线性时不变系统的基本流程如下:
- 列出系统的微分方程并应用拉普拉斯变换,在零初始条件下求得系统的传递函数。
- 对系统输入应用拉普拉斯变换,并结合传递函数求得系统输出的拉普拉斯变换。
- 对系统输出的拉普拉斯变换应用逆拉普拉斯变换,得到系统输出。
以上图所示的电路系统为例,其电流的动态微分方程为
e ( t ) = L d i ( t ) d t + R i ( t ) e(t)=L\frac{\mathrm di(t)}{\mathrm dt}+Ri(t) e(t)=Ldtdi(t)+Ri(t)
定义该系统的输入为电压 u ( t ) = e ( t ) u(t)=e(t) u(t)=e(t),输出为电流 x ( t ) = i ( t ) x(t)=i(t) x(t)=i(t),则上式可写成
u ( t ) = L d x ( t ) d t + R x ( t ) u(t)=L\frac{\mathrm dx(t)}{\mathrm dt}+Rx(t) u(t)=Ldtdx(t)+Rx(t)
对两侧进行拉普拉斯变换有
L [ u ( t ) ] = L [ L d x ( t ) d t + R x ( t ) ] U ( s ) = L [ s X ( s ) − x ( 0 ) ] + R X ( s ) \begin{split} \mathcal L[u(t)]&=\mathcal L\left[L\frac{\mathrm dx(t)}{\mathrm dt}+Rx(t)\right]\\ U(s)&=L[sX(s)-x(0)]+RX(s) \end{split} L[u(t)]U(s)=L[Ldtdx(t)+Rx(t)]=L[sX(s)−x(0)]+RX(s)
在零初始条件有
U ( s ) = ( L s + R ) X ( s ) U(s)=(Ls+R)X(s) U(s)=(Ls+R)X(s)
进而可得该系统的传递函数为
G ( s ) = X ( s ) U ( s ) = 1 L s + R \begin{split} G(s)=\frac{X(s)}{U(s)}=\frac1{Ls+R} \end{split} G(s)=U(s)X(s)=Ls+R1
当一个常数输入 u ( t ) = C u(t)=C u(t)=C作用在系统上时,其拉普拉斯变换为
U ( s ) = L ( u ( t ) ) = L ( C ) = L ( C e − 0 t ) = C 1 s U(s)=\mathcal L(u(t))=\mathcal L(C)=\mathcal L(Ce^{-0t})=C\frac1s U(s)=L(u(t))=L(C)=L(Ce−0t)=Cs1
则系统输出的拉普拉斯变换为
X ( s ) = U ( s ) G ( s ) = C L 1 s ( s + R L ) = C L ( 1 s − 1 s + R L ) X(s)=U(s)G(s)=\frac CL\frac1{s\left(s+\displaystyle\frac RL\right)}=\frac CL\left(\frac1s-\frac1{s+\displaystyle\frac RL}\right) X(s)=U(s)G(s)=LCs(s+LR)1=LC s1−s+LR1
令分母等于零,我们求得该系统的两个极点为 s p 1 = 0 s_{p1}=0 sp1=0和 s p 2 = − R L s_{p2}=-\displaystyle\frac RL sp2=−LR,其中 s p 1 s_{p1} sp1来自 U ( s ) U(s) U(s),为输入引入的极点, s p 2 s_{p2} sp2来自 G ( s ) G(s) G(s),为传递函数的极点。极点均为实数且位于左半平面,该系统是指数收敛的。
对系统的输出求拉普拉斯逆变换可得到系统输出
x ( t ) = L − 1 [ X ( s ) ] = C R ( e 0 t − e − R L t ) = C R ( 1 − e − R L t ) x(t)=\mathcal L^{-1}[X(s)]=\frac CR(e^{0t}-e^{-\frac RLt})=\frac CR(1-e^{-\frac RLt}) x(t)=L−1[X(s)]=RC(e0t−e−LRt)=RC(1−e−LRt)
由图可见,该系统的输出随时间指数增大收敛到一个稳定值 C R \displaystyle\frac CR RC。
控制系统的传递函数
在上图的开环控制系统中,参考值 R ( s ) R(s) R(s)是控制系统的输入,又称参考输入。 C ( s ) C(s) C(s)为控制器,原动态系统的传递函数 G ( s ) G(s) G(s)被称为控制系统的开环传递函数。控制量 U ( s ) U(s) U(s)是原动态系统的输入,控制系统的输出为原动态系统的输出 X ( s ) X(s) X(s)。
从参考值 R ( s ) R(s) R(s)到系统输出 X ( s ) X(s) X(s)是串联结构
X ( s ) = U ( s ) G ( s ) = R ( s ) C ( s ) G ( s ) X(s)=U(s)G(s)=R(s)C(s)G(s) X(s)=U(s)G(s)=R(s)C(s)G(s)
其中控制量 U ( s ) = R ( s ) C ( s ) U(s)=R(s)C(s) U(s)=R(s)C(s)。系统输出 X ( s ) X(s) X(s)对控制量 U ( s ) U(s) U(s)没有影响是开环系统的特点。
将系统输出 X ( s ) X(s) X(s)反馈到输入端,则可以形成一个闭环控制系统。其中,参考值与输出之间的差 E ( s ) = R ( s ) − X ( s ) E(s)=R(s)-X(s) E(s)=R(s)−X(s),称为误差,控制器将根据误差决定控制量 U ( s ) U(s) U(s)。
X ( s ) = U ( s ) G ( s ) = E ( s ) C ( s ) G ( s ) = [ R ( s ) − X ( s ) ] C ( s ) G ( s ) ⇒ X ( s ) = C ( s ) G ( s ) 1 + C ( s ) G ( s ) R ( s ) \begin{split} X(s)&=U(s)G(s)=E(s)C(s)G(s)\\ &=[R(s)-X(s)]C(s)G(s)\\ \Rightarrow X(s)&=\frac{C(s)G(s)}{1+C(s)G(s)}R(s) \end{split} X(s)⇒X(s)=U(s)G(s)=E(s)C(s)G(s)=[R(s)−X(s)]C(s)G(s)=1+C(s)G(s)C(s)G(s)R(s)
其中 R ( s ) R(s) R(s)的系数被定义为控制系统的闭环传递函数
G c l ( s ) = C ( s ) G ( s ) 1 + C ( s ) G ( s ) G_{cl}(s)=\frac{C(s)G(s)}{1+C(s)G(s)} Gcl(s)=1+C(s)G(s)C(s)G(s)
则一个简化后的闭环控制系统框图如下图所示:
非零初始状态下的传递函数
我们通过一个一阶微分方程考虑非零初始状态的系统
d x ( t ) d t + a x ( t ) = u ( t ) \frac{\mathrm dx(t)}{\mathrm dt}+ax(t)=u(t) dtdx(t)+ax(t)=u(t)
对其两边进行拉普拉斯变换
s X ( s ) − x ( 0 ) + a X ( s ) = U ( s ) sX(s)-x(0)+aX(s)=U(s) sX(s)−x(0)+aX(s)=U(s)
对于非零初始状态 x ( 0 ) ≠ 0 x(0)\neq0 x(0)=0,我们可以将上式写成
s X ( s ) + a X ( s ) = U ( s ) + x ( 0 ) sX(s)+aX(s)=U(s)+x(0) sX(s)+aX(s)=U(s)+x(0)
如果令一个等效系统输入 U 1 ( s ) = U ( s ) + x ( 0 ) U_1(s)=U(s)+x(0) U1(s)=U(s)+x(0)代入上式,则有
G ( s ) = X ( s ) U 1 ( s ) = 1 s + a G(s)=\frac{X(s)}{U_1(s)}=\frac1{s+a} G(s)=U1(s)X(s)=s+a1
因此非零初始条件系统框图可如下表示:
如果我们对 U 1 ( s ) U_1(s) U1(s)进行逆拉普拉斯变换,则有
L − 1 [ U 1 ( s ) ] = L − 1 [ U ( s ) ] + L − 1 [ x ( 0 ) ] = u ( t ) + x ( 0 ) δ ( t ) \mathcal L^{-1}[U_1(s)]=\mathcal L^{-1}[U(s)]+\mathcal L^{-1}[x(0)]=u(t)+x(0)\delta(t) L−1[U1(s)]=L−1[U(s)]+L−1[x(0)]=u(t)+x(0)δ(t)
其中 δ ( t ) \delta(t) δ(t)为单位冲激函数。也就是说,非零初始状态相当于在 t = 0 t=0 t=0的一瞬间施加了 x ( 0 ) x(0) x(0)个单位的能量。因为该能量并不持续,所以不会影响系统的稳定性分析与特征分析。高阶系统的非零初始条件的分析则比较复杂,但其理念仍是将初始状态理解为瞬间赋予系统的能量。