# Rotor

**Libraries:**

Aerospace Blockset /
Propulsion

## Description

The Rotor block computes the aerodynamic forces and moments generated by a rotating propeller or rotor in all three dimensions. The block lets you include the effect of the tilt in rotor disc due to flap motion, while in forward flight, on the generated force and moments.

## Examples

### Mars Helicopter Simulink-Based System Level Design

Model a helicopter with coaxial rotors suitable to fly on Mars.

## Limitations

The block follows a simplified approach with the option to include steady state flap effects. It does not model dynamic flap, lag, or feathering motion of blade.

The block outputs have been verified against the algorithms used, for input and parameter values within reasonable limits (as observed from literature).

The block uses

**Twist distribution**to model only linear or ideal twist distributions. The block assumes that the blade chord and lift curve slope are constant.The effect of collective pitch input and drag coefficient is incorporated in the block through the thrust and torque coefficients alone. Hence, the collective input port and the drag coefficient is active only when

**CT and CQ Source**dropdown is set to`Compute using BEMT`

.

## Ports

### Input

**Ω (rad/sec)** — Rotor speed

scalar

Rotor speed, specified as a scalar in rad/sec in body frame.

**Data Types: **`double`

**ρ** — Air density

positive scalar

Air density, specified as a positive scalar in specified units.

**Data Types: **`double`

**V**_{b} — Body velocity of rotor

3-by-1 vector | 1-by-3 vector

_{b}

Velocity of rotor, specified as a 3-by-1 or 1-by-3 vector in body frame. To perform a multisystem analysis, consider connecting output from a State-Space or Integrator block to this port.

#### Dependencies

This enable this input, set `Modeling`

to ```
With
flap effects
```

.

The unit of velocity depends on the value of the `Units`

parameter.

**Data Types: **`double`

**ω**_{b} — Angular velocity

3-by-1 vector | 1-by-3 vector

_{b}

Angular velocity of entire vehicle, specified as a 3-by-1 or 1-by-3 vector in rad/s in body frame.

#### Dependencies

This enable this input, set `Modeling`

to ```
With
flap effects
```

.

**Data Types: **`double`

**θ**_{0} — Collective blade pitch angle

scalar

_{0}

Collective blade pitch angle, specified as a scalar in radians.

#### Dependencies

To enable this input port, select the **Include pitch angle inputs** check
box and set the **CT and CQ Source** dropdown to
`Compute using BEMT`

.

**Data Types: **`double`

**θ**_{c} — Lateral cyclic pitch angle

scalar

_{c}

Lateral cyclic pitch angle, specified as a scalar in radians.

#### Dependencies

To enable this input port,

Select the

**Include pitch angle inputs**check box.Set

**Modeling**to`With flap effects`

.

**Data Types: **`double`

**θ**_{s} — Longitudinal cyclic pitch angle

scalar

_{s}

Longitudinal cyclic pitch angle, specified as a scalar in radians.

#### Dependencies

To enable this input port,

Select the

**Include pitch angle inputs**check box.Set

**Modeling**to`With flap effects`

.

**Data Types: **`double`

### Output

**F**_{xyz}(N) — Total force

three-element vector

_{xyz}(N)

Total force, returned as a three-element vector in body frame. Units depend on the
**Units** parameter.

**Data Types: **`double`

**M**_{xyz}(Nm) — Net moment

three-element vector

_{xyz}(Nm)

Net moment in the *x*-*y*-*z*
direction, returned as a three-element vector in body frame. Units depend on the
**Units** parameter.

**Data Types: **`double`

**C**_{T} — Computed thrust coefficient

positive scalar

_{T}

Computed thrust coefficient, returned as a positive scalar.

#### Dependencies

To enable this output port, select the **Output computed CT
and CQ** check box and set the **CT and CQ
Source** dropdown to ```
Compute using
BEMT
```

.

**Data Types: **`double`

**C**_{Q} — Computed torque coefficient

positive scalar

_{Q}

Computed torque coefficient, returned as a positive scalar.

#### Dependencies

To enable this output port, select the **Output computed CT
and CQ** check box and set the **CT and CQ
Source** dropdown to ```
Compute using
BEMT
```

.

**Data Types: **`double`

## Parameters

**Main**

**Units** — Input and output units

`Metric (MKS)`

(default) | `English (Velocity in ft/s)`

| `English (Velocity in kts)`

Units | Density | Force | Moment | Velocity | Radius | Chord | Hinge offset |
---|---|---|---|---|---|---|---|

`Metric (MKS)` | kg/m^{3} | Newtons | Newton-meter | Meters per second | Meters | Meters | Meters |

`English (Velocity in ft/s)` | slug/ft^{3} | Pound force | Pound force-feet | Feet per second | Feet | Feet | Feet |

`English (Velocity in kts)` | slug/ft^{3} | Pound force | Pound force-feet | Knots | Feet | Feet | Feet |

#### Programmatic Use

Block Parameter: `units` |

Type: character vector |

Values: `'Metric (MKS)'` | `'English (Velocity in ft/s)'` | `'English (Velocity in kts)'` |

Default: `'Metric (MKS)'` |

**Modeling** — Rotor thrust calculation method

`Without flap effects`

(default) | `With flap effects`

Rotor thrust calculation method, specified as:

`Without flap effects`

— Model rotor thrust using force and moment calculations. For more information, see Force and Moment.`With flap effects`

— Effect of tilt in rotor disc due to flap motion, while in forward flight, is included. The steady state lateral and longitudinal flap angles are calculated using the equations from [1] and used in the computation of forces and moments [2]. For more information, see Force and Moment.

#### Programmatic Use

Block Parameter: `modelMode` |

Type: character vector |

Values: `'Without flap effects'` | `'With flap effects'` |

Default: `'Without flap effects'` |

**Include pitch angle inputs** — Enable pitch angle inputs

`off`

(default) | `on`

Select this check box to enable the pitch angle (swash plate) input ports.

#### Dependencies

To enable this checkbox

Set the

**CT and CQ Source**dropdown to`Compute using BEMT`

and/or

Set

**Modeling**to`'With flap effects'`

#### Programmatic Use

Block Parameter:
`controlInput` |

Type: character vector |

Values: `'on'` |
`'off'` |

Default: `'off'` |

**Rotor**

**CT and CQ Source** — Dropdown to select the source of thrust and torque coefficient values

`'Dialog'`

(default) | `'Compute using BEMT'`

Select the source of the thrust coefficient and torque coefficient values, specified as a
character vector of value `'Dialog'`

or ```
'Compute using
BEMT'
```

. The block assumes the aerodynamic and structural parameters to be
constant.

Select `'Dialog'`

to manually enter the thrust and torque coefficient
values.

Select `'Compute using BEMT'`

to compute the values using Blade Element
Momentum Theory (BEMT). For more information on BEMT, see Thrust and Torque coefficient.

#### Programmatic Use

Block Parameter:
`CTCQMode` |

Type: character vector |

Values: `'Dialog'` |
`'Compute using BEMT'` |

Default: `'Dialog'` |

**Thrust coefficient (CT)** — Thrust coefficient

`0.0107`

(default) | nonzero positive scalar

Thrust coefficient, specified as a nonzero positive scalar.

#### Dependencies

To enable this parameter, set the **CT and CQ Source** dropdown
to `'Dialog'`

.

#### Programmatic Use

Block Parameter:
`CT` |

Type: character vector |

Values: `'0.0107'` |
nonzero positive scalar |

Default:
`'0.0107'` |

**Torque coefficient (CQ)** — Torque coefficient

`7.8263e-4`

(default) | nonzero positive scalar

Torque coefficient, specified as a nonzero positive scalar.

#### Dependencies

To enable this parameter, set the **CT and CQ Source** dropdown
to `'Dialog'`

.

#### Programmatic Use

Block Parameter:
`CQ` |

Type: character vector |

Values: `'7.8263e-4'` |
nonzero positive scalar |

Default:
`'7.8263e-4'` |

**Number of blades** — Number of blades per rotor

`2`

(default) | nonzero positive scalar

Number of blades, specified as a nonzero positive scalar.

#### Dependencies

To enable this parameter,

Set the

**CT and CQ Source**dropdown to`Compute using BEMT`

and/or

Set

**Modeling**to`'With flap effects'`

#### Programmatic Use

Block Parameter:
`Nb` |

Type: character vector |

Values: `'2'` | nonzero
positive scalar |

Default: `'2'` |

**Output computed CT and CQ** — Output computed thrust coefficient and torque coefficient

off (default) | on

Select this check box to output the calculated thrust coefficient and torque coefficient to
**C _{T}** and

**C**output ports. For more information on these calculations, see Thrust Coefficient and Torque Coefficient Calculations. The block assumes the aerodynamic and structural parameters to be constant.

_{Q}Otherwise, clear this check box.

#### Dependencies

To enable this parameter, set the **CT and CQ Source** dropdown
to `'Compute using BEMT'`

.

#### Programmatic Use

Block Parameter: `CTout` |

Type: character vector |

Values: `'on'` | `'off'` |

Default: `'off'` |

**Blade**

**Radius (m)** — Rotor radius

`0.0330`

(default) | nonzero positive scalar

Rotor radius, specified as a nonzero positive scalar.

#### Programmatic Use

Block Parameter: `radius` |

Type: character vector |

Values: `'0.0330'` | nonzero positive
scalar |

Default: `'0.0330'` |

**Chord (m)** — Blade chord

`0.0080`

(default) | nonzero positive scalar

Blade chord, specified as a nonzero positive scalar.

#### Dependencies

To enable this checkbox,

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

#### Programmatic Use

Block Parameter: `chord` |

Type: character vector |

Values: `'0.0080'` | nonzero positive
scalar |

Default: `'0.0080'` |

**Hinge offset (m)** — Hinge offset

`0`

(default) | positive scalar

Hinge offset, specified as a positive scalar. This value is typically
`0`

for propellers.

#### Dependencies

To enable this checkbox,

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

#### Programmatic Use

Block Parameter:
`hingeOffset` |

Type: character vector |

Values: `'0'` | positive
scalar |

Default: `'0'` |

**Lift curve slope (per rad)** — Lift curve slope

`5.5`

(default) | nonzero positive scalar

Lift curve slope, specified as a nonzero positive scalar. The block assumes the aerodynamic and structural parameters to be constant. The block does not consider variation with respect to angle of attack.

#### Dependencies

To enable this checkbox,

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

#### Programmatic Use

Block Parameter: `clalpha` |

Type: character vector |

Values: `'5.5'` | nonzero positive
scalar |

Default: `'5.5'` |

**Mean drag coefficient** — Mean drag coefficient

0 (default) | positive scalar

Mean drag coefficient, specified as a positive scalar. The block does not consider variation with respect to angle of attack.

#### Dependencies

To enable this parameter, set the **CT and CQ Source** dropdown
to `'Compute using BEMT'`

.

#### Programmatic Use

Block Parameter:
`cd0` |

Type: character vector |

Values: `'0'` | positive
scalar |

Default: `'0'` |

**Lock number** — Lock number

`0.6051`

(default) | nonzero positive scalar

Lock number, which is the ratio of aerodynamics forces to inertial forces, specified as a nonzero positive scalar.

#### Dependencies

To enable this parameter, set **Modeling** to `With flap effects`

.

#### Programmatic Use

Block Parameter: `gamma` |

Type: character vector |

Values: `'0.6051'` | nonzero positive
scalar |

Default: `'0.6051'` |

**Twist distribution** — Rotor blade twist distribution

`Linear`

(default) | `Ideal`

Rotor blade twist distribution, specified as:

`Linear`

— Close approximation of blade twist distribution.$$\theta (r)={\theta}_{root}+{\theta}_{twist}r$$

`Ideal`

— Optimal approximation of blade twist distribution.$$\theta (r)=\frac{{\theta}_{tip}}{r}$$

where *r* is the nondimensional radial location along the
blade.

#### Dependencies

To enable this checkbox,

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

#### Programmatic Use

Block Parameter:
`twistType` |

Type: character vector |

Values: `'Linear'` |
`'Ideal'` |

Default:
`'Linear'` |

**Blade root angle (rad)** — Blade root pitch angle

`0.2548`

(default) | real scalar

Blade root pitch angle θ_{root}, specified as a real scalar.

#### Dependencies

To enable this parameter:

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

Set

**Twist distribution**to`Linear`

.

#### Programmatic Use

Block Parameter: `thetaRoot` |

Type: real scalar |

Values: `'0.2548'` | nonzero positive
scalar |

Default: `'0.2548'` |

**Blade twist angle (rad)** — Blade twist angle

`-0.1361`

(default) | real scalar

Blade twist angle θ_{twist}, specified as a real scalar.

#### Dependencies

To enable this parameter:

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

Set

**Twist distribution**to`Linear`

.

#### Programmatic Use

Block Parameter: `thetaTwist` |

Type: real scalar |

Values: `'0.1018'` | positive
scalar |

Default: `'0.1018'` |

**Blade tip angle (rad)** — Blade tip pitch angle

`0.1018`

(default) | real scalar

Blade tip pitch angle θ_{tip} for ideal twist distribution, specified as a
real scalar.

#### Dependencies

To enable this parameter:

Set the

**CT and CQ Source**dropdown to`'Compute using BEMT'`

.

and/or

Set

**Modeling**to`'With flap effects'`

Set

**Twist distribution**to`Ideal`

.

#### Programmatic Use

Block Parameter: `thetaTip` |

Type: real scalar |

Values: `'0.06'` | nonzero positive
scalar |

Default: `'0.06'` |

## Algorithms

### Force and Moment

Force and moment calculated using these equations:

*Without flap effects*$$\begin{array}{l}{F}_{xyz}=\left[\begin{array}{c}0\\ 0\\ -{C}_{T}\rho \pi {R}^{2}{(\Omega R)}^{2}\end{array}\right]\\ {M}_{xyz}=\left[\begin{array}{c}0\\ 0\\ -{C}_{Q}\rho \pi {R}^{2}\Omega \left|\Omega \right|{R}^{3}\end{array}\right]\end{array}$$

*With flap effects*$$\begin{array}{l}{F}_{xyz}={C}_{T}\rho \pi {R}^{2}{(}^{\Omega}\left[\begin{array}{c}-\mathrm{cos}{\beta}_{s}\mathrm{sin}{\beta}_{c}\\ \mathrm{sin}{\beta}_{s}\\ -\mathrm{cos}{\beta}_{c}\mathrm{cos}{\beta}_{s}\end{array}\right]\\ {M}_{xyz}=\left[\begin{array}{c}0\\ 0\\ -{C}_{Q}\rho \pi {R}^{2}\Omega \left|\Omega \right|{R}^{3}\end{array}\right]\end{array}$$

where:

Ω is the rotor speed in rad/s.

*β*and_{c}*β*are the steady state flap angles computed using the equations in Chapter 7 of [1]._{s}

### Thrust Coefficient and Torque Coefficient Calculations

When the Compute CT and CQ check box is selected, the Rotor block calculates the thrust coefficient and torque coefficient using these equations.

With the inclusion of Prandtl’s tip loss function, the incremental thrust coefficient using blade element momentum theory is:

$$d{C}_{T}=4F{\lambda}^{2}r\text{}dr$$

where *F* is the correction factor:

$$\begin{array}{l}F=\frac{2}{\pi}{\mathrm{cos}}^{-1}exp-f\\ f=\frac{1}{2}\frac{{N}_{b}(1-r)}{r\phi}\\ \phi =\frac{\lambda}{r}\end{array}$$

For the equations in this section:

*r*is the nondimensional radial location.λ is the inflow through the rotor disc.

*c*is the lift curve slope._{lα}σ is the rotor solidity defined as $$\sigma =\frac{{N}_{b}c}{\pi R}$$, where

*c*is the chord,*R*is the radius and*N*is the number of blades._{b}

According to blade element theory, the incremental thrust coefficient is:

$$d{C}_{T}=\frac{1}{2}\sigma {c}_{l\alpha}(\theta (r)r-\lambda )rdr$$

Here, θ(r) will depend on the blade twist distribution and the collective pitch input
θ_{0}. Equating the two expressions for
*dC _{T}* returns

*4Fλ² = 0.5 σc*, which can be iteratively solved for λ.

_{ıα}(θ(r)r − λ)Sum *dС _{T} = 4Fλ²r dr* across the blade span, to find the net thrust coefficient

*C*.

_{T}For the torque coefficient *C _{Q}*, the profile drag
component is approximately included as $$\frac{\sigma {c}_{d0}}{8}$$. The net torque coefficient can be calculated by summing

*dС*across the blade span and adding the profile drag component.

_{Q}= λdС_{T}### Rotor and Propeller Comparison

Propellers and rotors are both mechanical devices designed to move fluid in order to generate thrust. Despite their similar function, they are optimized for different applications based on their design characteristics.

Propellers are typically used in airplanes, drones, and boats. Propellers move an aircraft or vessel forward by rotating and pushing air or water behind them.

Rotors are mainly found in helicopters and some types of drones. Rotors provide forward thrust and enable vertical lift and control over the pitch, roll, and yaw of the aircraft.

You can use the Rotor block for both rotors and propellers, however, the conventions differ based on the application.

**Thrust and Torque coefficient**

**Thrust** — The equation for the thrust in propellers is $${\text{T=k}}_{T}\rho {n}^{2}{D}^{4}$$, where:

*k*is the thrust coefficient._{T}ρ is the density.

*n*is the propeller speed in rev/s.*D*is the propeller diameter.

In the Rotor block, the basic thrust equation is defined as $${\text{T=C}}_{T}\rho \pi {R}^{2}{(\Omega R)}^{2}$$, where:

*C*is the thrust coefficient._{T}ρ is the density.

Ω is the rotor speed in rad/s.

*R*is the rotor radius.

The two constants are related by the equation $${k}_{T}=0.25{C}_{T}{\pi}^{3}$$.

**Torque** — In the Rotor block,
torque is defined as $${Q}_{rot}={C}_{Q}\rho \pi {R}^{2}{(\Omega R)}^{2}R$$.

In propellers, torque is defined by $${Q}_{prop}={k}_{Q}\rho {n}^{2}{D}^{5}$$.

The two constants are related by the equation $${k}_{Q}=0.125{C}_{Q}{\pi}^{3}$$.

**Advance Ratio**

The *advance ratio* is the nondimensional forward velocity,
defined as the ratio of the forward speed of the vehicle to the product of the rotational
speed of the propeller or rotor and the diameter of the propeller or rotor.

The thrust and torque coefficient parameters may be available as functions of advance ratio. The definition of advance ratio differs based on the application of the rotating device, specifically whether the device is being used for propulsion or vertical flight.

## References

[1] Prouty, Raymond W.
*Helicopter Performance, Stability, and Control* Krieger Publishing
Company, 1995.

[2] Riether, F. (2016). *Agile quadrotor maneuvering using tensor-decomposition-based globally optimal control and onboard visual-inertial estimation* (Doctoral dissertation, Massachusetts Institute of Technology).

## Version History

**Introduced in R2023a**

### R2024b: Rotor block now includes swashplate as input

Starting R2024b, the Rotor block has been updated to support swashplate inputs. This addition allows for the inclusion of collective and cyclic blade pitch angles in the calculation of Forces and Moments through new optional input ports.

Rotor speed, Ω, also now accepts negative inputs.

Starting R2024b, the Rotor block has been updated to include the dropdown

**CT and CQ Source**with two options:`'Dialog'`

and`'Compute using BEMT'`

.Select

`'Dialog'`

to manually enter the thrust and torque coefficient values.Select

`'Compute using BEMT'`

to compute the values using Blade Element Momentum Theory (BEMT). For more information on BEMT, see Thrust and Torque coefficient. This option is equivalent to the**Compute CT and CQ**checkbox from previous releases.

## MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)