This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

BLDC Current Controller

Discrete-time PI-based Brushless DC Motor current control

  • Library:
  • Simscape / Electrical / Power Systems / Control / BLDC Control

Description

The BLDC Current Controller block uses this algorithm to control current in a DC brushless motor.

Equations

The BLDC Current Controller produces the duty cycle for a Brushless DC Motor block by implementing proportional-integral (PI) current control using this equation.

D=(Kp+KiTszz1)(Is_refIs)

Where:

  • D is the duty cycle.

  • Kp is the proportional gain.

  • Ki is the integral gain.

  • Ts is the time period.

  • Is_ref is the reference current.

  • Is is the measured current.

  • Gzc is the zero cancellation polynomial.

The closed-loop transfer function for the PI control algorithm yields a zero that can be cancelled by using zero-cancellation in the feedforward path. The zero-cancellation transfer function in discrete-time is:

GZC(z)=TsKiKpz+(TsKpKiKpKi).

The block obtains control signals for the three phases by multiplying the duty cycle by the commutation signals. The resulting three control signals are normalized over the interval [-1, 1].

Ports

Input

expand all

Reference current for control.

Data Types: single | double

Actual current.

Data Types: single | double

External reset signal (rising edge) for the integrator.

Data Types: single | double

Hall sensor data.

Data Types: single | double

Direction of motor rotation.

Data Types: single | double

Output

expand all

Reference voltage for the a-, b-, and c-phases.

Data Types: single | double

Parameters

expand all

Proportional gain, Kp, of the controller.

Integral gain, Ki, of the controller.

Anti-windup gain, Kaw, of the controller.

Time, in s, between consecutive block executions. During execution, the block produces outputs and, if appropriate, updates its internal state. For more information, see What Is Sample Time? (Simulink) and Specify Sample Time (Simulink).

If this block is inside a triggered subsystem, inherit the sample time by setting this parameter to -1. If this block is in a continuous variable-step model, specify the sample time explicitly using a positive scalar.

Dependencies

If you set Sample time (-1 for inherited) to -1 and select the Enable zero cancellation option, the Discretization sample time parameter becomes visible.

Time, in s, between consecutive discretizations. Discretization is required for zero cancellation.

Dependencies

This parameter is only visible when both these conditions are met:

  • Sample time is set to -1.

  • Enable zero cancellation is selected.

Option to use zero cancellation on the feedforward path.

Dependencies

If you select the Enable zero cancellation option and set Sample time (-1 for inherited) to -1, the Discretization sample time parameter becomes visible.

References

[1] Stirban, A., I. Boldea, and G. D. Andreescu. "Motion-Sensorless Control of BLDC-PM Motor With Offline FEM-Information-Assisted Position and Speed Observer." IEEE Transactions on Industry Applications. 48, no. 6 (2012): 1950-1958.

Introduced in R2018a