Benefits of direct synthesis of reduced-order controllers

We investigate full-order controller reduction and direct reduced-order synthesis with hinfstruct for the longitudinal axis control of the AIRC aircraft. The application demonstrates that synthesizing simpler controllers with hinfstruct may be a valid alternative when significant reduction of full-order $H_\infty$ controllers is not possible.

Contents


AIRC aircraft control problem borrowed from "Multivariable feedback design", Addison-Wesley, Wokingham, UK. Maciejowski, J.M., 1989.

Problem description

The state vector is described as

  1. H: altitude (m)
  2. V: forward speed (m/s)
  3. theta: pitch angle (deg.)
  4. q: pitch rate (deg./s)
  5. Vz: vertical speed (m/s)

with control inputs

  1. u1: spoiler angle (tenth of degrees)
  2. u2: forward acceleration (m/s^-2)
  3. u3 elevator angle (deg.).

The measurements are H, V and theta.

The control objectives include

  1. A closed-loop bandwidth of about 10 rad/s
  2. Integral action in each loop for steady-accuracy
  3. Well-damped responses in H, V and theta with minimal overshoot

AIRC state-space data

load dataAIRC ;

Define weighting functions for the sensitivity functions S, KS and T.

s = tf('s');
wS = (s+6)^2/( (s+0.0006)*(s+0.6) );  % tracking objectives
wKS = 0.01;                           % penalization on control signal
wT = 2000*(s+10)*(s+50)/(s+1000)^2 ;  % noise attenuation

Plot weighting functions

bodemag(wS,'-',ss(wKS),'g-',wT,'r--'); grid;
legend('wS weight on S','wKS weight on KS','wT weight on T');
% Form augmented plant and display problem dimensions.
P = augw(G,wS*eye(ny),wKS*eye(nu),wT*eye(ny) ); %
size(P),
State-space model with 12 outputs, 6 inputs, and 17 states.

Synthesize full-order controller with LMI technique

[K,CLlmi,gamLMI,INFO] = hinfsyn(P,ny,nu,'method','lmi')  ;
% Display controller order and $H_\infty$ performance
size(K, 'order'), gamLMI,
ans =

    17


gamLMI =

   2.5979e+00

Reduced full-order controller

Analysis of Hankel singular values suggests reducing the full-order controller to order 14.

hankelsv(K,'ncf','log');v=axis;
hold on; plot(v(1:2), ncfmargin(G,K)*[1 1],'--'); hold off;
K14=reduce(K,14,'errortype','ncf');
norm( lft(P, K14) , inf )
ans =

   3.6424e+02

Reduction to order 14 is clearly not satisfactory since an $H_\infty$-norm value close to 2.60 is expected. The full-order controller is thus reduced to order 15 without significant deterioration of performance.

K15=reduce(K,15,'errortype','ncf');
norm( lft(P, K15) , inf )
ans =

   2.6003e+00

Run hinfstruct to synthesize reduced-order controller

Consider now using hinfstruct to synthesize a reduced-order controller

k = 8;                                  % prescribed order
C  = ltiblock.ss('C',k,nu,ny);          % controller in state-space format
CL0 = lft(P , C);
[CL, gam] = hinfstruct(CL0);
C8 = ss( CL.Blocks.C  );                % store order 8 controller
norm( lft(P,C8), inf) ,
Final: Peak gain = 2.71, Iterations = 300

ans =

   2.7124e+00

A reduced-order controller of order 8 is already acceptable. If attempting to reduce further, trial-and-error indicates an order 5 may be acceptable.

k = 5;                                  % prescribed order
C  = ltiblock.ss('C',k,nu,ny);          % controller in state-space format
CL0 = lft(P , C);
op = hinfstructOptions('RandomStart',3,'MaxIter',400); % require higher accuracy
[CL, gam] = hinfstruct(CL0, op );

C5 = ss( CL.Blocks.C  );                % store order 5 controller
norm( lft(P,C5), inf) ,
Final: Peak gain = 2.92, Iterations = 400
Final: Peak gain = 2.92, Iterations = 400
Final: Peak gain = 3.29, Iterations = 400
Final: Peak gain = 3.22, Iterations = 400

ans =

   2.9158e+00

Check controller performance through step responses in H, V and theta.

T15 = feedback(G*K15,eye(ny));
T8 = feedback(G*C8,eye(ny));
T5 = feedback(G*C5,eye(ny));

step(T15,'b-', T8,'r:', T5,'g--', 3) ; grid;
legend('order 15','order 8','order 5') ;

Check roll-off properties.

Analysis indicates all controllers violate roll-off constraint.

sigma(T15,'b-', T8,'r:', T5,'g--',1/wT,'r') ; grid;
legend('order 15','order 8','order 5','1/wT') ;

As expected, the higher-order controller provides better roll-off in the high-frequency range while C8 and C5 achieve better rise and settling times.

Analysis of pole-zero cancellations

Examination of pole-zero cancellations shows that even reduced the controller of order 15 is critically sensitive to small variations in the plant data, an issue which is not present with C8 and C5 controllers.

subplot(121);
plot(pole(G),'bx'); hold on;
plot(zero(K15),'ro');
axis([-.1 0.05 -0.25 0.25]); grid on;
legend('aircraft poles','order 15 controller zeros');
hold off;
subplot(122);
plot(pole(G),'bx'); hold on;
plot(zero(C8),zeros(8,1),'ro'); hold on;       % zeros all real
plot(zero(C5),'gp'); hold on;
axis([-.1 0.05 -0.25 0.25]); grid on;
legend('aircraft poles','order 8 controller zeros','order 5 controller zeros');
hold off;
Warning: Imaginary parts of complex X and/or Y arguments ignored