Library / Control engineering / CTL-22
Control engineering
Zero-order-hold discretisation of a first-order plant
Discrete-time model of a first-order plant when its input is held constant over each sample interval.
- Ref
- CTL-22
- Rev
- v1
- Field
- Control engineering
- Result
- Ad
If the input is held constant over each sample interval, the exact discrete-time model of ẋ = −ax + bu is x[k+1] = Adx[k] + Bdu[k] with Ad = e−aTs and Bd = (b/a)(1 − e−aTs). The continuous pole at −a maps to the discrete pole Ad, which lies inside the unit circle for any positive a and any sample interval. Here Ad is the output and Bd is shown among the derived results.
Discrete-time model of a first-order plant when its input is held constant over each sample interval. For the plant ẋ = −ax + bu the model is x[k+1] = Adx[k] + Bdu[k].
Calculator
- Input coefficient, Bd = (b/a)(1 − Ad)0.09063
- Discrete DC gain, Bd / (1 − Ad)0.5
- Plant time constant in samples, 1/(aTs)5 samples
What drives the result
Each variable is moved across its typical range while the others stay at the values above. The longest bar is the key driver.
- At the defaults x[k+1] = 0.8187 x[k] + 0.09063 u[k]. The discrete DC gain Bd/(1 − Ad) is 0.5, the same as the continuous DC gain b/a, as it should be.
- The plant time constant is 5 samples long. Sampling as slowly as one time constant (Ts = 0.5 s) would give Ad = 0.3679.
Chart data as tables
Ranked variables
| Variable | Typical range | Lowest result | Highest result | Swing () | Local step | Change in result |
|---|---|---|---|---|---|---|
| Ts Sample interval | 0.01 to 0.5 s | 0.3679 | 0.9802 | 0.6123 | +10% | −1.98 % |
| a Plant decay rate a | 0.5 to 10 1/s | 0.3679 | 0.9512 | 0.5833 | +10% | −1.98 % |
| b Input gain b | 0.5 to 5 1/s | 0.8187 | 0.8187 | 0 | +10% | 0 % |
Sweep of Sample interval
| Sample interval (s) | Discrete state coefficient |
|---|---|
| 0.01 | 0.9802 |
| 0.07125 | 0.8672 |
| 0.1325 | 0.7672 |
| 0.1938 | 0.6788 |
| 0.255 | 0.6005 |
| 0.3163 | 0.5313 |
| 0.3775 | 0.47 |
| 0.4387 | 0.4158 |
| 0.5 | 0.3679 |
Sweep one variable
Variables and how each one contributes
Discrete state coefficient
What the equation gives you. Everything else feeds it.
Plant decay rate a
The decay rate of the plant in 1/s: its time constant is 1/a. A faster plant decays more in each sample, so Ad is smaller. Raising it by 10 % (to 2.2) moves the result by −1.98 %, from 0.8187 to 0.8025.
Input gain b
The input gain in 1/s. No effect on Ad, which depends on a and Ts only. It scales Bd: 1 gives Bd = 0.09063 at the defaults.
Sample interval
The sample interval in s. A longer interval lets more of the state decay between samples, so Ad falls. Raising it by 10 % (to 0.11) moves the result by −1.98 %, from 0.8187 to 0.8025.
Worked example with the values above
- Exponent: aTs = 2 × 0.1 = 0.2, so Ad = e−0.2 = 0.8187.
- Input coefficient: Bd = (b/a)(1 − Ad) = (1/2) × (1 − 0.8187) = 0.09063.
- The model is x[k+1] = 0.8187 x[k] + 0.09063 u[k].
Assumptions and limits
- A first-order plant with a constant input held over each sample (a zero-order hold) and a constant sample interval.
- No delay between sampling and the update of the input.
Common mistakes
- Using the forward-Euler approximation Ad ≈ 1 − aTs for a long sample interval. It becomes unstable when aTs exceeds 2, while the exact value stays stable.
- Using the formula when the input is not held, for example a signal interpolated between samples. The result is then an approximation.
Statistics and uncertainty
Ad is an exponential of the product aTs, so a relative error in a gives a relative error of aTs times as much in Ad (and the opposite sign). At the defaults aTs = 0.2, so a 10 % error in a changes Ad by about 2 %. Jitter in the sample interval has the same effect. With very slow sampling Ad is close to zero, and the model barely depends on a at all.
Where it is used
- Turning a continuous model into the difference equation used in a digital controller or simulation.
- Checking that a sample rate is fast enough compared with the plant's time constant.
Maths you need
- Exponential decay: e^(−at) for a first-order plant
- Difference equations: x[k+1] in terms of x[k] and u[k]