# DC Motor

DC motor model with electrical and torque characteristics and fault modeling

• Library:
• Simscape / Electrical / Electromechanical / Brushed Motors

## Description

The DC Motor block represents the electrical and torque characteristics of a DC motor using the following equivalent circuit model:

You specify the equivalent circuit parameters for this model when you set the Model parameterization parameter to ```By equivalent circuit parameters```. The resistor R corresponds to the resistance you specify in the Armature resistance parameter. The inductor L corresponds to the inductance you specify in the Armature inductance parameter.

You can specify how to generate the magnetic field of the DC motor by setting the Field type parameter to the desired option. The permanent magnets in the motor induce the following back emf vb in the armature:

`${v}_{b}={k}_{v}\omega$`

where kv is the Back-emf constant and ω is the angular velocity. The motor produces the following torque, which is proportional to the motor current i:

`${T}_{E}={k}_{t}i$`

where kt is the Torque constant. The DC Motor block assumes that there are no electromagnetic losses. This means that mechanical power is equal to the electrical power dissipated by the back emf in the armature. Equating these two terms gives:

`$\begin{array}{l}{T}_{E}\omega ={v}_{b}i\\ {k}_{t}i\omega ={k}_{v}\omega i\\ {k}_{v}={k}_{t}\end{array}$`

As a result, you specify either kv or kt in the block parameters.

If the magnetic field is generated from the current flowing through the windings, the Back-emf constant depends on the field current If:

`${k}_{v}={L}_{af}{I}_{f}$`

where Laf is the Field-armature mutual inductance.

The torque-speed characteristic for the DC Motor block is related to the parameters in the preceding figure. When you set the Model parameterization parameter to ```By stall torque & no-load speed``` or ```By rated power, rated speed & no-load speed```, the block solves for the equivalent circuit parameters as follows:

1. For the steady-state torque-speed relationship, L has no effect.

2. Sum the voltages around the loop and rearrange for i:

`$i=\frac{V-{v}_{b}}{R}=\frac{V-{k}_{v}\omega }{R}$`

3. Substitute this value of i into the equation for torque:

`${T}_{E}=\frac{{k}_{t}}{R}\left(V-{k}_{v}\omega \right)$`

When you set the Model parameterization parameter to `By stall torque & no-load speed`, the block uses the stall torque and no-load speed to determine values for R and kt (and equivalently kv).

When you set the Model parameterization parameter to ```By rated power, rated speed & no-load speed```, the block uses the rated speed and power to calculate the rated torque. The block uses the rated torque and no-load speed values to determine values for R and kt.

The block models motor inertia J and damping λ for all values of the Model parameterization parameter. The resulting torque across the block is:

`$T=\frac{{k}_{t}}{R}\left(V-{k}_{v}\omega \right)-J\stackrel{˙}{\omega }-\lambda \omega$`

It is not always possible to measure rotor damping, and rotor damping is not always provided on a manufacturer datasheet. An alternative is to use the no-load current to infer a value for rotor damping.

For no-load, the electrically-generated mechanical torque must equal the rotor damping torque:

`${k}_{t}{i}_{noload}=\lambda {\omega }_{noload}$`

where inoload is the no-load current. If you select `By no-load current` for the Rotor damping parameterization parameter, then this equation is used in addition to the torque-speed equation to determine values for λ and the other equation coefficients.

The value for rotor damping, whether specified directly or in terms of no-load current, is taken into account when determining equivalent circuit parameters for Model parameterization options ```By stall torque and no-load speed``` and ```By rated power, rated speed and no-load speed```.

When a positive current flows from the electrical + to - ports, a positive torque acts from the mechanical C to R ports.

### Faults

The DC Motor block allows you to model two types of faults:

• Armature winding fault — The armature winding fails and goes open circuit.

• Field winding fault — The field winding that creates the magnetic field fails and goes open circuit.

The block can trigger fault events:

• At a specific time (temporal fault).

• When a current limit is exceeded for longer than a specific time interval (behavioral fault).

You can enable or disable these trigger mechanisms separately.

You can choose whether to issue an assertion when a fault occurs, by using the Reporting when a fault occurs parameter. The assertion can take the form of a warning or an error. By default, the block does not issue an assertion.

This figure shows a generic representation of a DC motor, with brushes, armatures, commutators, and their windings:

If you set the Enable armature winding open-circuit fault parameter to `On`, the armature fails at the time specified by the Simulation time for armature winding fault event parameter for a temporal fault, or when the winding currents exceeds the value of the Maximum permissible armature winding current parameter for a behavioral fault. When the armature fails, the voltage source connected to this block observes an open circuit for a fraction of the total motor revolution, specified by the Fraction of revolution during which armature is open-circuit parameter, `rev_faulted`. This figure illustrates the circuit state behaviour for a certain `rev_faulted` during the entire revolution period:

### Predefined Parameterization

There are multiple available built-in parameterizations for the permanent magnet DC Motor block.

This pre-parameterization data allows you to set up the block to represent components by specific suppliers. The parameterizations of these DC motors match the manufacturer data sheets. To load a predefined parameterization, double-click the DC Motor block, click the <click to select> hyperlink of the Selected part parameter and, in the Block Parameterization Manager window, select the part you want to use from the list of available components.

Note

The predefined parameterizations of Simscape™ components use available data sources for the parameter values. Engineering judgement and simplifying assumptions are used to fill in for missing data. As a result, expect deviations between simulated and actual physical behavior. To ensure accuracy, validate the simulated behavior against experimental data and refine component models as necessary.

For more information about pre-parameterization and for a list of the available components, see List of Pre-Parameterized Components.

### Model Thermal Effects

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

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

• `Show thermal port` — The block contains one thermal conserving port.

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

## Ports

### Conserving

expand all

Electrical conserving port associated with the DC motor positive terminal.

Electrical conserving port associated with the DC motor negative terminal.

Mechanical rotational conserving port associated with the DC motor case.

Mechanical rotational conserving port associated with the DC motor rotor.

Electrical conserving port associated with the positive field winding.

#### Dependencies

To enable this port, set Field type to `Wound`.

Electrical conserving port associated with the negative field winding.

#### Dependencies

To enable this port, set Field type to `Wound`.

Thermal conserving port.

#### 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.

Whether to parameterize the block to represent components by specific suppliers. Click the <click to select> hyperlink to open the Block Parameterization Manager window. For more information on the Block Parameterization Manager, see Load Predefined Parameterizations.

### Electrical Torque

Select one of the following methods for field type:

• `Permanent Magnet` — Generate the DC Motor magnetic field using a permanent magnet.

• `Wound` — Generate the DC Motor magnetic field using the current flowing through the windings.

Select one of the following methods for block parameterization:

• ```By equivalent circuit parameters``` — Provide electrical parameters for an equivalent circuit model of the motor.

• ```By stall torque & no-load speed``` — Provide torque and speed parameters that the block converts to an equivalent circuit model of the motor.

• ```By rated power, rated speed & no-load speed``` — Provide power and speed parameters that the block converts to an equivalent circuit model of the motor.

#### Dependencies

To enable this parameter, set Field type to `Permanent magnet`.

Resistance of the magnetic field.

#### Dependencies

To enable this parameter, set Field type to `Wound`.

Inductance of the magnetic field.

#### Dependencies

To enable this parameter, set Field type to `Wound`.

Mutual inductance between the magnetic field and the conducting portion of the motor.

#### Dependencies

To enable this parameter, set Field type to `Wound`.

Initial field current.

#### Dependencies

To enable this parameter, set Field type to `Wound`.

Resistance of the conducting portion of the motor.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By equivalent circuit parameters```.

Inductance of the conducting portion of the motor. If you do not have information about this inductance, set the value of this parameter to a small, nonzero number.

Indicate whether you will specify the motor's back-emf constant or torque constant. When you specify them in SI units, these constants have the same value, so you only specify one or the other in the block dialog box.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By equivalent circuit parameters```.

The ratio of the voltage generated by the motor to the speed at which the motor is spinning.

#### Dependencies

This parameter is visible only when you set the Define back-emf or torque constant parameter to `Specify back-emf constant`.

The ratio of the torque generated by the motor to the current delivered to it.

#### Dependencies

This parameter is visible only when you set the Define back-emf or torque constant parameter to `Specify torque constant`.

The amount of torque generated by the motor when the speed is approximately zero.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By stall torque & no-load speed```.

Speed of the motor when not driving a load.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By stall torque & no-load speed``` or ```By rated power, rated speed & no-load speed```.

Motor speed at the rated mechanical power level.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By rated power, rated speed & no-load speed```.

The mechanical power the motor is designed to deliver at the rated speed.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By rated power, rated speed & no-load speed```.

The voltage at which the motor is rated to operate.

#### Dependencies

This parameter is visible only when you set the Model parameterization parameter to ```By stall torque & no-load speed``` or ```By rated power, rated speed & no-load speed```.

Select one of the following methods to specify rotor damping:

• `By damping value` — Specify a value for rotor damping directly, by using the Rotor damping parameter in the Mechanical parameters.

• `By no-load current` — The block calculates rotor damping based on the values that you specify for the No-load current and DC supply voltage when measuring no-load current parameters. If you select this option, the Rotor damping parameter is not available for the Mechanical parameters.

Specify the no-load current value, to be used for calculating the rotor damping. This parameter is only visible when you select `By no-load current` for the Rotor damping parameterization parameter.

#### Dependencies

This parameter is visible only when you set the Rotor damping parameterization parameter to ```By no-load current```.

Specify the DC supply voltage corresponding to the no-load current value, to be used for calculating the rotor damping.

#### Dependencies

This parameter is visible only when you set the Rotor damping parameterization parameter to ```By no-load current```.

### 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.

#### Dependencies

This parameter is visible only when you set the Rotor damping parameterization parameter in the Electrical Torque setting to `By damping value`.

Speed of the rotor at the start of the simulation.

### Temperature Dependence

This tab appears only for blocks with exposed thermal port.

Resistance temperature coefficient.

The temperature for which motor parameters are defined.

### Thermal Port

This tab appears only for blocks with exposed thermal port.

The thermal mass is the energy required to raise the temperature by one degree.

Temperature of the thermal port at the start of simulation.

### Faults

Select `On` to enable faults modeling and expose the associated parameters in the Faults section, which enables you to select the reporting method and specify the time at which the armature winding fault triggers.

Fraction of the revolution of the DC motor during which the armature winding is faulted and the voltage source observes an open circuit. For more information, see the Faults section.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault to `On`.

Open-circuit conductance when the armature winding is faulted.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault to `On`.

Whether the trigger for the armature winding fault is temporal or behavioral.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault to `On`.

Time at which the armature winding becomes faulted.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault to `On` and Armature winding fault trigger to `Temporal`.

Upper load-current threshold for open-circuit armature winding faults.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault to `On` and Armature winding fault trigger to `Behavioral`.

Amount of time that the winding current must continuously exceed the maximum permissible armature winding current before a behavioral fault is triggered.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault to `On` and Armature winding fault trigger to `Behavioral`.

Select `On` to enable field winding faults modeling and expose the associated parameters in the Faults section, which enables you to select the reporting method and specify the time at which the field winding fault triggers.

#### Dependencies

To enable this parameter, set Field type to `Wound`.

Open-circuit conductance when the field winding is faulted.

#### Dependencies

To enable this parameter, set Enable field winding open-circuit fault to `On`.

Whether the trigger for the field winding fault is temporal or behavioral.

#### Dependencies

To enable this parameter, set Enable field winding open-circuit fault to `On`.

Time at which the field winding becomes faulted.

#### Dependencies

To enable this parameter, set Enable field winding open-circuit fault to `On` and Field winding fault trigger to `Temporal`.

Upper load-current threshold for open-circuit field winding faults.

#### Dependencies

To enable this parameter, set Enable field winding open-circuit fault to `On` and Field winding fault trigger to `Behavioral`.

Amount of time that the winding current must continuously exceed the maximum permissible field winding current before a behavioral fault is triggered.

#### Dependencies

To enable this parameter, set Enable field winding open-circuit fault to `On` and Field winding fault trigger to `Behavioral`.

Simulation reporting when a fault occurs:

• `None` — Does not generate a warning or an error.

• `Warn` — Generates a warning.

• `Error` — The simulation stops and generates an error.

#### Dependencies

To enable this parameter, set Enable armature winding open-circuit fault or Enable field winding open-circuit fault to `On`.

## References

[1] Bolton, W. Mechatronics: Electronic Control Systems in Mechanical and Electrical Engineering, 3rd edition Pearson Education, 2004..

## Version History

Introduced in R2008a