Skip to main content

Series programming of a digital controller

Short answer

Factor G(z) into first- and second-order sections: G1=(1-z^{-1})/(1+0.1z^{-1}) and G2=4(1+1.2z^{-1}+z^{-2})/(1-0.3z^{-1}+0.8z^{-2}). Cascade with standard programming, using intermediate variables w1(k)=x(k)-0.1w1(k-1), y1(k)=w1(k)-w1(k-1), and w2(k)=y1(k)+0.3w2(k-1)-0.8w2(k-2), y(k)=4[w2(k)+1.2w2(k-1)+w2(k-2)]. Requires three delay elements.

Realize the given digital controller by series programming: G(z)=4(z-1)(z²+1.2z+1)/((z+0.1)(z²-0.3z+0.8)).

In series (cascade) programming, G(z)G(z) is factored into first- and second-order sections. Each section is realized by standard programming, and the sections are connected in cascade.

Step 1: Factor into sections (divide each factor by the highest power of zz)

G(z)=4⋅1−z−11+0.1z−1⏟G1(z)⋅1+1.2z−1+z−21−0.3z−1+0.8z−2⏟G2(z)G(z) = 4\cdot\underbrace{\frac{1 - z^{-1}}{1 + 0.1z^{-1}}}_{G_1(z)}\cdot\underbrace{\frac{1 + 1.2z^{-1} + z^{-2}}{1 - 0.3z^{-1} + 0.8z^{-2}}}_{G_2(z)}

Step 2: Difference equations

Section 1: G1=Y1/XG_1 = Y_1/X, with intermediate variable w1w_1:

  • w1(k)=x(k)−0.1w1(k−1)w_1(k) = x(k) - 0.1w_1(k-1)
  • y1(k)=w1(k)−w1(k−1)y_1(k) = w_1(k) - w_1(k-1)

Section 2: input y1y_1, intermediate w2w_2

  • w2(k)=y1(k)+0.3w2(k−1)−0.8w2(k−2)w_2(k) = y_1(k) + 0.3w_2(k-1) - 0.8w_2(k-2)
  • y(k)=4[w2(k)+1.2w2(k−1)+w2(k−2)]y(k) = 4\big[w_2(k) + 1.2w_2(k-1) + w_2(k-2)\big]

Step 3: Block diagram (two standard-programmed sections in cascade)

Section 1, G1(z)G_1(z):

x(k)-->(S)------------o--[1]-------->(S)--> y1(k)
        ^             |               ^
        |          [z^-1]             |
        |             | w1(k-1)       |
        +<[-0.1]------o--[-1]---------+

Section 2, G2(z)G_2(z), followed by the gain 4:

y1(k)-->(S)------------o--[1]-------->(S)->[4]-> y(k)
         ^             |               ^
         |          [z^-1]             |
         |             | w2(k-1)       |
        (S)<[0.3]------o--[1.2]------>(S)
         ^             |               ^
         |          [z^-1]             |
         |             | w2(k-2)       |
         +<[-0.8]------o--[1]----------+

The realization uses only 1+2=31 + 2 = 3 delay elements, the minimum for a third-order filter. The overall gain 4 can be placed at either end.

Why series programming

  • A coefficient error in one section moves only that section's poles and zeros. The structure is less sensitive to coefficient quantization than direct programming of the whole third-order polynomial.
  • The complex poles z=0.15±j0.882z = 0.15 \pm j0.882 (with ∣z∣=0.894|z| = 0.894) are kept together in one real-coefficient second-order section.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Control System chapter 4 questions →