# 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 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 load and 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 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 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 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

To model a fault in the DC Motor block, in the Faults section, click the Add fault hyperlink in the parameter that corresponds to the specific fault that you want to model. When the Create Fault window opens, you use it to specify the fault properties. For more information about fault modeling, see Fault Behavior Modeling and Fault Triggering.

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.

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

If you add an armature winding fault, 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. To select a parameterization, set the Model Parameterization parameter to ```By equivalent circuit parameters```.

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.

Option 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 about 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 load and 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

To enable this parameter, set Model parameterization 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

To enable this parameter, set Model parameterization to ```By equivalent circuit parameters```.

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

#### Dependencies

To enable this parameter, set Define back-emf or torque constant to ```Specify back-emf constant```.

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

#### Dependencies

To enable this parameter, set Define back-emf or torque constant to ```Specify torque constant```.

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

#### Dependencies

To enable this parameter, set Model parameterization to ```By stall torque & no-load speed```.

Speed of the motor when not driving a load.

#### Dependencies

To enable this parameter, set Model parameterization to ```By stall torque & no-load speed``` or ```By rated load and speed```.

Motor speed at the rated mechanical power level.

#### Dependencies

To enable this parameter, set Model parameterization to ```By rated load and speed```.

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

#### Dependencies

To enable this parameter, set Model parameterization to ```By rated load and speed```.

The voltage at which the motor is rated to operate.

#### Dependencies

To enable this parameter, set the Model parameterization to ```By stall torque & no-load speed``` or ```By rated load and 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.

#### Dependencies

To enable this parameter, set the Rotor damping parameterization 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

To enable this parameter, set the Rotor damping parameterization 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

To enable this parameter, 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

Option to add a fault to the armature winding of the DC Motor block.

Option to add a fault to the field winding of the DC Motor block.

#### Dependencies

To enable this parameter, in the Electrical Torque setting, set Field type to `Wound`.

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, add an armature winding fault to the DC Motor block by clicking the Add fault hyperlink in the Armature winding fault parameter.

After you create the fault, you can change the properties in the Fault Inspector window. When you open a block that has a fault, the Open Fault Inspector hyperlink appears instead of the Add fault hyperlink. For an example that shows how to include faults, see Analyze a DC Armature Winding Fault.

Open-circuit conductance when the armature winding is faulted.

#### Dependencies

To enable this parameter, add an armature winding fault to the DC Motor block by clicking the Add fault hyperlink in the Armature winding fault parameter.

After you create the fault, you can change the properties in the Fault Inspector window. When you open a block that has a fault, the Open Fault Inspector hyperlink appears instead of the Add fault hyperlink. For an example that shows how to include faults, see Analyze a DC Armature Winding Fault.

Simulation time at which the block enters the faulted state.

#### Dependencies

To enable this parameter, in the Fault Inspector window, set Trigger Type to `Timed`.

This parameter appears in the Trigger section of the Fault Inspector window. For more information, see Set Fault Triggers.

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

#### Dependencies

To enable this parameter:

• Add an armature winding fault to the DC Motor block by clicking the Add fault hyperlink in the Armature winding fault parameter.

• In the Fault Inspector window, set Trigger Type to `Behavioral`.

This parameter appears in the Trigger section of the Fault Inspector window. For more information, see Set Fault Triggers.

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:

• Add an armature winding fault to the DC Motor block by clicking the Add fault hyperlink in the Armature winding fault parameter.

• In the Fault Inspector window, set Trigger Type to `Behavioral`.

This parameter appears in the Trigger section of the Fault Inspector window. For more information, see Set Fault Triggers.

Open-circuit conductance when the field winding is faulted.

#### Dependencies

To enable this parameter, add a field winding fault to the DC Motor block by clicking the Add fault hyperlink in the Field winding fault parameter.

After you create the fault, you can change the properties in the Fault Inspector window. When you open a block that has a fault, the Open Fault Inspector hyperlink appears instead of the Add fault hyperlink. For an example that shows how to include faults, see Analyze a DC Armature Winding Fault.

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

#### Dependencies

To enable this parameter:

• Add a field winding fault to the DC Motor block by clicking the Add fault hyperlink in the Field winding fault parameter.

• In the Fault Inspector window, set Trigger Type to `Behavioral`.

This parameter appears in the Trigger section of the Fault Inspector window. For more information, see Set Fault Triggers.

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:

• Add a field winding fault to the DC Motor block by clicking the Add fault hyperlink in the Field winding fault parameter.

• In the Fault Inspector window, set Trigger Type to `Behavioral`.

This parameter appears in the Trigger section of the Fault Inspector window. For more information, see Set Fault Triggers.

## References

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

## Version History

Introduced in R2008a