Control Systems/Discrete-Time Stability
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.
An LTI causal system is uniformly BIBO stable if there exists a positive constant L such that the following conditions:
Impulse Response Matrix
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 Function
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.
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:
Poles and Eigenvalues
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.
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.