1
\$\begingroup\$

Now I have a discrete-time system \begin{align} x(k+1) =& Ax(k) + Bu(k) \\ y(k) = & Cx(k). \end{align} sampled at time kT where k=0, 1, 2, ... Due to some physical constraint, the interval T cannot be extended. Meanwhile, the control input u(k) is updated every mT seconds, where m>1 is an integer.

I wonder how we can analyze this kind of system, such as its stability, or design control laws. Can anyone introduce related typical methods?

\$\endgroup\$

1 Answer 1

4
\$\begingroup\$

Basically you're doing subsampling in the controller, going from sampling at \$t = Tk\$ to \$t = mTn\$, where \$n\$ is a new sample index. I'm assuming that you're not only driving \$u\$ at time \$mTn\$, but that's the only time you're sampling \$y\$.

If you work this out, you'll see that for any period of samples \$k\$ where \$u(k)\$ is constant, \$x(k)\$ evolves as

$$ \begin{align} x(k) &= A x(k-1) + B u(k-1) \\ &= A^2 x(k-2) + AB u(k-2) + B u(k-1) \\ &= A^3 x(k-3) + A^2 B u(k-3) + ABu(k-2) + Bu(k-1) \\ & \cdots \end{align}$$

So for your new subsampled system, your new state space system is:

$$\begin{align} x(n) &= A^m x(n-1) + \left ( \sum_{p=0}^{m-1} A^p B \right )u(n-1) \\ y(n) &= C x(n) \end{align}$$

So let \$ A_s = A^m\$ and \$B_s = \sum_{p=0}^{m-1} A^p B \$, and do your stability analysis on that.

Note that you can get the same result by making the following matrix:

$$K = \begin{bmatrix} \begin{array}{@{}c|c@{}} A & B \\ \hline 0 & I \end{array} \end{bmatrix}, $$

then raise it to the \$m^{th}\$ power (any decent math package will do this). The result will be

$$K^m = \begin{bmatrix} \begin{array}{@{}c|c@{}} A^m & \sum_{p=0}^{m-1} A^p B \\ \hline 0 & I \end{array} \end{bmatrix}. $$

Then you can extract your \$A_s\$ and \$B_s\$ matrices, and have fun.


Note that you can do a similar thing going from continuous-time to sampled time -- it's just that in this case you're finding the solution to a differential equation instead of a difference equation.

With no proof whatsoever, you're finding

$$\begin{aligned} A_T &= e^{AT} \\ B_T &= \left ( \int_0^T e^{AT} dt \right )B \end{aligned}$$

The second line of this has difficulties when \$A\$ is singular, but you can find them both as

$$K_T = \begin{bmatrix} \begin{array}{@{}c|c@{}} e^{A T} & \sum_{p=0}^{m-1} A^p B \\ \hline 0 & I \end{array} \end{bmatrix} = e^{KT}, $$ where \$K\$ is defined as $$ K = \begin{bmatrix} \begin{array}{@{}c|c@{}} A & B \\ \hline 0 & 0 \end{array} \end{bmatrix}. $$

I'd love to direct you to a demonstration of this -- I found it in the guts of a Matlab function. It's basically the solution to the differential equation that you get when you set u(t) to a constant value in the interval \$t_0 - T < t < t_0\$.

\$\endgroup\$
1
  • \$\begingroup\$ What a great answer, I've wondered about this before \$\endgroup\$
    – Voltage Spike
    Commented Nov 20, 2022 at 5:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.