Contenido principal

PFC Voltage Controller

R2026b

Regulate DC bus voltage in a power factor correction boost converter

Since R2026b

Libraries:
Power Converter Control with Motor Control Blockset / Control / Power Factor Correction

Description

The PFC Voltage Controller block implements a discrete-time PI controller for the outer voltage loop of a power factor correction (PFC) boost converter. The block computes a current demand by comparing a DC bus voltage reference to the measured DC bus voltage, using PI gains supplied through the CtrlParams input bus from a PFC Controller Gains block.

The block computes the voltage error as the difference between the reference at VRef and the measured voltage at VFb, and applies the PI controller to produce a current demand at IOut. In a cascaded PFC control structure, multiply this output by the absolute value of the normalized grid voltage sine wave (|sinθVin|) and connect the result to the IRef input of a PFC Current Controller block to achieve unity power factor operation.

The block supports bumpless transfer through the Rst and IOutInit ports. When Rst is nonzero, the block sets the current demand output to the value at IOutInit and preloads the integrator state so the output resumes from that value when you release the reset. Use IOutUpperLimit and IOutLowerLimit to clamp the current demand and protect the converter from overcurrent during startup or transients.

To use this block, connect the CtrlParams output of a PFC Controller Gains block configured for the same converter specifications. Connect a DC bus voltage reference to VRef and the measured DC bus voltage to VFb. Multiply the IOut output by |sinθVin| and connect the result to the IRef input of a PFC Current Controller block.

Examples

Ports

Input

expand all

Desired DC bus output voltage setpoint in volts, specified as a scalar. The block computes the voltage error as the difference between this reference and the VFb feedback signal.

Data Types: double | single

Measured DC bus voltage in volts, specified as a scalar. Connect this port to a voltage sensor output in your model.

Data Types: double | single

Controller gain parameters bus containing the discrete-time voltage controller PI gains, specified as a bus. Connect the CtrlParams output of a PFC Controller Gains block.

Data Types: bus

Boolean signal that resets the integrator state when asserted (nonzero), specified as a scalar. When reset occurs, the output is set to the value at IOutInit.

Data Types: double | single

Initial output current demand applied when Rst is asserted, specified as a scalar. This value preloads the integrator state for bumpless transfer after a reset event.

Data Types: double | single

Maximum allowed current demand output in amperes, specified as a scalar. Set this to the maximum peak inductor current amplitude to protect the converter from overcurrent during transients and startup.

Data Types: double | single

Minimum allowed current demand output in amperes, specified as a scalar. Typically set to zero or a small positive value to prevent negative current demand in a unidirectional PFC stage.

Data Types: double | single

Output

expand all

Current demand output in the range [IOutLowerLimit, IOutUpperLimit], returned as a scalar. In a cascaded controller structure, multiply this signal by |sinθVin| (the absolute value of the normalized grid voltage) and connect the result to the IRef input of a PFC Current Controller block to achieve unity power factor operation.

Data Types: double | single

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Specifies how the block limits the integrator when the output current demand reaches IOutUpperLimit or IOutLowerLimit.

Select Clamping (default) to stop integration when the output is at a limit and the integrator input has the same sign as the accumulated value. This method prevents further windup without requiring an additional coefficient.

Select None to disable anti-windup. The integrator continues to accumulate during saturation.

Select Back-calculation to feed back the difference between the unsaturated and saturated output to the integrator input, scaled by the Back-Calculation Coefficient (Kb). This method unwinds the integrator while the output is saturated.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Parameter: antiwindup
Values: "Clamping" (default) | "None" | "Back-calculation"

Example: set_param(gcb,"antiwindup","Back-calculation")

Gain for the back-calculation anti-windup loop, specified as a positive scalar. The block uses this value to scale the feedback correction applied to the integrator state when the output saturates. Larger values cause the integrator to unwind faster after saturation. A typical starting value is 1. Increase it if you observe slow recovery after transient events that cause output saturation.

Dependencies

This parameter is visible when Anti-Windup Method is set to Back-calculation.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

Parameter: calcoefficient
Values: "1" (default) | positive scalar in quotes
Data Types: char | string

Example: set_param(gcb,"calcoefficient","2")

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2026b