modelPID
Proportional + Integral + Derivative two degree of freedom controller
Extends from Interfaces.Controller (Partial interface for a generic controller).
Information
Description
Proportional + Integral + Derivative with two degree of freedom controller with Automatic, Tracking mode and bias signal.
The control law is defined as
[ 1 sTd ]
CS(s) = Kp[ (bSP(s) - PV(s)) + ----- (SP(s) - PV(S)) + -----------(cSP(s) - PV(s)) ]
[ sTi 1 + sTd/N ]
Scheme
| Name | Description | Conditional? |
|---|---|---|
| SP | Set Point | NO |
| PV | Process Variable | NO |
| CS | Control Signal | NO |
| TR | Track Reference signal | YES (useTS) |
| TS | Track Switch signal | YES (useTS) |
| Bias | Biasing signal | YES (useBIAS) |
| ATreq | AutoTuning request | YES (*) |
AutoTuning
The controller can have various operating conditions:
- Automatic,
- and Tracking
In the Automatic mode, the control output is computed with the integral control law, while in the tracking mode
it is defined by the input TR.
To note that in the tracking mode the output of the integral block is forced to follow the track reference
1
I(s) = ---------- TR(S)
1+s*eps
where eps is a small time constant. Thanks to such a scheme, the integrator does not diverge while the tracking modeis enabled.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | eps (from Controller) | 1e-1 | small time constant that represents the time for switching between auto and tracking mode |
| Boolean | useTS (from Controller) | false | =true, if TS and TR inputs are enabled |
| Boolean | useBIAS (from Controller) | false | =true, if BIAS input is enabled |
| Boolean | useAT (from Controller) | false | =true, if AutoTuning input is enabled |
| Boolean | useGS (from Controller) | false | =true, if GainScheduling inputs are enabled |
| Boolean | useSAT (from Controller) | false | =true, if Saturation outputs are enabled |
| Real | Tt | max(1e3*eps, sqrt(Ti*Td)) | Reset time for the integrator (it should be larger than Td and smaller than Ti) |
| Discretisation | |||
| Real | Ts (from Controller) | 0 | Sampling time (if <= 0 continuous time) |
| IndustrialControlSystems.LinearSystems.Discrete.Types.discrMethod | method (from Controller) | IndustrialControlSystems.LinearSystems.Discrete.Types.discrMethod.BE | Discretisation method |
| Saturation | |||
| Boolean | AntiWindup (from Controller) | false | Flag that enables the antiwindup feature |
| Real | CSmin (from Controller) | 0 | minimum value of the CS |
| Real | CSmax (from Controller) | 1 | maximum value of the CS |
| Initialisation | |||
| Real | CS_start (from Controller) | 0 | output initial value |
| Parameters | |||
| Real | Kp | 5 | Proportional gain |
| Real | Ti | 1 | Integral time |
| Real | Td | 1 | Derivative time |
| Real | N | 10 | Derivative filter ratio |
| Real | b | 1 | Set point weighting for the proportional action |
| Real | c | 1 | Set point weighting for the derivative action |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealInput | TR (from Controller) | Track Reference signal | |
| Modelica.Blocks.Interfaces.BooleanInput | TS (from Controller) | Track Switch signal | |
| Modelica.Blocks.Interfaces.RealInput | BIAS (from Controller) | Bias | |
| Modelica.Blocks.Interfaces.RealInput | SP (from Controller) | Set Point signal | |
| Modelica.Blocks.Interfaces.RealOutput | CS (from Controller) | Control signal | |
| Modelica.Blocks.Interfaces.RealInput | PV (from Controller) | Process Variable signal | |
| Modelica.Blocks.Interfaces.BooleanInput | ATreq (from Controller) | Auto Tuning request | |
| Modelica.Blocks.Interfaces.BooleanOutput | satHI (from Controller) | ||
| Modelica.Blocks.Interfaces.BooleanOutput | satLOW (from Controller) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Real | bias (from Controller) | bias signal | |
| Real | tr (from Controller) | track reference value | |
| Boolean | ts (from Controller) | track reference signal | |
| Boolean | at_req (from Controller) | auto tuning enabling signal | |
| Boolean | satHigh (from Controller) | High saturation signal | |
| Boolean | satLow (from Controller) | Low saturation signal | |
| Real | Paction | proportional action | |
| Real | Iaction | integral action | |
| Real | Daction | derivative action | |
| Real | Fder | filtered weigthed error | |
| Real | satin | saturation input | |
| Real | satDiff | difference between saturation input and output signals | |
| Real | cs | Control Signal before the biasing |
Revisions
- Industrial Control Systems (v 1.0.0) : April-May 2012
- List of revisions:
- 11 May 2012 (author: Marco Bonvini)
- Main Authors:
- Marco Bonvini; <bonvini@elet.polimi.it>
- Alberto Leva <leva@elet.polimi.it>
- Politecnico di Milano
- Dipartimento di Elettronica e Informazione
- Via Ponzio 34/5
- 20133 Milano - ITALIA -
- Copyright:
- Copyright © 2010-2012, Marco Bonvini and Alberto Leva.
- The IndustrialControlSystems package is free software; it can be redistributed and/or modified under the terms of the Modelica license.