3.4: Rate Feedback Controllers
- Page ID
- 28513
\( \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}\)Rate Feedback Controllers
Rate feedback signal is often available from a tachometer or a rate gyro in position control applications. The signal can be employed to improve the response of the feedback control system.
The basic rate feedback configuration (Figure 3.4.1) includes a rate constant \(k_f\) that multiplies the velocity signal together with a static controller, \(K\), in the loop.
The closed-loop transfer function for the rate feedback configuration can be obtained by applying Mason’s gain rule, originally defined for signal flow graphs. For simple block diagrams, the gain rule is stated as:
\[\frac{y\left(s\right)}{r\left(s\right)}=\frac{F(s)}{1-\sum L_i(s)} \nonumber \]
where \(F(s)\) denotes the forward path gain from an input node to an output node, and \(\sum L_i(s)\) denotes sum of the loop gains.

Rate Feedback as PD Controller
The effective loop gain in the case or rate feedback configuration with a static controller is computed as:
\[\sum L_i\left(s\right)=-G\left(s\right)\left(k_fs+K\right) \nonumber \]
The loop gain includes a plant transfer function in cascade with a PD controller, where the controller zero is located at: \(s=-\frac{K}{k_f}\). Hence rate feedback configuration is identical to placing a PD controller in the loop.
Let \(G\left(s\right)=\frac{n\left(s\right)}{d\left(s\right)};\) then, the closed-loop transfer function is obtained as:
\[\frac{y\left(s\right)}{r\left(s\right)}=\frac{Kn\left(s\right)}{d\left(s\right)+\left(k_fs+K\right)n\left(s\right)}, \nonumber \]
The resulting closed-loop characteristic polynomial is given as:
\[\mathit{\Delta}\left(s\right)=d\left(s\right)+\left(k_fs+K\right)n\left(s\right) \nonumber \]
By using simple block diagram manipulation, the rate feedback configuration (Figure 3.4.1) can be equivalently represented as a feedback control system with a PD controller in the feedback path (Figure 3.4.2).

The transfer function of a mass–spring–damper system is given as: \(G\left(s\right)=\frac{1}{ms^2+bs+k}\). The following parameter values are assumed: \(m=1,b=2,\ and\ k=10\). It is desired to improve the transient response using rate feedback controller.
The closed-loop characteristic polynomial for the rate feedback configuration is:
\[\mathit{\Delta}\left(s\right)=s^2+\left(k_f+2\right)s+K+10 \nonumber \]
We assume that a desired characteristic polynomial is selected as: \({\mathit{\Delta}}_{des}\left(s\right)=\left(s^2+6s+25\right)\).
By comparing the polynomial coefficients, the required controller gains are obtained as: \(K=15,\ \ k_f=4\). The unit-step response of the closed-loop system is shown in Figure 3.4.3.

Rate Feedback as PID Controller
The rate feedback can be used in conjunction with a PI controller to effectively implement a PID controller. A rate feedback controller with cascade PID controller is shown in Figure 3.4.4.

Let the cascade PI controller be defined as: \(K_{PI}\left(s\right)=K+\frac{k_i}{s}\); then, using gain rule (3.4.1), the effective loop gain is obtained as:
\[\sum L_i\left(s\right)=-\left(K+\frac{k_i}{s}+k_fs\right)G\left(s\right) \nonumber \]
Hence using a cascade PI controller with rate feedback amounts to placing a PID controller in the feedback loop (Figure 3.4.5).
Assuming a plant transfer function: \(G\left(s\right)=\frac{n\left(s\right)}{d\left(s\right)},\) the closed-loop transfer function is obtained as:
\[\frac{y\left(s\right)}{r\left(s\right)}=\frac{\left(Ks+k_i\right)n\left(s\right)}{sd\left(s\right)+\left(k_fs^2+Ks+ki\right)n\left(s\right)}, \nonumber \]
The resulting closed-loop characteristic polynomial is given as:
\[\mathit{\Delta}\left(s\right)=sd\left(s\right)+\left(k_fs^2+Ks+k_i\right)n\left(s\right) \nonumber \]

The transfer function of a mass–spring–damper system is given as: \(G\left(s\right)=\frac{1}{ms^2+bs+k}\). The following parameter values are assumed: \(m=1,b=2,\ and\ k=10\). It is desired to improve the transient as well as steady-state response using rate feedback with cascade PI controller.
The closed-loop characteristic polynomial for the rate feedback configuration with cascade PI controller is given as:
\[\mathit{\Delta}\left(s\right)=s^3+\left(k_f+2\right)s^2+\left(K+10\right)s+k_i. \nonumber \]
We assume that a desired closed-loop characteristic polynomial is selected as: \({\mathit{\Delta}}_{des}\left(s\right)=\left(s^2+10s+25\right)\left(s+5\right)\).
Then, by comparing the polynomial coefficients, the controller gains are obtained as: \(k_f=13,\ \ K=65,\ \ and\ k_i=125\). The unit-step response of the closed-loop system is shown in Figure 3.4.6.

By comparing the step responses in Examples 3.4.1 and 3.4.2, we observe that:
- The rate feedback with cascade PI controller has a higher (\(18\%\)) overshoot compared to rate feedback with static controller (\(12\%\)).
- The rate feedback with cascade PI controller has a smaller rise time (\(0.3\,sec\)) compared to rate feedback with static controller (about \(0.5\,sec\)).
- The rate feedback with cascade PI controller has no steady-state error compared to (\(40\%\)) error in the case of rate feedback with static controller.
- The step response in both cases settles in about \(1.5\,sec\).