分析一个离散时间系统的可控性。首先,对于给定的连续系统,状态空间方程形式为:
x ˙ = A x + B u \dot{x} = Ax + Bu x˙=Ax+Bu
在离散化后,系统的状态方程会变为:
x k + 1 = G x k + H u k x_{k+1} = G x_k + H u_k xk+1=Gxk+Huk
其中,离散化后的系统矩阵 G G G 和 H H H可以通过如下方式获得(假设采样时间为 T s T_s Ts):
G = e A T s , H = ( ∫ 0 T s e A τ d τ ) B G= e^{A T_s}, \quad H = \left( \int_0^{T_s} e^{A \tau} d\tau \right) B G=eATs,H=(∫0TseAτdτ)B
可控性矩阵
离散系统的可控性由可控性矩阵 Q c k Q_{ck} Qck判断:
Q c k = [ H , G H , G 2 H , … , G n − 1 H ] Q_{ck}= [H, G H, G^2 H, \dots, G^{n-1} H] Qck=[H,GH,G2H,…,Gn−1H]
对于一个 ( n ) 维系统,如果可控性矩阵的秩等于 ( n ),则系统是完全可控的。
对于给定的系统:
- 矩阵 A A A是:
A = ( 1 1 0 1 1 0 0 0 0 ) A = \begin{pmatrix} 1 & 1 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix} A= 110110000 - 矩阵 B B B是:
B = ( 1 0 0 1 0 1 ) B = \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 1 \end{pmatrix} B= 100011
步骤1:计算可控性矩阵
离散化后的系统中,我们要先计算 H H H、 G G G,再构造可控性矩阵。
步骤2:可控性判断
对于系统 G G G和 H H H,通过计算可控性矩阵的秩来判断系统是否可控。如果可控性矩阵满秩,即 rank ( Q c k ) = 3 \text{rank}(Q_{ck}) = 3 rank(Qck)=3,则系统是可控的。
MATLAB代码
syms s t T
A = [1,1,0;1,1,0;0,0,0];
B = [1,0;0,1;0,1];% 计算离散化的 G 矩阵
G = expm(A*T);% 计算积分
integral_G = int(expm(A*t), t, 0, T);% 计算 H 矩阵
H = integral_G * B;% 构造可控性矩阵 Qck
Qck = [H, G*H, G*G*H];% 化简符号表达式
simplifiedExpr6 = simplify(Qck);rank(Qck)% 可以将T赋值为数值检查可控性
T_value = 1; % 采样时间
G_numeric = double(subs(G, T, T_value));
H_numeric = double(subs(H, T, T_value));% 构造可控性矩阵数值版
Qck_numeric = [H_numeric, G_numeric*H_numeric, G_numeric*G_numeric*H_numeric];
rank_Qck_numeric = rank(Qck_numeric);disp(['数值情况下,可控性矩阵秩为: ', num2str(rank_Qck_numeric)]);
1. 定义符号和系统矩阵
syms s t T
A = [1,1,0;1,1,0;0,0,0];
B = [1,0;0,1;0,1];
2. 特征矩阵 ( p )
p = inv(s*eye(3) - A);
使用符号变量 s s s 来计算矩阵 s I − A sI - A sI−A的逆,得到了系统的传递函数。这一步是为了准备进行离散化,但在后续步骤中没有必要。可以用于验证采用预解矩阵法,求拉普拉斯反变换得到的 e A t e^{A t} eAt
可以删除,因为后面使用了矩阵指数法离散化。
3. 计算离散化矩阵 G = e A T G = e^{AT} G=eAT
G = expm(A*T);
rank(G)
4. 计算积分 ∫ 0 T e A t d t \int_0^T e^{At} dt ∫0TeAtdt
integral_G = int(expm(A*t), t, 0, T);
5. 离散化 B B B矩阵 H = ∫ 0 T e A t d t ⋅ B H = \int_0^T e^{At} dt \cdot B H=∫0TeAtdt⋅B
H = integral_G * B;
这一步是根据积分结果计算离散化后的 ( B ) 矩阵。
6. 可控性矩阵 Q c k Q_{ck} Qck
Qck = [H, G*H, G*G*H];
7. 化简符号表达式和求秩
simplifiedExpr6 = simplifyFraction(Qck);
rank(Qck)
改进后的代码:
syms s t T
A = [1,1,0;1,1,0;0,0,0];
B = [1,0;0,1;0,1];% 计算离散化的 G 矩阵
G = expm(A*T);% 计算积分
integral_G = int(expm(A*t), t, 0, T);% 计算 H 矩阵
H = integral_G * B;% 构造可控性矩阵 Qck
Qck = [H, G*H, G*G*H];% 化简符号表达式
simplifiedExpr6 = simplify(Qck);
rank(Qck)% 可以将T赋值为数值检查可控性
T_value = 1; % 采样时间
G_numeric = double(subs(G, T, T_value));
H_numeric = double(subs(H, T, T_value));% 构造可控性矩阵数值版
Qck_numeric = [H_numeric, G_numeric*H_numeric, G_numeric*G_numeric*H_numeric];
rank_Qck_numeric = rank(Qck_numeric);disp(['数值情况下,可控性矩阵秩为: ', num2str(rank_Qck_numeric)]);
结果
G = ( e 2 T 2 + 1 2 e 2 T 2 − 1 2 0 e 2 T 2 − 1 2 e 2 T 2 + 1 2 0 0 0 1 ) G = \left(\begin{array}{ccc} \frac{{\mathrm{e}}^{2\,T} }{2}+\frac{1}{2} & \frac{{\mathrm{e}}^{2\,T} }{2}-\frac{1}{2} & 0\\ \frac{{\mathrm{e}}^{2\,T} }{2}-\frac{1}{2} & \frac{{\mathrm{e}}^{2\,T} }{2}+\frac{1}{2} & 0\\ 0 & 0 & 1 \end{array}\right) G= 2e2T+212e2T−2102e2T−212e2T+210001
H = ( T 2 + e 2 T 4 − 1 4 e 2 T 4 − T 2 − 1 4 e 2 T 4 − T 2 − 1 4 T 2 + e 2 T 4 − 1 4 0 T ) H=\left(\begin{array}{cc} \frac{T}{2}+\frac{{\mathrm{e}}^{2\,T} }{4}-\frac{1}{4} & \frac{{\mathrm{e}}^{2\,T} }{4}-\frac{T}{2}-\frac{1}{4}\\ \frac{{\mathrm{e}}^{2\,T} }{4}-\frac{T}{2}-\frac{1}{4} & \frac{T}{2}+\frac{{\mathrm{e}}^{2\,T} }{4}-\frac{1}{4}\\ 0 & T \end{array}\right) H= 2T+4e2T−414e2T−2T−4104e2T−2T−412T+4e2T−41T
Q c k = ( T 2 + e 2 T 4 − 1 4 e 2 T 4 − T 2 − 1 4 T 2 − e 2 T 4 + e 4 T 4 e 4 T 4 − e 2 T 4 − T 2 T 2 − e 4 T 4 + e 6 T 4 e 6 T 4 − e 4 T 4 − T 2 e 2 T 4 − T 2 − 1 4 T 2 + e 2 T 4 − 1 4 e 4 T 4 − e 2 T 4 − T 2 T 2 − e 2 T 4 + e 4 T 4 e 6 T 4 − e 4 T 4 − T 2 T 2 − e 4 T 4 + e 6 T 4 0 T 0 T 0 T ) Q_{ck}=\begin{pmatrix} \frac{T}{2} + \frac{e^{2T}}{4} - \frac{1}{4} & \frac{e^{2T}}{4} - \frac{T}{2} - \frac{1}{4} & \frac{T}{2} - \frac{e^{2T}}{4} + \frac{e^{4T}}{4} & \frac{e^{4T}}{4} - \frac{e^{2T}}{4} - \frac{T}{2} & \frac{T}{2} - \frac{e^{4T}}{4} + \frac{e^{6T}}{4} & \frac{e^{6T}}{4} - \frac{e^{4T}}{4} - \frac{T}{2} \\ \frac{e^{2T}}{4} - \frac{T}{2} - \frac{1}{4} & \frac{T}{2} + \frac{e^{2T}}{4} - \frac{1}{4} & \frac{e^{4T}}{4} - \frac{e^{2T}}{4} - \frac{T}{2} & \frac{T}{2} - \frac{e^{2T}}{4} + \frac{e^{4T}}{4} & \frac{e^{6T}}{4} - \frac{e^{4T}}{4} - \frac{T}{2} & \frac{T}{2} - \frac{e^{4T}}{4} + \frac{e^{6T}}{4} \\ 0 & T & 0 & T & 0 & T \end{pmatrix} Qck= 2T+4e2T−414e2T−2T−4104e2T−2T−412T+4e2T−41T2T−4e2T+4e4T4e4T−4e2T−2T04e4T−4e2T−2T2T−4e2T+4e4TT2T−4e4T+4e6T4e6T−4e4T−2T04e6T−4e4T−2T2T−4e4T+4e6TT