【运动控制】连续时间状态方程的离散化


在众多的控制算法中,为了实际应用,不可避免的过程就是将连续时间状态方程进行离散化,以便于代码的实现。

但是,在网上的众多博客中,鲜有对此的介绍,更无具体推导过程。导致很难理解为什么这种形式就是离散化,云里雾里,感觉非常不踏实。

故作此文章,为所需之人作些许帮助。

本文于2022年7月19日重新推导,修改了之前文章存在的错误。感谢 @那行界指出文章中的错误,同时给出了可供参考的推导资料。

1 连续时间状态方程

1.1 时域

假设输入向量 u ( t ) u(t) u(t)只在等间隔采样时刻发生改变,连续时间时间状态方程和输出方程如下
x ˙ ( t ) = A x ( t ) + B u ( t ) (1-1-1) \begin{aligned} \dot{x}(t) &= Ax(t) + Bu(t) \\ \end{aligned} \tag{1-1-1} x˙(t)=Ax(t)+Bu(t)(1-1-1)

y ( t ) = C x ( t ) + D u ( t ) (1-1-2) \begin{aligned} y(t) &= Cx(t) + Du(t) \\ \end{aligned} \tag{1-1-2} y(t)=Cx(t)+Du(t)(1-1-2)

1.2 频域

对(1-1)和(1-2)进行拉氏变换,得到
s X ( s ) = A X ( s ) + B U ( s ) (1-2-1) \begin{aligned} sX(s) = AX(s) + BU(s) \end{aligned} \tag{1-2-1} sX(s)=AX(s)+BU(s)(1-2-1)
Y ( s ) = C X ( s ) + D U ( s ) (1-2-2) \begin{aligned} Y(s) = CX(s) + DU(s) \end{aligned} \tag{1-2-2} Y(s)=CX(s)+DU(s)(1-2-2)

将(1-3)代入(1-4),消去 X ( s ) X(s) X(s),得到
Y ( s ) = [ C ( s I − A ) − 1 B + D ] U ( s ) (1-2-3) \begin{aligned} Y(s) = \left [ C(sI - A)^{-1}B + D \right ] U(s) \end{aligned} \tag{1-2-3} Y(s)=[C(sIA)1B+D]U(s)(1-2-3)
定义传递函数 G ( s ) G(s) G(s)为系统输出与输入的比值,如下
G ( s ) = Y ( s ) U ( s ) (1-2-4) \begin{aligned} G(s) = \frac{Y(s)}{U(s)} \end{aligned} \tag{1-2-4} G(s)=U(s)Y(s)(1-2-4)
因此,可以得到
G ( s ) = C ( s I − A ) − 1 B + D (1-2-5) \begin{aligned} G(s) = C(sI - A)^{-1}B + D \end{aligned} \tag{1-2-5} G(s)=C(sIA)1B+D(1-2-5)

1.3 z域

同理,z域的系统如下
z X ( z ) = A d X ( z ) + B d U ( z ) (1-3-1) \begin{aligned} zX(z) = A_{d}X(z) + B_{d}U(z) \end{aligned} \tag{1-3-1} zX(z)=AdX(z)+BdU(z)(1-3-1)

Y ( z ) = C d X ( z ) + D d U ( z ) (1-3-2) \begin{aligned} Y(z) = C_{d}X(z) + D_{d}U(z) \end{aligned} \tag{1-3-2} Y(z)=CdX(z)+DdU(z)(1-3-2)

其中, A d 、 B d 、 C d 、 D d A_{d}、B_{d}、C_{d}、D_{d} AdBdCdDd为系统的离散系数矩阵。

同样定义定义传递函数 G d ( z ) G_{d}(z) Gd(z)为系统输出与输入的比值,如下
G d ( z ) = Y ( z ) U ( z ) (1-3-3) \begin{aligned} G_{d}(z) = \frac{Y(z)}{U(z)} \end{aligned} \tag{1-3-3} Gd(z)=U(z)Y(z)(1-3-3)
因此,可以得到
G d ( z ) = C d ( z I − A d ) − 1 B d + D d (1-3-4) \begin{aligned} G_{d}(z) = C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \end{aligned} \tag{1-3-4} Gd(z)=Cd(zIAd)1Bd+Dd(1-3-4)

2 离散化

离散化常用的方法包括前向差分、后向差分和双线性变换,下面一一进行推导。

2.1 前向差分

前向差分算子为
s = z − 1 T (2-1-1) s = \frac{z-1}{T} \\ \tag{2-1-1} s=Tz1(2-1-1)
将(2-1-1)代入(1-3)中,得到
z − 1 T X ( z ) = A X ( z ) + B U ( z ) ( z − 1 ) X ( z ) = A T X ( z ) + B T U ( z ) z X ( z ) = ( I + A T ) X ( z ) + B T U ( z ) (2-1-2) \begin{aligned} \frac{z-1}{T}X(z) &= AX(z) + BU(z) \\ (z-1)X(z) &= ATX(z) + BTU(z) \\ zX(z) &= (I + AT)X(z) + BTU(z) \\ \end{aligned} \tag{2-1-2} Tz1X(z)(z1)X(z)zX(z)=AX(z)+BU(z)=ATX(z)+BTU(z)=(I+AT)X(z)+BTU(z)(2-1-2)
将(2-1-2)转换为差分方程,如下
x ( k + 1 ) = ( I + A T ) x ( k ) + B T u ( k ) (2-1-3) \begin{aligned} x(k+1) &= (I+AT)x(k) + BTu(k) \\ \end{aligned} \tag{2-1-3} x(k+1)=(I+AT)x(k)+BTu(k)(2-1-3)
根据(2-1-3)的形式继续进行推导,将(2-1-1)代入(1-2-5),有
G ( s ) = C ( z − 1 T I − A ) − 1 B + D G ( s ) = C ( z I − I − A T ) − 1 B T + D G ( s ) = C [ z I − ( I + A T ) ] − 1 ( B T ) + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-1-4) \begin{aligned} G(s) &= C(\frac{z-1}{T}I - A)^{-1}B + D \\ G(s) &= C(zI - I-AT)^{-1}BT + D \\ G(s) &= C[zI - (I+AT)]^{-1}(BT) + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-1-4} G(s)G(s)G(s)Gd(z)=C(Tz1IA)1B+D=C(zIIAT)1BT+D=C[zI(I+AT)]1(BT)+D=Cd(zIAd)1Bd+Dd(2-1-4)
从而,得到
A d = I + A T B d = B T C d = C D d = D (2-1-4) \begin{aligned} A_{d} &= I+AT \\ B_{d} &= BT \\ C_{d} &= C \\ D_{d} &= D \\ \end{aligned} \tag{2-1-4} AdBdCdDd=I+AT=BT=C=D(2-1-4)
因此,使用前向差分获得的差分方程为
x ( k + 1 ) = ( I + A T ) x ( k ) + B T u ( k ) y ( k ) = C x ( k ) + D u ( k ) (2-1-5) \begin{aligned} x(k+1) &= (I+AT)x(k) + BTu(k) \\ y(k) &= Cx(k) + Du(k) \\ \end{aligned} \tag{2-1-5} x(k+1)y(k)=(I+AT)x(k)+BTu(k)=Cx(k)+Du(k)(2-1-5)

2.2 后向差分

后向差分算子为
s = 1 − z − 1 T = z − 1 T z (2-2-1) \begin{aligned} s = \frac{1-z^{-1}}{T} = \frac{z-1}{Tz} \end{aligned} \tag{2-2-1} s=T1z1=Tzz1(2-2-1)
将(2-2-1)代入(1-3)中,得到
z − 1 T z X ( z ) = A X ( z ) + B U ( z ) ( z − 1 ) X ( z ) = A T z X ( z ) + B T z U ( z ) z ( I − A T ) X ( z ) = X ( z ) + B T z U ( z ) z X ( z ) = ( I − A T ) − 1 X ( z ) + ( I − A T ) − 1 B T z U ( z ) (2-2-2) \begin{aligned} \frac{z-1}{Tz} X(z) &= AX(z) + BU(z) \\ (z-1)X(z) &= ATzX(z) + BTzU(z) \\ z(I-AT)X(z) &= X(z) + BTzU(z) \\ zX(z) &= (I-AT)^{-1}X(z) + (I-AT)^{-1}BTzU(z) \\ \end{aligned} \tag{2-2-2} Tzz1X(z)(z1)X(z)z(IAT)X(z)zX(z)=AX(z)+BU(z)=ATzX(z)+BTzU(z)=X(z)+BTzU(z)=(IAT)1X(z)+(IAT)1BTzU(z)(2-2-2)
将(2-2-2)转换为差分方程,如下
x ( k + 1 ) = ( I − A T ) − 1 x ( k ) + ( I − A T ) − 1 B T u ( k + 1 ) (2-2-3) \begin{aligned} x(k+1) &= (I-AT)^{-1}x(k) + (I-AT)^{-1}BTu(k+1) \\ \end{aligned} \tag{2-2-3} x(k+1)=(IAT)1x(k)+(IAT)1BTu(k+1)(2-2-3)

根据(2-2-3)的形式继续进行推导,将(2-2-1)代入(1-2-5),有
G ( s ) = C ( z − 1 T z I − A ) − 1 B + D G ( s ) = C ( z I − I − A T z ) − 1 B T z + D G ( s ) = C [ z ( I − A T ) − I ] − 1 ( B T z ) + D G ( s ) = C [ z I − ( I − A T ) − 1 ] − 1 ( I − A T ) − 1 ( B T z ) + D G ( s ) = C z [ z I − ( I − A T ) − 1 ] − 1 ( I − A T ) − 1 ( B T ) + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-2-4) \begin{aligned} G(s) &= C(\frac{z-1}{Tz}I - A)^{-1}B + D \\ G(s) &= C(zI - I - ATz)^{-1}BTz + D \\ G(s) &= C[z(I-AT) - I]^{-1}(BTz) + D \\ G(s) &= C[zI - (I-AT)^{-1}]^{-1}(I-AT)^{-1} (BTz) + D \\ G(s) &= Cz[zI - (I-AT)^{-1}]^{-1}(I-AT)^{-1} (BT) + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-2-4} G(s)G(s)G(s)G(s)G(s)Gd(z)=C(Tzz1IA)1B+D=C(zIIATz)1BTz+D=C[z(IAT)I]1(BTz)+D=C[zI(IAT)1]1(IAT)1(BTz)+D=Cz[zI(IAT)1]1(IAT)1(BT)+D=Cd(zIAd)1Bd+Dd(2-2-4)
注:式中, z z z为数乘,可以交换位置。

式(2-2-4)需要分两种情况讨论,如下所述。

2.2.1 使用 u ( k + 1 ) u(k+1) u(k+1)

如果能够获取 k + 1 k+1 k+1时刻的输入 u ( k + 1 ) u(k+1) u(k+1)(使用模型估计或预测输入变化,但实际很难应用),则(2-2-4)使用的式子为
G ( s ) = C [ z I − ( I − A T ) − 1 ] − 1 ( I − A T ) − 1 ( B T z ) + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-2-1-1) \begin{aligned} G(s) &= C[zI - (I-AT)^{-1}]^{-1}(I-AT)^{-1} (BTz) + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-2-1-1} G(s)Gd(z)=C[zI(IAT)1]1(IAT)1(BTz)+D=Cd(zIAd)1Bd+Dd(2-2-1-1)
则离散系数矩阵为
A d = ( I − A T ) − 1 B d = ( I − A T ) − 1 B T z C d = C D d = D (2-2-1-2) \begin{aligned} A_{d} &= (I-AT)^{-1} \\ B_{d} &= (I-AT)^{-1}BTz \\ C_{d} &= C \\ D_{d} &= D \\ \end{aligned} \tag{2-2-1-2} AdBdCdDd=(IAT)1=(IAT)1BTz=C=D(2-2-1-2)
则差分方程为
x ( k + 1 ) = ( I − A T ) − 1 x ( k ) + ( I − A T ) − 1 B T u ( k + 1 ) y ( k ) = C x ( k ) + D u ( k ) (2-2-1-3) \begin{aligned} x(k+1) &= (I-AT)^{-1}x(k) + (I-AT)^{-1}BTu(k+1) \\ y(k) &= Cx(k) + Du(k) \\ \end{aligned} \tag{2-2-1-3} x(k+1)y(k)=(IAT)1x(k)+(IAT)1BTu(k+1)=Cx(k)+Du(k)(2-2-1-3)

2.2.2 使用 u ( k ) u(k) u(k)

如果使用 u ( k ) u(k) u(k),保持传递函数不变,则(2-2-4)使用的式子为
G ( s ) = C z [ z I − ( I − A T ) − 1 ] − 1 ( I − A T ) − 1 ( B T ) + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-2-2-1) \begin{aligned} G(s) &= Cz[zI - (I-AT)^{-1}]^{-1}(I-AT)^{-1} (BT) + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-2-2-1} G(s)Gd(z)=Cz[zI(IAT)1]1(IAT)1(BT)+D=Cd(zIAd)1Bd+Dd(2-2-2-1)
由(2-2-2-1),得到
A d = ( I − A T ) − 1 B d = ( I − A T ) − 1 B T C d = C z D d = D (2-2-2-2) \begin{aligned} A_{d} &= (I-AT)^{-1} \\ B_{d} &= (I-AT)^{-1}BT \\ C_{d} &= Cz \\ D_{d} &= D \\ \end{aligned} \tag{2-2-2-2} AdBdCdDd=(IAT)1=(IAT)1BT=Cz=D(2-2-2-2)
注意到(2-2-2-2)的 C d C_{d} Cd一项含有 z z z,不方便计算,需要推导其具体表达式,则新的系统输出方程为
Y ( z ) = C d X ( z ) + D d U ( z ) Y ( z ) = C z X ( z ) + D U ( z ) Y ( z ) = C [ ( I − A T ) − 1 X ( z ) + ( I − A T ) − 1 B T ] + D U ( z ) Y ( z ) = C ( I − A T ) − 1 X ( z ) + [ D + C ( I − A T ) − 1 B T ] U ( z ) (2-2-2-3) \begin{aligned} Y(z) &= C_{d}X(z) + D_{d}U(z) \\ Y(z) &= CzX(z) + DU(z) \\ Y(z) &= C[(I-AT)^{-1}X(z) + (I-AT)^{-1}BT] + DU(z) \\ Y(z) &= C(I-AT)^{-1}X(z) + [D + C(I-AT)^{-1}BT]U(z) \\ \end{aligned} \tag{2-2-2-3} Y(z)Y(z)Y(z)Y(z)=CdX(z)+DdU(z)=CzX(z)+DU(z)=C[(IAT)1X(z)+(IAT)1BT]+DU(z)=C(IAT)1X(z)+[D+C(IAT)1BT]U(z)(2-2-2-3)
由(2-2-2-3),得到
A d = ( I − A T ) − 1 B d = ( I − A T ) − 1 B T C d = C ( I − A T ) − 1 D d = D + C ( I − A T ) − 1 B T (2-2-2-4) \begin{aligned} A_{d} &= (I-AT)^{-1} \\ B_{d} &= (I-AT)^{-1}BT \\ C_{d} &= C(I-AT)^{-1} \\ D_{d} &= D + C(I-AT)^{-1}BT \\ \end{aligned} \tag{2-2-2-4} AdBdCdDd=(IAT)1=(IAT)1BT=C(IAT)1=D+C(IAT)1BT(2-2-2-4)
则差分方程为
x ( k + 1 ) = ( I − A T ) − 1 x ( k ) + ( I − A T ) − 1 B T u ( k ) y ( k ) = C ( I − A T ) − 1 x ( k ) + [ D + C ( I − A T ) − 1 B T ] u ( k ) (2-2-2-5) \begin{aligned} x(k+1) &= (I-AT)^{-1}x(k) + (I-AT)^{-1}BTu(k) \\ y(k) &= C(I-AT)^{-1}x(k) + [D+C(I-AT)^{-1}BT]u(k) \\ \end{aligned} \tag{2-2-2-5} x(k+1)y(k)=(IAT)1x(k)+(IAT)1BTu(k)=C(IAT)1x(k)+[D+C(IAT)1BT]u(k)(2-2-2-5)

这一种推导,用u(k)代替了u(k+1),相当于修改了B矩阵,即将z转移到了C矩阵,但是没有改变传递函数 G d G_{d} Gd,不会影响系统的输入输出传递特性。

2.3 双线性变换

双线性变换算子为
s = 2 T z − 1 z + 1 (2-3-1) \begin{aligned} s = \frac{2}{T} \frac{z-1}{z+1} \\ \end{aligned} \tag{2-3-1} s=T2z+1z1(2-3-1)
将(2-3-1)代入(1-3)中,得到
2 T z − 1 z + 1 X ( z ) = A X ( z ) + B U ( z ) ( z − 1 ) X ( z ) = T 2 A ( z + 1 ) X ( z ) + T 2 B ( z + 1 ) U ( z ) z ( I − 1 2 A T ) X ( z ) = ( I + 1 2 A T ) X ( z ) + 1 2 B T ( z + 1 ) U ( z ) z X ( z ) = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) X ( z ) + ( I − 1 2 A T ) − 1 [ 1 2 B T ( z + 1 ) ] U ( z ) (2-3-2) \begin{aligned} \frac{2}{T} \frac{z-1}{z+1} X(z) &= AX(z) + BU(z) \\ (z-1) X(z) &= \frac{T}{2} A (z+1) X(z) + \frac{T}{2} B (z+1) U(z) \\ z(I-\frac{1}{2} AT) X(z) &= (I+\frac{1}{2} AT) X(z) + \frac{1}{2} BT (z+1) U(z) \\ zX(z) &= (I-\frac{1}{2} AT)^{-1}(I+\frac{1}{2} AT)X(z) + (I-\frac{1}{2} AT)^{-1} [\frac{1}{2} BT (z+1)] U(z) \end{aligned} \tag{2-3-2} T2z+1z1X(z)(z1)X(z)z(I21AT)X(z)zX(z)=AX(z)+BU(z)=2TA(z+1)X(z)+2TB(z+1)U(z)=(I+21AT)X(z)+21BT(z+1)U(z)=(I21AT)1(I+21AT)X(z)+(I21AT)1[21BT(z+1)]U(z)(2-3-2)
将(2-3-2)转换为差分方程,如下
x ( k + 1 ) = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) x ( k ) + ( I − 1 2 A T ) − 1 1 2 B T [ u ( k + 1 ) + u ( k ) ] (2-3-3) \begin{aligned} x(k+1) = (I-\frac{1}{2}AT)^{-1}(I+\frac{1}{2}AT)x(k) + (I-\frac{1}{2}AT)^{-1} \frac{1}{2} BT [u(k+1)+u(k)] \\ \end{aligned} \tag{2-3-3} x(k+1)=(I21AT)1(I+21AT)x(k)+(I21AT)121BT[u(k+1)+u(k)](2-3-3)

根据(2-3-3)的形式继续进行推导,将(2-3-1)代入(1-2-5),有
G ( s ) = C ( 2 T z − 1 z + 1 I − A ) − 1 B + D G ( s ) = C [ z I − I − 1 2 A T ( z + 1 ) ] − 1 1 2 B T ( z + 1 ) + D G ( s ) = C [ z ( I − 1 2 A T ) − ( I + 1 2 A T ) ] − 1 1 2 B T ( z + 1 ) + D G ( s ) = C [ z I − ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] − 1 ( I − 1 2 A T ) − 1 1 2 B T ( z + 1 ) + D G ( s ) = C ( z + 1 ) [ z I − ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] − 1 ( I − 1 2 A T ) − 1 1 2 B T + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-3-4) \begin{aligned} G(s) &= C(\frac{2}{T} \frac{z-1}{z+1}I - A)^{-1}B + D \\ G(s) &= C[ zI - I - \frac{1}{2}AT(z+1)]^{-1} \frac{1}{2}BT(z+1) + D \\ G(s) &= C[ z(I-\frac{1}{2}AT) - (I + \frac{1}{2}AT)]^{-1} \frac{1}{2}BT(z+1) + D \\ G(s) &= C[ zI - (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)]^{-1} (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT(z+1) + D \\ G(s) &= C(z+1)[ zI - (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)]^{-1} (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-3-4} G(s)G(s)G(s)G(s)G(s)Gd(z)=C(T2z+1z1IA)1B+D=C[zII21AT(z+1)]121BT(z+1)+D=C[z(I21AT)(I+21AT)]121BT(z+1)+D=C[zI(I21AT)1(I+21AT)]1(I21AT)121BT(z+1)+D=C(z+1)[zI(I21AT)1(I+21AT)]1(I21AT)121BT+D=Cd(zIAd)1Bd+Dd(2-3-4)
式(2-2-4)需要分两种情况讨论,如下所述。

2.3.1 使用 u ( k + 1 ) u(k+1) u(k+1)

如果使用 u ( k + 1 ) u(k+1) u(k+1)(使用模型估计或预测输入变化,但实际很难应用),则(2-3-4)使用的式子为
G ( s ) = C [ z I − ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] − 1 ( I − 1 2 A T ) − 1 1 2 B T ( z + 1 ) + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-3-1-1) \begin{aligned} G(s) &= C[ zI - (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)]^{-1} (I-\frac{1}{2}AT)^{-1} \frac{1}{2}BT(z+1) + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-3-1-1} G(s)Gd(z)=C[zI(I21AT)1(I+21AT)]1(I21AT)121BT(z+1)+D=Cd(zIAd)1Bd+Dd(2-3-1-1)
由(2-3-1-1),得到
A d = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) B d = ( I − 1 2 A T ) − 1 1 2 B T ( z + 1 ) C d = C D d = D (2-3-1-2) \begin{aligned} A_{d} &= (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT) \\ B_{d} &= (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT(z+1) \\ C_{d} &= C \\ D_{d} &= D \\ \end{aligned} \tag{2-3-1-2} AdBdCdDd=(I21AT)1(I+21AT)=(I21AT)121BT(z+1)=C=D(2-3-1-2)
则差分方程为
x ( k + 1 ) = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) x ( k ) + ( I − 1 2 A T ) − 1 1 2 B T [ u ( k + 1 ) + u ( k ) ] y ( k ) = C x ( k ) + D u ( k ) (2-3-1-3) \begin{aligned} x(k+1) &= (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)x(k) + (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT[u(k+1) + u(k)] \\ y(k) &= Cx(k) + Du(k) \\ \end{aligned} \tag{2-3-1-3} x(k+1)y(k)=(I21AT)1(I+21AT)x(k)+(I21AT)121BT[u(k+1)+u(k)]=Cx(k)+Du(k)(2-3-1-3)

2.3.2 使用 u ( k ) u(k) u(k)

如果使用 u ( k ) u(k) u(k),保持传递函数不变,则(2-3-4)使用的式子为
G ( s ) = C ( z + 1 ) [ z I − ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] − 1 ( I − 1 2 A T ) − 1 1 2 B T + D G d ( z ) = C d ( z I − A d ) − 1 B d + D d (2-3-2-1) \begin{aligned} G(s) &= C(z+1)[ zI - (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)]^{-1} (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT + D \\ G_{d}(z) &= C_{d}(zI - A_{d})^{-1}B_{d} + D_{d} \\ \end{aligned} \tag{2-3-2-1} G(s)Gd(z)=C(z+1)[zI(I21AT)1(I+21AT)]1(I21AT)121BT+D=Cd(zIAd)1Bd+Dd(2-3-2-1)
由(2-3-2-1),得到
A d = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) B d = ( I − 1 2 A T ) − 1 1 2 B T C d = C ( z + 1 ) D d = D (2-3-2-2) \begin{aligned} A_{d} &= (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT) \\ B_{d} &= (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT \\ C_{d} &= C(z+1) \\ D_{d} &= D \\ \end{aligned} \tag{2-3-2-2} AdBdCdDd=(I21AT)1(I+21AT)=(I21AT)121BT=C(z+1)=D(2-3-2-2)
注意到(2-3-2-2)的 C d C_{d} Cd一项含有 z z z,不方便计算,需要推导其具体表达式,则新的系统输出方程为
Y ( z ) = C d X ( z ) + D d U ( z ) Y ( z ) = C ( z + 1 ) X ( z ) + D U ( z ) Y ( z ) = C z X ( z ) + C X ( z ) + D U ( z ) Y ( z ) = C [ ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) X ( z ) + ( I − 1 2 A T ) − 1 1 2 B T U ( z ) ] + C X ( z ) + D U ( z ) Y ( z ) = C [ I + ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] X ( z ) + [ D + C ( I − 1 2 A T ) − 1 1 2 B T ] U ( z ) (2-3-2-3) \begin{aligned} Y(z) &= C_{d}X(z) + D_{d}U(z) \\ Y(z) &= C(z+1)X(z) + DU(z) \\ Y(z) &= CzX(z) + CX(z) + DU(z) \\ Y(z) &= C[(I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)X(z) + (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT U(z)] + CX(z) + DU(z) \\ Y(z) &= C[I + (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)]X(z) + [D + C(I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT]U(z) \\ \end{aligned} \tag{2-3-2-3} Y(z)Y(z)Y(z)Y(z)Y(z)=CdX(z)+DdU(z)=C(z+1)X(z)+DU(z)=CzX(z)+CX(z)+DU(z)=C[(I21AT)1(I+21AT)X(z)+(I21AT)121BTU(z)]+CX(z)+DU(z)=C[I+(I21AT)1(I+21AT)]X(z)+[D+C(I21AT)121BT]U(z)(2-3-2-3)
由(2-3-2-3),得到
A d = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) B d = ( I − 1 2 A T ) − 1 1 2 B T C d = C [ I + ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] D d = D + C ( I − 1 2 A T ) − 1 1 2 B T (2-3-2-4) \begin{aligned} A_{d} &= (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT) \\ B_{d} &= (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT \\ C_{d} &= C[I + (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)] \\ D_{d} &= D + C(I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT \\ \end{aligned} \tag{2-3-2-4} AdBdCdDd=(I21AT)1(I+21AT)=(I21AT)121BT=C[I+(I21AT)1(I+21AT)]=D+C(I21AT)121BT(2-3-2-4)
则差分方程为
x ( k + 1 ) = ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) x ( k ) + ( I − 1 2 A T ) − 1 1 2 B T u ( k ) y ( k ) = C [ I + ( I − 1 2 A T ) − 1 ( I + 1 2 A T ) ] x ( k ) + [ D + C ( I − 1 2 A T ) − 1 1 2 B T ] u ( k ) (2-3-2-5) \begin{aligned} x(k+1) &= (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)x(k) + (I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT u(k) \\ y(k) &= C[I + (I-\frac{1}{2}AT)^{-1}(I + \frac{1}{2}AT)]x(k) + [D + C(I-\frac{1}{2}AT)^{-1}\frac{1}{2}BT]u(k) \\ \end{aligned} \tag{2-3-2-5} x(k+1)y(k)=(I21AT)1(I+21AT)x(k)+(I21AT)121BTu(k)=C[I+(I21AT)1(I+21AT)]x(k)+[D+C(I21AT)121BT]u(k)(2-3-2-5)

3 结语

在Apollo的横向控制模块中,LQR的 B B B矩阵离散变换系数应该是不对的,但MRAC的 A A A B B B矩阵离散变换系数又是正确的,这着实让人费解。

如果Apollo的每个模块能给出设计所参考的论文,那就不会存在这么多疑问了。

附录

某个广泛流传的连续时间状态方程的离散化公式如下,这篇文章基本已经与其相同(除了双线性变换的 C d C_{d} Cd矩阵),有需要的可以自行保存。

在这里插入图片描述

参考资料

  1. https://dsp.stackexchange.com/questions/45042/bilinear-transformation-of-continuous-time-state-space-system;
  2. http://www.adjutojunior.com.br/controle_processos/slides_chapter8_DISCRETIZATION_OF_CONTINUOS_SYSTEMS.pdf.
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值