Build Variation into the Model
Instead of creating varying requirements, you can incorporate the varying portion of the
requirement into the closed-loop model of the control system. This approach is a form of
goal normalization that makes it possible to cover all design points with a single uniform
goal.
For example, suppose that you want to limit the gain from d to y to a quantity that
depends on the scheduling variables. Suppose that T0 is an array of models of the closed-
loop system at each design point. Suppose further that you have created a table, gmax, of
the maximum gain values for each design point, σ. Then you can add another output ys =
y/gmax to the closed-loop model, as follows.
% Create array of scalar gains 1/gmax
yScaling = reshape(1./gmax,[1 1 size(gmax)]);
yScaling = ss(yScaling,'InputName','y','OutputName','ys');
% Connect these gains in series to y output of T0
T0 = connect(T0,yScaling,T0.InputName,[T0.OutputName ; {'ys'}]);
The maximum gain changes at each design point according to the table gmax. You can
then use a single requirement that limits to 1 the gain from d to the scaled output ys.
R = TuningGoal.Gain('d','ys',1);
Such effective normalization of requirements moves the requirement variability from the
requirement object, R, to the closed-loop model, T0.
In Simulink, you can use a similar approach by feeding the relevant model inputs and
outputs through a gain block. Then, when you linearize the model, change the gain value
of the block with the operating condition. For example, set the gain to a MATLAB
variable, and use the Parameters property in slLinearizer to change the variable
value with each linearization condition.
Enforce Tuning Goal at Subset of Design Points
You can restrict application of a tuning goal to a subset of models in the design grid using
the Models property of the tuning goal. Specify models by their linear index in the model
array. For instance, suppose that you have a tuning goal, Req. Configure Req to apply to
the first and last models in a 3-by-3 design grid.
Req.Models = [1,9];
11 Gain-Scheduled Controllers