Change Requirements with Operating Condition
When tuning a gain-scheduled control system, it is sometimes useful to enforce different
design requirements at different points in the design grid. For instance, you might want
to:- Specify a variable tuning goal that depends explicitly or implicitly on the design point.
- Enforce a tuning goal at a subset of design points, but ignore it at other design points.
- Exclude a design point from a particular run of systune, but retain it for analysis or
other tuning operations. - Eliminate a design point from all stages of design and analysis.
Define Variable Tuning Goal
There are several ways to define a tuning goal that changes across design points.Create Varying GoalsThe varyingGoal command lets you construct tuning goals that depend implicitly or
explicitly on the design point.For example, create a tuning goal that specifies variable gain and phase margins across a
grid of design points. Suppose that you use the following 5-by-5 grid of design points to
tune your controller.[alpha,V] = ndgrid(linspace(0,20,5),linspace(700,1300,5));Suppose further that you have 5-by-5 arrays of target gain margins and target phase
margins corresponding to each of the design points, such as the following.[GM,PM] = ndgrid(linspace(7,20,5),linspace(45,70,5));To enforce the specified margins at each design point, first create a template for the
margins goal. The template is a function that takes gain and phase margin values and
returns a TuningGoal.Margins object with those margins.FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);Use the template and the margin arrays to create the varying goal.VG = varyingGoal(FH,GM,PM);11 Gain-Scheduled Controllers