Board Reference

    Flight Controller
    Field Oriented Controller

    Motor Drive

    PMSM

    Motion Control

    Attitude Control

    Tutorial

    Mathematics
    Classical Control
    State Estimation
    Feedforward Control
    Disturbance Observer
    Motion Control

Perfect Tracking

Problem statement

A problem is to find an input such that a state track a reference trajectory.
Let us consider an SIMO system that is expressed as
x[k+1]=Adx[k]+Bdu[k](AdRn×n, BdRn×1, xRn×1, uR)\begin{align} \bm{x}[k+1]&=\bm{A}_{\rm d}\bm{x}[k]+\bm{B}_{\rm d}\bm{u}[k] \\ (\bm{A}_{\rm d}\in \mathbb{R}^{{\rm n}\times {\rm n}},\ \bm{B}_{\rm d}&\in \mathbb{R}^{{\rm n}\times 1},\ x\in \mathbb{R}^{{\rm n}\times 1},\ \bm{u}\in \mathbb{R} )\end{align}
An input should satisfy
xref[k+1]Adxref[k]=Bdu[k],\begin{align} \bm{x}^{\rm ref}[k+1]-\bm{A}_{\rm d}\bm{x}^{\rm ref}[k]=\bm{B}_{\rm d}\bm{u}[k], \end{align}
however, there is no solution because it is an overdetermined system.

Block representation

The problem is solved by extending the system representation using multirate input.
x[k+1]=Adx[k]+Bdu[k]x[k+2]=Adx[k+1]+Bdu[k+1]=Ad(Adx[k]+Bdu[k])+Bdu[k+1]=Ad2x[k]+AdBdu[k]+Bdu[k+1]x[k+3]=Adx[k+2]+Bdu[k+2]=Ad(Ad2x[k]+AdBdu[k]+Bdu[k+1])+Bdu[k+2]=Ad3x[k]+Ad2Bdu[k]+AdBdu[k+1]+Bdu[k+2]x[k+n]=Adnx[k]+Adn1Bdu[k]+Adn2Bdu[k+1]++Bdu[k+n1]x[k+n]=Adnx[k]+MU[k]\begin{align} \bm{x}[k+1]&=\bm{A}_{\rm d}\bm{x}[k]+\bm{B}_{\rm d}\bm{u}[k] \\ \bm{x}[k+2]&=\bm{A}_{\rm d}\bm{x}[k+1]+\bm{B}_{\rm d}\bm{u}[k+1] \\ &=\bm{A}_{\rm d}(\bm{A}_{\rm d}\bm{x}[k]+\bm{B}_{\rm d}\bm{u}[k])+\bm{B}_{\rm d}\bm{u}[k+1] \\ &=\bm{A}^2_{\rm d}\bm{x}[k]+\bm{A}_{\rm d}\bm{B}_{\rm d}\bm{u}[k]+\bm{B}_{\rm d}\bm{u}[k+1] \\ \bm{x}[k+3]&=\bm{A}_{\rm d}\bm{x}[k+2]+\bm{B}_{\rm d}\bm{u}[k+2]\\ &= \bm{A}_{\rm d}(\bm{A}^2_{\rm d}\bm{x}[k]+\bm{A}_{\rm d}\bm{B}_{\rm d}\bm{u}[k]+\bm{B}_{\rm d}\bm{u}[k+1])+\bm{B}_{\rm d}\bm{u}[k+2] \\ &= \bm{A}^3_{\rm d}\bm{x}[k]+\bm{A}^2_{\rm d}\bm{B}_{\rm d}\bm{u}[k]+\bm{A}_{\rm d}\bm{B}_{\rm d}\bm{u}[k+1]+\bm{B}_{\rm d}\bm{u}[k+2] \\ &\vdots& \\ \bm{x}[k+{\rm n}]&= \bm{A}^{{\rm n}}_{\rm d}\bm{x}[k]+ \bm{A}^{{\rm n}-1}_{\rm d}\bm{B}_{\rm d}\bm{u}[k]+\bm{A}^{{\rm n}-2}_{\rm d}\bm{B}_{\rm d}\bm{u}[k+1]+\cdots+\bm{B}_{\rm d}\bm{u}[k+{\rm n}-1] \\ &\Downarrow& \\ \bm{x}[k+{\rm n}]&= \bm{A}^{{\rm n}}_{\rm d}\bm{x}[k]+\bm{M}\bm{U}[k] \end{align}
where
M[BdAdBdAd2BdAdn1Bd]Rn×nU[k][u[k+n1]u[k+n2]u[k+1]u[k]]TRn×1.\begin{align} \bm{M} &\equiv \begin{bmatrix} \bm{B}_{\rm d} & \bm{A}_{\rm d}\bm{B}_{\rm d} & \bm{A}^2_{\rm d}\bm{B}_{\rm d}& \cdots & \bm{A}^{{\rm n}-1}_{\rm d}\bm{B}_{\rm d} \end{bmatrix} \in \mathbb{R}^{{\rm n}\times {\rm n}} \\ \bm{U}[k] &\equiv \begin{bmatrix} \bm{u}[k+{\rm n}-1] & \bm{u}[k+{\rm n}-2] & \cdots& \bm{u}[k+1] & \bm{u}[k] \end{bmatrix}^{\mathrm T} \in \mathbb{R}^{{\rm n}\times 1}. \end{align}
This form is called a block representation. If a system is controllable, this is a determined system.
xref[k+n]Adnxref[k]=MU[k].\begin{align} \bm{x}^{\rm ref}[k+{\rm n}] - \bm{A}^{{\rm n}}_{\rm d}\bm{x}^{\rm ref}[k] = \bm{M}\bm{U}[k]. \end{align}
Then, a multirate input is provided as
U[k]=M1(xref[k+n]Adnxref[k]).\begin{align} \bm{U}[k]&=\bm{M}^{-1}(\bm{x}^{\rm ref}[k+{\rm n}]-\bm{A}^{{\rm n}}_{\rm d}\bm{x}^{\rm ref}[k]). \end{align}

© DigitalServo