Multirotor
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 does not directly consider the variation in pitch angle input, although you can perform approximate analysis by varying the blade twist.
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.
Ports
Input
Ω (rad/sec) — Rotor speed
1-by-N vector
Rotor speed, specified as a 1-by-N vector 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
Vb (m/s) — Body velocity of rotor
3-by-1 vector | 1-by-3 vector
Body 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.
Data Types: double
ωb — Angular velocity
3-by-1 vector | 1-by-3 vector
Angular velocity of entire vehicle, specified as a 3-by-1 or 1-by-3 vector in rad/s in body frame.
Data Types: double
Output
Fxyz(N) — Total force
three-element vector
Total force, returned as a three-element vector in body frame. Units depend on the Units parameter.
Data Types: double
Mxyz(Nm) — Net moment
three-element vector
Net moment in the x-y-z direction, returned as a three-element vector in body frame. Units depend on the Units parameter.
CQ — Computed torque coefficient
scalar positive
Computed torque coefficient, returned as a scalar positive.
Dependencies
To enable this output port, select these check boxes:
Compute CT and CQ
Output computed CT and CQ
CT — Computed thrust coefficient
scalar positive
Computed thrust coefficient, returned as a scalar positive.
Dependencies
To enable this output port, select these check boxes:
Compute CT and CQ
Output computed CT and CQ
Parameters
Units — Input and output units
Metric (MKS)
(default) | English (Velocity in ft/s)
| English (Velocity in kts)
Units | Density | Force | Mass | Velocity | Radius | Chord | Hinge offset |
---|---|---|---|---|---|---|---|
Metric (MKS) | kg/m3 | Newtons | Newton-meter | Meters per second | Meters | Meters | Meters |
English (Velocity in ft/s) | slug/ft3 | Pound force | Pound force-feet | Feet per second | Feet | Feet | Feet |
English (Velocity in kts) | slug/ft3 | Pound force | Pound force-feet | Feet per second | 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 [2].
Programmatic Use
Block Parameter:
modelMode |
Type: character vector |
Values: 'Without flap
effects' | 'With flap effects' |
Default: 'Without flap
effects' |
Vehicle
Configuration — Vehicle configuration
Quadcopter X
(default) | Quadcopter +
Quadcopter configuration, specified as:
Quadcopter X
— Propellers configured as anX
shape, considered as more stable than theQuadcopter +
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' |
Arm length (m) — Vehicle arm length
0.0624
(default) | nonzero positive scalar
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:
l |
Type: character vector |
Values: '0.0624' |
nonzero positive scalar |
Default:
'0.0624' |
Height (m) — Vertical offset from vehicle center of gravity
-0.0159
(default) | nonzero scalar
Vertical offset from vehicle center of gravity, specified as a nonzero scalar.
Programmatic Use
Block Parameter:
h |
Type: character vector |
Values: '-0.0159' |
nonzero positive scalar |
Default:
'-0.0159' |
Rotor
Number of blades — Number of blades per rotor
2
(default) | nonzero positive scalar
Number of blades per rotor, specified as a nonzero positive scalar.
Dependencies
To enable this parameter, select the Compute CT and CQ
check box and set Modeling to With flap
effects
.
Programmatic Use
Block Parameter:
Nb |
Type: character vector |
Values: '2' | nonzero
positive scalar |
Default: '2' |
Compute CT and CQ — Option to calculate thrust coefficient and torque coefficient
on (default) | off
Select this check box to let the block calculate the thrust coefficient and torque coefficient. For more information on these calculations, see Thrust Coefficient and Torque Coefficient Calculations. The block assumes the aerodynamic and structural parameters to be constant.
Clear this check box to specify thrust coefficient and torque coefficient values.
Programmatic Use
Block
Parameter:
CTcheck |
Type: character vector |
Values:
'on' |
'off' |
Default:
'off' |
Output computed CT and CQ — Output computed thrust coefficient and torque coefficient
on (default) | off
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.
Programmatic Use
Block Parameter: CTout |
Type: character vector |
Values: 'on' | 'off' |
Default: 'off' |
Thrust coefficient (CT) — Thrust coefficient
0.0107
(default) | nonzero positive scalar
Thrust coefficient, specified as a nonzero positive scalar.
Dependencies
To enable this parameter, clear the Compute CT and CQ check box.
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, clear the Compute CT and CQ check box.
Programmatic Use
Block Parameter:
CQ |
Type: character vector |
Values: '7.8263e-4' |
nonzero positive scalar |
Default:
'7.8263e-4' |
Radius (m) — Rotor radius
0.0330
(default) | nonzero positive scalar
Rotor radius, specified as a nonzero positive scalar.
Programmatic Use
Block Parameter: R |
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.
Programmatic Use
Block Parameter: c |
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 parameter, select the Compute CT and CQ check
box and set Modeling to With flap
effects
.
Programmatic Use
Block Parameter:
m |
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 parameter, select the Compute CT and CQ check
box and set Modeling to With flap
effects
.
Programmatic Use
Block Parameter: clalpha |
Type: character vector |
Values: '5.5' | nonzero positive
scalar |
Default: '5.5' |
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.Ideal
— Optimal approximation of blade twist distribution.
Dependencies
To enable this parameter, select the Compute CT and CQ check
box and 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) | nonzero positive scalar
Blade root pitch angle θ0, specified as a nonzero positive scalar.
Dependencies
To enable this parameter:
Set Modeling to
With flap effects
.Set Twist distribution to
Linear
.
Programmatic Use
Block Parameter: theta0 |
Type: character vector |
Values: '0.2548' | nonzero positive
scalar |
Default: '0.2548' |
Blade twist angle (rad) — Blade twist angle
-0.1361
(default) | positive scalar
Blade twist angle θ1, specified as a positive scalar.
Dependencies
To enable this parameter:
Set Modeling to
With flap effects
.Set Twist distribution to
Linear
.
Programmatic Use
Block Parameter: theta1 |
Type: character vector |
Values: '-0.1361' | positive
scalar |
Default: '-0.1361' |
Blade tip angle (rad) — Blade tip pitch angle
0.06
(default) | nonzero positive scalar
Blade tip pitch angle θtip for ideal twist distribution, specified as a nonzero positive scalar.
Dependencies
To enable this parameter:
Set Modeling to
With flap effects
.Set Twist distribution to
Ideal
.
Programmatic Use
Block Parameter: thetaTip |
Type: character vector |
Values: '0.06' | nonzero positive
scalar |
Default: '0.06' |
Algorithms
Arm Computations
p1=(d,-d,-h)
p2=(d,d,-h)
p3=(-d,d,-h)
p4=(-d,-d,-h)
where:
l is the arm length.
h is the offset from the vehicle center of gravity.
In this graphic:
The x-, y-, z-axes are perpendicular to each other.
The four arms of the vehicle are perpendicular and equal in length (l).
All propellers are at same height (h).
p1=(l,0,h)
p2=(0,l,h)
p3=(-l,0,h)
p4=(0,-l,h)
where:
l is the arm length.
h is the offset from the vehicle center of gravity.
In this graphic:
The x-, y-, z-axes are perpendicular to each other.
The four arms of the vehicle are perpendicular and equal in length (l).
All propellers are at same height (h).
Force and Moment
Force and moment calculated using these equations:
where:
ω is the rotor in revolutions per minute (RPM).
b and k are experimental values:
where:
CT is the thrust coefficient
CQ is the torque coefficient
Thrust Coefficient and Torque Coefficient Calculations
When the Compute CT and CQ check box is selected, the 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:
where F is the correction factor:
Using blade element theory, the incremental thrust coefficient is:
with ideal twist,
Resulting in:
Equating the two equations for dCT, we have:
The equation can be solved to obtain λ using the fsolve
from the
Optimization Toolbox™. To remove the dependency on the toolbox, the Newton-Raphson method is
used:
The differential of fun as
diff
(fun,λ):
To avoid numerical issues, the ratios are approximated as:
After λ is calculated, CT, CQ are calculated by summing up dCT=4λ2r dr and dCQ =λdCT across the radius.
References
[1] Pounds, P. E. I. (2007). Design, construction and control of a large quadrotor micro air vehicle (Doctoral dissertation, Australian National University).
[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
See Also
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
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)