Simulink Control Design™ - MathWorks

(Tuis.) #1

and use systune to tune the polynomial coefficients. This approach tackles all operating
points at once and can account for loop interactions, in particular for stability margin
considerations. This is the approach showcased here.


To tune the outer loops, we must close the inner loops and obtain a linearized model of
the "plant" seen by the outer loops at each (alpha,beta) condition. We could ask slTuner
to compute the corresponding transfer function, but this would effectively fix the inner-
loop gains Kp,Kq,Kr to their values at the default operating condition. To get the correct
linearization, we must tell slTuner that these gains vary with (alpha,beta). Block
substitution is again the simplest way to do this. To mark Kp as varying, find the Product
block used to multiply the error signal by Kp, and replace it by an array of gains, one for
each (alpha,beta) condition.


ProductBlk = 'csthl20_control/Flight Control System/Controller/Classical/Product1';
BlockSub4 = struct('Name',ProductBlk,'Value',[0 ss(Kp)]);


It is easily verified that this block linearization amounts to multiplying the error signal by
the varying quantity Kp computed above. Similarly, replace the corresponding Product
blocks for Kq and Kr by varying gains.


ProductBlk = 'csthl20_control/Flight Control System/Controller/Classical/Product3';
BlockSub5 = struct('Name',ProductBlk,'Value',[0 ss(Kq)]);


ProductBlk = 'csthl20_control/Flight Control System/Controller/Classical/Product4';
BlockSub6 = struct('Name',ProductBlk,'Value',[0 ss(Kr)]);


ST0.BlockSubstitutions = [ST0.BlockSubstitutions ; BlockSub4 ; BlockSub5 ; BlockSub6];


You can now plot the angular responses for the initial gain-schedule settings in the model.


T0 = getIOTransfer(ST0,'Demand',{'Phi_deg','Alpha_deg','Beta_deg'});
step(T0,6)


Attitude Control in the HL-20 Autopilot - SISO Design
Free download pdf