如何使用状态转换矩阵从其状态空间表示中找到系统的脉冲响应?

信息处理 冲动反应 状态空间 线性系统
2022-01-08 03:48:57

假设我们有一个以标准状态空间符号表示的线性:

x˙(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t)

为了得到它的脉冲响应,可以对其进行拉普拉斯变换得到

sX=AX+BU
Y=CX+DU

然后求解传递函数

YU=C(sIA)1B+D

同样,对于离散系统,Z- 变换

x[n+1]=Ax[n]+Bu[n]
y[n]=Cx[n]+Du[n]

YU=C(zIA)1B+D

这个过程似乎有点长,我记得有一种方法可以使用状态转换矩阵找到脉冲响应,这是x每对的第一个方程。有谁知道如何做到这一点?

1个回答

您可以通过求解第一个方程中的标准非齐次 ODE 来使用状态转移矩阵来解决问题。解决方案x˙(t)=Ax(t)+Bu(t)

x(t)=x0eAt+0teA(tt)Bu(t)dt

在哪里x0=x(0). 数量eAt称为状态转移矩阵(也是齐次 ODE 的解),我将其称为Ξ(t)(我不记得这个的标准符号)。服用x0=0,方程为y(t)变成

y(t)=C0tΞ(tt)Bu(t)dt+Du(t)

上面的方程给你的输出是与系统脉冲响应卷积的输入,实际上,你可以用上面方程的拉普拉斯变换来验证。注意到拉普拉斯变换Ξ(t)=eAt(sIA)1并且时域中的卷积成为 s 域中的乘积,我们得到

Y=C(sIA)1BU+DU

这为您提供了与您的问题相同的传递函数。


关于您对完全拉普拉斯变换方法的评论很长,我不一定会这么说。然而,状态转移矩阵方法可能更容易实现,因为涉及它的几个操作可以用简单的矩阵乘法来计算,仅此而已。