理论计算
对于一般的线性是不变系统,可以用状态空间方程表达为:
因为只考虑零输入状态响应,因此,上式可以简化为:
选状态空间中一组基底{\(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 )}\) 确实是它的状态转移阵。