# Servomotor

Brushless motor model with closed-loop torque control

## Library

Rotational Actuators

## Description

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.

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

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.

### Block Variants

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.

### Thermal Ports

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.

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

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.

## Basic Assumptions and Limitations

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.

## Dialog Box and Parameters

### Electrical Torque Tab

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.

### Electrical Losses Tab

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.

• P0 represents the Fixed losses independent of torque or speed.

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

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

At initialization, the block solves the efficiency equation for k. The block neglects losses associated with the rotor damping. This parameter is visible only if 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` Ω.

### Faults Tab

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

### Mechanical Tab

Rotor inertia

Rotor resistance to change in motor motion. The default value is `5e-06` kg*m2. 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.

### Temperature Dependence Tab

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.

### Thermal Port Tab

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.

## Ports

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