P, PI, PD, and PID controller with limited output, anti-windup compensation and setpoint weighting
The Lim PID component models a proportional-integral-derivative (PID) controller. It differs from the PID Controller in that the proportional gain is coupled with the integral and the derivative gain. This type of setup is more common in an industrial controller.
Anti-windup compensation is incorporated to drive the integrator to 0 if the output is near the saturation points, and the high-frequency derivative gain is limited to avoid excessive amplification of measurement noise.
Setpoint weighting is present, allowing you to specify the setpoint weight in the proportional and the derivative parts independently from the measurement. The controller responds to load disturbances and measurement noise independently of this setting (wp and wd), however, setpoint changes depend on this setting. For example, for the derivative part, it is useful to specify the setpoint weight, wd to 0 if steps occur in the setpoint signal.
The Signal Size parameter allows the block to operate on a vector of signals rather than a single signal.
Based on the setting of the Initial Values parameter, the integrator (I) and derivative (D) components in the PID controller are initialized according to the following table.
In many cases, the most useful initial condition is steady states because initial transients are no longer present. If initType=InitPID⋅SteadyState, then in some cases difficulties might occur. The reason is the equation of the integrator, y.=k⁢u. The steady state equation, x.=0 leads to the condition that the input to the integrator is 0. If the input u is already (directly or indirectly) defined by another initial condition, the initialization problem is singular (that is, has none or infinitely many solutions). This situation occurs often in mechanical systems, where, for example, u=desiredSpeed−measuredSpeed. Because speed is both a state and a derivative, it is natural to initialize it with 0. As sketched, this is not possible. The solution is to not initialize um or the variable that is used to compute um by an algebraic equation. If the parameter Limits At Initial is false, the limits at the output of this component are removed from the initialization problem, which leads to a much simpler equation system. After initialization has been performed, it is checked with an assert whether the output is in the defined limits.
Setpoint input signal
Measurement input signal
Actuator output signal
Dimension of input and output signals
Type of controller: P, PI, PD, or PID
Gain of controller
Time constant of Integrator block
Time constant of Derivative block
Upper limit of output
Lower limit of output
Set-point weight for Proportional block (0..1)
Set-point weight for Derivative block (0..1)
Ni⁢Ti is time constant of anti-windup compensation
The greater Nd, the more ideal the derivative block
Type of initialization (see Initialization section)
Limits At Initial
False means limits are ignored during initialization
Initial or guess value value for integrator output (= integrator state)
Initial or guess value for state of derivative block
Initial value of output
True means use strict limits with noEvent(..)
Download Help Document
What kind of issue would you like to report? (Optional)