# Discretize this continuous time linear system

## Homework Statement

I need to find the discrete time equivalent of the following system:
$\begin{bmatrix} \ddot{x} \\ \dot{x} \\ \ddot{\theta} \\ \dot{\theta} \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 & 4.2042857 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 105.1071428 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} \dot{x} \\ x \\ \dot{\theta} \\ \theta \end{bmatrix}$
this can be written as
$\vec{\dot{x}} = A \vec{x}$
This requires that I find the matrix exponential of "A".

## Homework Equations

The discrete time equivalent matrix, $A_k$, is computed as
$A_k = e^{A \tau}$
where $\tau$ is the sampling period of the discrete time system.

## The Attempt at a Solution

I tried to diagonalize the A matrix by pre- and post-multiplying by its matrix of eigenvectors, but said matrix seems like it might be singular which means I can't diagonalize the A matrix. The A matrix is not full rank, and I don't know if this is why it's causing me problems. I read somehwere that a matrix can only be diagonalized if it has non-repeating eigenvalues, and mine has two zero eigenvalues, so is this why it won't work? If not, how can I transform my system into a system that can be discretized?

StoneTemplePython
Gold Member

## Homework Statement

I need to find the discrete time equivalent of the following system:
$\begin{bmatrix} \ddot{x} \\ \dot{x} \\ \ddot{\theta} \\ \dot{\theta} \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 & 4.2042857 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 105.1071428 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} \dot{x} \\ x \\ \dot{\theta} \\ \theta \end{bmatrix}$
this can be written as
$\vec{\dot{x}} = A \vec{x}$
This requires that I find the matrix exponential of "A".

## Homework Equations

The discrete time equivalent matrix, $A_k$, is computed as
$A_k = e^{A \tau}$
where $\tau$ is the sampling period of the discrete time system.

Are you sure you've written ##\mathbf A## correctly? I find it odd that the second column is all zeros both from a general modelling standpoint, and because where would normally be a one there in column 2, 2nd to bottom row, if this is a companion matrix or companion system.

## The Attempt at a Solution

I tried to diagonalize the A matrix by pre- and post-multiplying by its matrix of eigenvectors, but said matrix seems like it might be singular which means I can't diagonalize the A matrix. The A matrix is not full rank, and I don't know if this is why it's causing me problems

I'm not sure what this means. It's not uncommon for people on these forums to confuse rank of the matrix and the rank of the collection of eigenvectors.

I read somehwere that a matrix can only be diagonalized if it has non-repeating eigenvalues

This is a big deal and is wrong. Having all eigenvalues unique (with scalars in ##\mathbb C##) is a guarantee that you can diagonalize the matrix. You can still diagonalize a lot of matrices that don't have this guarantee (most notably every single normal matrix, of which Hermitian are a special kind, of which real symmetric are an even more special kind).

An interesting feature of companion matrices specifically is that they are only diagonalizable if and only if all eigenvalues are unique -- but your ##\mathbf A## isn't quite a companion matrix.

mine has two zero eigenvalues, so is this why it won't work? If not, how can I transform my system into a system that can be discretized?

I can eyeball your matrix ##\mathbf A## as is and see it has rank 3. So there is one non-zero vector in its nullspace (i.e. one eigenvector with eigenvalue of zero). Supposing your ##\mathbf A## is correct, then yes, this is the problem and why your matrix is defective (i.e. geometric multiplicity of eigenvectors is less than algebraic multiplicity of eigenvalues -- the zero in this case).

A couple thoughts:
Do you know the power series for the exponential function? What happens if you apply the power series into 3 distinct partitions i.e. (1) power series for portion related to ##\lambda_1 \gt 0##, (2) portion for ##\lambda_2 = -\lambda_1## and (3) portion for the two eigs = 0. What sort of simplifications can you do here? The first two should be somewhat straightforward. For the third, you may need to look up 'nilpotent' matrix.

edit:
it may be instructive to look at

##\text{rank}\big(\mathbf A\big)##
vs
##\text{rank}\big(\mathbf A^2\big)##
vs
##\text{rank}\big(\mathbf A^3\big)##
vs
##\text{rank}\big(\mathbf A^4\big)##

This should give you a feel for what is going on with all of this talk about a nilpotent or defective matrix.

Last edited:
StoneTemplePython
Gold Member
to further simplify this, for now consider rescaling your matrix ##\mathbf A##. In particular divide everything by ##\lambda_1##. So ##\mathbf B := \frac{1}{\lambda_1}\mathbf A##

You should notice that

##\mathbf B^3 = \mathbf B^5 = \mathbf B^7 = \mathbf B^9 ...##

and

##-\mathbf B^3 = \mathbf B^4 = \mathbf B^6 = \mathbf B^8 = ... ##

We could restate this in terms of Cayley Hamilton if you want, but try to work through the implications of the power series of

##e^{\mathbf B}##

- - - -

Step two:

After all that is done, consider the fact that for commuting matrices the exponential function behaves the same way as it does for 'regular numbers'.

so

##e^{\lambda_1 \mathbf I}e^{\mathbf B} = e^{\lambda_1 \mathbf I \mathbf B} = e^{\lambda_1 \mathbf B} = e^{\mathbf A} ##

where ##e^{\lambda_1 \mathbf I}## should be very easy to find