Part 11 - Design of controllers (2)

Table of Contents

PD-controller

Given that u(t)=Kp(e(t)+Tde˙(t))u(t) = K_p(e(t) + T_d \dot{e}(t))

In the ss-domain, the PD controller is:

FPD(s)=U(s)E(s)=Kp(1+Tds)F_{PD}(s) = \dfrac{U(s)}{E(s)} = K_p(1 + T_d s)

PD-controller are often paired with low-pass filters (LP), so that e˙(t)\dot{e}(t) doesn’t become to large.

FPD(s)=Kp(1+Tds1+Tfs)=Kp(1+(Td+Tf)s1+Tfs)=Kp(1+τds1+τdbs)  τd=Td+Tf,b=Td+TfTf\begin{align*} F_{PD}(s) & = K_p(1 + \dfrac{T_d s}{1 + T_f s}) \newline & = K_p(\dfrac{1 + (T_d + T_f) s}{1 + T_f s}) \newline & = K_p(\dfrac{1 + \tau_d s}{1 + \frac{\tau_d}{b} s}) \ | \ \tau_d = T_d + T_f, b = \frac{T_d + T_f}{T_f} \end{align*}

This means that:

F(jω)=Kp(1+τdjω1+τdbjω)F(j\omega) = K_p(\dfrac{1 + \tau_d j \omega}{1 + \frac{\tau_d}{b} j\omega}) ωmax=bτd  if we choose ωc=bτd\omega_{max} = \dfrac{\sqrt{b}}{\tau_d} \ | \ \text{if we choose } \omega_c = \dfrac{\sqrt{b}}{\tau_d} arg(L(jω))=arg(FPD(jω))+arg(G(jω))arg(L(j\omega)) = arg(F_{PD}(j\omega)) + arg(G(j\omega)) ϕmax=arg(FPD(jω))=arctan(τdbτd)arctan(τdbbτd)=arctan(b)arctan(1b)\begin{align*} \phi_{max} & = arg(F_{PD}(j\omega)) \newline & = arctan(\tau_d \cdot \frac{\sqrt{b}}{\tau_d}) - arctan(\frac{\tau_d}{b} \cdot \frac{\sqrt{b}}{\tau_d}) \newline & = arctan(\sqrt{b}) - arctan(\frac{1}{\sqrt{b}}) \end{align*} b==1+sin(ϕmax)1sin(ϕmax)b = \ldots = \dfrac{1 + sin(\phi_{max})}{1 - sin(\phi_{max})}
Example 1G(s)=2ss(1+s)2,ϕm=50,ωc=0.5G(s) = \dfrac{2 - s}{s(1 + s)^2}, \phi_m = 50^\circ, \omega_c = 0.5

Design a PD-controller

FPD(s)=Kp1+τds1+τdbsF_{PD}(s) = K_p \dfrac{1 + \tau_d s}{1 + \frac{\tau_d}{b} s}ϕmax=50180arg(G(jωc))=50180(arctan(ωc2)902arctan(ωc))=27\begin{align*} \phi_{max} & = 50^\circ - 180^\circ - arg(G(j\omega_c)) \newline & = 50^\circ - 180^\circ - (arctan(\frac{\omega_c}{2}) - 90^\circ - 2 arctan(\omega_c)) \newline & = 27^\circ \end{align*}b=1+sin(ϕmax)1sin(ϕmax)=2.66b = \dfrac{1 + sin(\phi_{max})}{1 - sin(\phi_{max})} = 2.66τd=bωc=3.26\tau_d = \dfrac{\sqrt{b}}{\omega_c} = 3.26F(jωc)G(jωc)=1|F(j\omega_c)||G(j\omega_c)| = 1Kp12+(τdωc)212+(τdbωc)222+(ωc)2ωc(12+ωc2)2=1K_p \cdot \dfrac{\sqrt{1^2 + (\tau_d \cdot \omega_c)^2}}{\sqrt{1^2 + (\frac{\tau_d}{b} \cdot \omega_c)^2}} \cdot \dfrac{\sqrt{2^2 + (-\omega_c)^2}}{\omega_c (\sqrt{1^2 + \omega_c^2})^2} = 1Kp=0.186K_p = 0.186
Algorithm (Ziegler-Nichols method)
  1. Set up the controller as a pure P-controller (Ti=,Td=0T_i = \infty, T_d = 0).

  2. Increase KpK_p until self-oscillation occurs, let Kp=K0K_p = K_0 and the period be T0T_0.

Then, approximately:

Table 1: Ziegler-Nichols controller tuning rules.
KpK_p TiT_i TdT_d
P-controller 0.5K00.5K_0 - -
PI-controller 0.45K00.45K_0 0.85T00.85T_0 -
PID-controller 0.6K00.6K_0 0.5T00.5T_0 0.125T00.125 T_0