Simulink Control Design™ - MathWorks

(Tuis.) #1

For instance, consider the model of the following illustration.


This model has an inner loop with a proportional-only gain-scheduled controller. The
controller is represented by the lookup table Kp_in and the product block prod. The
outer loop includes a PI controller with gain-scheduled proportional and integral
coefficients represented by the lookup tables Kp and Ki. All the gain schedules depend on
the same scheduling variable alpha.


Suppose you want to tune the inner-loop gain schedule Kp_in with the outer loop open.
To that end, you obtain an array of linear models G_in from input u to outputs
{q,alpha}. This model array has the wrong I/O dimensions to use as a block substitution
for G. Therefore, you must "pad" G_in with an extra output dimension.


Garr = [0; G_in];
BlockSubs1 = struct('Name','mdl/G','Value',Garr);


In addition, you can remove all effect of the outer loop by replacing the Varying PID
Controller block with a system that linearizes to zero at all operating conditions. Because
this block has three inputs, replace it with a 3-input, one-output zero system.


BlockSubs2 = struct('Name','mdl/Varying PID Controller','Value',ss([0 0 0]));


Multiple Design Points in slTuner Interface
Free download pdf