function
Control.Multirotor.Allocation.rotorEffectiveness
Map individual upward rotor thrusts into collective thrust and body moment
Public declarations
Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | positionBodyFlu_m | Real | [:, 3] | Rotor centers relative to the center of mass |
| input | yawMomentPerThrust_m | Real | [size(positionBodyFlu_m, 1)] | Signed reaction-torque ratio; positive produces positive FLU yaw moment |
| output | effectiveness | Real | [4, size(positionBodyFlu_m, 1)] | Maps rotor thrust into {collective thrust, body moment} |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
function rotorEffectiveness
"Map individual upward rotor thrusts into collective thrust and body moment"
input Real positionBodyFlu_m[:, 3]
"Rotor centers relative to the center of mass";
input Real yawMomentPerThrust_m[size(positionBodyFlu_m, 1)]
"Signed reaction-torque ratio; positive produces positive FLU yaw moment";
output Real effectiveness[4, size(positionBodyFlu_m, 1)]
"Maps rotor thrust into {collective thrust, body moment}";
algorithm
for rotor in 1:size(positionBodyFlu_m, 1) loop
effectiveness[:, rotor] := {
1.0,
positionBodyFlu_m[rotor, 2],
-positionBodyFlu_m[rotor, 1],
yawMomentPerThrust_m[rotor]};
end for;
end rotorEffectiveness;