理论计算
对于一般的线性是不变系统,可以用状态空间方程表达为:

因为只考虑零输入状态响应,因此,上式可以简化为:

选状态空间中一组基底{\(x_1,x_2,⋯,x_n\)},则系统输入可以表达为\(x(t_0 )=α_1 x_1+α_2 x_2+⋯+α_n x_n\)。设对于任意\(t\)时刻,分别输入{\(x_1,x_2,⋯,x_n\)},其输出为{\(x_1 (t),x_2 (t),⋯,x_n (t)\)}。输出的{\(x_1 (t),x_2 (t),⋯,x_n (t)\)}依然线性无关。因此,系统输出可以由{\(x_1 (t),x_2 (t),⋯,x_n (t)\)}线性表达。由线性系统的叠加性,可以得到:

记
,则x(t)表示为:

由此可以看出,线性时不变系统的在t时刻的响应,对应着基底在t时刻的响应的线性组合,组合系数有初始状态与{\(x_1,x_2,⋯,x_n\)}的关系一致。
设该系统的状态转移方阵为

其中\(Φ(t,t_0 )=[φ_1 (t,t_0 ),φ_2 (t,t_0 ),⋯,φ_n (t,t_0 )]\),\(φ_i (t,t_0 )\)为原方程的解,且其输入为\((0,⋯,1,⋯,0)\)(第i个元素为1)。
因此,最终可以得到:

对于系统:

在\(X ̇(t)=AX(t)\)两边同时乘\(Φ(t_0,t)\),有:


对等式从\(t_0\)到\(t\)积分,有

所以,最终可得:

而根据定义,有
,
为系统的解,因此有:

两边同时左乘一个\(e^(-At)\)有:

可得:

又因为该系统为线性是不变系统,因此,有性质:

所以,可以得到:

由此,可以将上式从t_0到t积分,有:

所以,最终可以得到:

系统仿真验证
如图所示的是一个常见的弹簧阻尼系统,在弹簧失效长度内以及阻尼器运动限位范围内,该系统可以看作是一个线性时不变系统,且因为系统的输出只取决于过去与当前输入,跟将来的输入无关,因此该系统为“因果”系统。其中,取m=1kg,C=5N·s/m,K=6N/m。取物体受到的拉力F为输入,物体位移x为系统输出。

图1 线性阻尼系统示意图
在MATLAB的Simulink中,建立物理模型如下图2所示,其中包含弹簧元件、阻尼器元件以及质量元件等。仿真参数如表1所示。

图2 系统在Simulink中的物理模型

由动力学相关的公式,可以得到系统的微分方程为:

\(将物体移动距离x作为x_1,物体的移动速度作为x_2,可以有:\)

因为需要验证的系统为零输入响应,所以上式又简化为:

所以,系统矩阵A为:

所以:

得出状态矩阵
的特征根与特征向量为:

所以有:

所以:

因此将状态方程化为约当标准型:

所以系统零输入响应为:

同样的,在\(t_0时刻的初始状态,有:\)

所以,有:

当初始条件为
时,计算可得输出响应应为:
。如图3所示:

(a)输出的理论值

(b)输出的仿真计算值

© 各个状态的变化
图3 初始状态为\(X=[1 0]^T\)时的输出
当初始条件为
时,计算可得系统的响应为:
,如图4所示:

(a)输出的理论值

(b)输出的仿真计算值

© 各个状态的变化
图4 初始状态为\(X=[0 1]^T\)时的输出
而系统在初始条件为
时,可以得到其输出响应与单独输入的关系如图5所示:

(a)各个状态的变化

(b)系统的总输出
图5 初始状态为\(X=[1 1]^T\)时的输出及分别输入的比较
因此,对于状态空间中一组基底{\(x_1,x_2,⋯,x_n\)},则系统输入可以表达为\(x(t_0 )=α_1 x_1+α_2 x_2+⋯+α_n x_n\)。在任意t时刻,分别输入{\(x_1,x_2,⋯,x_n\)},其输出为{\(x_1 (t),x_2 (t),⋯,x_n (t)\)}。输出的{\(x_1 (t),x_2 (t),⋯,x_n (t)\)}依然线性无关。系统的输出对应着基底在t时刻的响应的线性组合,组合系数有初始状态与{\(x_1,x_2,⋯,x_n\)}的关系一致。
使用状态转移阵\(e^{A(t-t_0 )}\) 进行验证。
令初始状态为
,验证其在不同时刻的响应与计算值比较。

计算可以得到在t=0.5时,有

使用simulink仿真结果如下图6所示:

图6 系统在t=0.5时的状态
结果与计算值一致。
计算可以得到在t=1时,有

使用simulink仿真结果如下图7所示:

图7 系统在t=1时的状态
以上结果可以看出,状态转移阵\(e^{A(t-t_0 )}\) 计算的结果与仿真一致。验证了\(e^{A(t-t_0 )}\) 确实是它的状态转移阵。