Plant augmentation for weighted mixed-sensitivity H and H2 loop-shaping design



P = augw(G,W1,W2,W3) computes a state-space model of an augmented LTI plant P(s) with the weighting functions W1(s), W2(s), and W3(s) penalizing the error signal, control signal, and output signal, respectively. P is the augmented plant of the following diagram.

This control structure is used in mixed H synthesis, which lets you design an H controller by simultaneously shaping the frequency responses for tracking and disturbance rejection, noise reduction and robustness, and controller effort. For more information, see Mixed-Sensitivity Loop Shaping.


collapse all

Suppose you want to synthesize a stabilizing robust controller for the system of the following diagram. The controller must also reject disturbances injected at the plant output.

The plant, G, is an unstable first-order system.

G = tf(1,[1 -1]);

To set up this problem for hinfsyn, insert a weighting function W1 that captures the disturbance rejection goal, and another weighting function W3 to enforce robustness. Specify these weighting functions as the inverses of the desired loop shapes for the sensitivity S and complementary sensitivity T, respectively. (See Mixed-Sensitivity Loop Shaping.)

For this example, choose W1 with:

  • Low-frequency gain of 100 (40 dB)

  • 0 dB crossover at 0.5 rad/s

  • High-frequency gain of 0.25 (12 dB)

Choose W3 to have the opposite low-frequency and high-frequency gains.

W1 = makeweight(100,[1 0.5],0.25);
W3 = makeweight(0.25,[1 0.5],100);

For this example, do not specify a W2 (no restriction on control effort). Construct the augmented plant, P.

P = augw(G,W1,[],W3);

G has one input and one output. The augmented plant has an additional input for the control signal, and additional outputs for each of the weights.

State-space model with 3 outputs, 2 inputs, and 3 states.

The inputs and outputs of P are grouped to keep track of the disturbance and control inputs and the error and measurement outputs. For example, example the output groups. Group Y1 contains the two error outputs z, and group Y2 contains the single measurement output.

ans = struct with fields:
    Y1: [1 2]
    Y2: 3

You can now use P for control design. For example, use hinfsyn to design an H optimal controller that meets the design requirements specified by W1 and W3.

[K,CL,gamma] = hinfsyn(P); 
gamma = 0.9946

Input Arguments

collapse all

Plant, specified as a dynamic system model such as a state-space (ss) model. G can be any LTI model. If G is a generalized state-space model with uncertain or tunable control design blocks, then mixsyn uses the nominal or current value of those elements.

Weighting functions, specified as dynamic system models. Choose the weighting functions W1,W2,W3 to shape the frequency responses for tracking and disturbance rejection, controller effort, and noise reduction and robustness. Typically:

  • For good reference-tracking and disturbance-rejection performance, choose W1 large inside the control bandwidth to obtain small S.

  • For robustness and noise attenuation, choose W3 large outside the control bandwidth to obtain small T.

  • To limit control effort in a particular frequency band, increase the magnitude of W2 in this frequency band to obtain small KS.

If one of the weights is not needed, set it to []. For instance, if you do not want to restrict control effort, use W2 = [].

Use makeweight to create weighting functions with the desired gain profiles. For details about choosing weighting functions, see Mixed-Sensitivity Loop Shaping.

If G has NU inputs and NY outputs, then W1,W2,W3 must be either SISO or square systems of size NY, NU, and NY, respectively.

Because S + T = I, mixsyn cannot make both S and T small (less than 0 dB) in the same frequency range. Therefore, when you specify weights for loop shaping, there must be a frequency band in which both W1 and W3 are below 0 dB.

Output Arguments

collapse all

Augmented plant, returned as a state-space (ss) model. P can be any LTI model with inputs [w;u] and outputs [z;y]. augw groups the inputs and outputs of P using the ss properties InputGroup and OutputGroup such that:

  • P.InputGroup has field U1 containing the inputs corresponding to w, and field U2 containing the inputs corresponding to u.

  • P.OutputGroup has field Y1 containing the outputs corresponding to z, and group Y2 containing the outputs corresponding to e.

Here, {w;u} and {z;e} are the inputs and outputs of P in the following control system.


  • For H or H2 synthesis, the models G and W1,W2,W3 must be proper. In other words, they must be bounded as s (for continuous-time transfer functions) or z (for discrete-time transfer functions). Additionally, W1,W2,W3 must be stable. The plant G must be stabilizable and detectable. Otherwise, the resulting P is not stabilizable by any controller.


augw produces the augmented plant P(s) given by:


The partitioning is embedded using P = mktito(P,NY,NU), which sets the P.InputGroup and P.OutputGroup properties as follows.

[r,c] = size(P);
P.InputGroup  = struct('U1',1:c-NU,'U2',c-NU+1:c);
P.OutputGroup = struct('Y1',1:r-NY,'Y2',r-NY+1:r);

Introduced before R2006a