노션에다 정리해봤는데.. 노션에서 작성된 형식을 그대로 옮기는게 불편하네요..
Written by Myeonggyun-Kim
Continuous State Space Model of Linear Time invariant System
x˙=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t),t≥0{\dot x} = Ax(t)+Bu(t) \\ y(t) = Cx(t)+ Du(t), t\geq 0, (1)
The matrix exponential function as
ddteAt=AeAt=eAtA{d\over dt}e^{At} =Ae^{At}=e^{At}A , (2)
Multiplying both sides of (1) by
e−Ate^{-At}, we obtain(3)
e−Atx˙(t)=e−AtAx(t)+e−AtBu(t)e^{-At}{\dot x(t)} = e^{-At}Ax(t)+e^{-At}Bu(t), (3)
Substituting (2) into (3)
e−Atddtx(t)=−ddte−Atx(t)+e−AtBu(t)e^{-At}{d\over dt}x(t) = -{d\over dt}e^{-At} x(t) + e^{-At}Bu(t)
→ddt[e−Atx(t)]=e−AtBu(t)\rightarrow {d\over dt} [e^{-At}x(t) ] = e^{-At}Bu(t), (4)
Integrating the result of multiplying
dtdt both side of (4)
e−Atx(t)∣0t=e−Atx(t)−x(0)=∫0te−AτBu(τ)dτe^{-At}x(t)|^{t}_{0} =e^{-At}x(t)-x(0) = \int^{t}_{0}e^{-A\tau}Bu(\tau)d\tau, (5)
Rewriting the equation (5), we get the solution of the state-space eq of LTI system.
x(t)=eAtx(0)+∫0teA(t−τ)Bu(τ)dτx(t) = e^{At}x(0) +\int^{t}_{0}e^{A(t-\tau)}Bu(\tau)d\tau, (6)
Discretize the continuous state space model
In an analog control system, the control input is updated continuously, while in a digital control system, it is held constant within each sampling period.
To accurately represent this behavior in a system model, discretization must be applied. we use the Zero-Order-Hold(ZOH) method in this contents.
x(t)=eA(t−t0)x(t0)+∫t0teA(t−τ)Bu(τ)dτx(t) = e^{A(t-t_0)}x(t_0) +\int^{t}_{t_0}e^{A(t-\tau)}Bu(\tau)d\tau, (1)
To transition to a discrete-time representation, we replace the continuous-time variable
t, t0t,\ t_0 with the discrete-time variable
T(k+1), TkT(k+1), \ Tk
t=T(k+1),t0=Tk,T:sampling timet=T(k+1), \quad t_0=Tk ,\quad T:sampling\ time
Rewriting equation (1) under the assumption that the input
uu remained during sampling time. so input
uu is constant.
x(T(k+1))=eATx(t0)+∫TkT(k+1)eA(T(k+1)−τ)Bu(k)dτx(T(k+1)) = e^{AT}x(t_0)+\int^{T(k+1)}_{Tk}e^{A(T(k+1)-\tau)}Bu(k)d\tau (2)
For simplicity, introduce a change of variable
σ=T(k+1)−τ\sigma = T(k+1)-\tau
Thus, by substituting
dτ=−dσd\tau=-d\sigma, equation (2) transforms into (3)
x(T(k+1))=eATx(t0)+∫T0eAσBu(τ)(−dσ)x(T(k+1)) = e^{AT}x(t_0)+\int^{0}_{T}e^{A\sigma}Bu(\tau)(-d\sigma) (3)
Rearranging (3), we get the final form in continuous-time
x(T(k+1))=eATx(t0)+∫0TeAσdσBu(k)x(T(k+1)) = e^{AT}x(t_0)+\int^{T}_{0}e^{A\sigma}d\sigma Bu(k) (4)
Ad=eAT=I+AT+(AT)22!...Bd=∫0TeAσdσB=A−1[eAT−I]B=T+AT22!+A2T33!...A_d =e^{AT} = I+AT+{(AT)^2\over 2! } ... \\ B_d =\int^{T}_{0}e^{A\sigma}d\sigma B=A^-1[e^{AT}-I]B=T+{AT^2\over 2!}+{A^2T^3 \over 3!} ...
We can represent the eq (4) in discrete-time.
→
x(k+1)=Adx(k)+Bdu(k)x(k+1)=A_dx(k)+B_du(k)
'maengkyun > Robotics' 카테고리의 다른 글
[ROS2::Nav2::MPPI] Model Predictive Path Integral (1) | 2024.01.28 |
---|---|
[ROS2::Nav2::DWB] Dynamic Window Approach (0) | 2024.01.27 |
[Video] Quadrotor :: MPC vs PID Position Controller (0) | 2023.05.12 |
QPSolver:: OSQP-Eigen Installation (0) | 2023.05.11 |
Model Predictive Control :: 입문중.. (0) | 2023.04.25 |