DC Voltage Controller
R2026bDiscrete-time DC voltage PI control with feedforward zero cancellation and integral anti-windup
Libraries:
Simscape /
Electrical /
Control /
General Machine Control
Description
The DC Voltage Controller block implements discrete-time PI-based DC voltage control. The block can implement zero cancellation in the feedforward path. To avoid saturation of the integral gain, the block can implement anti-windup gain.

Equations
The equation that the DC Voltage Controller block uses to calculate the control signal is
where:
control is the control signal, which is expressed as a duty cycle or a current.
Kp is the proportional gain.
Ki is the integral gain.
Ts is the sample time.
vref is the reference voltage.
v is the measured voltage.
The PI control calculation yields a zero in the closed-loop transfer function. To cancel the zero, the block uses this discrete-time zero-cancellation transfer function:
To avoid saturation of the integrator output, the block uses an anti-windup mechanism. The integrator gain is then equal to
where:
Kaw is the anti-windup gain.
controlsat is the saturated control signal, which the block calculates as
where:
controlunsat is the unsaturated control signal.
controlmin is the lower limit for the control signal.
vmax is the upper limit for the control signal.
Ports
Input
Output
Parameters
Programmatic Use: Add Block
To add the block programmatically, use the add_block function with one of these library block paths as the source.
"ee_sl_lib/General Machine Control/DC Voltage Controller"
Example: add_block("ee_sl_lib/General Machine Control/DC Voltage Controller","myModel/myBlock",MakeNameUnique="on")
Extended Capabilities
Version History
Introduced in R2018a
