MATLAB Examples

Tuning for Multiple Values of Plant Parameters

This example shows how to use Control System Tuner to tune a control system when there are parameter variations in the plant. The control system of this example is an active suspension on a quarter-car model. The example uses Control System Tuner to tune the system to meet performance objectives when parameters in the plant vary from their nominal values.


Quarter-Car Model and Active Suspension Control

A simple quarter-car model of the active suspension system is shown in Figure 1. The quarter-car model consists of two masses, car chassis of mass $m_b$ and the wheel assembly of mass $m_w$. There is a spring $k_s$ and damper $b_s$ in between to model the passive spring and shock absorber. The tire between the wheel assembly and the road is modeled by the spring $k_t$.

Active suspension introduces a force $f_s$ between the chassis and wheel assembly and allows the designer to balance driving objectives such as passenger comfort, road handling using a feedback controller.

Figure 1: Quarter-car model of active suspension.

Control Architecture

The quarter-car model is implemented using Simscape Multibody. The following Simulink model contains the quarter-car model with active suspension, controller and actuator dynamics. Its inputs are road disturbance and the force for the active suspension. Its outputs are the suspension deflection and body acceleration. The controller uses these measurements to send control signal to the actuator which creates the force for active suspension.

mdl = fullfile(matlabroot,'examples','control_featured','rct_suspension.slx');

Control Objectives

Our goal is to achieve three control objectives:

  • Good handling defined from road disturbance to suspension deflection.
  • User comfort defined from road disturbance to body acceleration.
  • Reasonable control bandwidth.

The nominal values of spring constant $k_s$ and damper $b_s$ between the body and the wheel assembly are not exact and due to the imperfections in the materials, these values can be constant but different. Try to satisfy these control objectives under parameter variations.

Model the road disturbance of magnitude seven centimeters and use the constant weight.

Wroad = ss(0.07);

Define the closed-loop target for handling from road disturbance to suspension deflection as

HandlingTarget = 0.044444 * tf([1/8 1],[1/80 1]);

Define the target for comfort from road disturbance to body acceleration as

ComfortTarget = 0.6667 * tf([1/0.45 1],[1/150 1]);

Limit the control bandwidth by the weight function from road disturbance to the control signal

Wact = tf(0.1684*[1 500],[1 50]);

Explanation on selecting the closed-loop targets and the weight function is given in the example docid:robust_examples.example-ex07403646

Controller Tuning

Double click to the orange block in Simulink model to open the Control System Tuner session for active suspension control. Tuned block is set to the second order Controller and three tuning goals are defined to achieve the handling, comfort and control bandwidth as described above. In order to see the performance of the tuning, the step responses from road disturbance to suspension deflection, body acceleration and control force are plotted.

Handling, Comfort and Control Bandwidth goals are defined as gain limits, HandlingTarget/Wroad, ComfortTarget/Wroad and Wact/Wroad. All gain functions are divided by Wroad to incorporate the road disturbance.

The open-loop system with zero controller violates the handling goal and results in highly oscillatory behavior for both suspension deflection and body acceleration with long settling time.

Figure 2: Control System Tuner with Session File.

Tune the controller using Control System Tuner by clicking Tune button in Tuning Tab. As shown in Figure 3, this design satisfies the tuning goals and the responses are less oscillatory converging fast to zero.

Figure 3: Control System Tuner after tuning.

Controller Tuning for Multiple Parameter Values

Now, try to tune the controller for multiple parameter values. The default value for car chassis of mass $m_b$ is 300 kg. Vary the mass to 100, 200 and 300 for different operation conditions.

In order to vary these parameters in Control System Tuner, go the Control System Tab and select Select parameters to Vary in Parameter Variations. Define the parameters in the opening document.

Figure 4: Defining parameter variations.

Click Manage Parameters. In the Select model variables dialog box, select Mb.

Figure 5: Select a parameter to vary from the model.

Now, the parameter Mb is added with default values in the parameter variations table.

Figure 6: Parameter variations table with default values.

Generate variations quickly from Generate Values by defining values 100, 200, 300 for Mb and clicking Overwrite.

Figure 7: Generate values window.

All values are populated in the parameter variations table. Click Apply button to set the parameter variations to the Control System Tuner.

Figure 8: Parameter variations table with updated values.

Multiple lines appear in tuning goal and response plots due to the parameter variations. The designed controller for nominal parameter value causes unstable closed-loop system.

Figure 9: Control System Tuner with multiple parameter variations.

Tune the controller to satisfy handling, comfort and control bandwidth objectives by clicking Tune button in Tuning Tab. Tuning algorithm tries to satisfy these objectives not only for the nominal parameters, but all parameter variations. This is a challenging task compared to nominal design as shown in Figure 10.

Figure 10: Control System Tuner with multiple parameter variations (Tuned).

Control System Tuner tunes the controller parameters on the linearized control system. Now, to examine the performance of the tuned parameters on the Simulink model, update the controller in the Simulink model by clicking Update Blocks in Control System Tab.

Using Simulation Data Inspector, simulate the model for the parameter variations and the results are shown in Figure 11. For all three parameter variations, controller tries to minimize the suspension deflection, body acceleration with minimal control effort.

Figure 11: Controller performance on the Simulink model.