cctweaked_drone/README.md

131 lines
6.4 KiB
Markdown

# Drone V2 : quadricoptere Create Aeronautics / CC:Tweaked
Reecriture complete, concue contre les oscillations permanentes de
la V1. Installation: copier drone.lua puis `drone maj <url_base>`
(Forgejo raw, domaine autorise dans la config http de CC:Tweaked).
## Pourquoi la V1 oscillait, et les parades de la V2
1. QUANTIFICATION: les RSC acceptent des rpm ENTIERS. A ~20 rpm de
sustentation, 1 rpm = 5% de poussee par coin: aucun regulateur ne
peut converger, il ne peut qu'osciller autour (cycle limite).
PARADE MATERIELLE FORTEMENT RECOMMANDEE: engrener les helices
pour que la sustentation tombe vers 60-100 rpm (meme poussee,
3 a 5 fois plus de resolution de commande).
2. RETARD DE BOUCLE (ticks, transitions de rotation): la calibration
par RELAIS mesure la periode ultime REELLE retard compris, et
TYREUS-LUYBEN laisse ~3x de marge de gain: stabilite garantie
pour la dynamique identifiee.
3. BRUIT DE MESURE: derivee FILTREE dans le PID; vitesse verticale
par velocity sensor AUTO-DETECTE a la calib altitude (repli:
derivee filtree de l'altitude).
4. FILET DE SECURITE: un SUPERVISEUR detecte l'oscillation de
chaque boucle en vol (passages a zero repetes au-dela d'un seuil
d'amplitude) et reduit ses gains de 20% automatiquement, avec
journalisation et persistance: meme mal regle, le systeme
converge vers la stabilite.
## Modes
- `off` : moteur coupe, RSC a 0
- `sol` : moteur allume, RSC a 0
- `stationnement` : helices a pleine puissance INVERSEE (plaquage),
propulseurs a 0. Entree: au sol (optical <= DIST_SOL) ET
horizontal (<= ANGLE_MAX). Sortie AUTO vers vol si perdu.
- `vol` : assiette horizontale, altitude vers la consigne (+-1/+-10
au moniteur), deplacements au joystick (propulseurs
differentiels avance/virage)
- `atterrissage` : descente a VITESSE_ATTERRISSAGE puis
stationnement. La verification d'un sol posable est au pilote.
## Regulation
- ALTITUDE en cascade: erreur -> vitesse verticale cible (P bornee
V_MONTEE_MAX / V_DESCENTE_MAX) -> PID vitesse -> delta rpm autour
du rpm de sustentation MESURE (corrige par la pression).
Adaptation lente a la charge en quasi-stationnaire.
- ASSIETTE: PID par axe, derivee filtree, autorite bornee a
ASSIETTE_PLAFOND * rpm de sustentation.
- MOTEUR: bouton on/off ou adaptatif au moniteur. En adaptatif, le
besoin est PREVU (coefficients su/rpm mesures pendant la calib
rsc) et le niveau est regle AVANT l'ecriture des RSC en montee de
regime, apres en descente; garde: besoin borne a capacite max *
SECURITE.
## Calibrations (onglet CALIB), dans l'ordre
1. `gimbal` (mode sol): a plat, nez bas, a plat, penche a gauche.
2. `joystick` (mode sol): pousser a fond dans chaque direction.
3. `rsc` (mode sol): chaque RSC tourne a RPM_MANUEL, toucher sur
l'art la position qui tourne; mesure AUSSI les coefficients
su/rpm, la capacite moteur par niveau (mode adaptatif) et
l'association helice <-> speedometer.
3b. `boite` (mode sol, optionnelle, rsc requis): association de
CHAQUE face du second relay a SON helice (chaque helice tourne a
son tour; la face dont le signal 13 = rapport 2/16 reduit la
vitesse lue par le speedometer de cette helice est la sienne).
En vol, le meme signal est ecrit sur les 4 faces: rapport
identique sur les 4 helices, indispensable a la symetrie.
4. `altitude` (mode sol, AUTO-AMORCANTE): rampe lente jusqu'au
decollage -> rpm de sustentation MESURE. Si les boites sont
calibrees: retour au sol, CHOIX DU RAPPORT (k = plus petit k/16
tel que la sustentation RSC <= BOITE.RSC_CIBLE, soit ~70% de la
plage avec x1.4 de marge de montee), re-decollage au rapport
definitif, verification par speedometer. Puis gains d'assiette
par defaut dimensionnes, detection du velocity sensor vertical,
relais d'Astrom-Hagglund sur la boucle de vitesse -> gains
Tyreus-Luyben, retour au sol automatique.
5. `inclinaison` (mode vol, stationnaire): relais par axe ->
gains Tyreus-Luyben.
Toutes re-executables; gains persistes en surcharges, visibles et
retouchables page PARAM (parametrage manuel guide). Le superviseur
peut ensuite les affiner a la baisse en vol si necessaire.
## Affichages
- Moniteur: onglets MODE / CALIB / PARAM / JOURNAL, echelle de
texte auto, art du quadricoptere (blanc 0, rouge max, jaune en
changement, vert stable, violet en calibration), autonomie en
minutes, choix du regime moteur.
- Conduite (2x22): ALT reelle > consigne, VIT globale
(sqrt(v1^2+v2^2+v3^2)); messages longs en segments de mots.
- Carburant (2x4): pourcentage de reserve.
## Boites de vitesse (analog transmission, optionnelles)
Une par helice, CHACUNE sur SA face du second redstone relay
(association apprise par la calib boite), plus un speedometer par
helice. Le meme signal est ecrit sur les 4 faces: rapport identique
pour les 4, indispensable a la symetrie. Rapport = (15-signal)/16
(signal 0 = 1/1; signal 15 INTERDIT = rapport 0). Interet: a ~20 rpm
de sustentation, 1 rpm RSC entier = 5%% de poussee (oscillation
inevitable); au rapport 2/16 la sustentation RSC passe a ~160 rpm et
la resolution est multipliee par 8.
BOITE AUTOMATIQUE: le regulateur travaille en RPM HELICE (unites
physiques); la conversion RSC = helice / rapport n'a lieu qu'a la
frontiere de l'actionneur. Le gain de boucle est donc INVARIANT au
rapport: les gains calibres une fois valent a tous les rapports. En
vol, si la commande RSC des helices sort de la bande [RSC_BAS,
RSC_HAUT] (charge accrochee en vol, perte de poussee en altitude),
le rapport change d'UN cran, uniquement en quasi-stationnaire et a
plat, avec ATTENTE de temps mort, et dans un ORDRE SUR: le
transitoire d'un tick est toujours un CREUX de poussee symetrique
(jamais un pic): montee de k = RSC reecrits puis redstone; descente
= redstone puis RSC. k=15 est saute (signal 15 = rapport 0,
interdit). Les speedometers surveillent en continu que vitesse
reelle = commande * rapport (ecart > 25%% persistant 2 s -> alerte
BOITES INCOHERENTES + reassertion du signal).
## Renumerotation des relays
Les NOMS des peripheriques peuvent changer a la reconnexion du
reseau; les FACES des relays sont stables. Si les noms stockes ne
correspondent plus au reseau, les modes de vol sont verrouilles et
la REIDENTIFICATION AUTOMATIQUE se lance en mode sol (~3 s:
l'helice lf tourne a bas regime, le signal 13 sur sa face designe
le relay des boites via le speedometer; le joystick est l'autre
relay). Aucune action manuelle.
Non utilises: GPS, typewriter.