# Unipolar Stepper Motor

Stepper motor with center taps on two-phase windings

Libraries:
Simscape / Electrical / Electromechanical / Reluctance & Stepper

## Description

The Unipolar Stepper Motor block represents a stepper motor that has center taps on the two phase windings. The winding currents and mechanical output are defined by the following equations:

`${e}_{A+}=-{K}_{m}\omega \mathrm{sin}\left({N}_{r}\theta \right)$`
`${e}_{A-}={K}_{m}\omega \mathrm{sin}\left({N}_{r}\theta \right)$`
`${e}_{B+}={K}_{m}\omega \mathrm{cos}\left({N}_{r}\theta \right)$`
`${e}_{B-}=-{K}_{m}\omega \mathrm{cos}\left({N}_{r}\theta \right)$`
`$\frac{d{i}_{A+}}{dt}=\left({v}_{A+}-R{i}_{A+}-{e}_{A+}\right)/L$`
`$\frac{d{i}_{A-}}{dt}=\left({v}_{A-}-R{i}_{A-}-{e}_{A-}\right)/L$`
`$\frac{d{i}_{B+}}{dt}=\left({v}_{B+}-R{i}_{B+}-{e}_{B+}\right)/L$`
`$\frac{d{i}_{B-}}{dt}=\left({v}_{B-}-R{i}_{B-}-{e}_{B-}\right)/L$`
`$J\frac{d\omega }{dt}+B\omega ={T}_{e}$`
`${T}_{e}=-{K}_{m}\left({i}_{A+}-{i}_{A-}-\frac{{e}_{A+}-{e}_{A-}}{{R}_{m}}\right)\mathrm{sin}\left({N}_{r}\theta \right)+{K}_{m}\left({i}_{B+}-{i}_{B-}-\frac{{e}_{B+}-{e}_{B-}}{{R}_{m}}\right)\mathrm{cos}\left({N}_{r}\theta \right)-{T}_{d}\mathrm{sin}\left(4{N}_{r}\theta \right)$`
`$\frac{d\theta }{dt}=\omega$`

where:

• eA+ is the back emf induced across the A+ to A0 half-winding.

• eA- is the back emf induced across the A- to A0 half-winding.

• eB+ is the back emf induced across the B+ to B0 half-winding.

• eB- is the back emf induced across the B- to B0 half-winding.

• iA+ is the current flowing from the A+ port to the A0 center tap port.

• iA- is the current flowing from the A- port to the A0 center tap port.

• iB+ is the current flowing from the B+ port to the B0 center tap port.

• iB- is the current flowing from the B- port to the B0 center tap port.

• vA+ is the voltage at the A+ port relative to the A0 center tap port.

• vA- is the voltage at the A- port relative to the A0 center tap port.

• vB+ is the voltage at the B+ port relative to the B0 center tap port.

• vB- is the voltage at the B- port relative to the B0 center tap port.

• Km is the motor torque constant.

• Nr is the number of teeth on each of the two rotor poles. The Full step size parameter is (π/2)/Nr.

• R is the half-winding resistance. For example, it is the resistance between A+ and A0 ports.

• L is the half-winding inductance. For example, it is the inductance between A+ and A0 ports.

• Rm is the magnetizing resistance.

• B is the rotational damping.

• J is the inertia.

• ω is the rotor speed.

• Θ is the rotor angle.

• Td is the detent torque amplitude.

• Te is the electrical torque.

If the initial rotor is zero or some multiple of (π/2)/Nr, the rotor is aligned with the A-phase winding. If a positive current flows from the A+ port to the A0 center tap port, then the stepper acts to stay aligned with the A-phase. Equivalently, a positive current flowing from the A0 center tap port to the A- port also acts on the rotor to stay aligned with the A-phase.

The Unipolar Stepper Motor block produces a positive torque acting from the mechanical C to R ports for either of the following sequences. Both sequences assume the rotor initial angle is zero or some multiple of (π/2)/Nr.

SequenceCenter taps connected to groundCenter taps connected to positive supply
1 Positive current from A+ to A0 Positive current from A0 to A-
2 Positive current from B+ to B0 Positive current from B0 to B-
3 Positive current from A- to A0 Positive current from A0 to A-
4 Positive current from B- to B0 Positive current from B0 to B-

### Averaged Mode

If you set the Simulation mode parameter to `Averaged`, both for a Unipolar Stepper Motor block and for the Unipolar Stepper Motor Driver block that controls it, then the individual steps are not simulated. This can be a good way to speed up simulation. In Averaged mode, under non-slipping conditions, the motor and driver are represented by a second-order linear system that tracks the specified step rate. The demanded step rate is determined directly from voltage across A+ and A-. So, for example, a voltage of +10V across the A+ and A- terminals is interpreted as a step rate demand of ten steps per second. See the Unipolar Stepper Motor Driver reference page for more information on how to connect the Unipolar Stepper Motor Driver to your step angle controller.

Averaged mode includes a slip estimator to predict whether the stepper motor would have slipped if running in Stepping simulation mode. Slip is predicted if the motor torque exceeds the Vector of maximum torque values parameter value for longer than one step period, the step period being determined from the current step rate demand. Upon detecting slip, the simulation will proceed or stop with an error, according to the Action on slipping parameter value. If you choose the action that lets the simulation continue, note that simulation results may be incorrect: when slipping occurs, the torque generated by the motor will not generally be the maximum available torque; the maximum torque is only achieved if the stepper controller detects slip and adjusts the step rate command accordingly.

The dynamics of the equivalent second-order system are determined from the values that you specify for the Approximate total load inertia and Maximum step rate command parameters. It is important that you set as accurate values as possible for these parameters, so that the step rate command is tracked, and the block does not generate false slipping warnings or errors.

If you run the motor in Averaged mode with the optional thermal ports exposed (see Model Thermal Effects), then heat is added to the thermal ports assuming that the windings are always powered, even when the step rate command is zero. The block makes adjustments for half stepping and for reduced torque (and winding currents) at higher speeds. For these adjustments to be correct, the Vector of maximum torque parameter values must be correct. For half stepping, at zero speed the heat generated by the block is the average of that generated when stopped at a half step and at a full step.

If you simulate or predict slip, MathWorks recommends that you do some validation runs comparing Stepping and Averaged modes before using the averaged model representation for simulation studies.

### Model Thermal Effects

You can expose thermal ports to model the effects of losses that convert power to heat. To expose the thermal ports, set the Modeling option parameter to either:

• `No thermal port` — The block does not contain thermal ports.

• `Show thermal port` — The block contains multiple thermal conserving ports.

For more information about using thermal ports in actuator blocks, see Simulating Thermal Effects in Rotational and Translational Actuators.

## Assumptions and Limitations

• The model neglects magnetic saturation effects and any magnetic coupling between phases.

• When you select the Start simulation from steady state check box in the Simscape™ Solver Configuration block, this block will not initialize an Initial rotor angle value between –π and π.

• All four half-windings are assumed to be identical, and therefore have the same resistance temperature coefficient, alpha, and the same thermal mass.

• To use Averaged mode, the Unipolar Stepper Motor block must be directly connected to a Unipolar Stepper Motor Driver block also running in Averaged mode.

• The Averaged mode is an approximation, and exact step tracking compared to the Stepping mode should not be expected.

• Slip detection in Averaged mode is approximate, and depends on a good estimate for load inertia and maximum step rate. Incorrect values may result in false slip detection.

• When simulating slip in Averaged mode, it is assumed that the stepper motor controller adjusts the step rate command so as to achieve maximum possible torque.

## Ports

### Conserving

expand all

Electrical conserving port associated with the top A-phase electrical connection.

Electrical conserving port associated with the A-phase center tap connection.

Electrical conserving port associated with the lower A-phase electrical connection.

Electrical conserving port associated with the top B-phase electrical connection.

Electrical conserving port associated with the B-phase center tap connection.

Electrical conserving port associated with the lower B-phase electrical connection.

Mechanical rotational conserving port associated with the case.

Mechanical rotational conserving port associated with the rotor.

Thermal port for winding between A+ and A0. For more information, see Model Thermal Effects.

Thermal port for winding between A- and A0.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

Thermal port for winding between B+ and B0.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

Thermal port for winding between B- and B.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

Thermal port for rotor.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

## Parameters

expand all

Whether to enable the thermal ports of the block and model the effects of losses that convert power to heat.

### Electrical Torque

Select `Stepping` or `Averaged`. Use `Averaged` only if the block is connected directly to a Unipolar Stepper Motor Driver block also running in Averaged mode.

Vector of rotational speeds at which to define maximum torque values, for slip prediction.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Averaged`.

Vector of maximum torque values, to be used for slip prediction in conjunction with the Vector of rotational speeds parameter. The maximum torque values are often given on a datasheet, and should correspond to the supply voltage and stepping type (half step or full step) specified in the driver.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Averaged`.

Select the action for the block to perform during simulation upon detecting slip:

• `none` — Continue simulation, limiting the load torque according to the Vector of maximum torque values.

• `warn` — Continue simulation, limiting the load torque according to the Vector of maximum torque values, and generate a warning that the rotor is slipping.

• `error` — Stop the simulation and generate an error message that the rotor is slipping.

Note that if you choose an action that lets the simulation continue, simulation results may be incorrect: when slipping occurs, the torque generated by the motor will not generally be the maximum available torque; the maximum torque is only achieved if the stepper controller detects slip and adjusts the step rate command accordingly.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Averaged`.

The approximate total load inertia, including the rotor inertia. This value is used to help predict when slipping will occur due to rapid acceleration demands.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Averaged`.

The maximum step rate that your system will command. It is used to determine a suitable bandwidth for the second order system approximation to the stepper motor and driver.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Averaged`.

Half of the resistance of the A and B phase windings as measured between the A+ and A-, and the B+ and B- ports.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Stepping`.

Half of the inductance of the A and B phase windings as measured between the A+ and A-, and the B+ and B- ports.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Stepping`.

Motor torque constant Km.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Stepping`.

The amplitude of the sinusoidal torque variation observed when rotating the shaft of the unpowered motor.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Stepping`.

The total magnetizing resistance seen from each of the phase windings, for example across A+ and A0. The value must be greater than zero. The default value is `Inf`, which implies that there are no iron losses.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter to `Stepping`.

Step size when changing the polarity of either the A or B phase current. The default value is `1.8`°.

Coefficient of coupling of the windings for mutual inductance.

### Mechanical

Resistance of the rotor to change in motor motion. The value can be zero.

Energy dissipated by the rotor. The value can be zero.

Speed of the rotor at the start of the simulation.

Angle of the rotor at the start of the simulation.

### Temperature Dependence

To enable these parameters, set Modeling option to `Show thermal port`.

Parameter α in the equation defining resistance as a function of temperature, as described in Thermal Model for Actuator Blocks. It is assumed that all windings are made of the same material, and therefore have the same resistance temperature coefficient.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter in the Electrical Torque setting to `Stepping`.

The temperature for which motor parameters are defined.

Vector of maximum torque values at second measurement temperature.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter in the Electrical Torque setting to `Averaged`.

Second measurement temperature.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter in the Electrical Torque setting to `Averaged`.

Specify stepping mode.

#### Dependencies

This parameter is visible only when you set the Simulation mode parameter in the Electrical Torque setting to `Averaged`.

### Thermal Port

To enable these parameters, set Modeling option to `Show thermal port`.

The thermal mass for half of either the A or B winding. The thermal mass is the energy required to raise the temperature by one degree. It is assumed that all four half-windings have the same thermal mass.

A 1 by 4 row vector defining the temperature of the four half-windings at the start of simulation.

The thermal mass of the rotor, that is, the energy required to raise the temperature of the rotor by one degree.

The temperature of the rotor at the start of simulation.

The percentage of the magnetizing resistance associated with the magnetic path through the rotor. It determines how much of the iron loss heating is attributed to the rotor thermal port HR, and how much is attributed to the four winding thermal ports.

## References

[1] M. Bodson, J. N. Chiasson, R. T. Novotnak and R. B. Rekowski. “High-Performance Nonlinear Feedback Control of a Permanent Magnet Stepper Motor.” IEEE Transactions on Control Systems Technology, Vol. 1, No. 1, March 1993.

[2] P. P. Acarnley. Stepping Motors: A Guide to Modern Theory and Practice. New York: Peregrinus, 1982.

[3] S.E. Lyshevski. Electromechanical Systems, Electric Machines, and Applied Mechatronics. CRC, 1999.

## Version History

Introduced in R2012b