# Motor & Drive (System Level)

Generic motor and drive with closed-loop torque control

Libraries:
Simscape / Electrical / Electromechanical / System-Level Modeling

## Description

The Motor & Drive (System Level) block represents a generic motor and drive with closed-loop torque control. Use this block to model a brushless motor (such as a PMSM) and drive, or, more generally, traction and actuation systems implemented using a wide range of motor types.

To enable fast simulation at a system level, this block abstracts the motor, drive electronics, and control.

The block permits only the range of torques and speeds that the torque-speed envelope defines. In the default block configuration, you specify this data in the block dialog box as a set of speed data points and corresponding maximum torque values.

This figure shows the Cartesian quadrants definition:

The following figure shows a typical torque-speed envelope for a torque-controlled motor and drive.

Specify the torque-speed envelope for the positive torque region only, that is, quadrants 1 and 4. If you specify only for positive speeds (quadrant 1 or, equivalently, the motoring region), then the quadrant 4 torque envelope is defined by the block as the mirror image of quadrant 1. The motor torque-speed envelope has the same profile when the motor is operating in a reverse direction (quadrants 2 and 3).

Instead of providing tabulated torque-speed data, you can specify a maximum torque and a maximum power. This results in the torque-speed envelope profile shown below. The other three operating quadrants are constrained by this same profile.

The block produces a positive torque acting from the mechanical C to R ports.

### Intermittent Over-Torque Operation

To over-torque the motor for short periods of time, set the Allow intermittent over-torque parameter to `Yes`. In this case, you must specify the values for both the Continuous operation maximum torque envelope and the Intermittent operation maximum torque envelope parameters. Internally the block determines which torque envelope to apply based on the torque demand history. You can over-torque the motor drive if the torque demand has been less than the continuous operation torque envelope for more than the value specified in the Recovery time parameter. Over-torquing is disabled if over-torquing has been applied for longer than the value specified in the Over-torque time limit parameter.

For more application specific management of over-torquing, disable the over-torquing in the Motor & Drive block and externally implement the torque limiting in Simulink™ between the torque demand and the torque reference input port, Tr, of the Motor & Drive block.

### Model Electrical Losses

The block allows both simplified and tabulated definition of electrical losses. The default, simplified, behavior is to model the losses as the sum of the following four terms:

• A series resistance between the DC power supply and the motor drive.

• Fixed losses independent of torque and speed, P0. Use this to account for fixed converter losses.

• A torque-dependent electrical loss kτ2, where τ is the torque and k is a constant. This represents ohmic losses in the copper windings.

• A speed-dependent electrical loss kwω2, where ω is the speed and kw is a constant. This represents iron losses due to eddy currents.

This simplification of loss dependency on torque and speed might be sufficient for early design work, regardless of the underlying motor type and drive topology.

If you require more accuracy, or later in the design process, you can provide tabulated loss values as a function of motor speed and load torque. When using this option, provide data for all of the operating quadrants that your simulation will run in. If you provide partial data (for example, just for the quadrant 1 forward motoring region), then the other quadrants are assumed to repeat the same pattern of losses. This will normally be correct for the reverse motoring region, but may be an approximation for the braking/generating quadrants. The block does no extrapolation of loss values for speed and torque magnitudes that exceed the range of the table.

Finally, you can specify electrical losses by using tabulated efficiency data, instead of a single efficiency measurement or tabulated loss data. When using this option, also provide data for all of the operating quadrants that your simulation will run in. If you provide partial data (for example, just for the quadrant 1 forward motoring region), then the other quadrants are assumed to repeat the same pattern of losses.

The best practice is to provide tabulated loss data as a function of speed and torque, rather than tabulated efficiency data, because:

• Efficiency becomes ill-defined for zero speed or zero torque.

• Using losses, you can also account for fixed losses that are still present for zero speed or torque.

If you use the tabulated efficiencies option:

• The block converts the efficiency values you provide into losses and uses the tabulated losses for simulation.

• Efficiency values you provide for zero speed or zero torque are ignored, and losses are assumed zero when either torque or speed is zero.

• The block uses linear interpolation to determine losses. Provide tabulated data for low speeds and low torques, as required, to get the desired level of accuracy for lower power conditions.

• The block does no extrapolation of loss values for speed and torque magnitudes that exceed the range of the table.

When you provide tabulated loss or efficiency data, you can also specify it as a function of speed, load torque, and DC supply voltage. This option is useful when the supply voltage is not regulated and can vary during the simulation. One example is an electric vehicle drivetrain that does not have a DC-DC regulator upstream of the motor drive. Use the Motor & Drive (System Level) block to model the motor drive and provide tabulated loss or efficiency values as a function of motor speed, load torque, and DC supply voltage.

### Plot Efficiency Map

The block allows you to visualize the map of the torque-speed envelope and the steady-state electrical efficiency of the motor and drive. To plot the efficiency map, either:

• Double-click the block in your block diagram and, in the Description tab, click ```Plot efficiency map```.

• Right-click the block in your block diagram and, in the Electrical context menu, select `Plot efficiency map`.

This efficiency map does not include the losses generated by the External supply series resistance and Rotor damping parameters.

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

### Model Faults

You can use the physical signal input port F to simulate servomotor failure, as well as connecting and disconnecting the DC supply. You cannot simulate disconnecting the DC supply by simply opening a switch, because there must be a finite voltage on the servomotor terminals, producing the current that balances the electrical and mechanical power.

If a signal is connected to port F, then the block operates according to the parameter settings on the Faults tab. For example, if Fault condition is ```Faulted if F >= Fault threshold```, then when the signal at port F rises above the Fault threshold value, the servomotor stops operating, zero current is taken from the supply side, and zero current is supplied to the load side.

### Variables

To set the priority and initial target values for the block variables before simulation, use the Initial Targets section in the block dialog box or Property Inspector. For more information, see Set Priority and Initial Target for Block Variables.

Nominal values provide a way to specify the expected magnitude of a variable in a model. Using system scaling based on nominal values increases the simulation robustness. You can specify nominal values using different sources, including the Nominal Values section in the block dialog box or Property Inspector. For more information, see System Scaling by Nominal Values.

## Assumptions and Limitations

• The motor driver tracks a torque demand with a time constant Tc.

• Motor speed fluctuations due to mechanical load do not affect the motor torque tracking.

• The electrical connections must always be connected to a supply, such as a DC voltage source or a battery, that provides a positive voltage and is capable of delivering or absorbing the required power. To simulate turning the supply source on and off, see Model Faults.

## Ports

### Input

expand all

Physical input port associated with the reference torque demand.

Physical input port associated with the servomotor failure simulation.

#### Dependencies

To enable this port, set the Enable open circuit fault parameter to `On`.

### Output

expand all

Physical output port associated with the mechanical speed.

### Conserving

expand all

Electrical conserving port associated with the positive electrical DC supply.

Electrical conserving port associated with the negative electrical DC supply.

Mechanical rotational conserving port associated with the motor case.

Mechanical rotational conserving port associated with the motor rotor.

Thermal port.

#### Dependencies

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

## Parameters

expand all

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

### Electrical Torque

Method to use to parameterize the torque:

• ```Tabulate torque envelope with speed``` — Provide the vectors of rotational speeds and corresponding maximum torque values.

• `Maximum torque and power` — Define the torque-speed envelope by providing values for maximum permissible torque and motor power.

• ```Tabulate torque envelope with speed and supply voltage``` — Provide the vectors of rotational speeds, the vectors of DC supply voltages, and the corresponding maximum torque values.

Whether to allow intermittent over-torque. For more information on over-torquing, see Intermittent Over-Torque Operation.

Maximum torque values for permissible steady-state operation. These values correspond to the speeds in the Corresponding rotational speeds, w parameter and define the torque-speed envelope for the motor.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Tabulate torque envelope with speed```.

Maximum torque values for permissible steady-state operation. These values correspond to the speeds in the Corresponding rotational speeds, w parameter and to the voltages in the Corresponding DC supply voltage, Vdc parameter. This parameter defines the envelope with speed and supply voltage for the motor.

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Tabulate torque envelope with speed and supply voltage```.

Maximum torque values during intermittent over-torquing operation.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Tabulate torque envelope with speed``` and the Allow intermittent over-torque parameter to `Yes`.

Maximum torque values during intermittent over-torquing operation tabulated with speeds and voltages. The values of this parameter must be greater than the values of the Continuous operation maximum torque envelope, T_c(w, Vdc) parameter.

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Tabulate torque envelope with speed and supply voltage``` and the Allow intermittent over-torque parameter to `Yes`.

Rotational speeds for permissible steady-state operation. To avoid poor performance due to an infinite slope in the torque-speed curve, specify a vector of rotational speeds that does not contain duplicate consecutive values.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Tabulate torque envelope with speed```.

DC supply voltages for permissible steady-state operation. The values of this parameter must be strictly ascending.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Tabulate torque envelope with speed and supply voltage```.

Maximum permissible motor torque during continuous operation.

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Maximum torque and power```.

Maximum permissible motor power during continuous operation.

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Maximum torque and power```.

Maximum permissible motor torque during intermittent over-torquing operation.

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Maximum torque and power``` and the Allow intermittent over-torque parameter to `Yes`.

Maximum permissible motor power during intermittent over-torquing operation.

#### Dependencies

To enable this parameter, set the Parameterize by parameter to ```Maximum torque and power``` and the Allow intermittent over-torque parameter to `Yes`.

Maximum amount of time for which you can continuously apply over-torquing.

#### Dependencies

To enable this parameter, set the Allow intermittent over-torque parameter to `Yes`.

Amount of time for which the torque demand has to be less than the continuous operation torque envelope for the block to be able to apply over-torquing again.

#### Dependencies

To enable this parameter, set the Allow intermittent over-torque parameter to `Yes`.

Time constant with which the motor driver tracks a torque demand.

### Electrical Losses

Electrical loss parameterization method:

• `Single efficiency measurement` — Model the losses as the sum of a constant term plus two additional terms that are proportional to the square of the torque and the square of the speed, respectively.

• ```Tabulated loss data as a function of speed and torque``` — Determine the losses by using a two-dimensional table lookup based on the provided tabulated data for motor speeds, load torques, and corresponding losses.

• ```Tabulated efficiency data as a function of speed and torque``` — Determine the losses by using a two-dimensional table lookup based on the provided tabulated data for motor speeds, load torques, and corresponding efficiencies.

• ```Tabulated loss data as a function of speed, torque, and DC supply voltage``` — Determine the losses by using a three-dimensional table lookup based on the provided tabulated data for motor speeds, load torques, DC supply voltages, and corresponding losses.

• ```Tabulated efficiency data as a function of speed, torque, and DC supply voltage``` — Determine the losses by using a three-dimensional table lookup based on the provided tabulated data for motor speeds, load torques, DC supply voltages, and corresponding efficiencies.

See Model Electrical Losses for details.

Overall efficiency of the motor and driver. The block defines overall efficiency as

`$\eta =100\frac{{\tau }_{0}{\omega }_{0}}{{\tau }_{0}{\omega }_{0}+{P}_{0}+k{\tau }_{0}^{2}+{k}_{w}{\omega }_{0}^{2}}$`

where:

• τ0 is the Torque at which efficiency is measured parameter.

• ω0 is the Speed at which efficiency is measured parameter.

• P0 is the Fixed losses independent of torque or speed parameter.

• $k{\tau }_{0}^{2}$ is the torque-dependent electrical losses.

• kwω2 is the speed-dependent iron losses.

At initialization, the block solves the efficiency equation for k. The block neglects losses associated with the rotor damping.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Single efficiency measurement```.

Speed that the block uses to calculate torque-dependent electrical losses.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Single efficiency measurement```.

Torque that the block uses to calculate torque-dependent electrical losses.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Single efficiency measurement```.

Iron losses at the speed and torque at which you measure the efficiency.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Single efficiency measurement```.

Fixed electrical loss associated with the driver when the motor current and torque are zero.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Single efficiency measurement```.

Vector of speed values to use for table lookup when calculating losses.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to one of these settings:

• ```Tabulated loss data as a function of speed and torque```

• ```Tabulated loss data as a function of speed, torque, and DC supply voltage```

• ```Tabulated efficiency data as a function of speed and torque```

• ```Tabulated efficiency data as a function of speed, torque, and DC supply voltage```

Vector of torque values to use for table lookup when calculating losses.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to one of these settings:

• ```Tabulated loss data as a function of speed and torque```

• ```Tabulated loss data as a function of speed, torque, and DC supply voltage```

• ```Tabulated efficiency data as a function of speed and torque```

• ```Tabulated efficiency data as a function of speed, torque, and DC supply voltage```

Vector of DC supply voltages to use for table lookup when calculating losses.

You can specify this parameter as either a row or column vector (since R2023a).

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Tabulated loss data as a function of speed, torque, and DC supply voltage``` or ```Tabulated efficiency data as a function of speed, torque, and DC supply voltage```.

Tabulated values for electrical losses as a function of speed and torque to use for 2-D table lookup. Each value in the matrix specifies the losses for a specific combination of speed and torque. The matrix size must match the dimensions defined in the Vector of speeds (w) for tabulated losses and Vector of torques (T) for tabulated losses parameters.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Tabulated loss data as a function of speed and torque```.

Tabulated efficiency values, in percentages, as a function of speed and torque to use for 2-D table lookup.

This parameter models the conversion efficiency between the electrical energy and the mechanical energy when the temperature at the thermal port H is equal to the value of the Measurement temperature parameter in the Temperature Dependence section. If the temperature at the thermal port H is equal to a value between the Measurement temperature and Second measurement temperature, this block linearly interpolates the efficiency between the values ​​of each table.

Each value in the matrix specifies the efficiency for a specific combination of speed and torque. The matrix size must match the dimensions defined in the Vector of speeds (w) for tabulated losses and Vector of torques (T) for tabulated losses parameters. The block ignores the efficiency values you provide for zero speed or zero torque and assumes the losses are zero when either the torque or speed is zero. The block uses linear interpolation to determine losses. Provide tabulated data for low speeds and low torques as required to get the desired level of accuracy for lower power conditions.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Tabulated efficiency data as a function of speed and torque```.

Tabulated values for electrical losses as a function of speed, torque, and DC supply voltage, to use for 3-D table lookup. Each value in the matrix specifies the losses for a specific combination of speed, torque, and DC supply voltage. The matrix size must match the dimensions defined by the Vector of speeds (w) for tabulated losses, Vector of torques (T) for tabulated losses, and Vector of DC supply voltages (v) for tabulated losses parameters.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Tabulated loss data as a function of speed, torque, and DC supply voltage```.

Tabulated efficiency values, in percentages, as a function of speed, torque, and DC supply voltage, to use for 3-D table lookup. Each value in the matrix specifies the efficiency for a specific combination of speed, torque, and DC supply voltage. The matrix size must match the dimensions defined by the Vector of speeds (w) for tabulated losses, Vector of torques (T) for tabulated losses, and Vector of DC supply voltages (v) for tabulated losses parameters. The block ignores the efficiency values you provide for zero speed or zero torque and assumes the losses are zero when either torque or speed is zero. The block uses linear interpolation to determine losses. Provide tabulated data for low speeds and low torques as required to get the desired level of accuracy for lower power conditions.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter to ```Tabulated efficiency data as a function of speed, torque, and DC supply voltage```.

Equivalent resistance used in series with the DC supply to model electrical losses proportional to the driver supply current. The block assumes that the DC supply current is approximately constant under constant load conditions.

### Faults

Whether to enable open circuit faults.

Whether the fault is triggered by a signal that is high or low:

• `Faulted if F >= Fault threshold` — The block is disabled if the signal at port F rises above the threshold value.

• `Faulted if F <= Fault threshold` —The block is disabled if the signal at port F falls below the threshold value.

#### Dependencies

To enable this parameter, set the Enable open circuit fault parameter to `On`.

Threshold value used to detect a fault.

#### Dependencies

To enable this parameter, set the Enable open circuit fault parameter to `On`.

### Mechanical

Rotor resistance to change in motor motion. The value can be zero.

Rotor damping. The value can be zero.

Rotor speed at the start of the simulation.

### Temperature Dependence

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

Parameter α in the equation defining resistance as a function of temperature, as described in Thermal Model for Actuator Blocks. The default value is for copper.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter in the Electrical Losses settings to ```Single efficiency measurement```.

Temperature at which you define the motor parameters. If you parameterize electrical losses by tabulated loss data, then this value is the temperature at which you specify the Corresponding losses, P(w,T) parameter values in the Electrical Losses tab.

Temperature at which the values you specify in the Corresponding losses, P(w,T), at second measurement temperature parameter are given.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter in the Electrical Losses settings to ```Tabulated loss data```.

Iron losses at the second measurement temperature that correspond to the speed and torque tabulated values on the Electrical Losses tab.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter in the Electrical Losses settings to ```Tabulated loss data```.

Tabulated efficiency values, in percentages, at the second measurement temperature, corresponding to the speed and torque tabulated values on the Electrical Losses tab.

This parameter models the conversion efficiency between the electrical energy and the mechanical energy when the temperature at the thermal port H is equal to the value of the Second measurement temperature parameter. If the temperature at the thermal port H is equal to a value between the Measurement temperature and Second measurement temperature, this block linearly interpolates the efficiency between the values ​​of each table.

#### Dependencies

To enable this parameter set the Parameterize losses by parameter in the Electrical Losses settings to ```Tabulated efficiency data as a function of speed and torque```.

Iron losses at the second measurement temperature, corresponding to the speed, torque, and DC supply voltage tabulated values on the Electrical Losses tab.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter in the Electrical Losses settings to ```Tabulated loss data as a function of speed, torque, and DC supply voltage```.

Tabulated efficiency values, in percentages, at the second measurement temperature, corresponding to the speed, torque, and DC supply voltage tabulated values on the Electrical Losses tab.

#### Dependencies

To enable this parameter, set the Parameterize losses by parameter in the Electrical Losses settings to ```Tabulated efficiency data as a function of speed, torque, and DC supply voltage```.

### Thermal Port

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

Thermal mass of the electrical winding, defined as the energy required to raise the temperature by one degree.

Temperature of the thermal port at the start of simulation.

## Version History

Introduced in R2008a

expand all