package
Vehicles.Rdd2
RDD2 vehicle configuration and flight-control models
RDD2 multirotor
This package binds reusable dynamics and control to the RDD2 vehicle. RotorGeometry defines the motor order, positions in body FLU and yaw torque signs. Keep that order consistent through allocation and actuator connections.
Start with Test to compare truth, optical-flow-aided and GPS-aided waypoint missions. The alternate LogLinearController parameterizes the shared controller rather than duplicating its mathematics. Use mission sensor configuration, source timestamps and the local origin consistently when changing navigation options.
Members
| Name | Kind | Description |
|---|---|---|
| RotorGeometry | record | RDD2 motor locations and reaction-torque directions in command order |
| RotorVibration | model | Narrowband rotor unbalance and blade-pass airframe vibration |
| Plant | model | RDD2 quadrotor with native avionics-facing connectors |
| ControllerInterfaces | package | Typed signal boundaries shared by the RDD2 controller blocks |
| CommandMapping | block | Map pilot input into rate, attitude, and thrust demands |
| ProportionalController | block | Sampled proportional controller with symmetric output limiting |
| ScriptedTransmitter | block | Deterministic pilot transmitter replayed from a table of channel settings |
| FlightModeSelector | block | Decode a transmitter mode switch into the RDD2 flight-mode enumeration |
| ManualTrajectorySource | block | Trajectory reference the pilot pushes along SE_2(3) with the sticks |
| Mixer | block | Desaturating X-quadrotor mixer |
| RateControlAllocator | block | Sampled body-rate control and motor allocation task |
| GuidanceController | block | Pilot, attitude, and position guidance task |
| Controller | block | Composed RDD2 controller used by simulation and qualification |
| LogLinearController | block | RDD2 parameterization of the log-linear controller |
| NavigationEstimator | block | RDD2 eFMU implementation of the stable navigation estimator boundary |
| standardNormalNoise | function | Reproducible standard-normal sample from an indexed sine hash |
| mocapRigToWorld | function | Map a motion-capture pose from the rig frame into the estimator world frame |
| simulateOpticalFlowPlane | function | Generate raw plane-induced flow for a co-located nadir camera |
| PartialController | block | Swappable whole-controller boundary for the RDD2 vehicle |
| AvionicsSystem | block | Ideal RTOS composition of planning and the shared flight controller |
| ReducedRateController | block | RDD2 flight controller with a reduced-authority body-rate loop |
| WaypointVehicleSystem | model | Closed-loop plant and ideal RTOS composition driven by a waypoint plan |
| Test | package | RDD2 model-level test missions |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
package Rdd2 "RDD2 vehicle configuration and flight-control models"
record RotorGeometry
"RDD2 motor locations and reaction-torque directions in command order"
parameter Real armLength_m(unit = "m") = 0.25 annotation(Evaluate = true);
Real effectiveMomentArm_m(unit = "m") = armLength_m / sqrt(2.0)
"Quad-X roll/pitch lever arm";
parameter Real rotorTorqueRatio_m(unit = "m") = 0.016 annotation(Evaluate = true);
Real positionBodyFlu_m[4, 3] = [
effectiveMomentArm_m, -effectiveMomentArm_m, 0.0;
-effectiveMomentArm_m, -effectiveMomentArm_m, 0.0;
-effectiveMomentArm_m, effectiveMomentArm_m, 0.0;
effectiveMomentArm_m, effectiveMomentArm_m, 0.0];
Real yawMomentPerThrust_m[4] =
rotorTorqueRatio_m * {-1.0, 1.0, -1.0, 1.0};
end RotorGeometry;
annotation(Documentation(info = "<html>
<h4>RDD2 multirotor</h4>
<p>This package binds reusable dynamics and control to the RDD2 vehicle.
<a href=\"modelica://Vehicles.Rdd2.RotorGeometry\">RotorGeometry</a> defines the
motor order, positions in body FLU and yaw torque signs. Keep that order
consistent through allocation and actuator connections.</p>
<p>Start with <a href=\"modelica://Vehicles.Rdd2.Test\">Test</a> to compare truth,
optical-flow-aided and GPS-aided waypoint missions. The alternate
<a href=\"modelica://Vehicles.Rdd2.LogLinearController\">LogLinearController</a>
parameterizes the shared controller rather than duplicating its mathematics.
Use mission sensor configuration, source timestamps and the local origin
consistently when changing navigation options.</p>
</html>"));
end Rdd2;