Is there a way to convert a discrete linear dynamical system to an equivalent continuous one?

890 Views Asked by At

So I'm trying to figure out how to convert a discrete dynamical system of the form (1) x(k+1) = Ax(k) + Bu(k) to an equivalent continuous-time system, that matches the values of the system in (1) at integer timesteps. I know that this can't be done uniquely for general dynamical systems, but can it be done uniquely for linear dynamical systems?

Going from continuous-time to discrete-time is easy, since for x' = Ax + Bu, we have $x(t) = \int_0^t e^{A(t-\tau)}BU(\tau)d\tau$, so then we can obtain $x(t+1) = e^A x(t) + \int_t^{t+1} e^{A(t+1-\tau)}Bu(\tau)d\tau$.

So then going from discrete to continuous when we have u(t)=0 everywhere is also easy, but I'm not sure how to handle things when u(t)=/=0.

Any thoughts? Even if there isn't a unique way, even some reasonable approach would be interesting.

Thanks.

1

There are 1 best solutions below

2
On BEST ANSWER

Assume that we have a discrete time system $$x(k+1)=\bar Ax(k)+\bar Bu(k).$$ I put bars over $A$ and $B$ to distinguish them from the respective matrices in the continuous case.

First, consider the uncontrolled case. We have $\bar A=e^A$, whence $A=\log(\bar A)$. Depending on $\bar A$, the logarithm may or may not exist. Furthermore, even if it exists, it may fail to be real. See Logarithm of a matrix in Wikipedia.

To go a bit farther, assume that a real $A$ exists. Then we need to determine $B$. To do so we assume that the continuous system must agree with the discrete one if the continuous control is obtained by applying a zero-order hold to the discrete samples $u(k)$. That is to say, it should hold that $$\bar B=\int_t^{t+1} e^{A(t+1-\tau)}Bd\tau,$$ whence $$B=(e^A-I)^{-1}A\bar B=(\bar A-I)^{-1}A\bar B.$$ This uniquely determines $B$ as long as the respective inverse exists.