This file is indexed.

/usr/share/octave/packages/control-2.6.2/optiPIDfun.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
% ===============================================================================
% optiPIDfun                       Lukas Reichlin                       July 2009
% ===============================================================================
% Objective Function
% Reference: Guzzella, L. (2007) Analysis and Synthesis of SISO Control Systems.
%            vdf Hochschulverlag, Zurich
% ===============================================================================

function J = optiPIDfun (C_par)

  % Global Variables
  global P t dt mu_1 mu_2 mu_3

  % Function Argument -> Controller Parameters
  kp = C_par(1);
  Ti = C_par(2);
  Td = C_par(3);

  % PID Controller with Roll-Off
  C = optiPIDctrl (kp, Ti, Td);

  % Open Loop
  L = P * C;

  % Sum Block: e = r - y
  SUM = ss ([1, -1]);  % Matlab converts to SS (and back) for MIMO TF connections

  % Group Sum Block and Open Loop
  SUML = append (SUM, L);

  % Build System Interconnections
  CM = [3, 1;          % Controller Input with Sum Block Output 
        2, 2];         % Sum Block Negative Input with Plant Output

  inputs = [1];        % Input 1: reference r(t)
  outputs = [1, 2];    % Output 1: error e(t), Output 2: output y(t)

  SUML = connect (SUML, CM, inputs, outputs);

  % Simulation
  [y, t_y] = step (SUML, t);

  % ITAE Criterion
  itae = dt * (t_y.' * abs (y(:, 1)));

  % Sensitivity
  S = inv (1 + L);
  Ms = norm (S, inf);

  % Objective Function
  J = mu_1 * itae  +  mu_2 * (max (y(:, 2)) - 1)  +  mu_3 * Ms;

end  % function

% ===============================================================================