CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

block

Vehicles.Rdd2.ProportionalController

Sampled proportional controller with symmetric output limiting

Public declarations

Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.

RoleNameTypeDimensions / attributes / defaultDescription
parametersamplePeriodReal(unit = "s") = 0.005
parametergainReal= 1.0
parameteroutputLimitReal(min = 0.0) = 1.0

Modelica declarations and implementation

Show parameters, interfaces and source

Parameters, inputs, outputs, defaults and equations from the source file.

block ProportionalController
  "Sampled proportional controller with symmetric output limiting"
  import Interfaces = Vehicles.Rdd2.ControllerInterfaces;

  parameter Real samplePeriod(unit = "s") = 0.005;
  parameter Real gain = 1.0;
  parameter Real outputLimit(min = 0.0) = 1.0;

  Interfaces.FeedbackInput inputSignal;
  Interfaces.FeedbackOutput outputSignal;

algorithm
  when sample(0.0, samplePeriod) then
    outputSignal.error := inputSignal.setpoint - inputSignal.measurement;
    outputSignal.command := MathUtilities.clip(
      gain * outputSignal.error,
      -outputLimit,
      outputLimit);
  end when;
end ProportionalController;