学习控制理论课程PPT的记录. 相关笔记会另开博客记录. 也可能不会开.
引言
经典控制理论
- 研究对象: 单输入单输出的线性定常系统
- 数学模型: 传递函数描述的是控制系统的输入输出关系
- 研究工具: Bode图法, 根轨迹法
- 局限性: 对于多输入多输出复杂非线性系统, 不能包含系统的全部运动状态, 对工程经验的依赖性较强
状态空间模型的基本概念
- 经典控制理论采用传递函数来描述对象的输入和输出关系
- 状态空间方法采用系统状态描述系统内部运行的基本规律
状态向量: 能够完全表征动力学系统时间域行为的一个最小内部变量组
状态变量个数 = 系统中独立的储能元件个数 = 系统微分方程的阶次
状态空间: 由状态变量构成的 n 维空间
单输入单输出线性系统的状态空间模型
状态空间模型的建立
状态空间模型与传递函数的变换关系
从状态空间模型到传递函数
x˙=Ax+Bu,y=Cx
sX(s)=AX(s)+BU(s),Y(s)=CX(s)
Y(s)=C(sI−A)−1BU(s)
G(s)=U(s)Y(s)=C(sI−A)−1B=∣(sI−A)∣C(sI−A)∗B
从传递函数到状态空间模型



看了一个小时没看懂. 结果发现是经过了某个线性变化的结果 此处贴上一个GPT的回答
控制理论中的状态空间模型可以通过变换将其转换为能控标准型(Controllable Canonical Form, CCF)。要将一个系统表示为能控标准型,其核心在于通过线性变换找到一种新的状态变量,使得系统矩阵具有特定的结构。
状态空间模型
一个一般的线性时不变系统可以表示为:
x˙(t)=Ax(t)+Bu(t),
y(t)=Cx(t)+Du(t),
其中:
- x(t) 是状态变量(n×1 向量),
- u(t) 是输入变量(m×1 向量),
- y(t) 是输出变量(p×1 向量),
- A 是状态矩阵(n×n 矩阵),
- B 是输入矩阵(n×m 矩阵),
- C 是输出矩阵(p×n 矩阵),
- D 是直通矩阵(p×m 矩阵)。
能控标准型的特点
对于一个单输入单输出(SISO)系统,假设系统的特征多项式为:
det(sI−A)=sn+an−1sn−1+⋯+a1s+a0,
能控标准型的结构是:
Ac=⎣⎢⎢⎢⎢⎢⎢⎡00⋮0−a010⋮0−a101⋮0−a2⋯⋯⋱⋯⋯00⋮1−an−1⎦⎥⎥⎥⎥⎥⎥⎤,Bc=⎣⎢⎢⎢⎢⎢⎢⎡00⋮01⎦⎥⎥⎥⎥⎥⎥⎤.
求能控标准型的步骤
-
验证能控性:首先检查系统是否是能控的(即能控性矩阵的秩是否为 n)。能控性矩阵为:
C=[BABA2B⋯An−1B].
如果 rank(C)=n,系统是能控的,可以继续转换。
-
构造能控性基:基于能控性矩阵,找到系统的能控性基 {v1,v2,…,vn},其中:
v1=B,v2=AB,…,vn=An−1B.
-
状态变换:定义一个新的状态变量 z=T−1x,其中变换矩阵 T 的列向量由能控性基组成:
T=[v1v2⋯vn].
变换后,新的状态空间方程为:
z˙=T−1ATz+T−1Bu,y=CTz+Du.
-
化简得到标准型:利用上述变换,可以将系统矩阵 A 和输入矩阵 B 转换为能控标准型 (Ac,Bc)。
系数的来源
能控标准型中 Ac 的最后一行元素(−a0,−a1,…,−an−1)直接来自于系统的特征多项式 det(sI−A)。这些系数反映了系统的动态特性。
如果有进一步疑问或需要代码实现,请随时告诉我!
线性定常系统状态方程的解
仿照一阶常微分方程的解法, 得到矩阵形式的状态微分方程通解
x(t)=eatx(0)+∫0tea(t−w)bu(w)dw
x(t)=eAtx(0)+∫0teA(t−w)Bu(w)dw
其中
eAt=I+At+2!1A2t2+...+k!1Aktk+...
即可得到状态转移矩阵. 所以, 状态矩阵 A 决定了系统状态的演变规律:
x(t)=eA(t−t0)x(t0)
内部稳定:
连续时间线性系统在 t0内部稳定, 是指由 t0时刻任意非零初始状态 x(t0)=x0引起的零输入响应 x(t)对 t∈[t0,+∞)有界, 并满足
t→∞limx(t)=0
连续时间线性时不变自洽系统 x˙=Ax,x(0)=x0,t≥0 内部稳定的充分必要条件:
状态矩阵A的所有特征值均具有负实部.
状态反馈控制系统:
令 u=−Kx,K=[k1,k2,...,kn]
引入状态反馈之后系统的自洽状态方程:
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)