From ControlTheoryPro.com

Contents
1 Introduction to Helicopter Hover Modeling and Control
This example comes from a Master's Thesis by ChenI Lim at Arizona State University.^{[1]}
The example is of a UH60 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: 3DOF UH60 Blackhawk Model and Control Laws
The standard block diagram, in Figure 2, accurately describes the Blackhawk system to be controlled.
2.1 Parameters
Near hover the parameters in Table 1 are valid.
Parameters  Value  Units  Description 


5.95 

Control Derivative 

0.346 

an Aerodynamic derivative 

32.283 

Gravity 

0.06 

an Aerodynamic derivative 

3.1 

an Aerodynamic derivative 

0.478 

Control derivative 

2.3493 

an Aerodynamic derivative 

47.24 

Control derivative 
2.2 Vertical Dynamics
The veritcal dynamics are dependent on the vertical altitude and the collective pitch. Specifically
1 
where
 is vertical altitude and
 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
2 
where
 is the horizontal speed in and
 is the cyclic pitch control in .
And the pitch attitude is described by
3 
where
 is the pitch attitude in .
2.3.1 At an operating point near hover
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.
4 
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
6 
This suggests that the sensor is made up of two parts:
where
 , the natural frequency is 50 and
 , the damping, is 0.
The second part of the sensor is
and looks like a filter.
The thesis does not provide units for or . Since MATLAB assumes frequency values are provided in rad/s I assume that values for and 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.
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
 altitudehold
 pitchattitudehold
 horizontal speedhold
2.5.1 AltitudeHold Controller
The altitudehold controller is a simple proportional gain controller based on the altitude error.
7 
where
 is the commanded or reference altitude in and
 is the vertical altitude proportional gain constant.
2.5.2 PitchAttitudeHold 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.
8 
where
 is the true pitch attitude in ,
 is the commanded pitch attitude in ,
 is a control design parameter, and
 is the pitch attitude proportional gain constant.
Good lowfrequency pitch attitude command following of step commands is provided by
 and
 .
2.5.3 Horizontal SpeedHold Controller
Obviously, uncontrolled horizontal motion is undesirable. It could be dangerous to maintain a constant vertical altitude and pitch attitude while sliding uncontrollably sidetoside. So a controller must be designed and Figure 6 shows the block diagram for the horizontal speed.
9 
where
 denotes the commanded horizontal speed in and
 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:
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.
Parameters  Value  Degrees  Value  Radians 


5.95 

340.91 


0.478 

27.39 


2.3493 

0.0410 

Note:
 The conversion from degrees to radians is .
 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.
Plant  Poles  Zeros 


0, 0.3460 
None 

3.2293, 0.0347 +/ 0.6393i 
1.5500 +/ 7.2994i 

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.
10 
where
 is natural frequency and
 is the damping.
These parameters results in the new plant poles being
3.1.2 Design of a Controller
Let's assume that the feedback sensor is
and we have a compensator form of
11 
which is adequate to control the plant in Eqn. 8.
The resulting characteristic equation is
This can be reduced to
12a 
In matrix form this is
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
Overshoot 
Settling Time 
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, , provides an overshoot of only 4.3%. Examination of the Time to Peak equation lets you know that a value of 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 .
Recap
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 3^{rd} pole that is well above the desired natural frequency.
13 
where
 is our 3^{rd} pole.
Our desired characteristic equation, Eqn. 13, can be reduced to
This results in
From here we go back to our characteristic equation (Eqn. 12a or 12b) to determine
3.1.3 Stable but with bad overshoot
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 3^{rd} pole that was added in order to enough poles in the characteristic equation. In order to prevent this undesirable overshoot we add a prefilter
where
 is our 3^{rd} pole.
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, , is created by integrating the rate from the gyro into a position^{[2]}. Under this scenario
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
Hz,  , 
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
MATLAB Note 
It is fine to model this sensor as a transfer function. However, when combined into a larger LTI model it is recommended that every individual piece of the larger model be converted to a statespace object. Statespace objects are more accurate. 
For most models each axis can be modelled with an identical transfer function.
4.2 Feedforward Simulink 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
 Lim, ChenI '"DEVELOPMENT OF INTERACTIVE MODELING, SIMULATION, ANIMATION, AND REALTIME CONTROL (MoSART) TOOLS FOR RESEARCH AND EDUCATION." Master's Thesis, Arizona State University, Tempe, AZ December 1999.
 Crossbow Rate Sensor Application Note
5.1 MATLAB and Simulink Files