Date post: | 20-Mar-2016 |
Category: |
Documents |
Upload: | steve-rogers |
View: | 249 times |
Download: | 2 times |
Aircraft Control LecturesUsing the text: Stevens & Lewis,
Aircraft Control & Simulation, 2nd Ed.
Steve Rogers2011
1
Overview• Control Engineer Challenges/Philosophy• Definition of Control System Functions• Transfer Functions – longitudinal & lateral• SAS (stability augmentation system) examples –
pitch damper and yaw damper• CAS ( control augmentation system) examples• Autopilot examples: Pitch attitude hold and
automatic lander• Modern control design: pole placement, LQR
state & output feedback, model reference design, inverse dynamics control
2
Control Engineer Challenges• Work output in terms of:
– guidance & control– Algorithms & simulations– Numerical methods or solutions– Software or digital implementation
• Utilize modern techniques including– Optimization– Sensitivity analyses– Robustness to parameter variations– Adaptive techniques– Multivariable control
• Interface to other disciplines– Structures– Thermal– Propulsion– Energy management & performance– Human factors– Mission operations– Failure modes & effects analyses
3
Aircraft Altitude-Mach Envelope for High-Performance
4
Altitude
Speed
Service ceiling
Prop
ulsio
n lim
it
Airs
peed
lim
itα-lim
it
• The α-limit is determined by the maximum lift that can be generated at low air speeds.• The high speed limit (composed of airspeed limit & propulsion limit) generally follows a constant dynamic pressure contour. At higher elevations the speed is limited by maximum engine thrust• Service ceiling exists due to a combination airframe and engine limitations.• The basic aerodynamic coefficients change with air speed and as functions of the α angle.
Control Philosophy• A flight condition that produces a stable dynamic mode may be unstable
or lightly damped in another flight condition. • Instability or lightly damped oscillations may be overcome by using
feedback control to stabilize aircraft dynamics.• The aircraft motion variables are sensed & utilized to generate signals fed
to the aircraft control-surfaces or propulsion systems to modify the dynamic behavior.
• Control signals from the sensor feedback must be adjusted according to the flight condition.
• A commonly used adjustment process is gain scheduling, which is adjusting control signals as a function of ‘scheduling’ variables. Most commonly used scheduling variables are measured dynamic pressure and/or air speed.
• For narrow envelopes gain scheduling may not be needed. In this case unsatisfactory dynamic modes must be corrected by modifying the aircraft design.
5
Control System FunctionsSAS CAS Autopilot
Roll Damper Roll Rate Pitch attitude hold
Pitch damper Pitch rate Altitude hold
Yaw damper Normal acceleration Speed hold
Lateral/directional Automatic landing
Roll-angle hold
Turn coordination
Heading hold/VOR hold
6
• SAS – stability augmentation systems. These are intended to provide proper damping and/or stability to given roll-pitch-yaw control modes.• CAS – control augmentation systems. These control systems are intended to not only control the mode but to provide the pilot with a particular type of response to the control inputs. • autopilots – these are to provide ‘pilot relief’ from controlling slower modes (phugoid and spiral). These also include special functions, such as automatic landing and other guidance features.
Longitudinal Transfer Functions (pitch)
7
• The pitch rate to elevator transfer function general function is shown above.
• The longitudinal state vector and input vector are shown.
• The following sheets have short-period approximations.
Longitudinal Short-Period Approximations
• Since the denominator is the same the two transfer function natural frequency and damping coefficient are the same.
• If either the pitch rate or angle-of-attack tracks a setpoint the other will have a bias.
• A pitch damper SAS or a pitch rate CAS will provide the same dynamics for the angle-of-attack.
• Above approximations valid for low Mach numbers. Also, these assume a damped, oscillatory short-period mode.
8
Phugoid Approximation
• Phugoid frequency is inversely ~ airspeed. Phugoid has lower frequency than the short period mode.
• For an example longitudinal characteristic equation: Δ(s) = (s2 + 0.033s + 0.020)(s2 + 0.902s + 2.666) = 0. The first pair of complex roots describes the phugoid stability mode, with characteristics:– Damping ratio ζp = 0.11 = 0.033/2/sqrt(0.02)– Undamped natural frequency ωp = 0.14 rad/s = sqrt(0.02)
• The second pair of complex roots describes the short period pitching oscillation, or short period stability mode, with characteristics:– Damping ratio ζs = 0.28 = 0.902/2/sqrt(2.666)– Undamped natural frequency ωs = 1.63 rad/s = sqrt(2.666)
9
Stability Augmentation• Modify natural aircraft modes by adjusting control
surfaces according to angular rate sensor signals.• Desirable as flight condition changes result in local
variations in airflows (laminar to turbulent or the reverse). These local variations cause large uncertainties in aerodynamic coefficients over the typical operational flight envelope of most aircraft.
• Large uncertainties or variations in aerodynamic coefficients create serious challenges for control systems. Control systems are either ‘gain scheduled’ or on-line adapted.
10
Longitudinal Model for F16 - 1
• In the above model from Stevens & Lewis, the elevator deflection is the input, and the outputs are alpha and pitch rate (q). The states are vT, alpha, theta, and q.
• There is an unstable exponential pole at 0.0976 with tc = 2*pi/0.0976 ~ 10 s (time constant)
• An oscillatory couple at damping 0.794 & freq 0.19 rad/s tc = 2*pi/0.19 ~ 33 s (time constant)
• The last pole will not cause a problem.• A control system must be designed to counter the effects of the
unstable pole, while providing good handling qualities.
11
A = [-0.019311 8.8157 -32.17 -0.57499 -0.00025389 -1.0189 0 0.90506 0 0 0 1 2.9465e-12 0.82225 0 -1.0774];B = [0.1737 -0.0021499 0 -0.17555]';C = [0 57.29578 0 0 0 0 0 57.29578];D = [0 0]';sys = ss(A,B,C,D);
Eigenvalue Damping Freq. (rad/s) 9.76e-002 -1.00e+000 9.76e-002 -1.51e-001 + 1.15e-001i 7.94e-001 1.90e-001 -1.51e-001 - 1.15e-001i 7.94e-001 1.90e-001 -1.91e+000 1.00e+000 1.91e+000
Longitudinal Model for F16 - 2
• The above configuration is a basic way of providing good handling qualities for the unstable & oscillatory system. This is called a pitch damper SAS (stability augmentation system).
• The pole-zero map shows the 4 poles excluding the actuator pole. The root locus shows the overall motion of the root locus at a large scale.
12
Σ actuator Aircraftmodel
AlphaSensor
Pitch rate
Sensor
NoiseFilter
NoiseFilter
ka
kq
α
q
-2 -1.5 -1 -0.5 0 0.5-0.2
-0.1
0
0.1
0.2Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
-80 -70 -60 -50 -40 -30 -20 -10 0 10-10
-5
0
5
10Root Locus
Real Axis
Imag
inar
y Ax
is
Alpha-q SAS
Longitudinal Model for F16 - 3
• This is the root locus scale of most interest to us. The unstable pole increases in instability with increasing gain.
• The short period poles have been drawn closer to the origin.
13
-20 -18 -16 -14 -12 -10 -8 -6 -4 -2 0 2-10
-5
0
5
10Root Locus
Real Axis
Imag
inar
y Ax
is
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-0.5
0
0.5Root Locus
Real Axis
Imag
inar
y A
xis
Longitudinal Model for F16 - 4
• In the case ka = kq = 0.1, the minimum damping is 0.4, which is reasonable, for a short period.
• The matlab command to create the whole system is: sys = feedback(feedback(sys,-0.1,1,1),-0.1,1,2);
• The impulse responses show good stability.14
Eigenvalue Damping Freq. (rad/s) -1.03e-002 + 2.33e-002i 4.03e-001 2.55e-002 -1.03e-002 - 2.33e-002i 4.03e-001 2.55e-002 -1.29e+000 1.00e+000 1.29e+000 -1.89e+000 1.00e+000 1.89e+000 -1.00e+001 1.00e+000 1.00e+001 -1.00e+001 1.00e+000 1.00e+001 -1.91e+001 1.00e+000 1.91e+001
-4
-2
0From: elevator
To: a
lpha
-10
0
10
To: q
-4
-2
0
To: a
lph
filter
0 2 4 6 8 10 12 14 16 18 20-10
0
10
To: q
filte
r
Impulse Response
Time (sec)
Ampl
itude
Longitudinal Model for F16 - 5
• The alpha signal is noisy & may be unreliable, so it may be advantageous to reduce the gain (deemphasize) on it. At the same time we may increase the pitch rate gain as it is more reliable.
• With the matlab command of: sys = feedback(feedback(sys,-0.1,1,1),-0.2,1,2);• We now have ka = 0.1 & kp = 0.2 which produces a better damping of 0.495 for
the short period mode. • The impulse response shows that the system settles quickly following a
disturbance, which is due to the higher damping coefficient.15
Eigenvalue Damping Freq. (rad/s) -1.05e-002 + 1.84e-002i 4.95e-001 2.12e-002 -1.05e-002 - 1.84e-002i 4.95e-001 2.12e-002 -1.13e+000 1.00e+000 1.13e+000 -3.34e+000 1.00e+000 3.34e+000 -1.00e+001 1.00e+000 1.00e+001 -1.00e+001 1.00e+000 1.00e+001 -1.78e+001 1.00e+000 1.78e+001
-2
-1
0From: elevator
To:
alp
ha
0 2 4 6 8 10 12 14 16 18 20-10
0
10
To: q
Impulse Response
Time (sec)
Ampl
itude
-10
-5
0From: elevator
To: a
lpha
0 2 4 6 8 10 12 14 16 18 20-4
-2
0
To: q
Step Response
Time (sec)
Am
plitu
de
Longitudinal Model for F16 – 6 (pole placement)
• The previous control solutions were the classical approaches in Stevens & Lewis. We’ll now introduce ‘modern’ pole placement which is a commonly used multivariable approach. By using a state space pole placement method we can generate an observer which produces an estimated or smoothed state vector which is fed into the control law.
• By use of the ‘place’ command we can specify the observer (smoother) poles and the system poles with verifiable accuracy. Pole placement allows us to design very quickly as well as accurately.
• The pc vector is the desired system poles. The design results are shown under Controlled system. Note the Lcon values emphasize alpha & q with most emphasis on q, which is desirable since alpha is noisy & less reliable.
• The po vector is the desired observer poles. We arbitrarily offset them a reasonable distance from the pc vector so the observer poles would not interfere with the control law performance.
• The new damping coefficient for the system is 0.707, which will satisfy short period mode pilot handling qualities.
16
A = [-0.019311 8.8157 -32.17 -0.57499 -0.00025389 -1.0189 0 0.90506 0 0 0 1 2.9465e-12 0.82225 0 -1.0774];B = [0.1737 -0.0021499 0 -0.17555]';C = [0 57.29578 0 0 0 0 0 57.29578];D = [0 0]';sys = ss(A,B,C,D);
pc = [-1.5e-002+1.5e-002i,... -1.5e-002-1.5e-002i,... -1.13,-3.5];po = -10 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);Lcon =
-0.0002 -6.2655 -0.1963 -14.4173State vector: vT, alpha, theta, q
sysobs = ss(a-Lobs*c,Lobs,Lcon,0);
ObserverEigenvalue Damping Freq. (rad/s) -1.00e+001 + 1.50e-002i 1.00e+000 1.00e+001 -1.00e+001 - 1.50e-002i 1.00e+000 1.00e+001 -1.11e+001 1.00e+000 1.11e+001 -1.35e+001 1.00e+000 1.35e+001Controlled system -1.50e-002 + 1.50e-002i 7.07e-001 2.12e-002 -1.50e-002 - 1.50e-002i 7.07e-001 2.12e-002 -1.13e+000 1.00e+000 1.13e+000 -3.50e+000 1.00e+000 3.50e+000
Model
Longitudinal Model for F16 – 7 (lqr)
• The previous control solution was pole placement. We’ll now introduce ‘modern’ linear quadratic regulator (lqr) which is a commonly used multivariable approach. By using a state space lqr method we can generate an observer which produces an estimated or smoothed state vector which is fed into the control law.
• By use of the ‘lqr’ command we can specify the observer (smoother) state and output weights . lqr allows us to design very quickly, however we cannot specify the system performance as in pole placement. This becomes an important factor regarding pilot handling qualities.
• The Q matrix diagonal is the desired state weights. It is modified for both the observer and the controller. Note the Lcon values emphasize theta & q with most emphasis on theta (pitch angle), which is desirable since alpha is noisy & less reliable.
• The new damping coefficient for the system is 0.258, which does not satisfy short period mode pilot handling qualities.
• We can see from this quick comparison of two multivariable approaches the great advantage of being able to precisely specify poles.
17
A = [-0.019311 8.8157 -32.17 -0.57499 -0.00025389 -1.0189 0 0.90506 0 0 0 1 2.9465e-12 0.82225 0 -1.0774];B = [0.1737 -0.0021499 0 -0.17555]';C = [0 57.29578 0 0 0 0 0 57.29578];D = [0 0]';sys = ss(A,B,C,D);
Q = diag([1e6 0.05 1e6 10]);R = c*c'*1e-3;N = c'/100;Lobs = lqr(a',c',Q,R,N).';Q = Q*1e-6;R = b'*b;N = b;Lcon = lqr(a,b,Q,R,N);Lcon =
1.2575 4.2588 -33.4686 -13.1625State vector: vT, alpha, theta, q
sysobs = ss(a-Lobs*c,Lobs,Lcon,0);syscon = ss(a-b*Lcon,b,c,d);
Observer Eigenvalue Damping Freq. (rad/s) -3.46e+000 + 4.08e+000i 6.47e-001 5.35e+000 -3.46e+000 - 4.08e+000i 6.47e-001 5.35e+000 -9.03e+000 1.00e+000 9.03e+000 -1.00e+002 1.00e+000 1.00e+002 Controlled system -1.14e+000 1.00e+000 1.14e+000 -4.02e-001 + 1.50e+000i 2.58e-001 1.55e+000 -4.02e-001 - 1.50e+000i 2.58e-001 1.55e+000 -2.69e+000 1.00e+000 2.69e+000
Model
Dutch Roll• Dutch roll is a type of aircraft motion, consisting of an out-of-phase
combination of "tail-wagging" and rocking from side to side. This yaw-roll coupling is one of the basic flight dynamic modes (others include phugoid, short period, and spiral divergence).
• This motion is normally well damped in most light aircraft, though some aircraft with well-damped Dutch roll modes can experience a degradation in damping as airspeed decreases and altitude increases.
• Dutch roll stability can be artificially increased by the installation of a yaw damper.
• Wings placed well above the center of mass, sweepback (swept wings) and dihedral wings tend to increase the roll restoring force, and therefore increase the Dutch roll tendencies; this is why high-winged aircraft often are slightly anhedral, and transport category swept wing aircraft are equipped with yaw dampers.
• A case study of a yaw damper for a jet transport follows.
18
Yaw Damper for a Jet Transport - 1
• The state-space model is taken from matlab’s control system toolbox user’s guide.
• The 1st eigenvalue (slow real) is the spiral mode. It should be made faster. • The 2nd eigenvalue (real) is the roll subsidence mode. It’s OK as is.• The last two eigenvalues are due to the dutch roll mode. They are lightly
damped (0.0348) & require a higher dampening (for example, >0.35) to attenuate or decrease the oscillatory effects.
• The dutch roll oscillation involves all of the variables.
19
A = [-0.0558 -0.9968 0.0802 0.0415 0.598 -0.115 -0.0318 0 -3.05 0.388 -0.465 0 0 0.0805 1 0];B = [0.0729 0.0001 -4.75 1.23 1.53 10.63 0 0];C = [0 1 0 0 0 0 0 1];D = [0 0 0 0];
Eigenvalue Damping Freq. (rad/s) -7.28e-003 1.00e+000 7.28e-003 -5.63e-001 1.00e+000 5.63e-001 -3.29e-002 + 9.47e-001i 3.48e-002 9.47e-001 -3.29e-002 - 9.47e-001i 3.48e-002 9.47e-001
Yaw Damper for a Jet Transport - 2
• The impulse response plot shows reason for concern for the dutch roll oscillation. Note that the oscillation is mainly due to the rudder input.
• The oscillation appears to be about a -25 degree bank angle & a -1 degree yaw rate due to the rudder input. The aileron input causes a turn by creating a ~1 degree bias in the yaw rate & ~18 degree bias in the bank angle. The impulse response shows the complexity of the dutch roll oscillation.
• The root locus (from rudder to yaw rate) shows that the jet transport may quickly become unstable if we are not careful.
• The bode plot (from rudder to yaw rate) shows significant action due to the rudder between 0.5 & 1.0 rad/sec, which is near the Dutch roll mode.
20
-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2-1
-0.5
0
0.5
1Root Locus
Real Axis
Imag
inar
y Ax
is
-50
0
50From: rudder To: yaw rate
Mag
nitu
de (d
B)
10-4
10-3
10-2
10-1
100
101
0
180
360
Phas
e (d
eg)
Bode Diagram
Frequency (rad/sec)
-6
-4
-2
0
2From: rudder
To: y
aw ra
te
0 5 10 15 20-40
-30
-20
-10
0
10
20
To: b
ank
angl
e
From: aileron
0 5 10 15 20
Impulse Response
Time (sec)
Ampl
itude
Yaw Damper for a Jet Transport - 3
• By using a feedback gain of -0.27 we ensure the overall stability of the system as shown in the root locus. The impulse plot shows the reduction in oscillation. The trial feedback gain may be obtained by using rlocfind graphically.
• damp(feedback(sys(1,1),-0.27)) produces the eigenvalue results shown. This command creates a simple feedback system with a gain. Now the damping is much better, while maintaining the natural frequency < 1 rad/sec.
21
damp(feedback(sys(1,1),-0.27)) Eigenvalue Damping Freq. (rad/s) -3.27e-001 1.00e+000 3.27e-001 -3.07e-001 + 6.27e-001i 4.40e-001 6.98e-001 -3.07e-001 - 6.27e-001i 4.40e-001 6.98e-001 -9.77e-001 1.00e+000 9.77e-001
-1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2-1
-0.5
0
0.5
1Root Locus
Real Axis
Imag
inar
y A
xis
0 2 4 6 8 10 12 14 16 18 20-6
-4
-2
0
2From: rudder To: yaw rate
Impulse Response
Time (sec)
Ampl
itude
Yaw Damper for a Jet Transport - 4
• The impulse response plots show the original response with the simple feedback gain in green. The bias has been removed along with most of the oscillation.
• However, notice the aileron to bank angle. It no longer has a bias, which is desirable. It has been over-stabilized and removed from the system. The control system must regain the banking feature of the jet.
• The pole-zero map shows the original system in blue and the new system in green. The dutch roll poles are in a much better location now, but the spiral mode pole has been relocated way too far from the origin (see the green poles). In order to fix this a washout filter is designed to keep the spiral mode pole from moving too far from the origin.
22
-6
-4
-2
0
2From: rudder
To: y
aw r
ate
0 5 10 15 20-40
-30
-20
-10
0
10
20
To: b
ank
angl
e
From: aileron
0 5 10 15 20
Impulse Response
Time (sec)
Am
plitu
de
-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1Pole-Zero Map
Real Axis
Imag
inar
y A
xis
Yaw Damper for a Jet Transport - 5• A washout filter has a zero at
the origen, while the pole is farther away from the origen so as to not interfere with the spiral mode pole. A matlab command of ‘H = zpk(0,-0.33,1)’ will give us such a filter.
• Now, the max damping is ~0.25, as shown in the root locus plot.
• The impulse response shows less damping than before. See also the eigenvalues below.
23
-1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2-1
-0.5
0
0.5
10.120.240.380.50.640.76
0.88
0.97
0.120.240.380.50.640.760.88
0.97
0.20.40.60.811.2
Root Locus
Real Axis
Imag
inar
y Ax
is
0 2 4 6 8 10 12 14 16 18 20-6
-4
-2
0
2From: rudder To: Out(1)
Impulse Response
Time (sec)
Ampl
itude
damp(feedback(H*sys(1,1),-0.27)) Eigenvalue Damping Freq. (rad/s) -3.79e-003 1.00e+000 3.79e-003 -4.74e-001 1.00e+000 4.74e-001 -1.74e-001 + 6.67e-001i 2.53e-001 6.89e-001 -1.74e-001 - 6.67e-001i 2.53e-001 6.89e-001 -1.42e+000 1.00e+000 1.42e+000
Yaw Damper for a Jet Transport - 6• The above impulse response
shows the desired constant behavior over the 20 sec. time frame.
• Even though the system is improved the damping specification was not met. 0.25 < 0.35
• We may try different combinations of washout filter lags and feedback gains. The present combination is:
• kk = -0.27;• H = zpk(0,-0.33,1);• clsys11 =
feedback(sys,kk*H,1,1); is the closed loop system.
• We can manipulate both kk and -0.33 (washout filter lag) to achieve our goals.
24
-6
-4
-2
0
2From: rudder
To: y
aw r
ate
0 5 10 15 20-40
-30
-20
-10
0
10
20
To: b
ank
angl
e
From: aileron
0 5 10 15 20
Impulse Response
Time (sec)
Ampl
itude
Yaw Damper for a Jet Transport - 7
• We can manipulate both kk and -0.33 (washout filter lag):• kk = -0.27; (no change)• H = zpk(0,-0.33,1); H = zpk(0,-0.13,1); • The blue in the impulse response is the uncompensated system. The red is the 1st
attempt at compensation. The green is the 2nd and successful attempt at compensation.
• With the washout lag at -0.13 the damping is 0.351 which is acceptable. 25
-6
-4
-2
0
2From: rudder
To: y
aw ra
te
0 5 10 15 20-40
-30
-20
-10
0
10
20
To: b
ank
angl
e
From: aileron
0 5 10 15 20
Impulse Response
Time (sec)
Ampl
itude
damp(feedback(sys,kk*H,1,1)) Eigenvalue Damping Freq. (rad/s) -2.17e-003 1.00e+000 2.17e-003 -4.14e-001 1.00e+000 4.14e-001 -2.38e-001 + 6.35e-001i 3.51e-001 6.79e-001 -2.38e-001 - 6.35e-001i 3.51e-001 6.79e-001 -1.16e+000 1.00e+000 1.16e+000
F-16 Yaw Damper - 1
• The state-space model is taken from the F16 models in Steven & Lewis.• The state vector is: 'beta' 'roll' 'yaw' 'roll rate' 'yaw rate‘.• The 1st eigenvalue is an integrator and is associated with the roll angle. • The 2nd eigenvalue (slow real) is the spiral mode. This is probably OK as is.• The 3rd eigenvalue (real) is the roll subsidence mode. It’s OK as is.• The last two eigenvalues are due to the dutch roll mode. They are lightly damped (0.196) & require
a higher dampening (for example, >0.35) to attenuate or decrease the oscillatory effects. • The dutch roll oscillation involves all of the variables. • In a steady state coordinated turn the yaw rate has a constant nonzero value, which the yaw rate
feedback will try to oppose. A simple control systems solution is to apply a 1st order high-pass filter to the yaw rate feedback. This is called a washout filter.
26
A = [-0.1315 0.14858 0 0.32434 -0.93964 0 0 0 1 0.33976 0 0 0 0 1.0561 -10.614 0 0 -1.1793 1.0023 0.99655 0 0 -0.0018174 -0.25855];B = [0.00012049 0.00032897 0 0 0 0 -0.1031578 0.020987 -0.002133 -0.010715];C = [0 0 0 57.29578 0 0 0 0 0 57.29578];D = [0 0 0 0];
Eigenvalue Damping Freq. (rad/s) 0.00e+000 -1.00e+000 0.00e+000 -6.79e-002 1.00e+000 6.79e-002 -6.96e-001 1.00e+000 6.96e-001 -4.03e-001 + 2.01e+000i 1.96e-001 2.05e+000 -4.03e-001 - 2.01e+000i 1.96e-001 2.05e+000
F-16 Yaw Damper - 2
• The impulse response plot shows reason for concern for the dutch roll oscillation. Note that the oscillation is due to both the rudder & the aileron inputs.
• The oscillation appears to be about a 0 degree roll rate & a -0.3 degree yaw rate due to both inputs. The impulse response shows the complexity of the dutch roll oscillation.
• The root locus (from aileron to yaw rate) shows that the jet transport may quickly become unstable if we are not careful.
• The bode plot (from aileron to yaw rate) shows significant action due to the aileron between 1.0 & 5.0 rad/sec.
27
-6
-4
-2
0
2From: aileron
To: r
oll r
ate
0 5 10 15 20-0.8
-0.6
-0.4
-0.2
0
To: y
aw ra
te
From: rudder
0 5 10 15 20
Impulse Response
Time (sec)
Ampl
itude
-1 -0.5 0 0.5 1 1.5 2 2.5-4
-2
0
2
4Root Locus
Real Axis
Imag
inar
y Ax
is
-50
0
50From: aileron To: roll rate
Mag
nitu
de (d
B)
10-3
10-2
10-1
100
101
102
0
180
360
Pha
se (
deg)
Bode Diagram
Frequency (rad/sec)
-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5-5
0
5Root Locus
Real Axis
Imag
inar
y A
xis
-100
0
100From: aileron To: yaw rate
Mag
nitu
de (
dB)
10-3
10-2
10-1
100
101
102
-180
0
180
Phas
e (d
eg)
Bode Diagram
Frequency (rad/sec)
F-16 Yaw Damper - 3
• By using a feedback gain of -0.4 we ensure the overall stability of the system as shown in the root locus. The impulse plot shows the reduction in oscillation.
• damp(feedback(sys(1,1),-0.4)) produces the eigenvalue results shown. This command creates a simple feedback system with a gain. Now the damping is much better, while maintaining the natural frequency < 2 rad/sec.
• Note the non-minimum phase zero (right-half plane). This will cause a tendency to roll in the opposite direction initially.
28
damp(feedback(sys(1,1),-0.4)) Eigenvalue Damping Freq. (rad/s) 0.00e+000 -1.00e+000 0.00e+000 -8.99e-003 1.00e+000 8.99e-003 -6.83e-001 + 1.37e+000i 4.46e-001 1.53e+000 -6.83e-001 - 1.37e+000i 4.46e-001 1.53e+000 -2.56e+000 1.00e+000 2.56e+000
-1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2-4
-2
0
2
4Root Locus
Real Axis
Imag
inar
y Ax
is
0 2 4 6 8 10 12 14 16 18 20-6
-4
-2
0
2From: aileron To: roll rate
Impulse Response
Time (sec)
Ampl
itude
F-16 Yaw Damper - 4
• The impulse response plots show the original response in blue and the simple feedback gain (roll/yaw damper) in green. Most of the oscillation has been removed. The yaw rate now oscillates around a bias. This is as a result of the gain only. No washout filter was installed. Now the pilot will feel a fixed yaw rate during coordinated turns.
• The pole-zero map shows the original system in blue and the new system in green. The dutch roll poles are in a much better location now (more damping), and the spiral pole is closer to the origin. One of the zeros moved to the left. 29
-6
-4
-2
0
2From: aileron
To:
roll r
ate
0 5 10 15 20-0.8
-0.6
-0.4
-0.2
0
To:
yaw
rat
e
From: rudder
0 5 10 15 20
Impulse Response
Time (sec)
Ampl
itude
-3 -2.5 -2 -1.5 -1 -0.5 0-4
-2
0
2
4Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
-0.2 -0.18 -0.16 -0.14 -0.12 -0.1 -0.08 -0.06 -0.04 -0.02 0-0.2
-0.1
0
0.1
0.2Pole-Zero Map
Real Axis
Imag
inar
y A
xis
F-16 Yaw Damper – 5 (pole placement)
30
pc = [-0.02 -0.2+0.2i,... -0.2-0.2i,-3.5];po = -10 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);sysobs = ss(a-Lobs*c,Lobs,Lcon,0);Lcon = 'beta' 'roll‘ 'roll rate' 'yaw rate‘ 81.1827 -0.5088 -61.6549 -33.1050 -105.6235 1.6612 -232.9054 -77.7229
Eigenvalue Damping Freq. (rad/s) Observer dynamics -1.00e+001 1.00e+000 1.00e+001 -1.02e+001 + 2.00e-001i 1.00e+000 1.02e+001 -1.02e+001 - 2.00e-001i 1.00e+000 1.02e+001 -1.35e+001 1.00e+000 1.35e+001 Controlled system (roll/yaw damper) -2.00e-002 1.00e+000 2.00e-002 -2.00e-001 + 2.00e-001i 7.07e-001 2.83e-001 -2.00e-001 - 2.00e-001i 7.07e-001 2.83e-001 -3.50e+000 1.00e+000 3.50e+000
• The previous control solution is the classical approach in Stevens & Lewis. We’ll now introduce ‘modern’ pole placement which is a commonly used multivariable approach. By using a state space pole placement method we can generate an observer which produces an estimated or smoothed state vector which is fed into the control law. Thus, we have more degrees of freedom to achieve the control objectives.
• By use of the ‘place’ command we can specify the observer (smoother) poles and the system poles with verifiable accuracy. Pole placement allows us to design very quickly as well as accurately. Note that we had to remove the yaw angle state as the state must be controllable or accessible.
• The po vector is the desired observer poles. We arbitrarily offset them a reasonable distance from the pc vector so the observer poles would not interfere with the control law performance.
• The pc vector is the desired system poles. The design results are shown under Controlled system. Note the Lcon values emphasize beta, roll rate, & yaw rate with most emphasis on beta & roll rate.
• The new damping coefficient for the system is 0.707, which will satisfy short period mode pilot handling qualities.
CAS Examples
• CAS – control augmentation systems. These control systems are intended to not only control the mode but to provide the pilot with a particular type of response to the control inputs.
• CAS examples: pitch-rate & normal acceleration.
31
Pitch-Rate CAS - 1
The zeros of the above model are z =
-75.0002 -10.0000 -0.0098 + 0.0938i -1.0265 -0.0098 - 0.0938i -0.0217 Inf -0.0000The poles of the above model are
p = -10.0000 -1.9118 -0.1507 + 0.1153i -0.1507 - 0.1153i 0.0976 -20.1000
We have an unstable pole @ ~0.1. We begin with the pitch-SAS design for stability.
32
A = [-0.019311 8.8157 -32.17 -0.57499 -0.00025389 -1.0189 0 0.90506 0 0 0 1 2.9465e-12 0.82225 0 -1.0774];B = [0.1737 -0.0021499 0 -0.17555]';C = [0 57.29578 0 0 0 0 0 57.29578];D = [0 0]';sys = ss(A,B,C,D);
Model-25 -20 -15 -10 -5 0 5
-0.2
-0.1
0
0.1
0.2Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
-80 -70 -60 -50 -40 -30 -20 -10 0 10-20
-10
0
10
20Root Locus
Real Axis
Imag
inar
y Ax
is
-12 -10 -8 -6 -4 -2 0 2-2
-1
0
1
2Root Locus
Real Axis
Imag
inar
y Ax
is
-0.4 -0.35 -0.3 -0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1-0.2
-0.1
0
0.1
0.2Root Locus
Real Axis
Imag
inar
y Ax
is
The command creates the pitch-SAS design discussed previously:clsys = feedback(feedback(sys,-0.1,1,1),-0.2,1,2);From the root locus below we see that the unstable pole is no longer an issue. The new zeros are:-75.0002 -0.0000 -0.0098 + 0.0938i -0.0217 -0.0098 - 0.0938i -1.0265 -10.0000 -10.0000 -10.0000 -10.0000The new poles are: -10.0000 -10.0000 -17.8184 -0.0105 + 0.0184i -0.0105 - 0.0184i -1.1336 -3.3426The phugoid damping coefficient is ~0.495.
Pitch-Rate CAS - 1
• The plot at right shows the pitch rate SAS without a CAS to force it to track commands. The simulink and overall block diagram are above.
• The SAS at the given values provides a stable response. The alpha angle appears to respond the most to ‘des’ inputs.
• The next step following the SAS inner loop is to design a useful CAS outer loop. 33
Σ actuator Aircraftmodel
AlphaSensor
Pitch rate
Sensor
NoiseFilter
NoiseFilter
ka
kq
α
q
SAS
PI
CAS
Σ
0 100 200 300 400 500 600 700 800 900 1000-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05
time (sec)
angl
e (d
egre
es)
SAS (CAS=1) with [ka kq] = [0.2 0.6]
set pointalphaq
des
s+10
10
q fi lter
s+10
10
alpha fi lter
alph-q0.6
SAS kq
0.2
SAS ka
f16_long
F16 long mdlBand-LimitedWhite Noise
-20.2
s+20.2Actuator mdl
Pitch-Rate CAS - 2
• The diagram on the left is the CAS simulink code that includes the alpha/q SAS controller.
• The two plots above show the q desired versus the q output. The tracking of the PI CAS is reasonably good.
• The bottom plot shows the faster short-period mode as well as the slower phugoid mode.
34
0 200 400 600 800 1000 1200-5
0
5
10x 10
-3
angl
e (d
egre
es)
SAS/CAS with [ka kq kp z] = [0.2 0.6 0.4 3]
set pointq
592 594 596 598 600 602 604 606-3
-2.5
-2
-1.5
-1x 10
-3
time (sec)
angl
e (d
egre
es)
s+10
10
q fil ter
s+10
10
alpha fi lter
alph-q
0.6
SAS kq
0.2
SAS ka
f16_long
F16 long mdl
0.4
CASkp
s+3
sCAS_PIBand-Limited
White Noise
-20.2
s+20.2Actuator mdl
-25 -20 -15 -10 -5 0-2
-1
0
1
2Pole-Zero Map
Real AxisIm
agin
ary
Axi
s
-25 -20 -15 -10 -5 0 5-20
-10
0
10
20Root Locus
Real Axis
Imag
inar
y Ax
is
Pitch-Rate CAS matlab code - 3close_system('f16Long_CAS_mdl',1)A = [-0.019311 8.8157 -32.17 -0.57499 -0.00025389 -1.0189 0 0.90506 0 0 0 1 2.9465e-12 0.82225 0 -1.0774];B = [0.1737 -0.0021499 0 -0.17555]';C = [0 57.29578 0 0 0 0 0 57.29578];D = [0 0]';ka = 0.2;% ka = 0.08;kq = 0.6;
kp = 0.3;z1 = 3; open_system('f16Long_CAS_mdl') set_param('f16Long_CAS_mdl/SAS kq','Gain',num2str(kq)) set_param('f16Long_CAS_mdl/SAS ka','Gain',num2str(ka)) set_param('f16Long_CAS_mdl/CASkp','Gain',num2str(kp)) set_param('f16Long_CAS_mdl/CAS_PI','Numerator',... ['[',num2str(1),' ',num2str(z1),']']) CAS_mdl_io(1) = linio('f16Long_CAS_mdl/Add1',1,'in','on'); CAS_mdl_io(2) = linio('f16Long_CAS_mdl/Demux',2,'out','on'); setlinio('f16Long_CAS_mdl',CAS_mdl_io) CAS_lin_mdl = linearize('f16Long_CAS_mdl',CAS_mdl_io); sim('f16Long_CAS_mdl',1200)
35
s+10
10
q fi l ter
s+10
10
alpha fi l ter
alph-q
0.6
SAS kq
0.2
SAS ka
f16_long
F16 long mdl
0.4
CASkp
s+3
sCAS_PIBand-Limited
White Noise
-20.2
s+20.2Actuator mdl
Normal Acceleration CAS - 1
• The diagram on the left is the normal acceleration (an) CAS simulink code that includes an alpha/q SAS controller.
• The two plots above show the an desired versus the an output. The tracking of the PI CAS is good with nominal overshoot. The bottom plot shows typical response along with a small non-minimum phase response.
• The pole-zero map and root locus show the compensated system pole locations. The RHP zero is the source of the non-minimum phase response.
36
s+10
10
q fil ter
s+10
10
alpha fi lter
alph-q
0.4
SAS kq
0.08
SAS ka
f16_long
F16 long mdl
1.2
CASkp
s+2.2
sCAS_PI
Band-LimitedWhite Noise
-20.2
s+20.2Actuator mdl
alph
q
an
0 200 400 600 800 1000 1200-5
0
5
10x 10
-3
angl
e (d
egre
es)
SAS/CAS with [ka kq kp z] = [0.08 0.4 1.2 2.2]
set pointnormal accel
592 594 596 598 600 602 604 606-4
-3
-2
-1x 10
-3
time (sec), sum error = 0.47193
angl
e (d
egre
es)
-25 -20 -15 -10 -5 0 5 10-10
-5
0
5
10Pole-Zero Map
Real AxisIm
agin
ary
Axis
-30 -20 -10 0 10 20 30 40 50 60-20
-10
0
10
20Root Locus
Real Axis
Imag
inar
y Ax
is
s+10
10
q fi l ter
s+10
10
alpha fi l ter
alph-q
0.4
SAS kq
0.08
SAS ka
f16_long
F16 long mdl
1.2
CASkp
s+2.2
sCAS_PI
Band-LimitedWhite Noise
-20.2
s+20.2Actuator mdl
alph
q
an
Normal Acceleration CAS matlab code -2close_system('f16Long_normAccel_CAS_mdl',1)% states = {'vT' 'alpha' 'theta' 'q'};A = [-0.019311 8.8157 -32.17 -0.57499 -0.00025389 -1.0189 0 0.90506 0 0 0 1 2.9465e-12 0.82225 0 -1.0774];B = [0.1737 -0.0021499 0 -0.17555]';C = [0 57.29578 0 0 0 0 0 57.29578 0.0039813 16.262 0 0.97877];% D = [0 0 -0.048523]';D = [0 0 0.048523]';% ka = 0.1;ka = 0.08;kq = 0.4;A = A - B*[0 ka 0 kq];f16_long = ss(A,B,C,D);%sys1 = sys;kp = 1.2;z1 = 2.2;open_system('f16Long_normAccel_CAS_mdl')set_param('f16Long_normAccel_CAS_mdl/SAS kq','Gain',num2str(kq))set_param('f16Long_normAccel_CAS_mdl/SAS ka','Gain',num2str(ka))set_param('f16Long_normAccel_CAS_mdl/CASkp','Gain',num2str(kp))set_param('f16Long_normAccel_CAS_mdl/CAS_PI','Numerator',... ['[',num2str(1),' ',num2str(z1),']'])CAS_mdl_io(1) = linio('f16Long_normAccel_CAS_mdl/Add1',1,'in','on');CAS_mdl_io(2) = linio('f16Long_normAccel_CAS_mdl/Demux',3,'out','on');setlinio('f16Long_normAccel_CAS_mdl',CAS_mdl_io)CAS_lin_mdl = linearize('f16Long_normAccel_CAS_mdl',CAS_mdl_io)sim('f16Long_normAccel_CAS_mdl',1200)an_err = sum(abs(alpha_q.signals.values(:,[1]) - ... alpha_q.signals.values(:,[4])));
37
Autopilot – Pitch Att. Hold with Lead - 1
• The diagram on the left is the Pitch attitude hold AP simulink code that includes an alpha/q SAS controller, CAS PI controller, as well as the AP theta hold.
• The two upper plots show the theta desired versus the theta output. The tracking of the AP theta hold is good with nominal overshoot. The bottom plot shows typical response.
• The pole-zero map and root locus show the compensated system pole locations.
38
s+10
10
q fi l ter
s+10
10
alpha fi lter
alph-q
0.6
SAS kq
0.08
SAS ka
JET_long
JET long mdl
1.2
CASkp
s+0.2
sCAS_PI
Band-LimitedWhite Noise
-20.2
s+20.2Actuator mdl
s+1.4
s+14AP_lead
40
APKld
-25 -20 -15 -10 -5 0-1
-0.5
0
0.5
1Pole-Zero Map
Real AxisIm
agin
ary
Axis
-70 -60 -50 -40 -30 -20 -10 0 10 20-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
0 200 400 600 800 1000 1200-5
0
5
10x 10
-3
angl
e (d
egre
es)
SAS/CAS with [ka kq kp z] = [0.08 0.6 1.2 0.2]AP [gain lead lag] = [40 1.4 14]
set pointtheta
295 300 305 310 315 320 325 330-5
0
5x 10
-3
time (sec), sum error = 0.53487
angl
e (d
egre
es)
Autopilot – Pitch Att. Hold with Lead - 2
• Phase and gain margins are for the theta loop.
• With a GM = 22.7 & a PM = 62.5 we are doing well with this system as is.
39
-150
-100
-50
0
50
100From: Add1 To: Demux/3
Mag
nitu
de (d
B)
10-3
10-2
10-1
100
101
102
103
-270
-180
-90
0
Phas
e (d
eg)
Bode DiagramGm = 22.7 dB (at 15.7 rad/sec) , Pm = 62.5 deg (at 2.63 rad/sec)
Frequency (rad/sec)
Autopilot matlab code – Pitch Att. Hold with Lead - 3% states = {'vT' 'alpha' 'theta' 'q'};A = [-0.038916 18.992 -32.149 0.0 -0.0010285 -0.64537 0.0056129 1.0 0 0 0 1 8.0847e-5 -0.77287 -8.0979e-4 -0.529];B = [0 0 0 -0.010992]';C = [0 57.29578 0 0 0 0 0 57.29578 0 0 57.29578 0];% D = [0 0 -0.048523]';D = [0 0 0]';% ka = 0.1;ka = 0.08;% SASkq = 0.6;%SASJET_long = ss(A,B,C,D);%sys1 = sys;kp = 1.2;z1 = 0.2;% CASz2 = 1.4;p2 = 14;klead = 40;% APopen_system('JETLong_Pitch_Hold_AP_mdl')set_param('JETLong_Pitch_Hold_AP_mdl/SAS kq','Gain',num2str(kq))set_param('JETLong_Pitch_Hold_AP_mdl/SAS ka','Gain',num2str(ka))set_param('JETLong_Pitch_Hold_AP_mdl/CASkp','Gain',num2str(kp))set_param('JETLong_Pitch_Hold_AP_mdl/CAS_PI','Numerator',... ['[',num2str(1),' ',num2str(z1),']'])set_param('JETLong_Pitch_Hold_AP_mdl/AP_lead','Numerator',... ['[',num2str(1),' ',num2str(z2),']'])set_param('JETLong_Pitch_Hold_AP_mdl/AP_lead','Denominator',... ['[',num2str(1),' ',num2str(p2),']'])set_param('JETLong_Pitch_Hold_AP_mdl/APKld','Gain',num2str(klead))AP_mdl_io(1) = linio('JETLong_Pitch_Hold_AP_mdl/Add1',1,'in','on');AP_mdl_io(2) = linio('JETLong_Pitch_Hold_AP_mdl/Demux',3,'out','on');setlinio('JETLong_Pitch_Hold_AP_mdl',AP_mdl_io)AP_lin_mdl = linearize('JETLong_Pitch_Hold_AP_mdl',AP_mdl_io);sim('JETLong_Pitch_Hold_AP_mdl',1200)
40
s+10
10
q fi l ter
s+10
10
alpha fi lter
alph-q
0.6
SAS kq
0.08
SAS ka
JET_long
JET long mdl
1.2
CASkp
s+0.2
sCAS_PI
Band-LimitedWhite Noise
-20.2
s+20.2Actuator mdl
s+1.4
s+14AP_lead
40
APKld
Autopilot for Automatic Landing - 1• Automatic landing may be necessary when controlling
the trajectory of an aircraft may be too difficult for the pilot. Cases may include bad weather or limited visibility.
• Automatic control of the longitudinal trajectory requires simultaneously controlling engine thrust and pitch attitude. This may be done by regulating airspeed (vT) and deviation from glide-path (d).
• This system has 2 inputs (throttle & elevator) and 2 outputs (vT & d). A multivariable system may be designed according to the classical approach by decoupling airspeed & deviation from glide-path.
• The 1st step is to take the theta-hold autopilot previously developed & augment it to incorporate the 2x2 system described above.
41
Autopilot for Automatic Landing - 2
• Above is the simulink code for the autolander. It is based on the Stevens and Lewis cp 4 example.
• For the pitch portion it includes the alpha-q SAS, the pitch rate CAS, the pitch attitude hold autopilot, and the ‘d’ tracking autopilot.
• It includes an airspeed regulation on the other channel.• Due to the sluggish response of the throttle lag a 6-sec lag low pass
filter was added to the set point to reduce the overshoot.
42
s+10
10
q fil ter
6s+1
1
dsp_fi lt
s+10
10
alpha fi lter
alph-q
1.2
VTgain
s+0.5
s+5VT_lead
0.2
s+0.2Throt_lag
0.6
SAS kq
0.08
SAS ka
JET_long
JET long mdl
s+0.2
sCAS_PI
Band-LimitedWhite Noise1
Band-LimitedWhite Noise
-20.2
s+20.2Actuator mdl
s+1.4
s+14AP_lead
40
APKld
(s+0.18)(s+0.5)
s(s+5)AL_lead
Autopilot for Automatic Landing - 3• The pole-zero map at
right indicates all loops have been stabilized.
• The top root locus is for the vT-throttle loop. The bottom root locus is for the glide path-elevator loop.
43
-25 -20 -15 -10 -5 0-2
-1.5
-1
-0.5
0
0.5
1
1.5
2Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
-25 -20 -15 -10 -5 0 5-10
-5
0
5
10Root Locus
Real AxisIm
agin
ary
Axis
-60 -50 -40 -30 -20 -10 0 10 20 30-40
-20
0
20
40Root Locus
Real Axis
Imag
inar
y Ax
is
Autopilot for Automatic Landing - 4
• The vT appears to track well as shown.
• The glide path deviation (d) has large overshoots & is subject to disturbances.
• The vT set point filter seemed to help reduce the overshoot.
44
0 200 400 600 800 1000 1200-0.02
0
0.02
0.04
angl
e (d
egre
es)
autolander with [kvt zvt pvt] = [1.2 0.5 5]autolander glide-slope
vT spd spvTd
195 200 205 210 215 220-0.01
-0.005
0
0.005
0.01
time (sec), sum error = 6.4916
angl
e (d
egre
es)
Autopilot for Automatic Landing - 5• The gain & phase
margin of the two parallel loops are shown at right along with the bode plots.
• Both loops have good phase margins for good performance.
45
-200
0
200From: Add2 To: Demux/1
Mag
nitu
de (d
B)
10-4
10-2
100
102
-180
-90
0
Phas
e (d
eg)
Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 68.1 deg (at 0.605 rad/sec)
Frequency (rad/sec)
-500
0
500From: Add3 To: Demux/2
Mag
nitu
de (d
B)
10-4
10-2
100
102
-540-360
-1800
Phas
e (d
eg)
Bode DiagramGm = 14.9 dB (at 2.45 rad/sec) , Pm = 60.1 deg (at 0.507 rad/sec)
Frequency (rad/sec)
Matlab code for Automatic Landing - 6close_system('JET_Pitch_autoLand_AP_mdl',1)% states = {'vT' 'alpha' 'theta' 'q' 'h' 'd'};% h is the altitude, d is the positive glide path deviationA = [-0.03858 18.984 -32.139 0.0 1.3233e-4 0 -0.001028 -0.63253 0.0056129 1.0 3.7553e-6 0 0 0 0 1 0 0 7.8601e-5 -0.75905 -0.00079341 -0.5183 -3.0808e-7 0 -0.043622 -249.76 249.76 0 0 0 0 -250 250 0 0 0];B = [10.1 -1.5446e-4 0 0.024656 0 0;0 0 0 -0.01077 0 0]';C = [1 0 0 0 0 0 0 0 0 0 0 1 0 0 57.29578 0 0 0 0 57.29578 0 0 0 0 0 0 0 57.29578 0 0];% D = [0 0 -0.048523]';D = [0 0 0 0 0;0 0 0 0 0]';% ka = 0.1;% A = A - B*[0 ka 0 kq];JET_long = ss(A,B,C,D);%sys1 = sys;ka = 0.08;% SASkq = 0.6;%SASz1 = 0.2;% CASz2 = 1.4;p2 = 14;klead = 40;% AP thetazthr = 0.2;zvt = 0.5;kvt = 1.2;pvt = 5;% airspeed autopilotzAL = [-0.18 -0.5];pAL = [0 -5];kAL = 1;open_system('JET_Pitch_autoLand_AP_mdl')
46
set_param('JET_Pitch_autoLand_AP_mdl/SAS kq','Gain',num2str(kq))set_param('JET_Pitch_autoLand_AP_mdl/SAS ka','Gain',num2str(ka))set_param('JET_Pitch_autoLand_AP_mdl/CAS_PI','Numerator',... ['[',num2str(1),' ',num2str(z1),']'])set_param('JET_Pitch_autoLand_AP_mdl/AP_lead','Numerator',... ['[',num2str(1),' ',num2str(z2),']'])set_param('JET_Pitch_autoLand_AP_mdl/AP_lead','Denominator',... ['[',num2str(1),' ',num2str(p2),']'])set_param('JET_Pitch_autoLand_AP_mdl/APKld','Gain',num2str(klead))set_param('JET_Pitch_autoLand_AP_mdl/Throt_lag','Numerator',... ['[',num2str(zthr),']'])set_param('JET_Pitch_autoLand_AP_mdl/Throt_lag','Denominator',... ['[',num2str(1),' ',num2str(zthr),']'])set_param('JET_Pitch_autoLand_AP_mdl/VT_lead','Numerator',... ['[',num2str(1),' ',num2str(zvt),']'])set_param('JET_Pitch_autoLand_AP_mdl/VT_lead','Denominator',... ['[',num2str(1),' ',num2str(pvt),']'])set_param('JET_Pitch_autoLand_AP_mdl/VTgain','Gain',num2str(kvt))set_param('JET_Pitch_autoLand_AP_mdl/AL_lead','Zeros',... ['[',num2str(zAL),']'],'Poles',... ['[',num2str(pAL),']'],'Gain',... ['[',num2str(kAL),']'])AP_mdl_io(1) = linio('JET_Pitch_autoLand_AP_mdl/Add2',1,'in','on');AP_mdl_io(2) = linio('JET_Pitch_autoLand_AP_mdl/Demux',1,'out','on');AP_mdl_io(3) = linio('JET_Pitch_autoLand_AP_mdl/Add3',1,'in','on');AP_mdl_io(4) = linio('JET_Pitch_autoLand_AP_mdl/Demux',2,'out','on');set_param('JET_Pitch_autoLand_AP_mdl/dsp_filt','Denominator',... ['[',num2str(6),' ',num2str(1),']'])setlinio('JET_Pitch_autoLand_AP_mdl',AP_mdl_io)AP_lin_mdl = linearize('JET_Pitch_autoLand_AP_mdl',AP_mdl_io);sim('JET_Pitch_autoLand_AP_mdl',1200)
Modern Control Design• Based directly on state variable models• Specifications in terms of mathematically determined performance
criteria yield matrix equations for the control gains.• Matrix equations allow all the control gains to computed simultaneously,
which closes all the loops at the same time. • More quick and direct than equivalent classical design methods. • Design features or problems include:
– Pole-placement/eigenvector assignment– Regulator problem, – Tracker problem (tracking a command signal)– Model following– Dynamic inversion– Robust design– Observers, Kalman filters– Digital control
47
F-16 Yaw Damper – 1 (pole placement)
48
pc = [-0.02 -0.2+0.2i,... -0.2-0.2i,-3.5];po = -10 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);sysobs = ss(a-Lobs*c,Lobs,Lcon,0);Lcon = 'beta' 'roll‘ 'roll rate' 'yaw rate‘ 81.1827 -0.5088 -61.6549 -33.1050 -105.6235 1.6612 -232.9054 -77.7229
Eigenvalue Damping Freq. (rad/s) Observer dynamics -1.00e+001 1.00e+000 1.00e+001 -1.02e+001 + 2.00e-001i 1.00e+000 1.02e+001 -1.02e+001 - 2.00e-001i 1.00e+000 1.02e+001 -1.35e+001 1.00e+000 1.35e+001 Controlled system (roll/yaw damper) -2.00e-002 1.00e+000 2.00e-002 -2.00e-001 + 2.00e-001i 7.07e-001 2.83e-001 -2.00e-001 - 2.00e-001i 7.07e-001 2.83e-001 -3.50e+000 1.00e+000 3.50e+000
• We’ll now introduce ‘modern’ pole placement which is a commonly used multivariable approach. By using a state space pole placement method we can generate an observer which produces an estimated or smoothed state vector which is fed into the control law. Thus, we have more degrees of freedom (length of the state vector) to achieve the control objectives.
• By use of the matlab ‘place’ command we can specify the observer (state space smoother) poles and the control system poles with verifiable accuracy. Pole placement allows us to design very quickly as well as accurately. Note that we had to remove the yaw angle state as the state must be controllable or accessible.
• The po vector is the desired observer poles. We arbitrarily offset them a reasonable distance from the pc vector so the observer poles will not interfere with the control law performance.
• The pc vector is the desired system poles. The design results are shown under Controlled system. Note the Lcon values emphasize beta, roll rate, & yaw rate with most emphasis on beta & roll rate. Therefore, pole placement may also be used as a sensitivity analysis tool.
• The new damping coefficient for the system is 0.707, which will satisfy short period mode pilot handling qualities.
A = [-0.1315 0.14858 0 0.32434 -0.93964 0 0 0 1 0.33976 0 0 0 0 1.0561 -10.614 0 0 -1.1793 1.0023 0.99655 0 0 -0.0018174 -0.25855];B = [0.00012049 0.00032897 0 0 0 0 -0.1031578 0.020987 -0.002133 -0.010715];C = [0 0 0 57.29578 0 0 0 0 0 57.29578];D = [0 0 0 0];
Starting model. Yaw angle was removed for ‘place’ to work.
F-16 Yaw Damper – 2 (pole placement)• Pp1 uses the following
commands: a1 = 0.75;b1 = 0.9;pc = [-0.01 -a1+b1*1i,... -a1-b1*1i,-5];po = -10 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);sysobs = ss(a-
Lobs*c,Lobs,Lcon,0);syscon = ss(a-
b*Lcon,b,c,d);• Pp1 is based on the
original plant
49
-6
-4
-2
0
2From: aileron
To: r
oll r
ate
0 5 10 15 20-1
-0.5
0
0.5
To: y
aw ra
te
From: rudder
0 5 10 15 20
Impulse Response
Time (sec)
Ampl
itude
orig f16classicalpp1
state vector = 'beta' 'roll‘ 'roll rate' 'yaw rate‘Control vector = ‘aileron’ ‘rudder’Lcon = 66.2803 -11.8009 -10.7259 -96.9482 -163.8392 5.1284 -34.7423 -410.4016For the above specified poles beta & yaw rate are emphasized, that is, the control system is more sensitive to beta & yaw rate values than roll & roll rate values.
Pole Placement for CCV fighter Pitch Pointing - 1states = {'alpha''q' 'gamma' 'elev''flap'}A = [-1.341 0.9933 0 -0.1689 -0.2518 43.223 -0.8693 0 -17.251 -1.5766 1.341 0.0067 0 0.1689 0.2518 0 0 0 -20 0 0 0 0 0 -20];B = [0 0 0 20 0;0 0 0 0 20]';C = [0 1 0 0 0 47.76 -0.268 0 -4.56 4.45 zeros(3,2) eye(3)]; D = zeros(5,2);JET_long = ss(A,B,C,D);%sys1 = sys; % pole placementa = A;b = B;c = C;d = D;a1 = 5.6;b1 = 4.2;pc = [-1.0 -a1+b1*1i,... -a1-b1*1i,-19 -19.5];po = -20 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);sysobs = -ss(a-Lobs*c,Lobs,Lcon,0);syscon = ss(a-b*Lcon,b,c,d);
• The control law improves the pole locations. Note that the movement desired is small. This way the gain magnitudes are relatively small.
• Sysobs is the complete compensator & is used to check the observer pole locations. Syscon is used to check the pole locations.
50
Lcon = -5.6052 -0.7355 -1.3926 0.4634 0.0864 -0.3858 -0.0219 0.3983 0.0063 -0.0389
Eigenvalue Damping Freq. (rad/s) Observer dynamics -2.10e+001 1.00e+000 2.10e+001 -2.56e+001 + 4.20e+000i 9.87e-001 2.59e+001 -2.56e+001 - 4.20e+000i 9.87e-001 2.59e+001 -3.90e+001 1.00e+000 3.90e+001 -3.95e+001 1.00e+000 3.95e+001 Controlled system (roll/yaw damper) -1.00e+000 1.00e+000 1.00e+000 -5.60e+000 + 4.20e+000i 8.00e-001 7.00e+000 -5.60e+000 - 4.20e+000i 8.00e-001 7.00e+000 -1.90e+001 1.00e+000 1.90e+001 -1.95e+001 1.00e+000 1.95e+001
Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
-20 -18 -16 -14 -12 -10 -8 -6 -4 -2 0-5
-4
-3
-2
-1
0
1
2
3
4
5
System: sysconPole : -1Damping: 1Overshoot (%): 0Frequency (rad/sec): 1
System: sysconPole : -5.6 - 4.2iDamping: 0.8Overshoot (%): 1.52Frequency (rad/sec): 7
Pole Placement for CCV fighter Pitch Pointing - 2• The root loci is organized so that
the 1st column is due to elevator action. The 2nd column is due to flaperon action.
• The rows are: 1st – q (pitch rate), 2nd – nzp (normal acceleration), 3rd – gamma (flight path angle).
• The phugoid mode has been moved to a -1 pole location.
• The short-period dynamics are now at -5.6 +- 4.2i, which has a damping coefficient of 0.8.
• The matlab code follows:
subplot(321)rlocus(syscon(1,1)),%grid onsubplot(322)rlocus(syscon(1,2)),%grid onsubplot(323)rlocus(syscon(2,1)),%grid onsubplot(324)rlocus(syscon(2,2)),%grid onsubplot(325)rlocus(syscon(3,1)),%grid onsubplot(326)rlocus(syscon(3,2)),%grid on
51
-100 -50 0 50-10
0
10Root Locus
Real Axis
Imag
inar
y Ax
is
-100 -50 0 50-10
0
10Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-20
0
20Root Locus
Real AxisIm
agin
ary
Axis
-40 -20 0 20-5
0
5Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-200
0
200Root Locus
Real Axis
Imag
inar
y Ax
is
-20 -10 0 10-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
Pole Placement for CCV fighter Pitch Pointing - 3• The impulse responses are
organized so that the 1st column is due to elevator action. The 2nd column is due to flaperon action.
• The rows are: 1st – q, 2nd – nzp, 3rd – gamma.
• The impulse show that the outputs are more sensitive to elevator disturbances than flaperon disturbances. Also, there are no biases due to impulse disturbances.
• The matlab code follows:
impulse(syscon(1:3,:)),grid on
52
-10
-5
0
5From: In(1)
To: O
ut(1
)
-100
0
100
To: O
ut(2
)
0 2 4 6-1
-0.5
0
0.5To
: Out
(3)
From: In(2)
0 2 4 6
Impulse Response
Time (sec)
Ampl
itude
Pole Placement for CCV fighter Pitch Pointing - 4• The step responses are
organized so that the 1st column is due to elevator action. The 2nd column is due to flaperon action.
• The rows are: 1st – q, 2nd – nzp, 3rd – gamma.
• The steps show that the outputs are more sensitive to elevator disturbances than flaperon disturbances. The only ‘normal’ step response is in the gamma channel.
• The matlab code follows:
step(syscon(1:3,:)),grid on
53
-1.5
-1
-0.5
0
From: In(1)
To: O
ut(1
)
-10
-5
0To
: Out
(2)
0 2 4 6-1
-0.5
0
0.5
To: O
ut(3
)
From: In(2)
0 2 4 6
Step Response
Time (sec)
Ampl
itude
LQR state feedback for F16 - 1A = [-0.322 0.064 0.0364 -0.9917 0.0003 0.0008 0 0 0 1 0.0037 0 0 0 -30.6492 0 -3.6784 0.6646 -0.7333 0.1315 0 8.5396 0 -0.0254 -0.4764 -0.0319 -0.062 0 0 0 0 0 -20.2 0 0 0 0 0 0 0 -20.2 0 0 0 0 180/pi 0 0 -1];B = [0 0 0 0 20.2 0 0;0 0 0 0 0 20.2 0]';C = 180/pi*[0 0 0 1 0 0 -pi/180 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0];D = zeros(4,2);JET_long = ss(A,B,C,D);
Q = eye(size(A))*100;R = c*c'*1e-3;N = c';Lobs = lqr(a',c',Q,R).';qdr = 50;qp = 100;Q = diag([qdr qp qp qdr 0 0 1]);R = 0.1*eye(2);N = b;Lcon = lqr(a,b,Q,R);sysobs_state = ss(a-Lobs*c,Lobs,Lcon,0);syscon_state = ss(a-b*Lcon,b,c,d);
• The control law improves the pole locations. Note that the movement is small. This way the gain magnitudes are relatively small.
• Sysobs is the complete compensator & is used to check the observer pole locations. Syscon is used to check the pole locations.
• Most of the observer poles are larger in magnitude than the controlled system poles. All have high damping.
54
-25 -20 -15 -10 -5 0-15
-10
-5
0
5
10
15Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
Eigenvalue Damping Freq. (rad/s) Observer dynamics -2.28e-002 1.00e+000 2.28e-002 -2.02e+001 1.00e+000 2.02e+001 -2.02e+001 1.00e+000 2.02e+001 -3.16e+002 + 1.49e-001i 1.00e+000 3.16e+002 -3.16e+002 - 1.49e-001i 1.00e+000 3.16e+002 -3.17e+002 + 1.61e+001i 9.99e-001 3.17e+002 -3.17e+002 - 1.61e+001i 9.99e-001 3.17e+002 Controlled system (F16 long. SAS) -7.72e-001 1.00e+000 7.72e-001 -9.12e-001 1.00e+000 9.12e-001 -1.93e+000 + 3.42e+000i 4.91e-001 3.92e+000 -1.93e+000 - 3.42e+000i 4.91e-001 3.92e+000 -2.02e+001 1.00e+000 2.02e+001 -1.86e+001 + 1.16e+001i 8.48e-001 2.19e+001 -1.86e+001 - 1.16e+001i 8.48e-001 2.19e+001
LQR state feedback for F16 - 2
55
• The root loci is organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The phugoid mode has been moved to a -0.77 pole location.
• The short-period dynamics are now at -1.93 +- 3.42i, which has a damping coefficient of 0.491.
55
-100 -50 0 50-20
0
20Root Locus
Real Axis
Imag
inar
y Ax
is
-100 -50 0 50-20
0
20Root Locus
Real Axis
Imag
inar
y Ax
is
-100 -50 0 50-20
0
20Root Locus
Real AxisIm
agin
ary
Axis
-30 -20 -10 0 10-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
-30 -20 -10 0 10-200
0
200Root Locus
Real Axis
Imag
inar
y Ax
is
-100 -50 0 50-1000
0
1000Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20 40-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
LQR state feedback for F16 - 3
56
• The impulse responses are organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The impulse show that the roll outputs are more sensitive to rudder disturbances than aileron disturbances. Also, r / β are more sensitive to aileron disturbances.
• A non-minimum phase response is shown from the yaw rate response to aileron action.
• The matlab code follows:
impulse(syscon),grid on
-5
0
5From: In(1)
To: O
ut(1
)
-20
0
20
To: O
ut(2
)
-1
0
1
To: O
ut(3
)
0 2 4 6 8 10-2
0
2
To: O
ut(4
)
From: In(2)
0 2 4 6 8 10
Impulse Response
Time (sec)
Ampl
itude
LQR state feedback for F16 - 4
57
• The step responses are organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The steps as well as impulses show that the roll outputs are more sensitive to rudder disturbances than aileron disturbances. Also, r / β are more sensitive to aileron disturbances.
• Only roll angle shows a true step response from rudder action. Only side slip angle shows a true step response from aileron action.
-0.5
0
0.5From: In(1)
To: O
ut(1
)
-2
0
2
To: O
ut(2
)
0
0.2
0.4
To: O
ut(3
)
0 2 4 6 8 10-2
-1
0
To: O
ut(4
)
From: In(2)
0 2 4 6 8 10
Step Response
Time (sec)
Ampl
itude
LQR state feedback for F16 - 4
58
• The step responses are organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The steps as well as impulses show that the roll outputs are more sensitive to rudder disturbances than aileron disturbances. Also, r / β are more sensitive to aileron disturbances.
• Only roll angle shows a true step response from rudder action. Only side slip angle shows a true step response from aileron action.
-0.5
0
0.5From: In(1)
To: O
ut(1
)
-2
0
2
To: O
ut(2
)
0
0.2
0.4
To: O
ut(3
)
0 2 4 6 8 10-2
-1
0
To: O
ut(4
)
From: In(2)
0 2 4 6 8 10
Step Response
Time (sec)
Ampl
itude
LQR output feedback for F16 - 1A = [-0.322 0.064 0.0364 -0.9917 0.0003 0.0008 0 0 0 1 0.0037 0 0 0 -30.6492 0 -3.6784 0.6646 -0.7333 0.1315 0 8.5396 0 -0.0254 -0.4764 -0.0319 -0.062 0 0 0 0 0 -20.2 0 0 0 0 0 0 0 -20.2 0 0 0 0 180/pi 0 0 -1];B = [0 0 0 0 20.2 0 0;0 0 0 0 0 20.2 0]';C = 180/pi*[0 0 0 1 0 0 -pi/180 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0];D = zeros(4,2);JET_long = ss(A,B,C,D);qdr = 50;qp = 100;Q = diag([qdr qp qp qdr]);R = 0.1*eye(2);Lcon = lqry(JET_long,Q,R);sysobs_out = ss(a-Lobs*c,Lobs,Lcon,0);syscon_out = ss(a-b*Lcon,b,c,d);damp(sysobs_out)damp(syscon_out)
• The control law improves the pole locations. Note that the movement is small. This way the gain magnitudes are relatively small.
• Sysobs_out is the complete compensator & is used to check the observer pole locations. Syscon_out is used to check the controlled system pole locations.
• Most of the observer poles are larger in magnitude than the controlled system poles. All have high damping.
59
Eigenvalue Damping Freq. (rad/s) Observer dynamics -2.28e-002 1.00e+000 2.28e-002 -2.02e+001 1.00e+000 2.02e+001 -2.02e+001 1.00e+000 2.02e+001 -3.16e+002 + 1.49e-001i 1.00e+000 3.16e+002 -3.16e+002 - 1.49e-001i 1.00e+000 3.16e+002 -3.17e+002 + 1.61e+001i 9.99e-001 3.17e+002 -3.17e+002 - 1.61e+001i 9.99e-001 3.17e+002 Controlled system (F16 long. SAS)-7.06e-001 1.00e+000 7.06e-001 -1.11e+000 + 4.43e-001i 9.28e-001 1.19e+000 -1.11e+000 - 4.43e-001i 9.28e-001 1.19e+000 -3.10e+001 + 2.76e+001i 7.46e-001 4.15e+001 -3.10e+001 - 2.76e+001i 7.46e-001 4.15e+001 -1.17e+002 + 1.16e+002i 7.10e-001 1.65e+002 -1.17e+002 - 1.16e+002i 7.10e-001 1.65e+002
-120 -100 -80 -60 -40 -20 0-150
-100
-50
0
50
100
150Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
LQR output feedback for F16 - 2
60
• The root loci is organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The phugoid mode has been moved to a -0.706 pole location.
• The short-period dynamics are now at -1.11 +- 0.443i, which has a damping coefficient of 0.928. This performance is superior to the LQR state feedback using identical weightings.
60
-200 -100 0 100 200-200
0
200Root Locus
Real Axis
Imag
inar
y A
xis
-200 -100 0 100 200-200
0
200Root Locus
Real Axis
Imag
inar
y A
xis
-400 -200 0 200-200
0
200Root Locus
Real Axis
Imag
inar
y A
xis
-150 -100 -50 0 50-500
0
500Root Locus
Real Axis
Imag
inar
y A
xis
-150 -100 -50 0 50-1000
0
1000Root Locus
Real Axis
Imag
inar
y Ax
is
-150 -100 -50 0 50-500
0
500Root Locus
Real Axis
Imag
inar
y A
xis
-400 -200 0 200 400-500
0
500Root Locus
Real Axis
Imag
inar
y A
xis
-1000 -500 0 500-1000
0
1000Root Locus
Real Axis
Imag
inar
y Ax
is
LQR output feedback for F16 - 3
61
• The impulse responses are organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The impulse show that the roll outputs are more sensitive to rudder disturbances than aileron disturbances. Also, r - β are more sensitive to aileron disturbances.
• A non-minimum phase response is shown from the yaw rate response to aileron action.
• Responses are significantly reduced due to the improved short-period damping.
-1
0
1From: In(1)
To: O
ut(1
)
0
0.1
0.2
To: O
ut(2
)
-0.05
0
0.05
To: O
ut(3
)
0 2 4 6 8-0.04
-0.02
0
To: O
ut(4
)
From: In(2)
0 2 4 6 8
Impulse Response
Time (sec)
Ampl
itude
LQR output feedback for F16 - 4
62
• The step responses are organized so that the 1st column is due to rudder action. The 2nd column is due to aileron action.
• The rows are: 1st – r (yaw rate), 2nd – p (roll rate), 3rd - β (side slip angle), 4th – φ (roll angle).
• The steps as well as impulses show that the roll outputs are more sensitive to rudder disturbances than aileron disturbances. Also, r / β are more sensitive to aileron disturbances.
• Only roll angle shows a true step response from rudder action. Only side slip angle shows a true step response from aileron action.
• Step responses are much reduced due to the improved short-period damping.
-0.05
0
0.05From: In(1)
To: O
ut(1
)
-0.04
-0.02
0
To: O
ut(2
)
0
0.02
0.04
To: O
ut(3
)
0 2 4 6 8
-0.04
-0.02
0
To: O
ut(4
)
From: In(2)
0 2 4 6 8
Step Response
Time (sec)
Ampl
itude
LQR Summary
• For implementation on an aircraft, the control gains (Lcon) should be gain-scheduled. To do this the nonlinear aircraft equations are linearized at several equilibrium flight conditions over the desired flight envelope to obtain A & B matrices. The LQR design is repeated for those different systems.
• Since the Q & R matrices can be the same throughout the flight conditions, the control gain matrices may be obtained in a few minutes for each flight conditions.
63
Tracking a Command
• The objective is to design a control system that will track a reference signal.
• An example is to shape the system response based on a desired reference model, which is called model reference control. This is also called servodesign and is important in CAS design.
• A pole placement & an LQG tracker design will be presented using matlab commands, as has been the demonstration approach all along. In this modern control approach all the gains are determined at the same time. All the loops are closed at once.
• A major disadvantage of LQG design is tuning the Q & R matrices. Although some intuition is involved usually there is no straight forward means to derive the Q&R matrices. Generally, when pole placement is used we try to minimally adjust the original poles.
• Model reference control is based on a feedback performance signal that is used to determine the control system quality. LQG may be used for model reference control design.
64
Command Tracker – 1 – F16 model (pole placement)A = [-1.01887 0.90506 -0.00215 0 0 0.82225 -1.07741 -0.17555 0 0 0 0 -20.2 0 0 10 0 0 -10 0 -16.26 -0.9788 0.04852 0 0];B = [0 0 20.2 0 0]';G = [0 0 0 0 1]';r2d = 180/pi;C = [0 0 0 r2d 0 0 r2d 0 0 0 -16.26 -0.9788 0.048522 0 0 0 0 0 0 1];D = zeros(4,1);F = [0 0 1 0]';H = [16.26 0.9788 -0.048522 0 0];JET_long = ss(A,[B,G],C,[D,F]);Pole placement matlab design follows:% pole placement[a,b,c,d] = ssdata(JET_long);pc = -[3e-2 .18 2 10 20];po = -15 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);sysobs_PP = ss(a-Lobs*c,Lobs,Lcon,zeros(2,4));
65
The original plant characteristics are shown below.damp(JET_long) Eigenvalue Damping Freq. (rad/s) 0.00e+000 -1.00e+000 0.00e+000 -1.85e-001 1.00e+000 1.85e-001 -1.91e+000 1.00e+000 1.91e+000 -1.00e+001 1.00e+000 1.00e+001 -2.02e+001 1.00e+000 2.02e+001
Eigenvalue Damping Freq. (rad/s) Observer dynamics -1.50e+001 1.00e+000 1.50e+001 -1.52e+001 1.00e+000 1.52e+001 -1.70e+001 1.00e+000 1.70e+001 -2.50e+001 1.00e+000 2.50e+001 -3.50e+001 1.00e+000 3.50e+001 Controlled system (F16 long. SAS) -3.00e-002 1.00e+000 3.00e-002 -1.80e-001 1.00e+000 1.80e-001 -2.00e+000 1.00e+000 2.00e+000 -1.00e+001 1.00e+000 1.00e+001 -2.00e+001 1.00e+000 2.00e+001
Command Tracker – 2 – root locus (pole placement)
66
• The root loci is organized so that the 1st column is due to elevator action. The 2nd column is due to command signal.
• The rows are: 1st – α (angle of attack), 2nd – q (pitch rate), 3rd - δe (elevator actuator), 4th – α (α filter), 5th – ε (performance index).
• The phugoid mode has been moved from 0 to -0.03. This gives ~30 sec time constant.
• The short-period was moved slightly from -0.185 to -0.18.
• No root loci exists in some channels because they are based on the performance index.
66
-200 0 200 400-500
0
500Root Locus
Real Axis
Imag
inar
y Ax
is
-1 -0.5 0 0.5 1-1
0
1Root Locus
Real Axis
Imag
inar
y Ax
is
-100 -50 0 50-5
0
5Root Locus
Real AxisIm
agin
ary
Axis
-1 -0.5 0 0.5 1-1
0
1Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-10
0
10Root Locus
Real Axis
Imag
inar
y Ax
is
-1 -0.5 0 0.5 1-1
0
1Root Locus
Real Axis
Imag
inar
y Ax
is
-1 -0.5 0 0.5 1-1
0
1Root Locus
Real Axis
Imag
inar
y Ax
is
-0.15 -0.1 -0.05 0 0.05-5
0
5x 10
-3 Root Locus
Real Axis
Imag
inar
y Ax
is
Command Tracker – step (pole placement) - 3
67
• The step responses are organized so that the 1st column is due to elevator action. The 2nd column is due to command signal.
• The rows are: 1st – α (angle of attack), 2nd – q (pitch rate), 3rd - δe (elevator actuator), 4th – α (α filter), 5th – ε (performance index).
• The steps show that the lateral outputs have a rise time of ~ 12 sec. The performance index has a rise time of ~ 73 sec.
-40
-20
0From: In(1)
To: O
ut(1
)
-40
-20
0
To: O
ut(2
)
0
5
10
To: O
ut(3
)
0 50 100 1500
20
40
To: O
ut(4
)
From: In(2)
0 50 100 150
Step Response
Time (sec)
Ampl
itude
Command Tracker – F16 model (LQG state feedback) – 1 % LQR state feedbackQ = H'*H + diag([100 100 100 0 2]);R = c*c'*1e-3;Lobs = lqr(a',c',Q,R).';Q = H'*H;Q(end,end) = 0.5;R = 5*eye(2);Lcon = lqr(a,b,Q,R);sysobs_state = ss(a-Lobs*c,Lobs,Lcon,0);syscon_state = ss(a-b*Lcon,b,c,d);damp(sysobs_state)damp(syscon_state)
• The control law improves the pole locations. The original pole near the origin is slightly unstable. This phugoid mode under the control has a good damping of 0.866 & has good distance from the origin.
• Sysobs_out is the complete compensator (controller plus observer) & is used to check the observer pole locations. Syscon_out is used to check the controlled system pole locations.
• Most of the observer poles (not shown) are larger in magnitude than the controlled system poles. All have high damping.
68
Eigenvalue Damping Freq. (rad/s) Original dynamics 0.00e+000 -1.00e+000 0.00e+000 -1.85e-001 1.00e+000 1.85e-001 -1.91e+000 1.00e+000 1.91e+000 -1.00e+001 1.00e+000 1.00e+001 -2.02e+001 1.00e+000 2.02e+001 Controlled system (F16 long)-6.41e-001 + 3.71e-001i 8.66e-001 7.41e-001 -6.41e-001 - 3.71e-001i 8.66e-001 7.41e-001 -1.79e+000 1.00e+000 1.79e+000 -1.00e+001 1.00e+000 1.00e+001 -2.02e+001 1.00e+000 2.02e+001
-25 -20 -15 -10 -5 0-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4Pole-Zero Map
Real Axis
Imag
inar
y Ax
is
Command Tracker – F16 model (LQG state feedback) – 2
69
• The root loci is organized so that the 1st column is due to elevator action. The 2nd column is due to command signal.
• The rows are: 1st – α (angle of attack), 2nd – q (pitch rate), 3rd - δe (elevator actuator), 4th – α (α filter), 5th – ε (performance index).
• The phugoid mode has been moved to a -0.641 +- 0.371i pole location. The damping coefficient is 0.866.
• The short-period dynamics are now at -1.93. These dynamics must be viewed at the appropriate scales. This view gives an overall view of the system dynamics.
69
-200 0 200 400-500
0
500Root Locus
Real Axis
Imag
inar
y Ax
is
-200 -100 0 100 200-200
0
200Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-5
0
5Root Locus
Real AxisIm
agin
ary
Axis
-100 -50 0 50-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-10
0
10Root Locus
Real Axis
Imag
inar
y Ax
is
-30 -20 -10 0 10-2
0
2Root Locus
Real Axis
Imag
inar
y Ax
is
-30 -20 -10 0 10-100
0
100Root Locus
Real Axis
Imag
inar
y Ax
is
-40 -20 0 20-2
0
2Root Locus
Real Axis
Imag
inar
y Ax
is
Command Tracker – F16 model (LQG state feedback) – 3
70
• The impulse responses are organized so that the 1st column is due to elevator action. The 2nd column is due to command signal.
• The rows are: 1st – α (angle of attack), 2nd – q (pitch rate), 3rd - δe (elevator actuator), 4th – α (α filter), 5th – ε (performance index).
• The impulse show that the longitudinal outputs are sensitive to elevator disturbances at these control gains. In order to reduce the disturbance sensitivity we must modify the Q & R matrices, or, at least the R(1,1) element.
-5
0
5From: In(1)
To: O
ut(1
)
-10
0
10
To: O
ut(2
)
-1
0
1
To: O
ut(3
)
0 5 10-1
0
1
To: O
ut(4
)
From: In(2)
0 5 10
Impulse Response
Time (sec)
Ampl
itude
Command Tracker – F16 model (LQG state feedback) – 4
71
-4-2024
From: In(1)
To: O
ut(1
)
-4-2024
To: O
ut(2
)
0
1
2To
: Out
(3)
0 2 4 6 8 10 120
2
4
To: O
ut(4
)
From: In(2)
0 2 4 6 8 10 12
Step Response
Time (sec)
Ampl
itude
• The step responses are organized so that the 1st column is due to elevator action. The 2nd column is due to command signal.
• The rows are: 1st – α (angle of attack), 2nd – q (pitch rate), 3rd - δe (elevator actuator), 4th – α (α filter), 5th – ε (performance index).
• The steps show that the longitudinal outputs are sensitive to elevator disturbances at these control gains. There is significant overshoot the angle of attack and pitch rate. In order to reduce the overshoot we must modify the Q & R matrices, or, at least the R(1,1) element.
Command Tracker – F16 model (LQG Output feedback) – 1 % LQR output feedback
Q = H'*H;Q(end,end) = 0.5;R = 3*eye(2);Lcon = lqr(a,b,Q,R);sysobs_out = ss(a-Lobs*c,Lobs,Lcon,0);syscon_out = ss(a-b*Lcon,b,c,d);damp(sysobs_out)damp(syscon_out)
• The control law improves the pole locations. The original pole near the origin is slightly unstable. This phugoid mode under the control has a good damping of 0.866 & has good distance from the origin.
• Sysobs_out is the complete compensator (controller plus observer) & is used to check the observer pole locations. Syscon_out is used to check the controlled system pole locations.
• Most of the observer poles (not shown) are larger in magnitude than the controlled system poles. All have high damping.
• This shows slightly higher damping than the equivalent state feedback LQG method.
72
Eigenvalue Damping Freq. (rad/s) Original dynamics 0.00e+000 -1.00e+000 0.00e+000 -1.85e-001 1.00e+000 1.85e-001 -1.91e+000 1.00e+000 1.91e+000 -1.00e+001 1.00e+000 1.00e+001 -2.02e+001 1.00e+000 2.02e+001 Controlled system (F16 long)-7.97e-001 + 3.97e-001i 8.95e-001 8.91e-001 -7.97e-001 - 3.97e-001i 8.95e-001 8.91e-001 -1.68e+000 1.00e+000 1.68e+000 -1.00e+001 1.00e+000 1.00e+001 -2.02e+001 1.00e+000 2.02e+001
-4
-2
0
2From: In(1)
To: O
ut(1
)
-4
-2
0
2
To: O
ut(2
)
0
0.5
1
To: O
ut(3
)
0 2 4 6 8 100
1
2
To: O
ut(4
)
From: In(2)
0 2 4 6 8 10
Step Response
Time (sec)
Ampl
itude
MIMO Wing Leveler Pole Placement - 1• This is a two-input two-output roll/yaw damper. Note in this case we will close the loops
simultaneously. • Step 1 is to set up the augmented state space formulation. We’ll add integrators to generate
performance indices for both roll & yaw. • The two performance indices are roll angle & yaw rate.• The matlab model set up follows.r2d = 180/pi;A = [-0.322 0.064 0.0364 -0.9917 0.0003 0.0008 0 0 0 0 1 0.0037 0 0 0 0 -30.6492 0 -3.6784 0.6646 -0.7333 0.1315 0 0 8.5395 0 -0.0254 -0.4764 -0.0319 -0.062 0 0 0 0 0 0 -20.2 0 0 0 0 0 0 0 0 -20.2 0 0 0 0 0 r2d 0 0 -1 0 0 -1 0 0 0 0 0 0];B = [0 0 0 0 20.2 0 0 0;0 0 0 0 0 20.2 0 0]';G = zeros(8,2);G(8,1) = 1;C = [0 0 0 0 0 0 0 1 0 0 0 -r2d 0 0 1 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0];D = zeros(4,2);F = [0 0 0 1;0 1 0 0]';H = [0 1 0 0 0 0 0 0;0 0 0 r2d 0 0 -1 0];JET_long = ss(A,[B,G],C,[D,F]);
73
MIMO Wing Leveler– F16 model (Pole Placement) – 2 % pole placement[a,b,c,d] = ssdata(JET_long);a1 = sqrt(3);b1 = a1;pc = -[3e-2 .18 1 a1+b1*1i a1-b1*1i 3.6 20 20.5];po = -10 + pc;Lobs = place(a',c',po).';Lcon = place(a,b,pc);sysobs_PP = ss(a-Lobs*c,Lobs,Lcon,zeros(4,4));syscon_PP = ss(a-b*Lcon,b,c,d);
• The control law improves the pole locations. The original pole near the origin is slightly unstable. This short-period mode under the controlled system has a good damping of 0.707 & has good distance from the origin. The original damping was 0.137, which is too low.
• Sysobs_PP is the complete compensator (controller plus observer) & is used to check the observer pole locations. Syscon_PP is used to check the controlled system pole locations.
• Most of the observer poles (not shown) are larger in magnitude than the controlled system poles. All have high damping.
74
Eigenvalue Damping Freq. (rad/s) Original dynamics 0.00e+000 -1.00e+000 0.00e+000 -1.63e-002 1.00e+000 1.63e-002 -1.00e+000 1.00e+000 1.00e+000 -4.23e-001 + 3.06e+000i 1.37e-001 3.09e+000 -4.23e-001 - 3.06e+000i 1.37e-001 3.09e+000 -3.62e+000 1.00e+000 3.62e+000 -2.02e+001 1.00e+000 2.02e+001 -2.02e+001 1.00e+000 2.02e+001 Controlled system (F16 long)-3.00e-002 1.00e+000 3.00e-002 -1.80e-001 1.00e+000 1.80e-001 -1.00e+000 1.00e+000 1.00e+000 -1.73e+000 + 1.73e+000i 7.07e-001 2.45e+000 -1.73e+000 - 1.73e+000i 7.07e-001 2.45e+000 -3.60e+000 1.00e+000 3.60e+000 -2.00e+001 1.00e+000 2.00e+001 -2.05e+001 1.00e+000 2.05e+001
-1 -0.5 0 0.5 1-1
0
1Root Locus
Real Axis
Imag
inar
y Ax
is
-1 -0.5 0 0.5 1-1
0
1Root Locus
Real Axis
Imag
inar
y Ax
is
-30 -20 -10 0 10-10
0
10Root Locus
Real Axis
Imag
inar
y Ax
is
-30 -20 -10 0 10-10
0
10Root Locus
Real Axis
Imag
inar
y Ax
is
-60 -40 -20 0 20-5
0
5Root Locus
Real Axis
Imag
inar
y Ax
is
-30 -20 -10 0 10-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
-100 -50 0 50-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
-50 0 50-50
0
50Root Locus
Real Axis
Imag
inar
y Ax
is
MIMO Wing Leveler– F16 model (Pole Placement) – 3
75
• The step responses are organized so that the 1st column is due to the aileron. The 2nd column is due to the rudder. The 3rd column is from the phi reference input. The 4th column is from the yaw rate reference input.
• The rows are: 1st – roll angle integral error, 2nd – washed out yaw rate, 3rd - p (roll rate), 4th – φ (roll angle).
• φ is sensitive to aileron & φ PI disturbances at these control gains. Φ integral error (performance index) is sensitive to φ reference. The washed out yaw rate is sensitive to the yaw rate reference input. The roll rate does not appear to be sensitive to any input.
0
20
40From: In(1)
To: O
ut(1
)
-1
0
1
2
To: O
ut(2
)
-1
0
1
To: O
ut(3
)
0 100 200-1
0
1
2
To: O
ut(4
)
From: In(2)
0 100 200
From: In(3)
0 100 200
From: In(4)
0 100 200
Step Response
Time (sec)
Ampl
itude
76
Model-Following Design - 1• The objective of model-following is to design controllers
that force the aircraft to behave like a desired model.• A longitudinal model is based on phugoid and short-period
specifications. • A lateral model is based on roll mode, spiral mode, & dutch
roll mode specifications. • A typical longitudinal model is:
The subscripts p & sp in the equation represent the phugoid and the short-period modes. The transfer function units are rad/s/lb. Tθ1 & Tθ2 are the zeros associated with the phugoid and short-period modes respectively.
Model-Following Design - 2
• There are two general methods of model-following design: explicit and implicit. They result in controllers of differing structures. They are both performed using modern control techniques.
• The explicit approach involves a linear transfer function in a state space formulation that contains the desired characteristics. This model is incorporated into the overall design.
• The implicit approach involves modification of the performance index.
77
Regulator Explicit Model-Following - 1The objective of a regulator model-following design is to
drive all the states to zero. If we have a linearized plant model such as:
78
A regulator model is prescribed with dynamics. This should have the desired behaviors, such as speed of response, overshoot, etc. Note that there is no input for the desired model, since the regulator model is under consideration here.
In order to derive a performance index we must try to minimize the model mismatch error: e = zm – z = Hmxm – Hx. The performance index is now written below. Q & R are both positive definite.
Regulator Explicit Model-Following - 2We incorporate the model into the design process by defining an augmented state
and an augmented system.
79
With the above we may define the model mismatch error and performance index. The model mismatch error is e = -z + zm = -Hz + Hmzm = Haxa . The PI is now written as
With the above formulation we may use the standard LQG design approaches for state feedback or output feedback as discussed previously. We merely must substitute the augmented parameters and states into the design process. In this fashion the performance output z will follow the model output zm.
Regulator Implicit Model-Following - 1• In the explicit approach the model appeared in the controller as a
feedforward compensator. • In the implicit approach, however, the model does not appear in
the control structure. The implicit approach is more of a guide to selecting the weighting matrices in the performance index.
• For a model given as below we may define an error.
80
or
The solution u=-Ky is to solve the Lyapunov equation & then the Riccati equation shown below.
Dynamic Inversion Design• Dynamic Inversion is a control method that attempts to incorporate known
nonlinearities of the aircraft dynamics in the controller to improve system performance.
• For a square system (same number of inputs & outputs) we can follow the input-output linearization approach:
81
We then define the tracking error as e(t) = r(t) – y(t). The desired reference trajectory is r(t). In dynamic inversion the output y(t) is differentiated until the control u(t) appears in the expression for the derivative. Taking the 1st derivative we get:
If CB is non-singular, we are done. For aircraft CB is generally non-singular. We then define an auxiliary input v(t) as
We can now solve for u (control input). With an equation for u we can now solve for the output derivative & then the error dynamics.
A simple choice for v is v = Ke, where K is a matrix containing the desired error dynamics given by:
The overall dynamic inversion control input is given below. It requires full-state feedback.