少女祈祷中...

学习控制理论课程PPT的记录. 相关笔记会另开博客记录. 也可能不会开.

引言

经典控制理论

  • 研究对象: 单输入单输出的线性定常系统
  • 数学模型: 传递函数描述的是控制系统的输入输出关系
  • 研究工具: Bode图法, 根轨迹法
  • 局限性: 对于多输入多输出复杂非线性系统, 不能包含系统的全部运动状态, 对工程经验的依赖性较强

状态空间模型的基本概念

  • 经典控制理论采用传递函数来描述对象的输入和输出关系
  • 状态空间方法采用系统状态描述系统内部运行的基本规律

状态向量: 能够完全表征动力学系统时间域行为的一个最小内部变量组

状态变量个数 = 系统中独立的储能元件个数 = 系统微分方程的阶次

状态空间: 由状态变量构成的 nn 维空间

单输入单输出线性系统的状态空间模型

状态空间模型的建立

  • 将物理量 / 物理量的导数等, 建立线性关系

状态空间模型与传递函数的变换关系

从状态空间模型到传递函数

x˙=Ax+Bu,y=Cx\dot x = Ax + Bu, y = Cx

sX(s)=AX(s)+BU(s),Y(s)=CX(s)s X(s) = AX(s) + BU(s), Y(s) = CX(s)

Y(s)=C(sIA)1BU(s)Y(s) = C(sI-A)^{-1}BU(s)

G(s)=Y(s)U(s)=C(sIA)1B=C(sIA)B(sIA)G(s) = \frac{Y(s)}{U(s)} = C(sI-A)^{-1}B = \frac{C(sI-A)^*B}{|(sI-A)|}

从传递函数到状态空间模型

看了一个小时没看懂. 结果发现是经过了某个线性变化的结果 此处贴上一个GPT的回答


控制理论中的状态空间模型可以通过变换将其转换为能控标准型(Controllable Canonical Form, CCF)。要将一个系统表示为能控标准型,其核心在于通过线性变换找到一种新的状态变量,使得系统矩阵具有特定的结构。

状态空间模型

一个一般的线性时不变系统可以表示为:

x˙(t)=Ax(t)+Bu(t),\dot{x}(t) = Ax(t) + Bu(t),

y(t)=Cx(t)+Du(t),y(t) = Cx(t) + Du(t),

其中:

  • x(t)x(t) 是状态变量(n×1n \times 1 向量),
  • u(t)u(t) 是输入变量(m×1m \times 1 向量),
  • y(t)y(t) 是输出变量(p×1p \times 1 向量),
  • AA 是状态矩阵(n×nn \times n 矩阵),
  • BB 是输入矩阵(n×mn \times m 矩阵),
  • CC 是输出矩阵(p×np \times n 矩阵),
  • DD 是直通矩阵(p×mp \times m 矩阵)。

能控标准型的特点

对于一个单输入单输出(SISO)系统,假设系统的特征多项式为:

det(sIA)=sn+an1sn1++a1s+a0,\det(sI - A) = s^n + a_{n-1}s^{n-1} + \dots + a_1s + a_0,

能控标准型的结构是:

Ac=[010000100001a0a1a2an1],Bc=[0001].A_c = \begin{bmatrix} 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ -a_0 & -a_1 & -a_2 & \cdots & -a_{n-1} \end{bmatrix}, \quad B_c = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 0 \\ 1 \end{bmatrix}.

求能控标准型的步骤

  1. 验证能控性:首先检查系统是否是能控的(即能控性矩阵的秩是否为 nn)。能控性矩阵为:

    C=[BABA2BAn1B].\mathcal{C} = \begin{bmatrix} B & AB & A^2B & \cdots & A^{n-1}B \end{bmatrix}.

    如果 rank(C)=n\text{rank}(\mathcal{C}) = n,系统是能控的,可以继续转换。

  2. 构造能控性基:基于能控性矩阵,找到系统的能控性基 {v1,v2,,vn}\{v_1, v_2, \dots, v_n\},其中:

    v1=B,v2=AB,,vn=An1B.v_1 = B, \quad v_2 = AB, \quad \dots, \quad v_n = A^{n-1}B.

  3. 状态变换:定义一个新的状态变量 z=T1xz = T^{-1}x,其中变换矩阵 TT 的列向量由能控性基组成:

    T=[v1v2vn].T = \begin{bmatrix} v_1 & v_2 & \cdots & v_n \end{bmatrix}.

    变换后,新的状态空间方程为:

    z˙=T1ATz+T1Bu,y=CTz+Du.\dot{z} = T^{-1}ATz + T^{-1}Bu, \quad y = CTz + Du.

  4. 化简得到标准型:利用上述变换,可以将系统矩阵 AA 和输入矩阵 BB 转换为能控标准型 (Ac,Bc)(A_c, B_c)

系数的来源

能控标准型中 AcA_c 的最后一行元素(a0,a1,,an1-a_0, -a_1, \dots, -a_{n-1})直接来自于系统的特征多项式 det(sIA)\det(sI - A)。这些系数反映了系统的动态特性。

如果有进一步疑问或需要代码实现,请随时告诉我!


线性定常系统状态方程的解

仿照一阶常微分方程的解法, 得到矩阵形式的状态微分方程通解

x(t)=eatx(0)+0tea(tw)bu(w)dwx(t) = e^{at}x(0) + \int_{0}^{t} e^{a(t - w)bu(w)dw}

x(t)=eAtx(0)+0teA(tw)Bu(w)dwx(t) = e^{At}x(0) + \int_{0}^{t} e^{A(t - w)Bu(w)dw}

其中

eAt=I+At+12!A2t2+...+1k!Aktk+...e^{At} = I + At + \frac{1}{2!} A^2t^2 + ... + \frac{1}{k!} A^kt^k + ...

即可得到状态转移矩阵. 所以, 状态矩阵 AA 决定了系统状态的演变规律:

x(t)=eA(tt0)x(t0)x(t) = e^{A(t - t_0)}x(t_0)

内部稳定:
连续时间线性系统在 t0t_0内部稳定, 是指由 t0t_0时刻任意非零初始状态 x(t0)=x0x(t_0) = x_0引起的零输入响应 x(t)x(t)t[t0,+)t \in [t_0, +\infty)有界, 并满足

limtx(t)=0\lim_{t \rightarrow \infty} x(t) = 0

连续时间线性时不变自洽系统 x˙=Ax,x(0)=x0,t0\dot x = Ax, x(0)=x_0, t \geq 0 内部稳定的充分必要条件:
状态矩阵A的所有特征值均具有负实部.

状态反馈控制系统:
u=Kx,K=[k1,k2,...,kn]u = -Kx, K = [k_1, k_2, ..., k_n]
引入状态反馈之后系统的自洽状态方程:

x˙=Ax+Bu=(ABK)x\dot x = Ax + Bu = (A - BK)x

状态反馈控制通过改变状态矩阵以改善控制系统的性能

状态空间模型的MATLAB实现

利用ss函数将传递函数转换为状态空间模型: sys_ss = ss(sys_tf)
利用tf函数将状态空间模型转换为传递函数: sys_tf = tf(sys_ss)

计算矩阵指数函数 expm (A*dt) (不同的是, 函数 exp(A)针对矩阵A中的每个元素分别求解函数值)

计算系统输出和状态向量的时间响应: lsim(sys, u, t, x0)