improves the conditioning of the optimization performed by systune. If needed, you can
change the default scaling and normalization. (See tunableSurface).
The second input argument to tunableSurface specifies the initial value of the constant
coefficient, K 0. By default, K 0 is the gain when all the scheduling variables are at the
center of their ranges. tunableSurface takes the I/O dimensions of the gain surface
from K 0. Therefore, you can create array-valued tunable gains by providing an array for
that input.
Karr = tunableSurface('Karr',ones(2),domain,shapefcn);
Karr is a 2-by-2 matrix in which each entry is a bilinear function of the scheduling
variables with independent coefficients.
Tunable Gain With Two Independent Scheduling Variables
This example shows how to model a scalar gain K with a bilinear dependence on two
scheduling variables, and V. Suppose that is an angle of incidence that ranges from 0
to 15 degrees, and V is a speed that ranges from 300 to 600 m/s. By default, the
normalized variables are:
The gain surface is modeled as:
where are the tunable parameters.
Create a grid of design points, , that are linearly spaced in and V. These design
points are the scheduling-variable values used for tuning the gain-surface coefficients.
They must correspond to parameter values at which you have sampled the plant.
[alpha,V] = ndgrid(0:3:15,300:50:600);
These arrays, alpha and V, represent the independent variation of the two scheduling
variables, each across its full range. Put them into a structure to define the design points
for the tunable surface.
domain = struct('alpha',alpha,'V',V);
11 Gain-Scheduled Controllers