Main Content

SRM Commutation

Generate switching sequences for n-phase switched reluctance motor (SRM)

Since R2022b

Libraries:
Motor Control Blockset / Controls / Control Reference

Description

The SRM Commutation block implements a commutation system that generates switching sequences to energize the stator windings of an n-phase SRM.

The block supports either a three-, four-, five-, or six-phase SRM.

For more details about the algorithm used by the block, see Algorithm.

Ports

Input

expand all

Electrical position of the motor measured with respect to phase a, the first phase of the motor. Specify position between 0-2π radians or 0-360 degrees or 0-1 per-unit.

Data Types: single | double | fixed point

Motor electrical position for phase a (phase used by θe input) at which the switching sequence turns from 0 to 1 and energizes the corresponding phase. Specify position between 0- radians or 0-360 degrees or 0-1 per-unit.

Data Types: single | double | fixed point

Motor electrical position for phase a (phase used by θe input) at which the switching sequence turns from 1 to 0 and de-energizes the corresponding phase. The value should lie between 0-2π radians or 0-360 degrees or 0-1 per-unit.

Data Types: single | double | fixed point

Output

expand all

Combination of switching sequences that you can use to switch each phase to on and off to drive the motor.

Data Types: Boolean

Parameters

expand all

The number of phases in the stator windings of the SRM.

Units for the θe, θeOn, and θeOff inputs.

Algorithms

The block uses the electrical motor position (θe), electrical turn-on position (θeOn), and electrical turn-off position (θeOff) to generate n switching sequences (a vector of size n) for an n-phase SRM.

Each switching sequence (that forms a pulse train) can be used to control (turn on or off) the corresponding motor phase.

Each pulse in a switching sequence represents the activation period of the phase. The range of motor positions for which a phase activates is known as the dwell angle, θdwell = θeOffθeOn. When the motor electrical position falls within the dwell angle of a phase, the block outputs 1 to activate this phase.

For the first stator phase or phase A is as follows.

Block outputCondition

0

if θe < θeOn or θe > θeOff

1

if θeOnθeθeOff

For subsequent phases, the block output (switching sequence) has an offset of (m⨯2π)/n for the mth motor phase (m is a value between 0 and n and n is the total number of motor phases).

Therefore, for an n-phase SRM, the block output is a combination of n such sequences (or pulse trains) that can be used with position sensor feedback and control loops to control the motor speed.

The direction in which the motor rotates depends on the sequence in which you excite the stator phases. You can use the block output to change this excitation sequence by providing appropriate inputs at θeOn and θeOff.

The block expects that the electrical motor position (θe) input is aligned with the first phase of the SRM (phase a or phase 1). The block internally computes the remaining electrical positions aligned with the subsequent phases and generates switching sequences for them. For example, for a 3-phase SRM, if you derive the θe input from the mechanical motor position aligned with motor phase a, then the block internally computes the required electrical positions for phases b and c and generates the commutation outputs for each of the three phases.

Note

The block inputs should have the same position units.

Extended Capabilities

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

Fixed-Point Conversion
Design and simulate fixed-point systems using Fixed-Point Designer™.

Version History

Introduced in R2022b