Design Project
Design Project
ME 343 - 010
11/27/19
A classical example of a third-ordered control system seen in everyday life is the automatic pitch control
on an aircraft. Similar engineering principals are also used in designing an aircraft’s roll and yaw control,
however, an analysis of an aircraft’s response on one of its principal axis is sufficient to understand the theory
involved in designing systems to control motion about its other two principal axes.
Since this analysis only involves pitch, the aircraft will be modeled using the 𝑥 − 𝑧 coordinate plane and
a non-inertial reference frame, where the frame of reference is fixed on the aircraft’s center of gravity. The 𝑥
axis corresponds to horizontal translation of the center of gravity while 𝑧 axis corresponds to vertical translation
of the center of gravity. In this specific example, several assumptions will be made to simplify the dynamic
response of the aircraft. First, it will be assumed that the aircraft is cruising at a constant velocity and altitude
and therefore thrust, drag, lift, and weight forces balance each other in the 𝑥 − and 𝑧 − directions. This can be
𝑑𝑥̇ 𝑑𝑢 𝑑𝑧
= =0 =0 𝑇=𝐷 𝐿=𝑊
𝑑𝑡 𝑑𝑡 𝑑𝑡
Additionally, it will be assumed that changes in pitch angle will not affect the speed at which the aircraft is flying
at. Although this assumption is unrealistic, it simplified the relationships used to describe the motion of the
aircraft. With the use of these assumptions, the equations of motion for an aircraft can be mathematically
1
𝛼̇ = 𝜇𝛺𝜎[−(𝐶𝐿 + 𝐶𝐷 )𝛼 + 𝑞 − (𝐶𝑊 sin 𝛾)𝜃 + 𝐶𝐿 ]
(𝜇 − 𝐶𝐿 )
𝜇Ω
𝑞̇ = [[𝐶 − 𝜂(𝐶𝐿 + 𝐶𝐷 )]𝛼 + [𝐶𝑀 + 𝜎𝐶𝑀 (1 − 𝜇𝐶𝐿 )]𝑞 + (𝜂𝐶𝑊 sin 𝛾)𝛿
2𝑖𝑦𝑦 𝑀
𝜃̇ = 𝛺𝑞
where the elevator deflection angle, 𝛿, is the input and pitch angle, 𝜃, is the output of the aircraft. Using the
longitudinal stability characteristics from of a Boeing 747-200, these equations can be simplified as
𝜃̇ = 56.7𝑞
A transfer function relating the deflection angle to the pitch angle can be found by applying the Laplace
transform function with initial conditions of zero to the equations for 𝛼̇ , 𝑞̇ , 𝜃̇ , and 𝛿, or 𝐴(𝑠), 𝑄(𝑠), 𝜃(𝑠), and
∆(𝑠) respectively.
It is evident that the transfer function relation the deflection angle to the pitch angle is a third order system
because the highest degree of the Laplace variable 𝑠 is three. Currently, the relationship between the input, the
aileron deflection angle, and the output, the pitch angle, is uncompensated. The uncompensated open loop
1.151𝑠 + 0.1774
∆(𝑠) 𝜃(𝑠)
𝑠 3 + 0.739𝑠2 + 0.921𝑠
The ailerons on a Boeing 747-200 have a maximum and minimum aileron deflection angle of 26° and -26°,
respectively. Additionally, the maximum and minimum pitch attitude for this aircraft is 40° and −10°,
respectively. The pitch of an aircraft is regulated by the Pitch Limit Indicator (PLI). As for angle of attack, most
wide-body commercial jet airliners have a critical angle of attack (the angle that produces the maximum lift
We can visualize the response of pitch angle as aileron deflection angle varies by plotting the open-loop
response of the transfer function shown above. The impulse function within MATLAB was used to simulate
an elevator impulse input of 26° (0.4538 radians). The following plot shows the pitch angle response to this
Here, we can see the peak amplitude of the response reaching 0.384 radians (22°) which is within the attitude
bounds for a Boeing 747-200. Additionally, the plot shows that it takes 10.3 seconds for the aircraft to settle
when experiencing an impulse input of this magnitude, indicating that the system is unstable when an impulse
input is applied.
The open-loop response for a step input can also be plotted to visualize how the system would respond
to a step input. In the plot below, the step function within MATLAB was used to simulate a step input of 26°
(0.4538 radians).
It is evident that the open-loop response is unstable, as it doesn’t settle at any point.
An evaluation of the system’s stability can be performed by analysis its corresponding root locus
diagram. A root locus diagram of the of the open-loop system is shown below.
The root locus plot is helpful in determining the stability of a system. The poles of the system, indicated by x’s on
the root locus plot, can be found using the pole function within MATLAB. Using this function, the poles were
evaluated to be located at 0, −0.3695 + 0.8857i, and −0.3695 − 0.8857i. When plotted on the complex s-
plane, one of the poles (0) falls on the imaginary axis, while the other two poles (−0.3695 + 0.8857i, and
−0.3695 − 0.8857i) reside in the left-hand plane. As evident by the response of the system to a step input, the
system will grow unbounded when an unbounded input is applied. This can be attributed to the pole at the
origin. The zero function within MATLAB was used to find the zeros of the system. The open-loop system
The performance of the system can be improved by adding a feedback controller to the open-loop
system, making it a closed loop system. The transfer function of the closed loop system was found by using the
feedback function within MATLAB. A block diagram of the closed-loop unity feedback system is shown
below.
𝐶𝑜𝑛𝑡𝑟𝑜𝑙𝑙𝑒𝑟 𝑃𝑙𝑎𝑛𝑡
1.151𝑠 + 0.1774
∆(𝑠) 1 𝜃(𝑠)
𝑠3 + 0.739𝑠2 + 0.921𝑠
1.151𝑠 + 0.1774
𝜃(𝑠) 𝑃(𝑠) 𝑠 3 + 0.739𝑠 2 + 0.921𝑠 1.151𝑠 + 0.1774
𝑇(𝑠) = = = = 3
∆(𝑠) 1 + 𝑃(𝑠) 1 + 1.151𝑠 + 0.1774 𝑠 + 0.739𝑠2 + 2.072𝑠 + 0.1774
3 2
𝑠 + 0.739𝑠 + 0.921𝑠
To analyze the stability of the system, same impulse and step inputs (0.4538 or 26°) were that were
applied to the open-loop system will now be applied to the closed-loop unity feedback system using the
impulse and step functions, respectively. The system’s response to an impulse input is shown below.
As shown by the plot, the response of the system peaks at 1 second with an overshoot of.28 radians (16.04°).
This is well within the pitch bounds of -10° and 40°. Additionally, the system settles at zero with a settling time
of 15.6 seconds, indicating that the system is now stable when responding to an impulse input.
The system responds much more poorly to a step input of 0.4538 radians (26°) than an impulse input of
An analysis of the closed-loop unity feedback to a step input shows that the system has a rise time of 1.74
seconds, however, the system undershoots the set point at this specific time. Additionally, the system has a
settling time of 35.1 seconds. Although the system is stable, as it converges on the set point of 0.4538 radians
A root locus plot is helpful in determining the performance of the closed-loop unity feedback system
with varying gain. The root locus plot of the system is shown below.
The root locus plot of the closed-loop unity feedback system never crosses into the left-hand plane of the s-
A Bode plot displays the frequency response of a system quickly and efficiently and is a useful tool for
control system design. This visual representation of a system plots the magnitude of a system’s response in
decibels (dB) using a logarithmic scale with respect to increasing frequencies, measured in radians/second,
which are plotted linearly. Additionally, a plot of a system’s phase with respect to frequency is plotted. When
compared, these plots of magnitude and phase can highlight important system characteristics such as gain and
phase margin, or the gain and phase perturbations that make the system marginally stable.
Using the Body plot of the open-loop system will illustrate the stability margins for its respective closed-
loop unity feedback system. The magnitude and phase plots for the open-loop system, in addition to its gain and
As evident by the graph above, the system’s phase never crosses -180°, meaning that the gain margin is infinite.
This is supported by the system’s root locus plot never crossing into the left-hand plane. In this case, the phase
margin is much more useful in determining system stability. For this system, the gain crossover frequency occurs
greater than 𝑃𝑀/𝜔𝑔𝑐 , where 𝑃𝑀 is the system’s phase margin in radians and 𝜔𝑔𝑐 is the frequency where the
system’s magnitude equals zero, the system will experience instability in its closed-loop form. The time delay in
rad 𝜋 rad
𝑃𝑀 [ ] 46.9° ( )
s = 180° = .6445 seconds
𝜔𝑔𝑐 1.27 rad/s
Determining the bandwidth of a system is important in controller design as it indicates how a system
reacts to changing inputs. A system with a low bandwidth is not able to respond, or track, to changing inputs as
a system with high bandwidth. There are benefits and drawback to modifying a system’s bandwidth. A benefit to
increasing bandwidth, as previously mentioned, allows a system to better track changes in its input. The tradeoff
of increasing bandwidth is that systems with high bandwidth are more sensitive to noise in the commands they
are given and will not filter them out as a system with low bandwidth would. Because of this tradeoff, it is
important to find a balance between a systems ability to track changes and filter out noise that is appropriate
Mathematically, the bandwidth is the frequency at which the system’s closed-loop gain drops below
70.79% (-3 dB) of its DC value. Since frequency response design involved predicting a system’s closed-loop
performance from its open-loop system, we are concerned with analyzing the bandwidth of the open-loop
system. A 70.79% drop of a closed-loop system’s DC value corresponds to a -6 dB to -7 dB drop in its open-loop
system. The bandwidth for the system’s open and closed-loop response are 1.73 rad/s and 0.155 rad/s,
As previously mentioned, our closed-loop unity feedback system has a bandwidth of 0.155 rad/s. This
means that any input with a higher frequency will become marginally unstable at 0.644 seconds, according to its
time delay. A plot of the system’s closed-loop performance compared to a sinusoidal input with a frequency of
.155 rad/s and magnitude of .438 rad (the aileron’s maximum possible input) is shown below.
The ability of the closed-loop system to track an input with a frequency of .155 rad/s is poor, as predicted by its
bandwidth. Additionally, the system becomes marginally unstable almost immediately at 0.644 seconds. Since
the system is trailing behind the input its given, a lead compensator will add phase to the system, allowing it to
track more effectively. Conversely, adding a lead compensator will increase the bandwidth of the system, thus
decreasing its ability to filter out noise and other low-frequency disturbances. The general form of a lead
compensator is
𝑠+𝑎 𝑎
𝐶(𝑠) = ( > 1)
𝑠+𝑏 𝑏
The two parameters that will affect the system’s response are 𝑎, and 𝑏. Since the entire root locus plot of the
closed-loop unity feedback system resides in the left-hand plane of the s-plane, there is no need to introduce
other poles to the system. This would improve the response of a system with a root locus plot that enters the
right-hand plane. However, a compensator can be designed to increase the steady-state tracking error of a
sinusoidal input. An example of a compensator that would improve the steady state-tracking of a sinusoidal
𝑠 + .05
𝐶(𝑠) =
𝑠 + .01
A block diagram of the new system its response to a sinusoidal input is shown below.
1.151𝑠 + 0.1774
∆(𝑠) 1 𝜃(𝑠)
𝑠3 + 0.739𝑠 2 + 0.921𝑠
𝑠 + .05
𝑠 + .01
Clearly, the ability of the system to track an input has improved tremendously.
An analysis of the compensated closed-loop unity feedback system’s response to a step input of
maximum aileron deflection (.438 radians), it is evident that the system is not close to reaching the physical
limitations of its output variable, pitch, which has bounds of -10° to 40° (-0.175 rad to .698 rad). The gain value
of the lead compensator, 𝐾, is can be modified to reduce the system’s steady-state error by decreasing its rise
time. This is accomplished by setting the gain to a value greater than one. Doing so may increase the overshoot
of the system when a step input is applied, potentially surpassing the mechanical limits of the output variable.
The highest value of 𝐾 that reaches the limitations of the output variable is 5.25. A plot of the system’s response
to a step input of magnitude 0.438 rad and the compensated system with gain is shown below:
1.151𝑠 + 0.1774
∆(𝑠) 1 𝜃(𝑠)
𝑠3 + 0.739𝑠 2 + 0.921𝑠
𝑠 + .05
5.25
𝑠 + .01
The response of the open-loop system’s behavior can also be modeled using state-space representation.
A state-space representation is similar to a transfer function in that it also shows the relationship between an
input to its output in terms of state variables. A state variable is a set of one or more variables that describe the
behavior of a system. The state variables describing the system’s output are the angle of attack, pitch rate of the
aircraft, and the pitch angle, or 𝛼, 𝑞, and 𝜃, respectively, because these values change in time with different
inputs. The state-space representation can be easily found using the modeling equations for 𝛼̇ , 𝑞̇ , and 𝜃̇ that
Before attempting to control the system using a state-space approach, the controllability matrix of the
state-space model must first be determined. The controllability matrix is important in characterizing if a system
is controllable or not. A system is controllable when the degree of its controllability matrix equals the number of
state variables of the system. The controllability matrix can be found using the ctrb function within MATLAB.
The rank of the controllability matrix equals three, and since there are three state variables, the system
is controllable. Using the place function within MATLAB, we are able to place three zeros anywhere on the s-
plane, as the system is controllable. In order to achieve the same response as the compensated closed-loop
unity feedback system created when controlling the system using frequency response, the poles placed using
the state-feedback gain, 𝐾, should equal the poles of the compensated system. The four poles of the
compensated system are -0.235 + 2.6016i, -0.235 - 2.6016i, -0.159 + 0.04407i, and -0.159 - 0.04407i. We are only
able to place three of the four poles, since the input matrix, 𝐵, has a multiplicity of three. Therefore, the poles
are -0.235 + 2.6016i, -0.235 - 2.6016i, and -0.159 + 0.04407i were chosen to be placed in the system. The state-
Which yielded the following response when a sinusoidal input of magnitude 0.438 rad and frequency .155 rad/s
was applied:
The system designed using state-space methods is able to track the input applied, however, it is not able to
reach the same magnitude of the sinusoidal input. This is due to the fact that only three poles were introduced
to the system, while the compensated closed-loop feedback system had four poles. The amplitude of the
compensated system is about 0.07128 radians (4.084°) which is well within the bounds of a Boeing 747-200
pitch angle.
Another useful tool in analyzing a system’s performance is modeling the system as a discrete controller
using z-transforms. Similar to a continuous controller, a discrete controller can be modeled as a transfer function
and as a state-space model. The c2d function within MATLAB can convert a continuous transfer function or
state-space representation into its respective discrete form. Assuming the system is modeled after a zero-order
hold circuit, the discretized transfer function of the compensated closed-loop feedback system at a sampling
A plot of the open-loop discrete controller’s response to a unity step input is shown below:
It is evident that the sampling rate of 1 sec/sample is not enough to accurately characterize the system’s
behavior. An ideal sample rate is 20 times the closed loop bandwidth (0.155 rad/s). Therefore, a sample rate of
0.0155 sec/sample should be used to plot the discrete function. A plot sampling at .49338 sec/sample is shown
below.
The plot is still fairly discretized, but it illustrates the system’s performance much better than the plot that
sampled at 1 sec/sample. At any sampling rate greater than 1.5625 sec/sample causes the system’s performance
to degrade, as the maximum overshoot of the system with a sampling rate of 1.5625 sec/sample is significantly
less than the overshoot of a system with a proper sampling rate of .49338 sec/sample. This is shown by the plot
below.
Finally, a SIMULINK model of the compensated closed-loop unity feedback system was built to verify its
response to a step input of magnitude .438 radians (maximum aileron deflection angle). The block diagram and
a. Variables used
b. Stability parameters
s = tf('s');
G = (1.151*s+0.1774)/(s^3+0.739*s^2+.921*s);
C = 7.5*((s+1)/(1*s+1));
sys_cl = feedback(G,1);
t = 0:.1:100;
w = .155;
u = .438*sin(w*t);
[y,t] = lsim(sys_cl,u,t);
plot(t,y,t,u);
ylabel('Position [rad]');
xlabel('Time [sec]');
title('Tracking Performance of a Closed-loop System');
axis([0 100 -1 1]);
legend('Closed-loop System', 'Input (.438*sin(.155t)');
figure;
step(.438*sys_cl,t);
axis([0 25 0 1]);
xlabel('Time (sec)');
ylabel('Pitch Angle (rad)');
clc;
clear all;
close all;
s = tf('s');
G = (1.151*s+0.1774)/(s^3+0.739*s^2+.921*s);
C = 5.25*((s+.2)/(s+.05));
sys_cl = feedback(C*G,1);
t = 0:.1:100;
w = .155;
u = .438*sin(.155*t);
[y,t] = lsim(sys_cl,u,t);
axis([0 10 0 10]);
plot(t,y,t,u);
ylabel('Position [rad]');
xlabel('Time [sec]');
title('Tracking Performance of a Compensated Closed-loop System');
axis([0 100 -1 1]);
legend('Compensated Closed-loop System', 'Input (.438*sin(.155t)');
figure;
step(.438*sys_cl,t);
axis([0 100 0 .75]);
title('Response of Compensated System Exceeding Output Limitations');
xlabel('Time (sec)');
ylabel('Pitch Angle (rad)');
m = pole(sys_cl);
A = [-.313 56.7 0;
-.0139 -.426 0;
0 56.7 0];
B = [.232; .0203; 0];
CM = ctrb(A,B);
n = rank(CM);
m = rank(obsv(A,C));
A = [-.313 56.7 0;
-.0139 -.426 0;
0 56.7 0];
B = [.232; .0203; 0];
C = [0 0 1];
D = [0];
x0 = [0 0 0];
p1 = -0.235264351456584 + 2.60157696395265i;
p2 = -0.235264351456584 - 2.60157696395265i;
p3 = -0.159235648543416 + 0.0440693483530050i;
p4 = -0.159235648543416 - 0.0440693483530050i;
t = 0:.1:100;
sys_cl = ss(A-B*K, B, C, 0);
u = .438*sin(.155*t);
[y,t] = lsim(sys_cl,u,t);
plot(t,y,t,u);
ylim([-.5 .5]);
xlim([0 100]);
title('Compensated Closed-Loop Response to Sinusoidal Input');
xlabel('Time (sec');
ylabel('Pitch Angle (radians)');
legend('System Response', '.438*sin(.155*t)');
s = tf('s');
G = (1.151*s+0.1774)/(s^3+0.739*s^2+.921*s);
C = 5.25*((s+.05)/(s+.01));
sys_cl = feedback(C*G,1);
sampling_time = 1.5625;
Hd = c2d(sys_cl,sampling_time);
step(Hd);
xlim([0 20]);
ylim([0 2]);
title('Compensated Closed-Loop Response to Unit Step Input (Discrete) (T =
1.5625)');
xlabel('Time (sec');
ylabel('Pitch Angle (radians)');
A = [-.313 56.7 0;
-.0139 -.426 0;
0 56.7 0];
B = [.232; .0203; 0];
C = [0 0 1];
D = [0];
sys_ss = ss(A,B,C,D);
sampling_rate = 1;
step(sys_d);
xlim([0 50]);
ylim([0 12]);
xlabel('Time (sec)');
ylabel('Pitch Angle (rad)');
title('Discrete Controller Response to Unit Step');
WORKS CITED
http://ctms.engin.umich.edu/CTMS/index.php?example=AircraftPitch§ion=SystemModeling
https://pdfs.semanticscholar.org/089c/441e13653092ee6a271eba7adc96753230ac.pdf
https://courses.cit.cornell.edu/mae5070/B747_Data.pdf
http://www.tc.faa.gov/its/worldpac/techrpt/ar04-44.pdf