Helicopter Hover Example

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
 Helicopter Hover Example All Examples 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}}$

5.95

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

Control Derivative

$LaTeX: Z_w$

-0.346

$LaTeX: sec^{-1}$

an Aerodynamic derivative

$LaTeX: g$

32.283

$LaTeX: ft sec^{-2}$

Gravity

$LaTeX: X_u$

-0.06

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

an Aerodynamic derivative

$LaTeX: M_q$

-3.1

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

an Aerodynamic derivative

$LaTeX: X_{Blc}$

0.478

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

Control derivative

$LaTeX: M_u$

2.3493

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

an Aerodynamic derivative

$LaTeX: M_{Blc}$

-47.24

$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

where

$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} \begin{bmatrix} \frac{s^2-M_qs-\frac{gM_{Blc}}{X_{Blc}}}{s^3-\left(X_u+M_q\right)s^2+M_qX_us+gM_u} \end{bmatrix}$ 2

where

$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} \begin{bmatrix} \frac{s+\left(\frac{X_{Blc}M_u}{M_{Blc}}-X_u\right)}{s^3-\left(X_u+M_q\right)s^2+M_qX_us+gM_u} \end{bmatrix}$ 3

where

$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}$

where

$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

where

$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

where

$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

where

$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}}$

5.95

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

340.91

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

$LaTeX: X_{Blc}$

0.478

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

27.39

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

$LaTeX: M_u$

2.3493

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

0.0410

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

Note:

• 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

None

$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

-0.0362

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

where

$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}$.

Recap

• $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

where

• $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)}$

where

• $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 phase 100 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

 TODO 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