线性时变系统状态方程的解

线性时变系统状态方程的解

鲁鹏
北京理工大学,宇航学院
2019.10.11


随着学习的深入,线性定常系统(状态方程一般形式为 x ˙ ( t ) = A x ( t ) + B u ( t ) \dot{\boldsymbol{x}}(t)=Ax(t)+Bu(t) x˙(t)=Ax(t)+Bu(t))已经无法满足我的需求了。线性时变系统(状态方程一般形式为 x ˙ ( t ) = A ( t ) x ( t ) + B ( t ) u ( t ) \dot{\boldsymbol{x}}(t)=A(t)x(t)+B(t)u(t) x˙(t)=A(t)x(t)+B(t)u(t))更具一般性。非线性时变系统也可以通过泰勒展开简化为线性时变系统[1]。本文将总结线性时变系统的状态方程的解,主要参考了东北大学课件[2]。

线性时变系统齐次状态方程的解

系统描述:
x ˙ ( t ) = A ( t ) x ( t ) (1) \dot{\boldsymbol{x}}(t) = A(t)\boldsymbol{x}(t) \tag{1} x˙(t)=A(t)x(t)(1)

初始时刻为 t 0 t_{0} t0 a i j ( t ) a_{ij}(t) aij(t)分段连续

微分方程(1)解为
x ( t ) = [ I + ∫ t 0 t A ( τ ) d τ + ∫ t 0 t A ( τ 1 ) ∫ t 0 t A ( τ 2 ) d τ 2 d τ 1 + ∫ t 0 t A ( τ 1 ) ∫ t 0 t A ( τ 2 ) ∫ t 0 t A ( τ 3 ) d τ 3 d τ 2 d τ 1 + ⋯ ] x ( t 0 ) \begin{gathered} \boldsymbol{x}(t) = \bigg[ I + \int^{t}_{t_{0}}A(\tau)d\tau + \int^{t}_{t_{0}}A(\tau_{1})\int^{t}_{t_{0}}A(\tau_{2})d\tau_{2}d\tau_{1} + \\\int^{t}_{t_{0}} A(\tau_{1}) \int^{t}_{t_{0}} A(\tau_{2}) \int^{t}_{t_{0}} A(\tau_{3}) d\tau_{3} d\tau_{2} d \tau_{1} + \cdots \bigg]\boldsymbol{x}(t_{0}) \end{gathered} x(t)=[I+t0tA(τ)dτ+t0tA(τ1)t0tA(τ2)dτ2dτ1+t0tA(τ1)t0tA(τ2)t0tA(τ3)dτ3dτ2dτ1+]x(t0)

特殊情况
A ( t ) [ ∫ t 0 t A ( τ ) d τ ] = [ ∫ t 0 t A ( τ ) d τ ] A ( t )    ⟺    x ( t ) = exp ⁡ [ ∫ t 0 t A ( τ ) d τ ] x ( t 0 ) A(t)\left[\int^{t}_{t_{0}}A(\tau)d\tau \right] = \left[\int^{t}_{t_{0}}A(\tau)d\tau \right]A(t) \\ \iff \boldsymbol{x}(t) = \exp\left[\int^{t}_{t_{0}}A(\tau)d\tau \right]\boldsymbol{x}(t_{0}) A(t)[t0tA(τ)dτ]=[t0tA(τ)dτ]A(t)x(t)=exp[t0tA(τ)dτ]x(t0)

线性时变系统的状态转移矩阵

对于连续线性时变系统
x ˙ ( t ) = A ( t ) x ( t ) + B ( t ) u ( t ) (2) \dot{\boldsymbol{x}}(t) = A(t)\boldsymbol{x}(t) + B(t)\boldsymbol{u}(t)\tag{2} x˙(t)=A(t)x(t)+B(t)u(t)(2)

初始时刻为 t 0 t_{0} t0 a i j ( t ) a_{ij}(t) aij(t) b i j ( t ) b_{ij}(t) bij(t)分段连续。

系统的状态转移矩阵是如下矩阵微分方程和初始条件的 n × n n\times n n×n阶解矩阵 Φ ( t , t 0 ) \Phi(t,t_{0}) Φ(t,t0),如果如下初值问题(Initial Value Problem, IVP)无法解析求解可以使用数值积分求解
Φ ˙ ( t , t 0 ) = A ( t ) Φ ( t , t 0 ) , Φ ( t 0 , t 0 ) = I n (3) \dot{\Phi}(t,t_{0}) = A(t)\Phi(t,t_{0}), \quad \Phi(t_{0},t_{0}) = I_{n} \tag{3} Φ˙(t,t0)=A(t)Φ(t,t0),Φ(t0,t0)=In(3)

线性时变系统非齐次状态方程的解

设连续线性时变系统(2)的解为[3]
x ( t ) = Φ ( t , t 0 ) c ( t ) (4) \boldsymbol{x}(t)=\Phi(t,t_{0})\boldsymbol{c}(t) \tag{4} x(t)=Φ(t,t0)c(t)(4)

其中 c ( t ) \boldsymbol{c(}t) c(t)为待定量,类比高等数学中的常数易变法(A method of constant variation)理解。
x ˙ ( t ) = Φ ˙ ( t , t 0 ) c ( t ) + Φ ( t , t 0 ) c ˙ ( t ) = A ( t ) Φ ( t , t 0 ) c ( t ) + Φ ( t , t 0 ) c ˙ ( t ) (5) \begin{aligned} \dot{\boldsymbol{x}}(t) =& \dot{\Phi}(t,t_{0})\boldsymbol{c}(t) + \Phi(t,t_{0})\dot{\boldsymbol{c}}(t) \\ =& A(t)\Phi(t,t_{0})\boldsymbol{c}(t) + \Phi(t,t_{0})\dot{\boldsymbol{c}}(t) \end{aligned} \tag{5} x˙(t)==Φ˙(t,t0)c(t)+Φ(t,t0)c˙(t)A(t)Φ(t,t0)c(t)+Φ(t,t0)c˙(t)(5)

将等式(2)带入等式(5)可得
A ( t ) Φ ( t , t 0 ) c ( t ) + Φ ( t , t 0 ) c ˙ ( t ) = A ( t ) Φ ( t , t 0 ) c ( t ) + B ( t ) u ( t ) (6) A(t)\Phi(t,t_{0})\boldsymbol{c}(t) + \Phi(t,t_{0})\dot{\boldsymbol{c}}(t) = A(t)\Phi(t,t_{0})\boldsymbol{c}(t) + B(t)\boldsymbol{u}(t) \tag{6} A(t)Φ(t,t0)c(t)+Φ(t,t0)c˙(t)=A(t)Φ(t,t0)c(t)+B(t)u(t)(6)

c ˙ ( t ) = Φ − 1 ( t , t 0 ) B ( t ) u ( t ) (7) \dot{\boldsymbol{c}}(t) = \Phi^{-1}(t,t_{0})B(t)\boldsymbol{u}(t) \tag{7} c˙(t)=Φ1(t,t0)B(t)u(t)(7)

等式(7)两端积分得:
c ( t ) − c ( t 0 ) = ∫ t 0 t Φ − 1 ( τ , t 0 ) B ( τ ) u ( τ ) d τ (8) \boldsymbol{c}(t) - \boldsymbol{c}(t_{0}) = \int^{t}_{t_{0}}\Phi^{-1}(\tau,t_{0})B(\tau)\boldsymbol{u}(\tau)d\tau \tag{8} c(t)c(t0)=t0tΦ1(τ,t0)B(τ)u(τ)dτ(8)

由等式(4)可知 t = t 0 t = t_{0} t=t0时有 c ( t 0 ) = x ( t 0 ) \boldsymbol{c}(t_{0}) = \boldsymbol{x}(t_{0}) c(t0)=x(t0),所以
c ( t ) = x ( t 0 ) + ∫ t 0 t Φ − 1 ( τ , t 0 ) B ( τ ) u ( τ ) d τ (9) \boldsymbol{c}(t) = \boldsymbol{x}(t_{0}) + \int^{t}_{t_{0}}\Phi^{-1}(\tau,t_{0})B(\tau)\boldsymbol{u}(\tau)d\tau \tag{9} c(t)=x(t0)+t0tΦ1(τ,t0)B(τ)u(τ)dτ(9)

x ( t ) = Φ ( t , t 0 ) c ( t ) = ⋯ = Φ ( t , t 0 ) x ( t 0 ) + ∫ t 0 t Φ ( t , τ ) B ( τ ) u ( τ ) d τ (10) \begin{aligned} \boldsymbol{x}(t) =& \Phi(t,t_{0})\boldsymbol{c}(t) \\ =& \cdots\\ =& \Phi(t,t_{0})\boldsymbol{x}(t_{0}) + \int^{t}_{t_{0}}\Phi(t,\tau)B(\tau)\boldsymbol{u}(\tau)d\tau \end{aligned} \tag{10} x(t)===Φ(t,t0)c(t)Φ(t,t0)x(t0)+t0tΦ(t,τ)B(τ)u(τ)dτ(10)

类比上述推导过程,非线性时变系统 x ˙ ( t ) = A ( t ) x ( t ) + B ( t ) u ( t ) + z ( t ) \dot{\boldsymbol{x}}(t) = A(t)\boldsymbol{x}(t) + B(t)\boldsymbol{u}(t) + \boldsymbol{z}(t) x˙(t)=A(t)x(t)+B(t)u(t)+z(t)的解很好得到。

参考文献

[1] Szmuk M , Acikmese B . 2018 AIAA Guidance, Navigation, and Control Conference[C]. Successive Convexification for 6-DoF Mars Rocket Powered Landing with Free-Final-Time.

[2] 第三章 状态方程的解ppt(东北大学)

[3] 麻省理工学院公开课:微分方程

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MATLAB中线性时变系统的状态空间模型可以通过StateSpace函数来表示。StateSpace函数的输入参数为系统状态方程和输出方程。 状态方程描述了系统的状态如何随时间变化。一般形式为dx/dt = Ax + Bu,其中x是系统的状态向量,A是系统的状态矩阵,B是系统的输入矩阵,u是系统的输入向量。 输出方程描述了系统如何根据其状态生成输出。一般形式为y = Cx + Du,其中y是系统的输出向量,C是系统的输出矩阵,D是系统的直接传递矩阵。 通过使用StateSpace函数,我们可以将系统状态方程和输出方程表示为一个StateSpace对象。例如,假设我们有一个状态方程为dx/dt = 2x + 3u,输出方程为y = x + u的系统,可以使用以下代码表示: A = 2; B = 3; C = 1; D = 1; sys = ss(A, B, C, D); 其中,A = 2表示状态矩阵A的值为2,B = 3表示输入矩阵B的值为3,C = 1表示输出矩阵C的值为1,D = 1表示直接传递矩阵D的值为1。 通过StateSpace对象,我们可以对系统进行模拟、分析和控制等操作。例如,可以使用step函数来绘制系统的阶跃响应曲线。可以使用tf函数将StateSpace对象转换为传输函数模型,以便进行频域分析和设计控制器等。 总之,MATLAB中的StateSpace函数提供了一种方便的方式来表示和操作线性时变系统的状态空间模型。通过定义系统状态方程和输出方程,可以对系统进行模拟、分析和控制等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值