线性连续时间状态转移方程具有如下形式:

\[\dot{x} = \mathscr{A}x + \mathscr{B}u \tag{1}\]

现在考虑在一个一个离散控制系统中的一个控制周期的时间范围 $[t_k, t_{k+1}]$ ,其中 $t_{k+1} = t_k + \Delta{t}$ 。使用 $x_k$ 和 $x_{k+1}$ 来分别表示状态 $x$ 在 $t_k$ 和 $t_{k+1}$ 时刻的值,控制输入 $u$ 在这个控制周期中保持不变,使用 $u_k$ 来表示这个值。根据上述定义,可以得到该系统的离散状态转移方程具有如下形式:

\[x_{k+1} = A x_k + Bu_k \tag{2}\]

只需要计算 $A$ 和 $B$ 就可以得到该系统的离散状态转移方程。 将$\mathscr{A}$对角化,$\mathscr{A} = P^{-1}DP$,根据(1),有:

\[\begin{aligned} \dot{x} &= \mathscr{A}x + \mathscr{B}u \\ &=P^{-1}DPx + \mathscr{B}u \\ P\dot{x} &= DPx + P\mathscr{B}u \end{aligned} \tag{3}\]

进行变量替换, $y=Px$ ,于是得到:

\[\begin{aligned} \dot{y} &= Dy + P\mathscr{B}u \\ \end{aligned} \tag{4}\]

由于$D$是对角阵,公式(4)中的每一项都是一个一阶线性微分方程,其中第 $i$ 项的形式如下:

\[\dot{y}^i = d^{ii}y^i + [P\mathscr{B}u]^i \tag{5}\]

其通解具有如下形式:

\[\begin{aligned} y^i(t) &= m^ie^{d^{ii}t} + n^i \\ \dot{y}^i(t) &= m^id^{ii}e^{d^{ii}t} \end{aligned} \tag{6}\]

代入 $t_k$ ,得到:

\[\dot{y}^i(t_k) = \dot{y}^i_{t_k} = m^id^{ii}e^{d^{ii}t_k} = d^{ii}y^i(t_k) + [P\mathscr{B}u_k]^i = d^{ii}y^i_k + [P\mathscr{B}u_k]^i\\ \begin{aligned} m^i &= e^{-d^{ii}t_k}(y^i_k + (1 / d^{ii})[P\mathscr{B}u_k]^i) \\ n^i &= -(1/d^{ii})[P\mathscr{B}u_k]^i \end{aligned} \tag{7}\]

将结果代入到公式(6),可以得到:

\[y(t) = e^{D(t-t_k)}y_k + (e^{D(t-t_k)}-1)D^{-1}P\mathscr{B}u_k \tag{8}\]

其中我们定义:

\[\begin{aligned} \begin{bmatrix} e^{d^{11}} & 0 & \cdots & 0 \\ 0 & e^{d^{22}} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & e^{d^{nn}} \end{bmatrix} = e^D \\ D = \begin{bmatrix} d^{11} & 0 & \cdots & 0 \\ 0 & d^{22} & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & d^{nn} \end{bmatrix} \end{aligned} \tag{9}\]

代入 $y=Px$ ,可以得到:

\[\begin{aligned} Px(t) &= e^{D(t-t_k)}Px_k + (e^{D(t-t_k)} - 1)D^{-1}P\mathscr{B}u_k \\ x(t) &= P^{-1}e^{D(t-t_k)}Px_k + P^{-1}(e^{D(t-t_k)} - 1)D^{-1}P\mathscr{B}u_k \\ &= P^{-1}e^{D(t-t_k)}Px_k + (P^{-1}e^{D(t-t_k)}PP^{-1}D^{-1}P - P^{-1}D^{-1}P)\mathscr{B}u_k \\ &= P^{-1}e^{D(t-t_k)}Px_k + (P^{-1}e^{D(t-t_k)}P - 1)P^{-1}D^{-1}P\mathscr{B}u_k \end{aligned} \tag{10}\]

下面需要定义矩阵的指数,算是对 $\mathbb{R}^1$ 定义域下的指数函数 $e^x \quad x\in\mathbb{R^1}$ 上的解析延拓。下面定义:

\[\begin{aligned} e^A &= \sum_{i=0}^{\infty}{\frac{1}{i!}{A}^i} \\ A &\in \mathbb{R}^{n \times n} \end{aligned} \tag{11}\]

根据定义,如果 $A=F^{-1}DF$ ,其中 $D$ 是对角矩阵,那么有:

\[\begin{aligned} e^A &= \sum_{i=0}^{\infty}{\frac{1}{i!}{(F^{-1}DF)^i}} \\ &= \sum_{i=0}^{\infty}{\frac{1}{i!}{[(F^{-1}DF)(F^{-1}DF)\cdots(F^{-1}DF)]}} \\ &= F^{-1}(\sum_{i=0}^{\infty}{\frac{1}{i!}{D^i}})F \\ &= F^{-1}e^DF \end{aligned} \tag{12}\]

根据(12)和(10),可以得到:

\[\begin{aligned} x(t) &= P^{-1}e^{D(t-t_k)}Px_k + (P^{-1}e^{D(t-t_k)}P - 1)P^{-1}D^{-1}P\mathscr{B}u_k \\ &= e^{P^{-1}DP(t-t_k)}x_k + (e^{P^{-1}DP(t-t_k)} - 1)P^{-1}D^{-1}P\mathscr{B}u_k \\ &= e^{\mathscr{A}(t-t_k)}x_k + (e^{\mathscr{A}(t-t_k)} - 1)\mathscr{A}^{-1}\mathscr{B}u_k \end{aligned} \tag{13}\]

将 $t_{k+1}$ 代入(13),可以得到:

\[\begin{aligned} x(t_{k+1}) = x_{k+1} &= e^{\mathscr{A}(t_{k+1}-t_k)}x_k + (e^{\mathscr{A}(t_{k+1}-t_k)} - 1)\mathscr{A}^{-1}\mathscr{B}u_k \\ &= e^{\mathscr{A}\Delta{t}}x_k + (e^{\mathscr{A}\Delta{t}} - 1)\mathscr{A}^{-1}\mathscr{B}u_k \end{aligned} \tag{14}\]

显然,根据(2),可以得到:

\[\begin{aligned} A&=e^{\mathscr{A}\Delta{t}} \\ B&=(e^{\mathscr{A}\Delta{t}}-1)\mathscr{A}^{-1}\mathscr{B} \end{aligned} \tag{15}\]

推导完毕。

未经授权,禁止转载


<
Blog Archive
Archive of all previous blog posts
>
Next Post
连续系统的LQR推导