重温现代控制理论

最近重温了现代控制理论,现对重要知识点做一个总结。

状态空间方程

状态方程是现代控制理论的基础,不同于经典控制理论中的传递函数,状态方程引入了系统的内部状态,外部控制输入的作用引起了状态的改变,状态的线形组合构成了系统的输出。状态空间输入-输出方程一般形如
x ˙ = A x + B u y = C x + D u \dot x= Ax+Bu\\y= Cx + Du

两种方式构建状态方程:

  1. 从机理推导
  2. 从传递函数推导

机理推导:即结合物理知识(如力、电、流体等),运用公式对对象进行描述,从而选择合适的状态,将其转换为上述给出的一般形式。

例:建立电动机的输出扭矩与电机轴转速的关系,设扭矩为 u u ,轴的转动惯量为 J J ,角位移为 θ \theta (忽略负载、摩擦、阻尼等),则有
J θ ¨ = T J\ddot \theta = T
这里,我们取 x 1 = θ x_1=\theta x 2 = θ ˙ x_2=\dot \theta ,则有 x ˙ 1 = x 2 \dot x_1=x_2 x ˙ 2 = u J \dot x_2 = \frac{u}{J} ,输出转速为 y = x 2 y=x_2 。因此,状态方程的系数矩阵可写为
A = [ 0 1 0 0 ] A=\left[ \begin{matrix} 0 & 1\\0 & 0 \end{matrix} \right] , B = [ 0 1 J ] B=\left[ \begin{matrix} 0\\\frac{1}{J}\end{matrix}\right] , C = [ 0 1 ] C=\left[ \begin{matrix} 0 & 1\end{matrix}\right] , D = 0 D=0

从传递函数求取

例1:设一单输入-单输出系统(SISO)的传递函数(无零点)为
W ( s ) = Y ( s ) U ( s ) = 1 s 2 + 3 s + 2 W(s)=\frac{Y(s)}{U(s)}=\frac{1}{s^2+3s+2} 其对应的微分方程为 y ¨ + 3 y ˙ + 2 y = u \ddot y+3\dot y+2y=u 。取 x 1 = y , x 2 = y ˙ x_1=y,x_2=\dot y ,则 A = [ 0 1 3 2 ] , B = [ 0 1 ] , C = [ 1 0 ] , D = 0 A=\left[ \begin{matrix} 0 & 1\\-3 & -2 \end{matrix} \right],B=\left[ \begin{matrix} 0\\ 1 \end{matrix}\right],C=\left[ \begin{matrix} 1 & 0\end{matrix}\right],D=0

例2:设一单输入-单输出系统(SISO)的传递函数(有零点)为
W ( s ) = Y ( s ) U ( s ) = s + 4 s 2 + 3 s + 2 W(s)=\frac{Y(s)}{U(s)}=\frac{s+4}{s^2+3s+2} 该传递函数对应的微分方程包含控制输入的导数,需要进行处理。这里我们以例1为基础,设 Y 1 ( s ) = 1 s 2 + 3 s + 2 U ( s ) Y_1(s)=\frac{1}{s^2+3s+2}U(s) Y ( s ) = Y 1 ( s ) ( s + 4 ) Y(s)=Y_1(s)(s+4) 对其进行拉式反变换得 y = y ˙ 1 + 4 y 1 y=\dot y_1+4y_1 。此时,状态变量 x 1 , x 2 x_1,x_2 选取和例1相同,仅输出方程发生变化。 A = [ 0 1 3 2 ] , B = [ 0 1 ] , C = [ 4 1 ] , D = 0 A=\left[ \begin{matrix} 0 & 1\\-3 & -2 \end{matrix} \right],B=\left[ \begin{matrix} 0\\ 1 \end{matrix}\right],C=\left[ \begin{matrix} 4 & 1\end{matrix}\right],D=0

从传递函数(SISO)得到状态空间方程有较多现成的方法,可以直接写出A,B, C, D矩阵。需要注意的是,当传递函数分子的最高阶次m大于分母的最高阶次n,此时没有对应的状态空间方程实现;当m=n,存在D不等于0,即有输入直接作用于输出的通道;当m<n,D=0。另外,对于多输入多输出系统,可以结构模拟结构图,取积分器的输出为状态变量,进而构建状态空间方程。

状态空间方程的线性变换
对于一个状态空间实现,我们可以找到一个非奇异矩阵 T T ,它将原来的状态 x x ,变换为 z z ,计 x = T z x=Tz 。此时,变换后的状态空间方程为 z ˙ = T 1 A T z + T 1 B u y = C T z + D u \dot z=T^{-1}ATz+T^{-1}Bu\\y=CTz+Du 从这里我们可以看到,变换后的系统输入输出没有改变,但是状态方程发生了变化,这也说明了同一系统可以有多种状态空间实现。后面各种标准型都是借助线性变换实现的。

线性变换不改变系统的特征值

矩阵的特征值与特征向量: A P = λ P AP=\lambda P P P 为特征向量, λ \lambda 为特征值。
重要性质1:矩阵与向量相乘是一种线性变换
重要性质2:矩阵与其自身的特征向量相乘,变换后该向量的方向不变(不发生旋转)。变换中的不变性为矩阵的一种特性

矩阵对角化

对角化存在的条件
1、A为方阵;
2、 T T 可逆,即 A A 有n(rank(A)=n)个独立的特征向量。矩阵有相同特征值时,也可能有线性无关的特性向量
矩阵对角化的意义
1、矩阵对角化后,很多重要的性质一目了然,如特征值、行列式值等;
2、矩阵对角化可以帮助求解矩阵的高次幂
3、状态矩阵对角化后,可以辅助判断该系统的能控性与能观性
4、矩阵对角化把多个耦合变量解耦,使问题的分析变得简单

约旦标准型:矩阵有相同特征值时,可转换为约旦标准型。假设矩阵A有4个特征值,其中2个相同,可转换为如下的约旦标准型
[ λ 1 1 0 0 0 λ 1 0 0 0 0 λ 2 0 0 0 0 λ 3 ] \left[ \begin{matrix} \lambda_1& 1 &0&0\\ 0& \lambda_1& 0 &0 \\0 & 0 &\lambda_2&0\\0 & 0 &0&\lambda_3\end{matrix} \right]

状态转移矩阵

在获得系统的状态空间方程后,如何分析状态的轨迹与系统输出端的时域响应呢?这时需要借助状态转移矩阵。本节仅以线性时不变(LTI)系统(即系统矩阵均为常值矩阵)为例进行说明。设系统在初始时刻 t 0 t_0 的状态为 x ( t 0 ) x(t_0) ,则在 t t 时刻,系统的状态 x ( t ) x(t) x ( t ) = Φ ( t t 0 ) x ( t 0 ) = e A ( t t 0 ) x ( t 0 ) x(t)=\Phi(t-t_0)x(t_0)=e^{A(t-t_0)}x(t_0) 其中 A A 为系统的状态矩阵, Φ ( t t 0 ) \Phi(t-t_0) 为状态转移矩阵。

状态转移矩阵的求解

状态转移矩阵的求解,一是将矩阵 A A 转化为对角线型或者约旦标准型进行求解,二是借助拉氏变换。下面通过一个例子进行说明,设 A = [ 0 1 2 3 ] A=\left[ \begin{matrix}0& 1 \\ -2&-3\end{matrix} \right] t 0 = 0 t_0=0 时, x ( t 0 ) = [ 0 0 ] x(t_0)=\left[ \begin{matrix}0\\ 0\end{matrix} \right]
方法1:求解A的特征值与特征向量,分别为 λ 1 = 1 , λ 2 = 2 \lambda_1=-1,\lambda_2=-2 p 1 = [ 1 1 ] , p 2 = [ 1 2 ] p_1=\left[ \begin{matrix}1 \\ -1\end{matrix} \right],p_2=\left[ \begin{matrix}1 \\ -2\end{matrix} \right] 。则 e A t = T e [ 1 0 0 1 ] t T 1 , T = [ p 1 p 2 ] e^{At}=Te^{\left[ \begin{matrix}1&0 \\0& 1\end{matrix} \right]t}T^{-1},T=\left[ \begin{matrix}p_1 &p_2\end{matrix} \right]

能控与能观

能控状态:对于一线性定常系统,如果存在控制输入 u ( t ) u(t) ,使得在有限时间内,系统从初始状态 x ( t 0 ) x(t_0) ,转移至指定的任意终端状态 x ( t f ) x(t_f) ,则该状态是可控的。如果对于所有的状态均可控,则该系统是完全能控的。

能观状态:对于一线性定常系统,对于任意的控制输入 u ( t ) u(t) ,如果通过观测系统在一段时间内的输出 y ( t ) y(t) ,可以唯一地确认系统的初始状态 x ( t 0 ) x(t_0) ,则该状态是可观的。如果对于所有的状态均可观,则该系统是完全能观的。

能控与能观的判别
一:将系统进行线性变换,使得状态矩阵 A A 化为对角线型或者约旦标准型,再结合着控制矩阵或者输出矩阵,即可判断系统状态的能控与能观。
二:直接计算系统的能控性矩阵与能观性矩阵,如果该矩阵满秩,则系统完全能控或完全能观。

线性系统的分解
对于不完全能控或者不完全能观的系统,可以借助线性变换,将该系统分离成能观和不能观子系统或者能控和不能控子系统。对于不完全能控系统的分解,可先求解出系统的能控性矩阵(秩为 r , r < n r,r<n ),取出其前 r r 列向量,再另外选择合适的 n r n-r 列线性无关的列向量,组成变换矩阵 T T ,对原系统进行变换即可。对于不完全能观系统的分解,也是类似的,求解出系统的能观性矩阵(秩为 r , r < n r,r<n ),取出其前 r r 行向量,再另外选择合适的 n r n-r 列线性无关的行向量,组成变换矩阵 T T 。对系统同时进行能控能观分解,可交替执行上面的两步,分解结果如下图所示在这里插入图片描述系统完全分解后,即包括4个子系统。注意,描述系统的输入输出关系的传递函数 W ( s ) W(s) 只能反映能控且能观的子系统的动力学。这也说明了,传递函数是对系统的一种不完全的描述,不能控子系统或者不能观子系统的添加或去除不影响系统的传递函数,从而传递函数的状态空间方程实现有无数个,在这其中状态维数最小的状态方程最常用,是最小实现。

李雅普诺夫稳定性

反馈控制与最优控制

现代控制理论中,主要涉及状态反馈与输出反馈,其中状态反馈占比重更大。状态反馈控制,即控制输入 u u 为状态的线性组合;输出反馈控制,即控制输入为输出变量的线性组合。这两种方式因为不引入新的状态,也称为静态控制。使用状态反馈控制时,当系统状态无法完全获取,可以借助状态观测器观测出系统状态。基于状态观测器的状态反馈控制实则是动态输出反馈控制(引入新的动态,且借助系统输出信息)。状态反馈和输出反馈的系数求解可借助极点配置或者线性二次型最优调节器(LQR)。

从实际需求角度看,可将控制分为镇定控制与跟踪控制,前者致力于保证闭环系统的稳定,后者期望系统输出跟踪某一参考输入。

镇定控制

对于镇定控制,即通过反馈使闭环系统的极点均具有负实部,也即使系统的状态趋于稳定(对于线性系统,即趋于0)。状态反馈与输出反馈均可实现镇定控制。

跟踪控制

现代控制理论中,有两种方式可实现跟踪控制。
1、引入一额外状态,其导数等于误差(参考输入-系统输出),在该新状态与原系统状态共同作用下,构成状态反馈率。该控制思路即是引入误差积分项,从而消除系统静差。设某系统状态空间方程为 x ˙ = A x + B u y = C x \dot x = Ax+Bu\\ y = Cx 新状态 x c x_c 动力学为 x ˙ c = r y = r C x \dot x_c=r-y=r-Cx 此时,控制率为 u = K c x c + K x = [ K c K ] [ x c x ] u=K_cx_c+Kx=\left[ \begin{matrix} K_c&K \end{matrix}\right]*\left[ \begin{matrix} x_c\\ x\end{matrix}\right] 求解以上的控制增益,可将 x c x_c x x 构成增广系统,进而借助极点配置或者LQR方法计算控制增益。

2、借助最优控制中的有限时间跟踪器(见刘豹,现代控制理论第3版)控制结构图
计算公式

现以一简单的例子说明上面两种跟踪控制方法,设系统矩阵如下(不具有任何物理意义,系统初试状态均为0)
A = [ 1 1 0 0 1 1 0 0 1 ] , B = [ 0 0 1 ] , C = [ 10 0 0 ] , D = 0 A=\left[ \begin{matrix} 1 & 1&0\\0 & 1&1\\0 &0&1 \end{matrix} \right],B=\left[ \begin{matrix} 0 \\ 0\\1\end{matrix} \right],C=\left[ \begin{matrix} 10 & 0&0 \end{matrix} \right],D=0 借助MATLAB的ctrb和obsv函数,可轻松判断出该系统能控且能观。现欲使该系统输出跟踪参考输入 r = 5 r=5
方法1:构建增广系统 [ x ˙ x ˙ c ] = [ A 0 3 × 3 C 0 ] [ x x c ] + [ B 0 ] u + [ 0 3 × 1 r ] \left[ \begin{matrix} \dot x\\\dot x_c \end{matrix} \right]=\left[ \begin{matrix} A& 0_{3\times3}\\-C &0 \end{matrix} \right]\left[ \begin{matrix} x\\x_c \end{matrix} \right]+\left[ \begin{matrix} B\\0 \end{matrix} \right]u+\left[ \begin{matrix} 0_{3\times1}\\r \end{matrix} \right] 选取 Q = d i a g ( [ 1 1 1 1 ] ) , R = 1 Q=diag(\left[ \begin{matrix} 1&1&1&1 \end{matrix} \right]),R=1 。借助lqr函数,可求得控制增益。闭环系统响应如下图所示在这里插入图片描述
方法2:选取 Q = 1 , R = 1 Q=1,R=1 。结合前面提供的公式,计算矩阵 P P 与矢量 g g ,闭环控制结果如图所示:
在这里插入图片描述

最优控制是在满足系统自身约束(如状态方程约束、控制约束等)的情况下,最小化性能指标(一般为二次型),以时间函数状态反馈的形式给出最优控制作用 u u 。按时间函数给出的控制率是一种开环控制(或程序控制),鲁棒性差。按状态反馈给出的空置率是闭环控制,对扰动或不确定参数不敏感,鲁棒性较好。

求解最优控制,可借助变分法极大值定理,和动态规划。后两种方法可以在控制变量的取值范围受限的情况使用。

发布了4 篇原创文章 · 获赞 1 · 访问量 7636

猜你喜欢

转载自blog.csdn.net/qq_31274209/article/details/105156993