# Control Systems/Discrete-Time Stability

## Discrete-Time Stability

editThe stability analysis of a discrete-time or digital system is similar to the analysis for a continuous time system. However, there are enough differences that it warrants a separate chapter.

## Input-Output Stability

edit### Uniform Stability

editAn LTI causal system is uniformly BIBO stable if there exists a positive constant L such that the following conditions:

imply that

### Impulse Response Matrix

editWe can define the **impulse response matrix** of a discrete-time system as:

[Impulse Response Matrix]

Or, in the general time-varying case:

A digital system is BIBO stable if and only if there exists a positive constant *L* such that for all non-negative *k*:

## Stability of Transfer Function

editA MIMO discrete-time system is BIBO stable if and only if every pole of every transfer function in the transfer function matrix has a magnitude less than 1. All poles of all transfer functions must exist inside the unit circle on the Z plane.

## Lyapunov Stability

editThere is a discrete version of the Lyapunov stability theorem that applies to digital systems. Given the **discrete Lyapunov equation**:

[Digital Lypapunov Equation]

We can use this version of the Lyapunov equation to define a condition for stability in discrete-time systems:

- Lyapunov Stability Theorem (Digital Systems)
- A digital system with the system matrix A is asymptotically stable if and only if there exists a unique matrix M that satisfies the Lyapunov Equation for every positive definite matrix N.

## Poles and Eigenvalues

editEvery pole of G(z) is an eigenvalue of the system matrix A. Not every eigenvalue of A is a pole of G(z). Like the poles of the transfer function, all the eigenvalues of the system matrix must have magnitudes less than 1. Mathematically:

If the magnitude of the eigenvalues of the system matrix A, or the poles of the transfer functions are greater than 1, the system is unstable.

## Finite Wordlengths

editDigital computer systems have an inherent problem because implementable computer systems have finite wordlengths to deal with. Some of the issues are:

- Real numbers can only be represented with a finite precision. Typically, a computer system can only accurately represent a number to a finite number of decimal points.
- Because of the fact above, computer systems with feedback can compound errors with each program iteration. Small errors in one step of an algorithm can lead to large errors later in the program.
- Integer numbers in computer systems have finite lengths. Because of this, integer numbers will either
**roll-over**, or**saturate**, depending on the design of the computer system. Both situations can create inaccurate results.