Main Content

Multirotor

Multirotor dynamics

Since R2023a

  • Multirotor block icon

Libraries:
Aerospace Blockset / Propulsion

Description

The Multirotor block computes the aerodynamic forces and moments generated by multiple rotating propellers or rotors, such as quadcopters, in all three dimensions. You can also include simplified flap, or steady state, aerodynamics.

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 block does not include interference effects (between rotors) in the model.

  • 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

expand all

Rotor speed, specified as an N-element vector in rad/sec in body frame. The ordering of the rotors for the two quadcopter configurations (N = 4) considered in the block are as shown in Arm Computations.

Data Types: double

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

Data Types: double

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

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

Collective blade pitch angle, specified as an N-element vector.

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

Lateral cyclic pitch angle, specified as an N-element vector.

Dependencies

To enable this input port,

  • Select the Include pitch angle inputs check box.

  • Set Modeling to With flap effects.

Data Types: double

Longitudinal cyclic pitch angle, specified as an N-element vector.

Dependencies

To enable this input port,

  • Select the Include pitch angle inputs check box.

  • Set Modeling to With flap effects.

Data Types: double

Output

expand all

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

Data Types: double

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

Computed thrust coefficient, returned as a positive vector of N elements.

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.

Computed torque coefficient, returned as a positive vector of N elements.

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.

Parameters

expand all

Main

UnitsDensityForceMomentVelocityRadiusChordHinge offset
Metric (MKS) kg/m3NewtonsNewton-meterMeters per secondMetersMetersMeters
English (Velocity in ft/s) slug/ft3Pound forcePound force-feetFeet per secondFeetFeetFeet
English (Velocity in kts) slug/ft3Pound forcePound force-feetKnotsFeetFeetFeet

Programmatic Use

Block Parameter: units
Type: character vector
Values: 'Metric (MKS)' | 'English (Velocity in ft/s)' | 'English (Velocity in kts)'
Default: 'Metric (MKS)'

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'

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'

Vehicle

Quadcopter configuration, specified as:

  • Quadcopter X — Propellers configured as an X shape, considered as more stable than the Quadcopter + configuration.

  • Quadcopter + — Propellers configured as a + shape.

For more information, see Arm Computations.

Programmatic Use

Block Parameter: config
Type: character vector
Values: 'Quadcopter X' | 'Quadcopter +'
Default: 'Quadcopter X'

Vehicle arm length, specified as a nonzero positive scalar. This length is the rotor displacement from the center of mass of the vehicle. For more information on arm lengths, see Algorithms.

Programmatic Use

Block Parameter: armLength
Type: character vector
Values: '0.0624' | nonzero positive scalar
Default: '0.0624'

Vertical offset from vehicle center of gravity, specified as a nonzero scalar.

Programmatic Use

Block Parameter: rotorHeight
Type: character vector
Values: '-0.0159' | nonzero positive scalar
Default: '-0.0159'

Rotor

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, specified as a nonzero positive scalar or N-element vector.

If you define Thrust coefficient (CT) as a scalar, all the rotors are assumed to have same values for CT. If vector, the ordering of the rotors is as shown in Arm Computations.

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, specified as a nonzero positive scalar or N-element vector.

If you define Torque coefficient (CQ) as a scalar, all the rotors are assumed to have same values for CQ. If vector, the ordering of the rotors is as shown in Arm Computations.

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 per rotor, 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: Nb
Type: character vector
Values: '2' | nonzero positive scalar
Default: '2'

Select this check box to output the calculated thrust coefficient and torque coefficient to CT and CQ 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.

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

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'

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, 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, 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, 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, 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'

Rotor blade twist distribution, specified as:

  • Linear — Close approximation of blade twist distribution.

    θ(r)=θroot+θtwistr

  • Ideal — Optimal approximation of blade twist distribution.

    θ(r)=θtipr

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 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 θ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 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

expand all

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

expand all