The file *Demo_007.m* is found in IQClab’s folder demos; it performs a nominal control design with the functions *hinfsyn* (for MATLAB) and *fHinfsyn* (from IQClab). In addition, the demo demonstrates the capability to robustify controllers using the functions *musyn* (from MATLAB) and again *fHinfsyn* (from IQClab).

The example is a MATLAB demo: The control design for an active suspension system as depicted in the following figure.

Here:

- is the position of the body
- is the position of the wheel
- is the position of the road
- and are the masses of the body and tire
- and are the spring constants of the body and tire
- and are the damping and active damping coefficients

With the notation , the linearized state equations are given by:

Clearly, road disturbances influence the motion of the car and the suspension. Moreover, passenger comfort is associated with small body accelerations. The allowable suspension travel is constrained by limits on the actuator displacement. The following plot depicts the open-loop gain from road disturbance and actuator force to body acceleration and suspension displacement.

Because of the zeros on the imaginary-axis, feedback control cannot improve the response from road disturbance to body acceleration at the so-called tire-hop frequency, and from to suspension deflection at the so-called rattle-space frequency. In addition, because and roughly follows at low frequencies (less than 5 rad/s), there is an inherent trade-off between passenger comfort and suspension deflection; any reduction of body travel at low frequency will result in an increase of suspension deflection.

In this example, we consider an uncertain actuator model. This hydraulic actuator used for the active suspension control is connected between the body mass and the wheel assembly mass . The nominal actuator dynamics are represented by the first-order transfer function with a maximum displacement of .

Since the nominal model only approximates the physical actuator dynamics, we can use a family of actuator models to account for modelling errors and variability in the actuator model. This family consists of a nominal model with a frequency-dependent amount of uncertainty. At low frequency, below 3 rad/s, the model can vary up to 40% from its nominal value. Around 3 rad/s, the percentage variation starts to increase. The uncertainty crosses 100% at 15 rad/s and reaches 2000% at approximately 1000 rad/s. The weighting function is used to modulate the amount of uncertainty with frequency.

As a result, we obtain , which is an uncertain state-space model of the actuator. The following figure depicts the Bode plots of 20 sample values of and compare with the nominal value.

The main control objectives are formulated in terms of passenger comfort and road handling, which relate to body acceleration and suspension travel . Other factors that influence the control design include the characteristics of the road disturbance, the quality of the sensor measurements for feedback, and the limits on the available control force. To use the -synthesis algorithms, we have to write done the weighted open-loop generalized plant interconnection as shown in the following figure.

As can be seen, the feedback controller uses measurements , of the suspension travel and body acceleration to compute the control signal driving the hydraulic actuator. On the other hand, there are three external sources of disturbance:

- The road disturbance , modeled as a normalized signal shaped by a weighting function . To model broadband road deflections of magnitude seven centimeters, we use the constant weight .
- Sensor noise on both measurements, modelled as normalized signals and shaped by weighting functions and . We use and to model broadband sensor noise of intensity and , respectively. In a more realistic design, these weights would be frequency dependent to model the noise spectrum of the displacement and acceleration sensors.

The control objectives can be interpreted as a disturbance rejection problem: Minimize the impact of the disturbances , , on a weighted combination of control effort , suspension travel , and body acceleration . When using the -norm to measure “impact”, this amounts to designing a controller that minimizes the -norm from disturbance inputs , , to error signals , , .

Let us also create the weighting functions. We use a high-pass filter for to penalize control at high-frequencies. In addition, we specify the closed-loop performance requirements for the gain from road disturbance to suspension deflection (handling) and body acceleration (comfort). Because of the actuator uncertainty and control limitations, we only aim for attenuating disturbances below 10 rad/s.

The corresponding performance weights , are the inverses of these comfort and handling requirements. To investigate the trade-off between passenger comfort and road handling, we construct three sets of weights corresponding to three different trade-offs: comfort (), balanced (), and handling ().

We can now construct the uncertainty model of the generalized plant from above and perform an -synthesis using *hinfsyn* (from MATLAB) and *fHinfsyn* (from IQClab). The three controllers achieve the following closed-loop -norms.

Comfort class | hinfsyn | fHinfsyn |

Comfort | 0.9405 | 0.9584 |

Balanced | 0.6727 | 0.6857 |

Handling | 0.8892 | 0.9029 |

Given the controllers and we can now construct the corresponding closed-loop models and compare the gains from road disturbance to , , for the passive and active suspensions. This is shown in the following figure. As can be seen, all three controllers reduce suspension deflection and body acceleration below the rattle-space frequency (23 rad/s). Moreover, both algorithms show very similar performance (which is to be expected).

To further evaluate the three designs, let us also perform time-domain simulations using a road disturbance signal representing a road bump of height 5 cm. The simulation results are shown in the following two figures for the controllers obtained by both algorithms. Here we observe that the body acceleration is the smallest for the controller emphasizing passenger comfort and largest for the controller emphasizing suspension deflection. The “balanced” design achieves a good compromise between body acceleration and suspension deflection. As also can be seen, the results between the different design algorithms are again very similar.

So far, we have designed -controllers that meet the performance objectives for the nominal actuator model. As discussed earlier, this model is only an approximation of the true actuator and it is important to make sure that the controller performance is maintained in the face of model errors and uncertainty.

In fact, by performing a -analysis one can show that the nominal controllers are not capable of guaranteeing robust performance for all possible actuator models in the uncertainty set.

To overcome this problem, we can exploit the -synthesis tools to design a controller that achieves robust performance for the entire family of actuator models. Such robust controller can be synthesized by means of the function *musyn* using the uncertain model.

On the other hand, it is also possible to exploit *fHinfsyn* to include the uncertainty channel and impose a weighted small-gain argument to robustify the design.

Both options are presented next for the “balanced” scenario (). The following two figures show the time responses for the robust controllers obtained by *hinfsyn* and *fHinfsyn* respectively. As can be seen, both controllers show good time responses for all samples taken from the uncertainty model of the actuator. In fact, the time responses for the controller obtained by *fHinfsyn* seem to be a little better.

Computing the worst-case gains for both closed-loop system, using *wcgain* we obtain 0.87 and 1.23 for *musyn* and *fHinfsyn* respectively, which implies that the -synthesis algorithm yields slightly better robustness margins.