9.3: Tracking PI Controller Design
- Page ID
- 24431
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Tracking PI Controller Design
The tracking system design by using a feedforward gain to cancel the tracking error is not robust to changes in plant parameters. A robust tracking system design requires addition of an integrator to the feedback loop (Figure 9.3.1).
A proportional-integral (PI) type control law using state feedback is defined as: \[u(t)=-{\bf k}^{T} {\bf x}(t)+k_{i} \int (r-y)\rm dt \nonumber \] where \(k_\rm i\) represents the integral gain. The integrator operates on the error signal: \(e=r-y\). The integral controller forces the error signal to zero in the steady-state.
Let \(x_a (t)\) denote the integrator output; then, the integrator state equation is given as: \[\dot{x}_a =r-y=r-{\bf c}^{T} {\bf x} \nonumber \]
An augmented system model is formed by adding the integrator output to the set of state variables; the resulting model with \(n+1\) variables is described as:
\[\left[\begin{array}{c} {\dot{\bf x}} \\ {\dot{x}_a } \end{array}\right]=\left[\begin{array}{cc} {\bf A} & {0} \\ {-{\bf c}^T } & {0} \end{array}\right]\left[\begin{array}{c} {x} \\ {x_a } \end{array}\right]+\left[\begin{array}{c} {\bf b} \\ {0} \end{array}\right]u+\left[\begin{array}{c} {\bf 0} \\ {1} \end{array}\right]r \nonumber \]
A state feedback control law for the augmented system model is defined as:
\[u=\left[-\begin{array}{cc} {{\bf k}^T } & {k_\rm i } \end{array}\right]\, \left[\begin{array}{c} {\bf x} \\ {x_a } \end{array}\right], \nonumber \]
Substitution of the control law in the augmented system model defines the closed-loop system:
\[\left[\begin{array}{c} {\dot{\bf x}} \\ {\dot{x}_a } \end{array}\right]=\left[\begin{array}{cc} {{\bf A-bk}^T } & {{\bf b}k_{i} } \\ {-{\bf c}^T } & {0} \end{array}\right]\left[\begin{array}{c} {\bf x} \\ {x_a } \end{array}\right]+\left[\begin{array}{c} {\bf 0} \\ {1} \end{array}\right]r \nonumber \]
The closed-loop characteristic polynomial is formed as: \(\Delta _{a} (s)=\left|\begin{array}{cc} {s{\bf I-A+bk}^T } & {-{\bf b}k_{i} } \\ {{\bf c}^T} & {s} \end{array}\right|,\) where \(\bf I\) denotes an identity matrix of order \(n\).
Next, we choose a \((n+1)\)order desired characteristic polynomial, \({\mathit{\Delta}}_{des}\left(s\right)\), and perform the pole placement design on the augmented system. The location of the integrator pole may be adjusted by trial and error keeping in view the desired settling time of the system.
Examples
The state variable model of a mass-spring-damper system is given as:
\[\frac{\rm d}{\rm dt} \left[\begin{array}{c} {x} \\ {v} \end{array}\right]=\left[\begin{array}{cc} {0} & {1} \\ {-10} & {-1} \end{array}\right]\left[\begin{array}{c} {x} \\ {v} \end{array}\right]+\left[\begin{array}{c} {0} \\ {1} \end{array}\right]f, \;\;x=\left[\begin{array}{cc} {1} & {0} \end{array}\right]\left[\begin{array}{c} {x} \\ {v} \end{array}\right] \nonumber \]
It is desired to have less than \(10\%\) overshoot and zero steady-state error to a step input.
In order to perform the integral control design, an augmented state variable model is formed as:
\[\frac{\rm d}{\rm dt} \left[\begin{array}{c} {x} \\ {v} \\ {x_a } \end{array}\right]=\left[\begin{array}{ccc} {0} & {1} & {0} \\ {-10} & {-1} & {0} \\ {-1} & {0} & {0} \end{array}\right]\left[\begin{array}{c} {x} \\ {v} \\ {x_a } \end{array}\right]+\left[\begin{array}{c} {0} \\ {1} \\ {0} \end{array}\right]u+\left[\begin{array}{c} {0} \\ {0} \\ {1} \end{array}\right]r. \nonumber \]
The control law for the augmented system is given as: \(u=-k_{1} x-k_{2} v+k_{i} \int (r-x)\rm dt\).
The closed-loop system characteristic polynomial is formed as: \(\Delta (s)=s^{3} +(k_{2} +1)s^{2} +(k_{1} +10)s+k_{i} .\) Let a third-order desired characteristic polynomial be selected as: \(\Delta _{\rm des} (s)=(s+2)(s^{2} +4s+10)\).
By comparing the polynomial coefficients, the controller gains are obtained as: \(k_{1} =8,k_{2} =5,\; k_{i} =20.\) The resulting control law is given as: \(f=-8x-5v+20\int \left(r-y\right)dt\).
The step response of the closed-loop system is shown in Fig. 9.3.1 for three different values of integral gain.
The state variable model of a DC motor is given as:
\[\frac{\rm d}{\rm dt} \left[\begin{array}{c} {i_a } \\ {\omega } \end{array}\right]=\left[\begin{array}{cc} {-100} & {-5} \\ {5} & {-10} \end{array}\right]\left[\begin{array}{c} {i_a} \\ {\omega } \end{array}\right]+\left[\begin{array}{c} {100} \\ {0} \end{array}\right]V_a , \;\;\omega =\left[\begin{array}{cc} {0} & {1} \end{array}\right]\left[\begin{array}{c} {i_a } \\ {\omega } \end{array}\right] \nonumber \]
Assume that design specifications call for a low overshoot to step response and a settling time, \(t_s\cong 0.1 \rm s\).
The control law for the tracking PI controller is given as: \(u=-k_{1} i_{a} -k_{2} \omega +k_{i} \int (r-\omega )\rm dt\).
The augmented system model for pole placement using integral control is obtained as:
\[\frac{\rm d}{\rm dt} \left[\begin{array}{c} {i_a } \\ {\omega } \\ {x_a } \end{array}\right]=\left[\begin{array}{ccc} {-100} & {-5} & {0} \\ {5} & {-10} & {0} \\ {0} & {-1} & {0} \end{array}\right]\left[\begin{array}{c} {i_a } \\ {\omega } \\ {x_a } \end{array}\right]+\left[\begin{array}{c} {100} \\ {0} \\ {0} \end{array}\right]u+\left[\begin{array}{c} {0} \\ {0} \\ {1} \end{array}\right]r \nonumber \]
The resulting characteristic polynomial is given as:
\[\Delta (s)=s^{3} +\left(100k_{1} +100\right)s^{2} +\left(1000k_{1} +500k_{2} +1025\right)s-500k_{i} . \nonumber \]
We choose a desired characteristic polynomial as: \({\mathit{\Delta}}_{des}\left(s\right)=\left(s+50\right)\left(s^2+100s+5,000\right)\). The closed-loop roots are located at: \(s=\; -50,\; -50\pm j50\).
The tracking controller is defined as: \(V_a\left(s\right)=-0.4\,i_a(t)-17.2\,\omega (t)+500\int (r-\omega )dt\).
For comparison a cascade PI controller for the transfer function model of the DC motor is designed for \(\zeta=0.7\). The PI controller is given as: \(K(s)=\frac{10(s+10)}{s}\). The closed-loop roots are placed at: \(s=-9.94, -50\pm j50.3\).
The step response of the closed-loop system for the tracking and cascade PI controllers is shown in Fig. 9.3.2. Both controllers achieve the desired settling time.