# DC Motor

DC motor model with electrical and torque characteristics and fault modeling

**Libraries:**

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
*v _{b}* in the armature:

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

where *k _{v}* 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 *k _{t}* 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
*k _{v}* or

*k*in the block parameters.

_{t}If the magnetic field is generated from the current flowing through the windings, the
**Back-emf constant** depends on the field current
*I _{f}*:

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

where *L _{af}* 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 load and speed`

, the block
solves for the equivalent circuit parameters as follows:

For the steady-state torque-speed relationship,

*L*has no effect.Sum the voltages around the loop and rearrange for

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

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*k*(and equivalently_{t}*k*)._{v}When you set the

**Model parameterization**parameter to`By rated load and 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*k*._{t}

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\dot{\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 *i*_{noload} 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 load and
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.

## Examples

## Ports

### Conserving

## Parameters

## References

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

## Extended Capabilities

## Version History

**Introduced in R2008a**