2 ## @deftypefn{Function File} {@var{sys} =} BMWengine ()
3 ## @deftypefnx{Function File} {@var{sys} =} BMWengine (@var{"scaled"})
4 ## @deftypefnx{Function File} {@var{sys} =} BMWengine (@var{"unscaled"})
5 ## Model of the BMW 4-cylinder engine at ETH Zurich's control laboratory.
9 ## Drosselklappenstellung alpha_DK = 10.3 Grad
10 ## Saugrohrdruck p_s = 0.48 bar
11 ## Motordrehzahl n = 860 U/min
12 ## Lambda-Messwert lambda = 1.000
13 ## Relativer Wandfilminhalt nu = 1
19 ## U_1 Sollsignal Drosselklappenstellung [Grad]
20 ## U_2 Relative Einspritzmenge [-]
21 ## U_3 Zuendzeitpunkt [Grad KW]
22 ## M_L Lastdrehmoment [Nm]
28 ## X_1 Drosselklappenstellung [Grad]
29 ## X_2 Saugrohrdruck [bar]
30 ## X_3 Motordrehzahl [U/min]
31 ## X_4 Messwert Lamba-Sonde [-]
32 ## X_5 Relativer Wandfilminhalt [-]
38 ## Y_1 Motordrehzahl [U/min]
39 ## Y_2 Messwert Lambda-Sonde [-]
46 ## U_2N, X_4N, X_5N, Y_2N 0.05
49 ## X_3N, Y_1N 200 U/min
54 ## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
55 ## Created: January 2010
58 ## TODO: translate German terminology
60 function sys = BMWengine (flg = "scaled")
66 switch (tolower (flg))
67 case "unscaled" ## Linearisiertes Modell, nicht skaliert
69 Apu = [ -40.0000 0 0 0 0
70 0.1683 -2.9471 -0.0016 0 0
71 26.6088 920.3932 -0.1756 0 259.1700
72 -0.5852 14.1941 0.0061 -5.7000 -5.7000
73 0.6600 -1.1732 -0.0052 0 -15.0000 ];
90 sys = ss (Apu, [Bpu, Bdpu], Cpu);
92 case "scaled" ## Skaliertes Zustandsraummodell
94 Ap = [ -40.0000 0 0 0 0
95 3.3659 -2.9471 -6.5157 0 0
96 0.1330 0.2301 -0.1756 0 0.0648
97 -11.7043 14.1941 24.3930 -5.7000 -5.7000
98 13.2003 -1.1732 -20.9844 0 -15.0000 ];
115 sys = ss (Ap, [Bp, Bdp], Cp, [], "scaled", true);