Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Brushless motor model with closed-loop torque control

Rotational Actuators

The Servomotor block represents a brushless motor model with closed-loop torque control. This block abstracts the torque-speed behavior of the combined motor and motor driver in order to support system-level simulation where simulation speed is important.

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. The following figure shows a typical torque-speed envelope for a servomotor.

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

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,

*P*_{0}. Use this to account for fixed converter losses.A torque-dependent electrical loss

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

, where*k*_{w}*ω*^{2}is the speed and*ω**k*_{w}is a constant. This represents iron losses due to eddy currents.

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

The block provides four modeling variants, accessible by right-clicking
the block in your block diagram and then selecting the appropriate
option from the context menu, under **Simscape** > **Block
choices**:

**No thermal port**— Basic model that does not simulate faults or thermal effects. This is the default.**Show thermal port**— Model with exposed thermal port. This model does not simulate faults.**Faultable| No thermal port**— Model with exposed fault control port. This model does not simulate thermal effects.**Faultable | Show thermal port**— Model that lets you simulate both faults and thermal effects. Both the thermal port and the fault input port are exposed.

The block has an optional thermal port, hidden by default. To
expose the thermal port, select one of the block variants that model
thermal effects, as described in Block Variants. This action displays the thermal port H on
the block icon, and adds the **Temperature Dependence** and **Thermal
Port** tabs to the block dialog box. These tabs are described
further on this reference page.

Use the thermal port to simulate the effects of copper resistance losses that convert electrical power to heat. For more information on using thermal ports in actuator blocks, see Simulating Thermal Effects in Rotational and Translational Actuators.

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.

To expose the fault control port, select one of the faultable
block variants, as described in Block Variants. This action displays the physical signal
input port F on the block icon, and adds the **Faults** tab
to the block dialog box. This tabs are is described further on this
reference page.

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.

This model is based on the following assumptions:

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.

**Parameterize by**Select one of the following methods for block parameterization:

`Tabulated torque-speed envelope`

— Provide the vectors of rotational speeds and corresponding maximum torque values. This is the default option.`Maximum torque and power`

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

**Vector of rotational speeds**Rotational speeds for permissible steady-state operation. This parameter is visible only if you select

`Tabulated torque-speed envelope`

for the**Parameterize by**parameter. The default value is`[0 3.75e+03 7.5e+03 8e+03]`

rpm. 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.**Vector of maximum torque values**Maximum torque values for permissible steady-state operation. This parameter is visible only if you select

`Tabulated torque-speed envelope`

for the**Parameterize by**parameter. These values correspond to the speeds in the**Vector of rotational speeds**parameter and define the torque-speed envelope for the motor. The default value is`[0.09 0.08 0.07 0]`

Nm.**Maximum torque**The maximum permissible motor torque. This parameter is visible only if you select

`Maximum torque and power`

for the**Parameterize by**parameter. The default value is`0.1`

Nm.**Maximum power**The maximum permissible motor power. This parameter is visible only if you select

`Maximum torque and power`

for the**Parameterize by**parameter. The default value is`30`

W.**Torque Control time constant, Tc**Time constant with which the motor driver tracks a torque demand. The default value is

`0.02`

s.

**Parameterize losses by**Select one of the following methods for electrical loss parameterization:

`Single efficiency measurement`

— Model the losses as the sum of the four terms, listed in the block description, at a single measurement point. This is the default option.`Tabulated loss data`

— Determine the losses by two-dimensional table lookup based on the provided tabulated data for motor speeds, load torques, and corresponding losses.`Tabulated efficiency data`

— Determine the losses by two-dimensional table lookup based on the provided tabulated data for motor speeds, load torques, and corresponding efficiencies. See Modeling Electrical Losses for details.

**Motor and driver overall efficiency (percent)**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}represents the**Torque at which efficiency is measured**.*ω*_{0}represents the**Speed at which efficiency is measured**.*P*_{0}represents the**Fixed losses independent of torque or speed**.$$k{\tau}_{0}^{2}$$ represents the torque-dependent electrical losses.

*k*_{w}*ω*^{2}represents the speed-dependent iron losses.

At initialization, the block solves the efficiency equation for

. The block neglects losses associated with the rotor damping. This parameter is visible only if*k***Parameterize losses by**is set to`Single efficiency measurement`

. The default value is`100`

%.**Speed at which efficiency is measured**Speed that the block uses to calculate torque-dependent electrical losses. This parameter is visible only if

**Parameterize losses by**is set to`Single efficiency measurement`

. The default value is`3.75e+03`

rpm.**Torque at which efficiency is measured**Torque that the block uses to calculate torque-dependent electrical losses. This parameter is visible only if

**Parameterize losses by**is set to`Single efficiency measurement`

. The default value is`0.08`

Nm.**Iron losses**Iron losses at the speed and torque at which efficiency is defined. This parameter is visible only if

**Parameterize losses by**is set to`Single efficiency measurement`

. The default value is`0`

W.**Fixed losses independent of torque and speed**Fixed electrical loss associated with the driver when the motor current and torque are zero. This parameter is visible only if

**Parameterize losses by**is set to`Single efficiency measurement`

. The default value is`0`

W.**Vector of speeds (w) for tabulated losses**The vector of speed values, to be used for table lookup when calculating losses. This parameter is visible only if

**Parameterize losses by**is set to`Tabulated loss data`

or`Tabulated efficiency data`

. The default value is`[-8000 -4000 0 4000 8000]`

rpm.**Vector of torques (T) for tabulated losses**The vector of speed values, to be used for table lookup when calculating losses. This parameter is visible only if

**Parameterize losses by**is set to`Tabulated loss data`

or`Tabulated efficiency data`

. The default value is`[0 0.03 0.06 0.09]`

Nm.**Corresponding losses, P(w,T)**Tabulated values for electrical losses as a function of speed and torque, to be used for 2D 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 by the speed and torque vectors. This parameter is visible only if

**Parameterize losses by**is set to`Tabulated loss data`

. The default value is`[1.49 1.67 2.21 3.10; 0.42 0.69 1.14 2.03; 0.06 0.24 0.78 1.68; 0.42 0.69 1.14 2.03; 1.49 1.67 2.21 3.10]`

W.**Corresponding efficiency (percent), E(w,T)**Tabulated efficiency values, in percent, as a function of speed and torque, to be used for 2D table lookup. Each value in the matrix specifies the efficiency for a specific combination of speed and torque. The matrix size must match the dimensions defined by the speed and torque vectors. 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. This parameter is visible only if

**Parameterize losses by**is set to`Tabulated efficiency data`

. The default value is`[95 95 95 95; 95 95 95 95; 95 95 95 95; 95 95 95 95; 95 95 95 95]`

.**Supply series resistance**The equivalent resistance used in series with the DC supply to model electrical losses that are proportional to the driver supply current. The block assumes that the DC supply current is approximately constant under constant load conditions. The default value is

`0`

Ω.

This tab appears only for blocks with an exposed fault control port. For more information, see Simulating Faults.

**Fault condition**Selects whether the fault is triggered by a signal that is high or low:

`Faulted if F >= Fault threshold`

— Servomotor is disabled if the signal at port F rises above the threshold value. This is the default option.`Faulted if F <= Fault threshold`

— Servomotor is disabled if the signal at port F falls below the threshold value.

**Fault threshold**The threshold value used to detect a fault. The default value is

`0.5`

.

**Rotor inertia**Rotor resistance to change in motor motion. The default value is

`5e-06`

kg*m^{2}. The value can be zero.**Rotor damping**Rotor damping. The default value is

`1e-05`

N*m/(rad/s). The value can be zero.**Initial rotor speed**Rotor speed at the start of the simulation. The default value is

`0`

rpm.

This tab appears only for blocks with an exposed thermal port. For more information, see Thermal Ports.

**Resistance temperature coefficient**Parameter α in the equation defining resistance as a function of temperature, as described in Thermal Model for Actuator Blocks. This parameter is visible only if the

**Parameterize losses by**parameter on the**Electrical Losses**tab is set to`Single efficiency measurement`

. The default value is for copper, and is`0.00393`

1/K.**Measurement temperature**The temperature for which motor parameters are defined. If you parameterize electrical losses by tabulated loss data, then this is the temperature for which the

**Corresponding losses, P(w,T)**are given on the**Electrical Losses**tab. The default value is`25`

°C.**Second measurement temperature**The temperature for which the

**Corresponding losses, P(w,T), at second measurement temperature**are given. This parameter is visible only if the**Parameterize losses by**parameter on the**Electrical Losses**tab is set to`Tabulated loss data`

. The default value is`125`

°C.**Corresponding losses, P(w,T), at second measurement temperature**Iron losses at the second measurement temperature, corresponding to the speed and torque tabulated values on the

**Electrical Losses**tab. This parameter is visible only if the**Parameterize losses by**parameter on the**Electrical Losses**tab is set to`Tabulated loss data`

. The default value is`[1.49 1.74 2.49 3.74;0.42 0.67 1.42 2.67;0.06 0.31 1.06 2.31;0.42 0.67 1.42 2.67;1.49 1.74 2.49 3.74]`

W.

This tab appears only for blocks with an exposed thermal port. For more information, see Thermal Ports.

**Thermal mass**Thermal mass of the electrical winding, defined as the energy required to raise the temperature by one degree. The default value is

`100`

J/K.**Initial temperature**The temperature of the thermal port at the start of simulation. The default value is

`25`

°C.

This block has the following ports:

`+`

Positive electrical DC supply

`-`

Negative electrical DC supply

`Tr`

Reference torque demand

`w`

Mechanical speed output

`C`

Mechanical rotational conserving port

`R`

Mechanical rotational conserving port

Was this topic helpful?