# Control Systems/Discrete-Time Stability

## Discrete-Time StabilityEdit

The 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 StabilityEdit

### Uniform StabilityEdit

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

imply that

### Impulse Response MatrixEdit

We 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 FunctionEdit

A 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 StabilityEdit

There 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 EigenvaluesEdit

Every 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 WordlengthsEdit

Digital 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.