This file is indexed.

/usr/share/octave/packages/control-2.6.2/BMWengine.m is in octave-control 2.6.2-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
## -*- texinfo -*-
## @deftypefn{Function File} {@var{sys} =} BMWengine ()
## @deftypefnx{Function File} {@var{sys} =} BMWengine (@var{"scaled"})
## @deftypefnx{Function File} {@var{sys} =} BMWengine (@var{"unscaled"})
## Model of the BMW 4-cylinder engine at ETH Zurich's control laboratory.
## @example
## @group
## OPERATING POINT
## Drosselklappenstellung     alpha_DK = 10.3 Grad
## Saugrohrdruck              p_s = 0.48 bar
## Motordrehzahl              n = 860 U/min
## Lambda-Messwert            lambda = 1.000
## Relativer Wandfilminhalt   nu = 1
## @end group
## @end example
## @example
## @group
## INPUTS
## U_1 Sollsignal Drosselklappenstellung   [Grad]
## U_2 Relative Einspritzmenge             [-]
## U_3 Zuendzeitpunkt                      [Grad KW]
## M_L Lastdrehmoment                      [Nm]
## @end group
## @end example
## @example
## @group
## STATES
## X_1 Drosselklappenstellung     [Grad]
## X_2 Saugrohrdruck              [bar]
## X_3 Motordrehzahl              [U/min]
## X_4 Messwert Lamba-Sonde       [-]
## X_5 Relativer Wandfilminhalt   [-]
## @end group
## @end example
## @example
## @group
## OUTPUTS
## Y_1 Motordrehzahl              [U/min]    
## Y_2 Messwert Lambda-Sonde      [-]
## @end group
## @end example
## @example
## @group
## SCALING
## U_1N, X_1N   1 Grad
## U_2N, X_4N, X_5N, Y_2N   0.05
## U_3N   1.6 Grad KW
## X_2N   0.05 bar
## X_3N, Y_1N   200 U/min
## @end group
## @end example
## @end deftypefn

## Author: Lukas Reichlin <lukas.reichlin@gmail.com>
## Created: January 2010
## Version: 0.1.1

## TODO: translate German terminology 

function sys = BMWengine (flg = "scaled")

  if (nargin > 1)
    print_usage ();
  endif

  switch (tolower (flg))
    case "unscaled"  ## Linearisiertes Modell, nicht skaliert

      Apu = [ -40.0000     0          0          0          0
                0.1683    -2.9471    -0.0016     0          0
               26.6088   920.3932    -0.1756     0        259.1700
               -0.5852    14.1941     0.0061    -5.7000    -5.7000
                0.6600    -1.1732    -0.0052     0        -15.0000 ];

      Bpu = [  40.0000     0          0
                0          0          0
                0        181.4190     1.5646
                0         -3.9900     0
                0          4.5000     0      ];

      Bdpu = [  0
                0
              -15.9000
                0
                0      ];

      Cpu = [   0          0          1          0          0
                0          0          0          1          0 ];

      sys = ss (Apu, [Bpu, Bdpu], Cpu);

    case "scaled"  ## Skaliertes Zustandsraummodell

      Ap = [  -40.0000     0          0          0          0
                3.3659    -2.9471    -6.5157     0          0
                0.1330     0.2301    -0.1756     0          0.0648
              -11.7043    14.1941    24.3930    -5.7000    -5.7000
               13.2003    -1.1732   -20.9844     0        -15.0000 ];

      Bp = [   40.0000     0          0
                0          0          0
                0          0.0454     0.0125
                0         -3.9900     0
                0          4.5000     0      ];

      Bdp = [   0
                0
               -1.5900
                0
                0      ];

      Cp = [    0          0          1          0          0
                0          0          0          1          0 ];

      sys = ss (Ap, [Bp, Bdp], Cp, [], "scaled", true);

    otherwise
      print_usage ();

  endswitch

endfunction