Corps central
Une structure rigide unique, 1,6 kg au total incluant une charge utile de 0,43 kg. Inertie Jxx = Jyy = 0,018, Jzz = 0,032 kg·m².
Un drone de relevé de classe 450 comme une seule composition multicorps — cellule, propulsion, capteurs, et un pilote automatique en cascade exécutant une mission en boucle fermée à 6 degrés de liberté.

Le Djinborn T4 — un quadricoptère de relevé de classe 450 — modélisé comme une seule composition multicorps qui exécute en simulation une mission en boucle fermée à 6 degrés de liberté. Cellule, propulsion, batterie, capteurs et boucles de commande, le tout sur une seule réplique numérique vivante.
Rien n’est simulé de façon sommaire ni supposé constant — la cellule, la chaîne de propulsion, la source d’énergie, la détection et la commande portent chacune leur propre physique.
Une structure rigide unique, 1,6 kg au total incluant une charge utile de 0,43 kg. Inertie Jxx = Jyy = 0,018, Jzz = 0,032 kg·m².
Décalages rigides à ±0,225 m en configuration X. La géométrie de la cellule — et non un mixeur réglé à la main — fixe chaque bras de levier.
Quatre moteurs BLDC 880 Kv via des contrôleurs de vitesse, chacun entraînant une hélice bipale 10×4.5. Poussée en vol stationnaire de 3,924 N par rotor à ~5300 tr/min.
Un bloc Li-ion 4S — 14,8 V nominal, 6,0 Ah, 0,04 Ω de résistance interne — modélisé comme une source réelle, pas un rail constant.
Une IMU avec un filtre complémentaire fusionnant gyroscope et accéléromètre en estimations de roulis et de tangage.
PID en cascade : une boucle d’attitude à trois axes, une cascade altitude + vitesse verticale, et une boucle de position — les mêmes gains que ceux qui ont fait voler le modèle simplifié.
Dans le modèle multicorps, les forces et moments de la cellule émergent de sa géométrie. Quatre torseurs FrameForce injectent la poussée du rotor et le couple de réaction aux extrémités des bras, et les moments nets de roulis, de tangage et de lacet se déduisent automatiquement des quatre positions de bras. Le mixeur se réduit à une pure allocation de commande — des rapports cycliques vers quatre commandes moteur — sans aucune agrégation physique. L’orientation est portée comme une matrice de rotation sur SO(3) (Ṙ = R·skew(ω)), ce qui évite la singularité de blocage de cardan que rencontrent les angles d’Euler près de ±90°.
Connecteur Frame acausal à N variables : 15 « across » (position, rotation 3×3, vitesse angulaire) + 6 « flow » (force, couple). — ADR-0066
Un kit multicorps pur DJL — Body, FixedTranslation, FrameForce — sans aucun changement en Rust ou en Julia. — ADR-0067
Les moments de roulis, de tangage et de lacet émergent de la géométrie des bras au lieu d’un mixeur codé à la main. — ADR-0068

Une mission de 12 secondes : à t = 0, la consigne d’altitude passe en échelon à 10 m ; à t = 2 s, un échelon de roulis de 15° survient. Un solveur DAE raide Rodas5P intègre ensemble les équations électriques, mécaniques et de commande couplées. Le drone monte et se stabilise — l’altitude se fixe à 9,562 m, le roulis suit jusqu’à 0,262 rad — tandis que le courant d’induit du moteur 1 se situe autour de 6,05 A, confortablement en deçà de sa limite de 25 A.
Le modèle multicorps construit par géométrie et une référence monolithique RigidBody6DoF exécutent la même mission jusqu’au dernier chiffre imprimé. Deux jalons analytiques le confirment : le vol stationnaire en boucle ouverte maintient vz ≈ 2e-15 m/s, et un taux de roulis imposé produit une accélération de tangage gyroscopique de −2,667 rad/s², exactement comme le prédit la théorie.
L’altitude est +vers le bas dans le repère corps, si bien qu’une montée signifie ż < 0. Un gain de négation unique fournit au contrôleur une altitude où le haut est positif ; inversez le signe et la boucle fermée diverge.
Le contrôleur d’attitude sature dans l’espace du rapport cyclique du contrôleur de vitesse (±0,3 pour roulis/tangage, ±10 pour lacet), pas en radians. Écrêter à cet endroit préserve la structure en cascade et empêche l’emballement de l’intégrateur de la boucle interne.
L’orientation vit sur la matrice de rotation (SO(3)) — neuf états mis à jour par Ṙ = R·skew(ω). Aucune singularité trigonométrique à ±90° de tangage, au prix de neuf états au lieu de trois angles d’Euler.
Les quatre rotors portent un moment cinétique net hz = J·(−w1 + w2 − w3 + w4) ; le couple de précession τ = ω_body × h est injecté via un connecteur de flux dont le double négatif se résout dans le bon signe — et correspond au jalon analytique de précession.
Tout ce qui précède est du DJL en texte pur. Le parseur l’abaisse vers une représentation intermédiaire plate, puis vers un système symbolique ModelingToolkit que le worker Julia intègre avec Rodas5P, diffusant des oscilloscopes en direct vers le navigateur. Le même modèle s’exporte comme unité de co-simulation FMI pour Simulink, dSPACE et d’autres hôtes FMI — un jumeau numérique d’itération de conception que vous affinez bien avant qu’aucun matériel n’existe.
Continuer à explorer