USE CASE

One quadcopter. One model. End to end.

The Djinborn T4 — a 450-class survey quadcopter — modelled as a single multibody composition that flies a closed-loop 6-DoF mission in simulation. Airframe, propulsion, battery, sensors, and control loops, all on one living digital replica.

The full Djinborn T4 quadcopter on the DjiniousLab canvas — battery, four thrusters, hub body, arms, force injection, gyroscopic coupling, sensors, and the cascaded control stack wired as one runnable composition
6 DoF
rigid-body flight
26
DAE states
4+1
rotors + hub body
15
design notebooks
5
runnable canvases
12 s
closed-loop flight
THE SYSTEM

Every subsystem, on one canvas.

Nothing is stubbed or assumed constant — the airframe, drivetrain, energy source, sensing, and control all carry their own physics.

Hub body

One rigid structure, 1.6 kg all-up including a 0.43 kg payload. Inertia Jxx = Jyy = 0.018, Jzz = 0.032 kg·m².

Four arms

Rigid offsets at ±0.225 m in an X configuration. The airframe geometry — not a hand-tuned mixer — sets every moment arm.

Propulsion

Four 880 Kv BLDC motors through ESCs, each spinning a 10×4.5 two-blade prop. Hover thrust 3.924 N per rotor at ~5300 rpm.

Battery

A 4S Li-ion pack — 14.8 V nominal, 6.0 Ah, 0.04 Ω internal resistance — modelled as a real source, not a constant rail.

Sensing

An IMU with a complementary filter fusing gyro and accelerometer into roll and pitch estimates.

Control

Cascaded PID: a three-axis attitude loop, an altitude + vertical-velocity cascade, and a position loop — the same gains the lumped model flew.

ARCHITECTURE

Built from geometry, not hand-coded mixing.

In the multibody model the airframe's forces and moments emerge from its geometry. Four FrameForce wrenches inject rotor thrust and reaction torque at the arm tips, and the net roll, pitch, and yaw moments fall out of the four arm positions automatically. The mixer is reduced to pure control allocation — duty cycles to four motor commands — with no physics aggregation. Orientation is carried as a rotation matrix on SO(3) (Ṙ = R·skew(ω)), which sidesteps the gimbal-lock singularity Euler angles hit near ±90°.

  • N-variable acausal Frame connector: 15 across (position, 3×3 rotation, angular velocity) + 6 flow (force, torque). — ADR-0066
  • A pure-DJL multibody kit — Body, FixedTranslation, FrameForce — with no Rust or Julia changes. — ADR-0067
  • Roll, pitch, and yaw moments emerge from arm geometry instead of a hand-coded mixer. — ADR-0068
The full Djinborn T4 composition on the DjiniousLab canvas
The full Djinborn T4 on the canvas — battery, four thrusters, hub body, arms, force injection, gyroscopic coupling, sensors, and the cascaded control stack, wired as one runnable composition.
SIMULATION

It flies, closed-loop.

A 12-second mission: at t = 0 the altitude setpoint steps to 10 m; at t = 2 s a 15° roll step comes in. A stiff Rodas5P DAE solver integrates the coupled electrical, mechanical, and control equations together. The drone climbs and holds — altitude settles at 9.562 m, roll tracks to 0.262 rad — while motor-1 armature current sits at about 6.05 A, comfortably inside its 25 A limit.

VALIDATION

Identical to the lumped reference.

The geometry-built multibody model and a monolithic RigidBody6DoF reference fly the same mission to every printed digit. Two analytic gates back it up: open-loop hover holds vz ≈ 2e-15 m/s, and an imposed roll rate produces a gyroscopic pitch acceleration of −2.667 rad/s², exactly as theory predicts.

MultibodyLumped reference
Altitude (m)9.56229.5622
Roll (rad)0.2619130.261913
Motor-1 current (A)6.054056.05405
ENGINEERING DEPTH

The details that decide stability.

NED sign convention

Altitude is +down in the body frame, so a climb means ż < 0. A single negation gain feeds the controller an up-is-positive altitude; get the sign wrong and the closed loop diverges.

Duty-domain clamping

The attitude controller saturates in ESC duty space (±0.3 for roll/pitch, ±10 for yaw), not in radians. Clamping there preserves the cascade structure and stops inner-loop integrator windup.

No gimbal lock

Orientation lives on the rotation matrix (SO(3)) — nine states updated by Ṙ = R·skew(ω). No trig singularity at ±90° pitch, at the cost of nine states instead of three Euler angles.

Gyroscopic coupling

The four rotors carry net angular momentum hz = J·(−w1 + w2 − w3 + w4); the precession torque τ = ω_body × h is injected through a flow connector whose double-negative resolves to the correct sign — and matches the analytic precession gate.

MODEL → DIGITAL TWIN

From text model to digital twin.

Everything above is pure-text DJL. The parser lowers it to a flat intermediate representation, then to a ModelingToolkit symbolic system that the Julia worker integrates with Rodas5P, streaming live scopes back into the browser. The same model exports as an FMI co-simulation unit for Simulink, dSPACE, and other FMI hosts — a design-iteration digital twin you refine long before any hardware exists.

See it run on your own models.

Book a guided walkthrough and we'll open the Djinborn — or a model from your domain — and fly it end to end.

DjiniousLabOne engineering notebook for model-based design — model, simulate, and generate on a living digital replica.