Mixed-sensitivity problem with low-order controller
This example illustrates the control of the fuel metering mechanism of a fuel injection motor. The classical mixed-sensitivity approach based on the sensitivity functions S , KS and T is used to synthesize a composite controller featuring integral action. We recall the definitions

Contents
Plant data
The fuel injection motor at 0 deg. Celsius has transfer function
load dataMotor ; G,
Transfer function: -0.01736 s^2 + 494 s - 314000 -------------------------------- s^3 + 98.34 s^2 + 9220 s + 87700
The control input u is the solenoid courant while the output y is the fuel metering mechanism which should be regulated. Performance objectives involve tracking a square wave with a period of 1 sec. with less than 0.1 sec. rise time and overshoot limited to 20 %. Robustness to neglected dynamics in the high frequency range is also important in this application as the motor operates on a wide range of temperatures and high-frequency range dynamics have been neglected. See "Application of H-infinity design to automotive fuel control" CSM, vol. 10, no. 3, pp. 102-106, 1990, for details.
Describe composite controller
Describe controller structure as a composite built from a 2nd-order system in series with an integrator
C2nd = ltiblock.ss('C0',nx-2,nu,ny);
C0 = 1/s*C2nd ;
Weighting functions
Build performance weight wS based on target ideal response
s = tf('s'); Tr = 0.2; del = 0.6; wn = 3/(Tr*del); Sd = 1.01-wn^2/(s^2+ 2*del*wn*s + wn^2) ; % realizable wS=1/Sd ; % weight for S % % Add high-pass weight to penalize complementary sensitivity T wT = 1/18000*(s+30)*(s+60)/(s/2000+1)^2 ; % weight for T % Penalize control signal wKS = 0.01 ;
Build standard form and synthesis interconnection
P = augw(G, wS, wKS, wT); CL0 = lft(P , C0);
Solve
problem with hinfstruct
[CL,gam] = hinfstruct(CL0);
Final: Peak gain = 1.14, Iterations = 25
Construct final controller in series with the integrator
Css = ss(CL.Blocks.C0) ; Css, Cfinal = 1/s*Css; tf(Cfinal),
a =
C0.x1
C0.x1 -107.7
b =
u1
C0.x1 59.79
c =
C0.x1
y1 59.79
d =
u1
y1 -39.48
Continuous-time model.
Transfer function:
-39.48 s - 678.1
----------------
s^2 + 107.7 s
Simulate square wave response of the motor
[u,t] = gensig('square',1,5) ; Tsim = feedback(G*Cfinal,1) ; figure(3); clf; lsim(Tsim,u,t); grid; legend('square wave response of fuel metering');
Check high frequency range robustness
figure(4); clf; bodemag(Tsim,1/wT,'r--',logspace(-2,3,200)); grid; legend('complementary T','constraint 1/wT');