Validate Gain-Scheduled Control Systems

Tuned gain schedules require careful validation. The tuning process guarantees suitable performance only near each design point. In addition, the tuning ignores dynamic couplings between the plant state variables and the scheduling variables (see Section 4.3, “Hidden Coupling”, in [1]). Best practices for validation include:

  • Examine tuned gain surfaces to make sure that they are smooth and well-behaved.

  • Visualize tuning goals against system responses at all design points.

  • Check linear performance of the tuned control system between design points.

  • Validate gain schedules in simulation of the full nonlinear system.

Check linear performance on a denser grid of σ values than you used for design. If adequate linear performance is not maintained between design points, you can add more design points and retune.

Perform nonlinear simulations that drive the closed-loop system through its entire operating range. Pay special attention to maneuvers that cause rapid variations of the scheduling variables.

Examine Tuned Gain Surfaces

After tuning, examine the tuned gains as a function of the scheduling variables to make sure that they are smooth and well-behaved over the operating range. Visualize tuned gain surfaces using the viewSurf command.

Visualize Tuning Goals

Use tuning-goal plots to visualize your design requirements against the linear response of the tuned control system. Tuning-goal plots show graphically where and by how much tuning goals are satisfied or violated. This visualization lets you examine how close your control system is to ideal performance. It can also help you identify problems with tuning and provide clues on how to improve your design.

For general information about using tuning-goal plots, see Visualize Tuning Goals. For gain-scheduled control systems, the tuning-goal plots you generate with viewGoal provide additional information that helps you evaluate how each tuning goal contributes to the result.

Fixed Tuning Goals

For fixed tuning goals that apply to multiple design points, viewGoal plots the relevant system response at all those design points. For instance, suppose that you tune an slTuner interface, ST, for the rct_CSTR model described in Gain-Scheduled Control of a Chemical Reactor (Control System Toolbox). You can use viewGoal to see how well each of the five design points of that example satisfies the gain goal R3. The resulting plot shows the relevant gain profile at all five design points. Click any of the gain lines for a display that shows the corresponding value of the scheduling variable Cr.

viewGoal(R3,ST)

Varying Tuning Goals

Varying goals that you create using varyingGoal apply a different target response at each design point. When you use viewGoal to examine a varying goal, the plot initially displays the target and tuned responses at the first design point in the design grid. For instance, suppose that you tune a control system ST over a design grid of two scheduling variables, using a varying goal Rv that varies across the entire grid. After tuning, examine Rv.

viewGoal(Rv,ST)

Click CHANGE to open sliders that let you select a design point at which to view the target and tuned responses.

Check Linear Performance

In addition to examining linear responses associated with tuning goals, check other linear responses of the system to make sure that the behavior is suitable. You can do so by extracting and plotting system responses as described generally in Validate Tuned Control System.

For gain-scheduled systems, it is good practice to check linear performance on a denser grid of operating points than you used for design. If the system does not maintain adequate linear performance between design points, then you can add more design points and retune.

Validate Gain Schedules in Nonlinear System

Because systune tunes gain schedules against a linearization obtained at each design point, it is important to test the tuning results in simulation of the full nonlinear system. Perform nonlinear simulations that drive the closed-loop system through its entire operating range. Pay special attention to maneuvers that cause rapid variations of the scheduling variables.

After tuning an slTuner interface, use writeBlockValue to write tuned controller parameters to the Simulink® model for such simulation. This command can write tuned gain schedules to lookup table blocks, Matrix Interpolation blocks, and MATLAB Function blocks for which you have specified a tunableSurface parameterization.

Lookup Tables

For lookup table blocks and Matrix Interpolation blocks, writeBlockValue automatically evaluates the tuned gain surface at the breakpoints specified in the block. These breakpoints do not need to be the same as the design points used for tuning. Because the tunableSurface describes the gain schedule in parametric form, writeBlockValue can evaluate the gain at any scheduling-variable value.

If you have retuned a subset of design points, you can use writeLookupTableData to update a portion of the lookup-table data while leaving the rest intact.

MATLAB Function Blocks

For gain schedules implemented as MATLAB Function blocks, writeBlockValue automatically generates MATLAB®code and pushes it to the block. The generated MATLAB function takes the scheduling variables and returns the gain value given by the tuned parametric expression of the tunableSurface. To see this MATLAB code for a particular gain surface, use the codegen command.

References

[1] Rugh, W.J., and J.S. Shamma, “Research on Gain Scheduling”, Automatica, 36 (2000), pp. 1401-1425.

See Also

| | | |

Related Topics