PSMPC – Pulse-step model predictive controller
Block SymbolLicensing group: ADVANCED
Function Description
The PSMPC (Pulse Step Model Predictive Control) functional block is designed for the
implementation of high-quality controllers for difficult-to-control linear time-invariant systems
with actuator constraints (e.g., systems with transport delay or non-minimum phase). It is
especially advantageous in cases where a very rapid transition from one controlled variable
value to another without overshoot is required. However, the PSMPC regulator can generally be
used wherever standard PID regulators are commonly deployed and high regulation quality is
demanded.
The PSMPC block is a predictive controller with explicitly defined constraints on the amplitude of manipulated variable. For prediction purposes, a model in the form of a discrete step response is used. The figure above illustrates how this sequence can be obtained from a continuous step response. Note that must be chosen large enough so that the step response is described up to the steady state (, where is the sampling period of the controller, and is the time to settle to 95 % of the final value).
For stable, linear and t-invariant systems with a monotonous step response, it is alternatively possible to use a moment set model [6] and describe the system with only three characteristic numbers and , which can be determined from a simple pulse experiment. The controlled system can be approximated by first order plus dead-time system
(7.1) |
or second order plus dead-time system
(7.2) |
with the same characteristic numbers. The type of approximation is selected by the imtype parameter.
To lower the computational burden of the open-loop optimization, the family of admissible control sequences contains only sequences in the so-called pulse-step shape depicted below:
Note that each of these sequences is uniquely defined by only four numbers , and , where is the control horizon and stand for the given lower and upper limit of the manipulated variable. The on-line optimization (with respect to , , and ) minimizes the criterion
(7.3) |
where is the predicted control error at time over the coincidence interval , are the differences of the control signal over the interval and penalizes the changes in the control signal. The algorithm used for solving the optimization task (7.3) combines brute force and the least squares method. The value is determined using the least squares method for all admissible combinations of , and and the optimal control sequence is selected afterwards. The selected sequence in the pulse-step shape is optimal in the open-loop sense. To convert from open-loop to closed-loop control strategy, only the first element of the computed control sequence is applied and the whole optimization procedure is repeated in the next sampling instant.
The parameters of the predictive controller, in addition to the model of the controlled system and its input constraints, include the control horizon , the prediction horizon , , and the coefficient . Only the last-mentioned parameter, , is intended for manual fine-tuning of the control quality during routine commissioning. In the case of using the system model in the form of a transfer function (7.1) or (7.2), the parameters , are automatically selected based on the characteristic numbers . The controller can then be effectively tuned "manually" by adjusting the characteristic numbers of the process , , .
Warning
It is necessary to set the sr array sufficiently large to avoid Matlab/Simulink crash when
using the PSMPC block for simulation purposes. Especially when using FOPDT or SOPDT
model, the sr array size must be greater than the length of the internally computed discrete
step response.
This block propagates the signal quality. More information can be found in the 1.4 section.
Input
sp | Setpoint variable | Double (F64) |
pv | Process variable | Double (F64) |
tv | Tracking variable | Double (F64) |
hv | Manual value | Double (F64) |
MAN | Manual or automatic mode | Bool |
|
|
|
Parameter
nc | Control horizon length 5 | Long (I32) |
np1 | Start of coincidence interval 1 | Long (I32) |
np2 | End of coincidence interval 10 | Long (I32) |
lambda | Control signal penalization coefficient 0.05 | Double (F64) |
umax | Upper limit of the controller output 1.0 | Double (F64) |
umin | Lower limit of the controller output -1.0 | Double (F64) |
imtype | Controlled process model type 3 | Long (I32) |
|
|
|
kappa | Static gain 1.0 | Double (F64) |
mu | Resident time constant 20.0 | Double (F64) |
sigma | Measure of the system response length 10.0 | Double (F64) |
nmax | Allocated size of array 10 10000 32 | Long (I32) |
sr | Discrete step response sequence [0 0.2642 0.5940 0.8009 0.9084 0.9596 0.9826 0.9927 0.9970 0.9988 0.9995] | Double (F64) |
Output
mv | Manipulated variable (controller output) | Double (F64) |
dmv | Controller velocity output (difference) | Double (F64) |
de | Deviation error | Double (F64) |
SAT | Saturation flag | Bool |
|
|
|
pve | Process variable estimation | Double (F64) |
iE | Error code | Long (I32) |
|
|
|
[Previous] [Back to top] [Up] [Next]
2024 © REX Controls s.r.o., www.rexygen.com