# Fixed-Displacement Motor (IL)

**Libraries:**

Simscape /
Fluids /
Isothermal Liquid /
Pumps & Motors

## Description

The Fixed-Displacement Motor (IL) block models a motor with constant-volume
displacement. The fluid may move from port **A** to port
**B**, called *forward mode*, or from port
**B** to port **A**, called *reverse
mode*. Motor mode operation occurs when there is a pressure drop in the
direction of the flow. Pump mode operation occurs when there is a pressure gain in the
direction of the flow.

Shaft rotation corresponds to the sign of the fluid volume moving through the motor. Positive fluid displacement at corresponds to positive shaft rotation in forward mode. Negative fluid displacement corresponds to negative shaft angular velocity in forward mode.

The block has eight modes of operation. The working mode depends on the
pressure drop from port **A** to port **B**,
*Δp = p*_{A} –
*p*_{B} and the angular velocity, *ω =
ω*_{R} – *ω*_{C}:

Mode 1,

*Forward Motor*: Flow from port**A**to port**B**causes a pressure decrease from**A**to**B**and a positive shaft angular velocity.Mode 2,

*Reverse Pump*: Negative shaft angular velocity causes a pressure increase from port**B**to port**A**and flow from**B**to port**A**.Mode 3,

*Reverse Motor*: Flow from port**B**to port**A**causes a pressure decrease from**B**to**A**and a negative shaft angular velocity.Mode 4,

*Forward Pump*: Positive shaft angular velocity causes a pressure increase from port**A**to port**B**and flow from**A**to**B**.

The motor block has analytical, lookup table, and physical signal parameterizations. When using tabulated data or an input signal for parameterization, you can choose to characterize the motor operation based on efficiency or losses.

In the tabulated data and the input signal parameterization options, the threshold
parameters **Pressure drop threshold for motor-pump transition** and
**Angular velocity threshold for motor-pump transition** identify
regions where numerically smoothed flow transition between the motor operational modes
can occur. Choose a transition region that provides some margin for the transition term,
but which is small enough relative to the pressure and angular velocity that it will not
impact calculation results.

### Analytical Leakage and Friction Parameterization

If you set **Leakage and friction parameterization** to
`Analytical`

, the block calculates leakage and friction
from constant values of shaft velocity, pressure drop, and friction torque. The
leakage flow rate, which is correlated with the pressure differential over the
motor, is calculated as:

$${\dot{m}}_{leak}=K{\rho}_{avg}\Delta p,$$

where:

*Δp*is*p*_{A}–*p*_{B}.*ρ*_{avg}is the average fluid density.*K*is the Hagen-Poiseuille coefficient for analytical loss,$$K=\frac{D{\omega}_{nom}\left(\frac{1}{{\eta}_{v,}{}_{nom}}-1\right)}{\Delta {p}_{nom}},$$

where:

*D*is the value of the**Displacement**parameter.*ω*is the value of the_{nom}**Nominal shaft angular velocity**parameter.*η*is the value of the_{v, nom}**Volumetric efficiency at nominal conditions**parameter.

*Δp*is the value of the_{nom}**Nominal pressure drop**parameter.

The friction torque, which is correlated with shaft angular velocity, is calculated as:

$${\tau}_{fr}=\left({\tau}_{0}+k\left|\Delta p\right|\right)\mathrm{tanh}\left(\frac{4\omega}{5\times {10}^{-5}{\omega}_{nom}}\right),$$

where:

*τ*_{0}is the value of the**No-load torque**parameter.*k*is the friction torque vs. pressure gain coefficient at nominal displacement, which is determined from the value of the**Mechanical efficiency at nominal conditions**parameter,*η*:_{m}$$k=\frac{{\tau}_{fr,nom}-{\tau}_{0}}{\Delta {p}_{nom}}.$$

*τ*is the friction torque at nominal conditions:_{fric}$${\tau}_{fr,nom}=\left(1-{\eta}_{m,nom}\right)D\Delta {p}_{nom}.$$

*Δp*is the pressure drop between ports**A**and**B**.*ω*is the relative shaft angular velocity, or $${\omega}_{R}-{\omega}_{C}$$.

### Tabulated Data Parameterizations

When using tabulated data for motor efficiencies or losses, you can provide data for one or more of the motor operational modes. The signs of the tabulated data determine the operational regime of the block. When data is provided for less than four operational modes, the block calculates the complementing data for the other mode(s) by extending the given data into the remaining quadrants.

**Tabulated Data - Volumetric and Mechanical Efficiencies Parameterization**

The leakage flow rate is

$${\dot{m}}_{leak}={\dot{m}}_{leak,motor}\left(\frac{1+\alpha}{2}\right)+{\dot{m}}_{leak,pump}\left(\frac{1-\alpha}{2}\right),$$

where:

$${\dot{m}}_{leak,pump}=\left({\eta}_{\upsilon}-1\right){\dot{m}}_{ideal}$$

$${\dot{m}}_{leak,motor}=\left(1-{\eta}_{v}\right)\dot{m}$$

and *η _{v}* is the volumetric efficiency,
which is interpolated from the user-provided tabulated data. The transition
term,

*α*, is

$$\alpha =\mathrm{tanh}\left(\frac{4\Delta p}{\Delta {p}_{threshold}}\right)\mathrm{tanh}\left(\frac{4\omega}{{\omega}_{threshold}}\right),$$

where:

*Δp*is*p*_{A}–*p*_{B}.*p*_{threshold}is the value of the**Pressure drop threshold for motor-pump transition**parameter.*ω*is*ω*_{R}–*ω*_{C}.*ω*_{threshold}is the value of the**Angular velocity threshold for motor-pump transition**parameter.

The friction torque is

$${\tau}_{fr}={\tau}_{fr,motor}\left(\frac{1+\alpha}{2}\right)+{\tau}_{fr,pump}\left(\frac{1-\alpha}{2}\right),$$

where:

$${\tau}_{fr,pump}=\left({\eta}_{m}-1\right)\tau $$

$${\tau}_{fr,motor}=\left(1-{\eta}_{m}\right){\tau}_{ideal}$$

and *η*_{m} is the
mechanical efficiency, which is interpolated from the user-provided tabulated
data.

**Tabulated Data - Volumetric and Mechanical Losses Parameterization**

The leakage flow rate is

$${\dot{m}}_{leak}={\rho}_{avg}{q}_{loss}\left(\Delta p,\omega \right),$$

where *q _{loss}* is interpolated from the

**Volumetric loss table, q_loss(dp,w)**parameter, which is based on user-supplied data for pressure drop, shaft angular velocity, and fluid volumetric displacement.

The shaft friction torque is

$${\tau}_{fr}={\tau}_{loss}\left(\Delta p,\omega \right)\mathrm{tanh}\left(\frac{4\omega}{{\omega}_{threshold}}\right),$$

where *τ _{loss}* is interpolated from the

**Mechanical loss table, torque_loss(dp,w)**parameter, which is based on user-supplied data for pressure drop and shaft angular velocity.

**Tabulated Data - Torque and Speed Parameterization**

The block calculates the volumetric loss table,
*q _{loss,TLU}* and the mechanical
loss table,

*τ*, as

_{loss,TLU}$$\begin{array}{l}{\text{q}}_{loss,TLU}={q}_{TLU}-D{\omega}_{TLU}\\ {\tau}_{loss,TLU}=D\Delta {p}_{TLU}-{T}_{TLU}\end{array}$$

where:

*q*is the value of the_{TLU}**Flow rate vector, q**parameter.*ω*is the value of the_{TLU}**Shaft speed table, w(q,dp)**parameter.*Δp*is the value of the_{TLU}**Pressure drop vector, dp**parameter.*T*is the value of the_{TLU}**Torque table, T(q,dp)**parameter.

If the supplied values for the **Shaft speed table, w(q,dp)**
and **Torque table, T(q,dp)** parameters do not cover all four
quadrants, the block extends the data by

Symmetrically mirroring the values of the

**Pressure drop vector, dp**and**Flow rate vector, q**parameters to contain negative values.Symmetrically extending the values of the volumetric loss table,

*q*, to additional quadrants. The signs of these extended values match the sign_{loss,TLU}*Δp*in each quadrant._{TLU}Calculating the extended values of the shaft speed vector,

*ω*, from the extended values of the flow rate vector and volumetric loss table, $${\omega}_{TLU}=\frac{{q}_{TLU}-{q}_{loss,TLU}}{D}.$$_{TLU}Symmetrically extending the values of the mechanical loss table,

*τ*, to additional quadrants. The signs of these extended values match the sign_{loss,TLU}*ω*in each quadrant._{TLU}

If your data tables have unknown data points in any of the four corners or the
**Shaft speed table, w(q,dp)** or **Torque table,
T(q,dp)** parameters, use `NaN`

in place of these
values. The block fills in the `NaN`

elements in the resulting
volumetric loss table and mechanical loss table with nearest extrapolation with
respect to pressure drop. The block adjusts the signs in the extrapolated
mechanical loss table to match the sign of the corresponding elements in the
shaft speed vector, *ω _{TLU}*, where $${\omega}_{TLU}=\frac{{q}_{TLU}-{q}_{loss,TLU}}{D}.$$

After extending or filling in the unknown data, the block uses linear interpolation and nearest extrapolation to calculate the volumetric and mechanical loss tables during simulation

$$\begin{array}{l}{q}_{loss}=tablelookup\left({q}_{TLU},\Delta {p}_{TLU},{q}_{loss,TLU},Q,\Delta p,interpolation=linear,extrapolation=nearest\right)\\ {\tau}_{loss}=tablelookup\left({q}_{TLU},\Delta {p}_{TLU},{\tau}_{loss,TLU},Q,\Delta p,interpolation=linear,extrapolation=nearest\right)\end{array}$$

where $$Q=\frac{{\dot{m}}_{A}}{{\rho}_{avg}}.$$

### Input Signal Parameterization

When **Leakage and friction parameterization** is ```
Input
signal - volumetric and mechanical efficiencies
```

, ports
**EV** and **EM** are enabled. The internal
leakage and shaft friction are calculated in the same way as the
```
Tabulated data - volumetric and mechanical
efficiencies
```

parameterization, except that
*η*_{v} and
*η*_{m} are received directly at ports
**EV** and **EM**, respectively.

When **Leakage and friction parameterization** is ```
Input
signal - volumetric and mechanical losses
```

, ports
**LV** and **LM** are enabled. These ports
receive leakage flow and friction torque as positive physical signals. The leakage
flow rate is calculated as:

$${\dot{m}}_{leak}={\rho}_{avg}{q}_{LV}\mathrm{tanh}\left(\frac{4\Delta p}{{p}_{thresh}}\right),$$

where:

*q*_{LV}is the leakage flow received at port**LV**.*p*_{thresh}is the value of the**Pressure drop threshold for motor-pump transition**parameter.

The friction torque is calculated as:

$${\tau}_{fr}={\tau}_{LM}\mathrm{tanh}\left(\frac{4\omega}{{\omega}_{thresh}}\right),$$

where

*τ*_{LM}is the friction torque received at port**LM**.*ω*_{thresh}is the value of the**Angular velocity threshold for motor-pump transition**parameter.

The volumetric and mechanical efficiencies range between the user-defined specified minimum and maximum values. Any values lower or higher than this range will take on the minimum and maximum specified values, respectively.

### Pump Operation

The motor flow rate is:

$$\dot{m}={\dot{m}}_{ideal}+{\dot{m}}_{leak},$$

where $${\dot{m}}_{ideal}={\rho}_{avg}D\cdot \omega .$$

The motor torque is:

$$\tau ={\tau}_{ideal}-{\tau}_{fr},$$

where $${\tau}_{ideal}=D\cdot \Delta p.$$

The mechanical power extracted by the motor shaft is:

$${\phi}_{mech}=\tau \omega ,$$

and the motor hydraulic power is:

$${\phi}_{hyd}=\frac{\Delta p\dot{m}}{{\rho}_{avg}}.$$

If you would like to know if the block is operating beyond the
supplied tabulated data, you can set **Check if operating beyond the range
of supplied tabulated data** to `Warning`

to
receive a warning if this occurs, or `Error`

to stop the
simulation when this occurs. For parameterization by input signal for volumetric or
mechanical losses, you can be notified if the simulation surpasses operating modes
with the **Check if operating outside of motor mode**
parameter.

You can also monitor motor functionality. Set **Check if pressures are
less than motor minimum pressure** to
`Warning`

to receive a warning if this occurs, or
`Error`

to stop the simulation when this occurs.

### Predefined Parameterization

Pre-parameterized manufacturer data is available for this block. This data allows you to model a specific supplier component.

To load a predefined parameterization,

Click the "Select a predefined parameterization" hyperlink in the block dialog description.

Select a part from the drop-down menu and click

**Update block with selected part**.If you change any parameter settings after loading a parameterization, you can check your changes by clicking

**Compare block settings with selected part**. Any difference in settings between the block and pre-defined parameterization will display in the MATLAB command window.

**Note**

Predefined block parameterizations use available data sources to supply parameter values. The block substitutes engineering judgement and simplifying assumptions for missing data. As a result, expect some deviation between simulated and actual physical behavior. To ensure accuracy, validate the simulated behavior against experimental data and refine your component models as necessary.

To learn more, see List of Pre-Parameterized Components.

### Faults

To model a fault, in the **Faults** section,
click the **Add fault** hyperlink next to the fault that you want to model. Use
the fault parameters to specify the fault properties. For more information about fault modeling,
see Introduction to Simscape Faults.

You can model a displacement fault, leakage, or a shaft friction torque fault.

When you enable the **Displacement fault** parameter, the block scales
the displacement by the value of the **Faulted displacement factor**
parameter when the fault triggers,

$${\text{D}}_{Fault}={f}_{D}D,$$

where *f _{D}* is the value of the

**Faulted displacement factor**parameter. When the

**Leakage and friction parameterization**parameter is

`Analytical`

, the
block does not use the faulted displacement value to calculate the Hagen-Poiseuille
coefficient or the friction torque.When you enable the **Leakage fault** parameter and **Leakage and
friction parameterization** is `Analytical`

,
`Tabulated data - volumetric and mechanical efficiencies`

, or
`Input signal - volumetric and mechanical efficiencies`

, the
faulted volumetric efficiency is

$${\eta}_{v,Fault}=\frac{{\eta}_{v}}{{f}_{Leak}},$$

where *f _{Leak}* is the value of the

**Faulted leakage factor**parameter and

*η*is the volumetric efficiency. When

_{v}**Leakage and friction parameterization**is

`Analytical`

, the block uses the faulted volumetric efficiency
to calculate the Hagen-Poiseuille coefficient.When **Leakage and friction parameterization** is ```
Tabulated
data - volumetric and mechanical losses
```

, ```
Input signal -
volumetric and mechanical losses
```

, or ```
Tabulated data - torque
and speed
```

, the faulted leakage volumetric flow rate is

$${q}_{Leak,Fault}={f}_{Leak}{q}_{Leak}.$$

When **Leakage and friction parameterization** is
`Tabulated data - torque and speed`

, the block calculates
*q _{Leak}* from the shaft speed and torque
parameters.

When you enable the **Shaft friction torque fault** parameter and
**Leakage and friction parameterization** is
`Analytical`

, ```
Tabulated data - volumetric and
mechanical efficiencies
```

, or ```
Input signal - volumetric and
mechanical efficiencies
```

, the faulted mechanical efficiency is

$${\eta}_{m,Fault}=\frac{{\eta}_{m}}{{f}_{Friction}},$$

where *f _{Friction}* is the value
of the

**Shaft friction torque fault**parameter and

*η*is the mechanical efficiency. When

_{m}**Leakage and friction parameterization**is

`Analytical`

, the block uses the faulted mechanical efficiency
to calculate the friction torque.When **Leakage and friction parameterization** is ```
Tabulated
data - volumetric and mechanical losses
```

, ```
Input signal -
volumetric and mechanical losses
```

, or ```
Tabulated data - torque
and speed
```

, the faulted friction torque is

$${\tau}_{Friction,Fault}={f}_{Friction}{\tau}_{Friction}.$$

When **Leakage and friction parameterization** is
`Tabulated data - torque and speed`

, the block calculates
*τ _{Leak}* from the shaft speed and torque
parameters.

## Examples

## Ports

### Conserving

### Input

## Parameters

## Extended Capabilities

## Version History

**Introduced in R2020a**