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.
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 and the wheel assembly of mass . There is a spring and damper in between to model the passive spring and shock absorber. The tire between the wheel assembly and the road is modeled by the spring .
Active suspension introduces a force 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.
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','rct_suspension.slx'); open_system(mdl)
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 and damper 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 Robust Control of an Active Suspension (Robust Control Toolbox)
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,
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.
Now, try to tune the controller for multiple parameter values. The default value for car chassis of mass 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.
Manage Parameters. In the
Select model variables dialog box, select
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
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.
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.