Tunable Gain Surfaces
Use the tunableSurface command to construct a tunable model of a gain surface
sampled over a grid of design points (σ values). For example, consider the gain with
bilinear dependence on two scheduling variables, α and V:
Kpα,V =K 0 +K 1 α+K 2 V+K 3 αV.
Suppose that α is an angle of incidence that ranges from 0° to 15°, and V is a speed that
ranges from 300 m/s to 700 m/s. Create a grid of design points that span these ranges.
These design points must match the parameter values at which you sample your varying
or nonlinear plant. (See “Plant Models for Gain-Scheduled Controller Tuning” on page 11-
18.)
[alpha,V] = ndgrid(0:5:15,300:100:700);
domain = struct('alpha',alpha,'V',V);
Specify the basis functions for the parameterization of this surface, α, V, and αV. The
tunableSurface command expects the basis functions to be arranged as a vector of
functions of two input variables. You can use an anonymous function to express the basis
functions.
shapefcn = @(alpha,V)[alpha,V,alpha*V];
Alternatively, use polyBasis, fourierBasis, or ndBasis to generate basis functions of
as many scheduling variables as you need.
Create the tunable surface using the design points and basis functions.
Kp = tunableSurface('Kp',1,domain,shapefcn);
Kp is a tunable model of the gain surface. tunableSurface parameterizes the surface
as:
Kpα,V =K 0 +K 1 α+K 2 V+K 3 αV,
where
α=
α−7.5
7.5
, V=
V− 500
200
.
The surface is expressed in terms of the normalized variables, α,V∈ −1,1
2
rather than
in terms of α and V. This normalization, which tunableSurface performs by default,
Parameterize Gain Schedules