Helicopter Hover Example

From ControlTheoryPro.com

Jump to: navigation, search
Helicopter Hover Example
Green carrot left.gif
All Examples
Green carrot.jpg
In order to prevent spam, users must register before they can edit or create articles.


1 Introduction to Helicopter Hover Modeling and Control

Figure 1: The UH-60 Black Hawk

This example comes from a Master's Thesis by Chen-I Lim at Arizona State University.[1]

The example is of a UH-60 Blackhawk helicopter. The 3 Degree of Freedom (DOF) model consists of vertical, longitudinal, and backflapping dynamics. At hover, the vertical and longitudinal (or horizontal) dymanics are decoupled.

The first part of this example lays out the dynamics and control laws. The second part of this example demonstrates how to use feedforward sensors to generate automated commands to maintain hover.

2 Example: 3-DOF UH-60 Blackhawk Model and Control Laws

The standard block diagram, in Figure 2, accurately describes the Blackhawk system to be controlled.

Figure 2: Block Diagram for helicopter example

2.1 Parameters

Near hover the parameters in Table 1 are valid.

Table 1: Blackhawk Aerodynamic Coefficients Near Hovering Trim
Parameters Value Units Description

LaTeX: Z_{\theta_{c}}


LaTeX: \frac{ft}{deg sec^2}

Control Derivative

LaTeX: Z_w


LaTeX: sec^{-1}

an Aerodynamic derivative

LaTeX: g


LaTeX: ft sec^{-2}


LaTeX: X_u


LaTeX: \frac{ft sec^-2}{sec^-1}

an Aerodynamic derivative

LaTeX: M_q


LaTeX: \frac{deg sec^{-2}}{deg sec^{-1}}

an Aerodynamic derivative

LaTeX: X_{Blc}


LaTeX: \frac{ft sec^{-2}}{deg}

Control derivative

LaTeX: M_u


LaTeX: \frac{deg sec^{-2}}{ft sec^{-1}}

an Aerodynamic derivative

LaTeX: M_{Blc}


LaTeX: \frac{deg sec^{-2}}{deg}

Control derivative

2.2 Vertical Dynamics

The veritcal dynamics are dependent on the vertical altitude and the collective pitch. Specifically

LaTeX: \frac{z}{\Theta_c}=\frac{Z_{\Theta_c}}{s\left(s+Z_w\right)} 1


LaTeX: z is vertical altitude and
LaTeX: \Theta_c is the collective pitch control

2.3 Helicopter Longitudinal Dynamics

The longitudinal dynamics near hover are dependent on the horizontal speed, pitch attitude, and cyclic pitch control. Specifically the horizontal speed is described by

LaTeX: \frac{\dot{x}}{B_{lc}}=X_{Blc}
\end{bmatrix} 2


LaTeX: \dot{x} is the horizontal speed in LaTeX: \frac{ft}{sec} and
LaTeX: B_{lc} is the cyclic pitch control in LaTeX: deg.

And the pitch attitude is described by

LaTeX: \frac{\theta}{B_{lc}}=M_{Blc}
\end{bmatrix} 3


LaTeX: \theta is the pitch attitude in LaTeX: deg.

2.3.1 At an operating point near hover

Figure 3: Plant Tranfer Functions

In reality the horizontal speed is dependent on the pitch attitude. However, near hover the force due to the rotor is perpendicular to the horizontal plane. This means the contribution due to pitch attitude is approximately 0. After inserting the appropriate values from Table 1 into Eqns. 2 and 3 we acquire Eqns 4 and 5 respectively.

LaTeX: \frac{\dot{x}}{B_{lc}}=\frac{27.4s^2+84.94s+1525}{s^3+3.16s^2+0.186s+1.324} 4

LaTeX: \frac{\theta}{B_{lc}}=\frac{-47.24s-1.711}{s^3+3.16s^2+0.186s+1.324} 5

2.4 Feedback Sensor

In this example the feedback sensor is not explicitly described. However, in the discussion on controllers Figures 5 and 6 will show a block in the sensor spot. This "sensor" has a transfer function of

LaTeX: H\left(s\right)=\frac{2500\left(s+b\right)^2}{\left(s+50\right)^2b^2}=\frac{50^2}{\left(s+50\right)^2}\frac{\left(s+b\right)^2}{b^2} 6

This suggests that the sensor is made up of two parts:

LaTeX: \frac{\omega_n^2}{s^2+2\zeta\omega_n+\omega_n^2}


LaTeX: \omega_n, the natural frequency is 50 and
LaTeX: \zeta, the damping, is 0.

The second part of the sensor is

LaTeX: \frac{\left(s+b\right)^2}{b^2}

and looks like a filter.

The thesis does not provide units for LaTeX: \omega_n or LaTeX: b. Since MATLAB assumes frequency values are provided in rad/s I assume that values for LaTeX: \omega_n and LaTeX: b are provided in rad/s.

The combination of the two parts leads to a transfer function with a phase that resembles a lead filter. The combined magnitude appears to be unity magnitude with a derivative below 1 Hz.

Figure 4: Blackhawk Sensor

2.5 Controller

The basic notion of hovering is that the helicopter stays in one place. A more rigorous description is that the acceleration and velocity in all three aces of the helicopter must be approximately 0. Depending on the definition of hover, some vertical motion could be tolerated but that veritcal motion must be controlled, intentional motion.

The thesis describes a horizontal instability due to rotor backflapping. This backflapping instability demands the design of a flight control system in order to make the helicopter more maneuverable and reduce the workload on the pilot.

Helicopter flight controls are complex systems. The thesis describes three controllers

  1. altitude-hold
  2. pitch-attitude-hold
  3. horizontal speed-hold

2.5.1 Altitude-Hold Controller

The altitude-hold controller is a simple proportional gain controller based on the altitude error.

LaTeX: \Theta_c=k_v\left(z_c-z\right) 7


LaTeX: z_c is the commanded or reference altitude in LaTeX: ft and
LaTeX: k_v \ge 0 is the vertical altitude proportional gain constant.

2.5.2 Pitch-Attitude-Hold Controller

To hover requires that the pitch remain constant. In the presence of wind the helicopter may require a nonzero pitch attitude to maintain hover, i.e. it must point into a stiff wind in order to stay in one place. Figure 5 shows the block diagram for this controller.

Figure 5: Blackhawk Helicopter Horizontal Pitch-Hold

LaTeX: B_{lc}=\begin{bmatrix}\frac{k_{\theta}}{s}\end{bmatrix}\left(\theta_c-\begin{bmatrix}\frac{50^2\left(s+b\right)^2}{\left(s+50\right)^2b^2}\end{bmatrix}\theta\right) 8


LaTeX: \theta is the true pitch attitude in LaTeX: radians,
LaTeX: \theta_c is the commanded pitch attitude in LaTeX: radians,
LaTeX: b is a control design parameter, and
LaTeX: k_{\theta} \le 0 is the pitch attitude proportional gain constant.

Good low-frequency pitch attitude command following of step commands is provided by

LaTeX: b=2.0 and
LaTeX: k_{\theta}=-1.

2.5.3 Horizontal Speed-Hold Controller

Obviously, uncontrolled horizontal motion is undesirable. It could be dangerous to maintain a constant vertical altitude and pitch attitude while sliding uncontrollably side-to-side. So a controller must be designed and Figure 6 shows the block diagram for the horizontal speed.

Figure 6: Blackhawk Helicopter Horizontal Pitch Speed-Hold
LaTeX: B_{lc}=\begin{bmatrix}\frac{k_h\left(s+a\right)}{s}\end{bmatrix}\left(\dot{x}_c-\begin{bmatrix}\frac{50^2\left(s+b\right)^2}{\left(s+50\right)^2b^2}\end{bmatrix}\dot{x}\right) 9


LaTeX: \dot{x} denotes the commanded horizontal speed in LaTeX: \frac{ft}{sec} and
LaTeX: k_h \ge 0 is a control design parameter referred to as the horizontal speed proportional gain constant.

The thesis states the following parameters make for a good controller:

LaTeX: a=2.5
LaTeX: b=1
LaTeX: k_h=0.0005

3 Notes on the thesis

I'm (Gabe) currently working through this example. My first hiccup is that when I formed the pitch attitude and horizontal speed plant transfer functions they were different. The thesis stated that the resulting transfer function had units of degrees and the inputs were provided in degrees. However, to get the transfer functions presented in the thesis all the constants with units of degree must be converted to radians.

Table 3: Blackhawk Aerodynamic Coefficients Near Hovering Trim Converted to Radians
Parameters Value Degrees Value Radians

LaTeX: Z_{\theta_{c}}


LaTeX: \frac{ft}{deg sec^2}


LaTeX: \frac{ft}{rad sec^2}

LaTeX: X_{Blc}


LaTeX: \frac{ft sec^{-2}}{deg}


LaTeX: \frac{ft sec^{-2}}{rad}

LaTeX: M_u


LaTeX: \frac{deg sec^{-2}}{ft sec^{-1}}


LaTeX: \frac{rad sec^{-2}}{ft sec^{-1}}


  • The conversion from degrees to radians is LaTeX: \frac{180}{\pi} \frac{deg}{rad}.
  • There are a couple of other parameters with degrees in the units but degrees are in the numerator and denominator so they cancel and so does the units conversion.

3.1 Unstable Plant

Using MATLAB's pole and zero commands I was able to obtain the poles and zeros for the 3 plant transfer functions. The vertical altitude plant is stable but the horizontal speed and pitch attitude plants are not.

Table 4: Plant Poles and Zeros
Plant Poles Zeros

LaTeX: \frac{z}{\Theta_c}

0, 0.3460


LaTeX: \frac{\dot{x}}{B_{lc}}

-3.2293, 0.0347 +/- 0.6393i

-1.5500 +/- 7.2994i

LaTeX: \frac{\theta}{B_{lc}}

-3.2293, 0.0347 +/- 0.6393i


Note: The i denotes a value on the imaginary axis.

3.1.1 Examination of the Unstable Plant

The dominant dynamics of the system are the 2 unstable poles. If we ignore the stable pole, then the resulting plant can be viewed as a standard 2nd order system.

LaTeX: \frac{\omega_n^2}{s^2+2\zeta\omega_n+\omega_n^2} 10


LaTeX: \omega_n=0.6402 is natural frequency and
LaTeX: \zeta=0.1082 is the damping.

These parameters results in the new plant poles being

LaTeX: 0.0347 \plusmn 0.6393i

3.1.2 Design of a Controller

Let's assume that the feedback sensor is

LaTeX: H\left(s\right)=1

and we have a compensator form of

LaTeX: K\left(s\right)=\frac{\left(B_{0}+B_{1}s\right)}{\left(A_{0}+A_{1}s\right)} 11

which is adequate to control the plant in Eqn. 8.

The resulting characteristic equation is

LaTeX: \Phi=\left(s^2+2\zeta\omega_ns+\omega_n^2\right)\left(A_0+A_1s\right) + \left(B_0+B_1s\right)\omega_n^2

This can be reduced to

LaTeX: \Phi=A_1s^3+\left(2A_1\zeta\omega_n+A_0\right)s^2+\left(A1\omega_n^2+2A_0\zeta\omega_n+B_1\omega_n^2\right)s+\omega_n^2\left(A_0+B_0\right) 12a

In matrix form this is

LaTeX: \begin{bmatrix}p_0\\p_1\\p_2\\p_3\end{bmatrix}=\begin{bmatrix}\omega_n^2 & \omega_n^2 & 0 & 0 \\ 2\zeta\omega_n & 0 & \omega_n^2 & \omega_n^2 \\ 1 & 0 & 2\zeta\omega_n & 0 \\ 0 & 0 & 1 & 0\end{bmatrix}\begin{bmatrix}A_0\\B_0\\A_1\\B_1\end{bmatrix} 12b

At this point we must decide what closed loop poles we would like. In order to do this we need to consider system overshoot and settling time (or time to peak). The equations for each are

LaTeX: M_p=e^{\left(\frac{-\pi\zeta}{\sqrt{1-\zeta^2}}\right)} Overshoot

LaTeX: \tau_s=\frac{4.6}{\zeta\omega_n} Settling Time

LaTeX: \tau_p=\frac{\pi}{\omega_n\sqrt{1-\zeta^2}} Time to Peak

I've never worked on a helicopter but I'm going to guess that minimizing overshoot is desired. Using the Overshoot equation we find that a common value, LaTeX: \zeta=\frac{1}{\sqrt{2}}, provides an overshoot of only 4.3%. Examination of the Time to Peak equation lets you know that a value of LaTeX: \omega_n=\sqrt{2} provides a peak time of \pi seconds. However, a little over 3 seconds is probably too slow. Let's shoot for 0.5 seconds instead. This requires LaTeX: \omega_n=\sqrt{2}\frac{\pi}{0.5}.


  • LaTeX: \zeta=\zeta_{desired}=\frac{1}{\sqrt{2}}
  • LaTeX: \omega_{n}=\omega_{desired}=\sqrt{2}\frac{\pi}{0.5}=8.8858

However, this leaves us with only 2 roots (poles) in our desired characteristic equation. Since we want the above parameters to dominate the closed loop system dynamics we choose a 3rd pole that is well above the desired natural frequency.

LaTeX: \left(s+a\right)\left(s^2+2\zeta_{desired}\omega_{desired}s+\omega_{desired}^2\right) 13


  • LaTeX: a=10\omega_{desired} is our 3rd pole.

Our desired characteristic equation, Eqn. 13, can be reduced to

LaTeX: \Phi_{desired}\left(s\right)=s^3+\left(2\zeta_{desired}\omega_{desired}+a\right)s^2+\left(\omega_{desired}^2+2\zeta_{desired}\omega_{desired}a\right)s+a\omega_{desired}^2

This results in

LaTeX: p_3=1

LaTeX: p_2=2\zeta_{desired}\omega_{desired}+a

LaTeX: p_1=\omega_{desired}^2+2\zeta_{desired}\omega_{desired}a

LaTeX: p_0=a\omega_{desired}^2

From here we go back to our characteristic equation (Eqn. 12a or 12b) to determine

LaTeX: A_1=1

LaTeX: A_0=2\zeta_{desired}\omega_{desired}+a-2\zeta\omega_n=101.2855

LaTeX: B_0=\frac{\left(a\omega_{desired}^2-A_0\omega_n^2\right)}{\omega_n^2}=1.7017e+004

LaTeX: B_1=\frac{\omega_{desired}^2+2\zeta_{desired}\omega_{desired}a-2\zeta\omega_nA_0-A_1\omega_n^2}{\omega_n^2}=2.8818e+003

3.1.3 Stable but with bad overshoot

Figure 7: Initial Step Response with my controller

The initial Simulink model with this controller for pitch dynamics was stable but had a large overshoot (Figure 7). The bad overshoot comes from the 3rd pole that was added in order to enough poles in the characteristic equation. In order to prevent this undesirable overshoot we add a prefilter

LaTeX: W\left(s\right)=\frac{a}{\left(s+a\right)}


  • LaTeX: a=10\omega_{desired} is our 3rd pole.
Figure 8: Blackhawk 3DOF Simulink model with Step Response
Figure 9: Final Step Response with my controller

4 Feedforward Extension

Suppose we wish to have the helicopter hover on its own. This requires that we have a sensor for the vertical altitude, pitch attitude, and horizontal speed. In order to keep this example simple only the pitch attitude in 1 axis will be considered. At hover a helicopter can be considered an inertially stable platform. If the system is inertially stable then acceleration and velocity about all 3 axes must be 0. The easiest way to accomplish this is to integrate a velocity sensor output to create a position command opposite the current position. The Honeywell GG5300 has already been characterized on this site so it will be used again.

The pitch attitude controller is described in Eqn. 11. The command angle, LaTeX: \theta_c, is created by integrating the rate from the gyro into a position[2]. Under this scenario

LaTeX: \theta_c\left(t\right)=\int_{-\infty}^{\infty}\dot{\theta}_{gyro}\left(t\right)dt

4.1 Honeywell GG5300 MEMS Rate Gyro

Honeywell GG5300 MEMS Rate Gyro Plant

The Honeywell GG5300 Three Axis MEMS Rate Gyro is advertised as being for "Missiles & Munitions." The datasheet available on Honeywell's website states

Bandwidth @ 90 deg phase100 Hz typical

The typical sensor model would have the following parameters

LaTeX: \omega_n=100 Hz, LaTeX: \zeta=\frac{1}{\sqrt{2}}, LaTeX: K=1

The sensor has a scale factor (Volts per radian) that we are ignoring for now. (The scale factor here is just a gain. External electronics can make this scale factor whatever is convenient.) Using the parameters in the above table a transfer function can be formed in MATLAB with the following commands

 >> wn = 100 * (2*pi);
 >> z = 1/sqrt(2);
 >> K = 1;
 >> GG5300 = tf(K * [wn^2], [1, 2*z*wn, wn^2]);

The resulting frequency response for a single axis is

Honeywell GG5300 MEMS Gyro Sensor Model

For most models each axis can be modelled with an identical transfer function.


4.2 Feedforward Simulink Model

Figure 10: Feedforward Blackhawk 3DOF Simulink model with Step Response
Figure 11: Command following for feedfoward model
Figure 12: Pitch Attitude Error for feedfoward model

A hovering helicopter is similar to an inertially stable platform. Any real system has actuator and sensor noise. An inertial sensor can measure the motion of the helicopter (platform). Using these measuremnets a command can be constructed for the closed loop portion of the system.

For this system the inertial sensor is a gyro; the gyro measurements are then integrated to form a command for the closed loop portion. The closed loop portion is the pitch attitude system previously described. The closed loop system has a plant (pitch attitude) model, a controller, and a prefilter. The pitch attitude sensor is assumed to be ideal.

Most sytems use a rate sensor rather than a position sensor. This is because there are plenty of good quality accelerometers and rate sensors. An absolute position sensor is a trickier sensor to build and often has a slow update rate.

The difficulty with a rate or acceleration sensor is that we are attempting to maintain a static position despite the presence of noise and disturbances. In order to use rate or acceleration sensors to maintain position is that this requires integration of the sensor output - including noise. Integratioin of a rate sensor's output leads to Angle Random Walk (ARW). ARW ultimately limits the performance and application of feedforward technology.

In this application, the ARW will lead to the pitch angle wandering. Eventually the pitch attitude command will cause enough wander that the assumptions necessary for decoupling the dynamic equations near hover will no longer hold.

4.3 Final Notes

The feedforward model was created to demonstrate the technique. I (Gabe) did not spend any time creating a realistic disturbance profile or sensor noise profile for the GG5300.

I also did not spend a lot of time attempting to get the thesis controllers to work. I decided my time was better designing a new controller and addressing some of the interests of the people who originally asked this question.

Let me know what you think on my talk page.

5 References

5.1 MATLAB and Simulink Files


Fix Media for uploading m-files and models for newer version of MediaWiki.

5.2 Notes

  1. Lim, pp. 5-10
  2. Crossbow, pg. 1