FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Simple PID Controller

Class modelling a simple PID controller.

+ Collaboration diagram for Simple PID Controller:
Author
Karl-Johan Reite
Date
13.08.2013 KJR: Initial version.

Example configuration excerpt

<Lib
LibName = "fishery"
SimObject = "Trawl/PIDController"
Name = "PID"
InitOutput = "0"
ProportionalGain = "1"
IntegratorGain = "0"
DerivativeGain = "0"
MinOut = "-1e10"
MaxOut = "1e10"
MaxDerivativePart = "1e10"
MaxIntegratorPart = "1e10"
/>

Input Ports

Name Width Description
Measurement 1 The measured value.
Reference 1

The desired value.

Output Ports

Name Width Description
Out 1 The output from the PID controller.

Configuration parameters

Name Width Description @addoption{InitOutput, 1, The value of the Out port before the first accepted step, and the initial value of the integrator part. }
ProportionalGain 1 Proportional gain.
IntegratorGain 1 Integral gain.
DerivativeGain 1 Derivative gain.
MinOut 1 Minimum out value.
MaxOut 1 Maximum out value.
MaxDerivativePart 1 Maximum derivative part.
MaxIntegratorPart 1 Maximum integrator part.

Initial conditions

This simObject does not have initial conditions.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "fishery"
SimObject = "Trawl/PIDController"
Name = "PID"
InitOutput = "0"
ProportionalGain = "1"
IntegratorGain = "0"
DerivativeGain = "0"
MinOut = "-1e10"
MaxOut = "1e10"
MaxDerivativePart = "1e10"
MaxIntegratorPart = "1e10"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
PID.Measurement = "3"
PID.Reference = "4"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="30"/>
<Integrator Method="RK45_i" NumCores="1" LogStates="1" UseRSSNorm="0">
<StepControl StepMax="0.002" StepMin="0.00000001" AbsTol="1e-3" RelTol="1e-3"/>
</Integrator>
<!-- TODO migrate_v3: FileOutput="objects:all" -> configure via <OBSERVERS> section -->
</SIMULATION>
</Contents>

This SimObject is referred to as Trawl/PIDController