From d92c68544b4f48346048cc826aedef9fd211b0cb Mon Sep 17 00:00:00 2001 From: ploush Date: Sat, 18 Jul 2026 22:23:26 +0200 Subject: [PATCH] Actualiser README.md --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4ffabd4..51246fb 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,12 @@ Via le reseau filaire (wired modems): Echelle de texte automatique (la plus grande qui loge le contenu). Navigation par onglets: +- PARAM : edition tactile des parametres (depassement tolere, angles + max, POIDS et POUSSEE de l'helice en pixelNewton, vitesses + verticales max, rampe, Y_VOL, Y_MINI). Les valeurs modifiees sont + persistees dans drone.etat et PRIMENT sur drone.conf sans + l'ecraser; modifier un parametre dont depend la calibration PID + affiche un rappel de recalibration. - MODE : boutons de modes + contenu adapte au mode courant (voir ci-dessous), art du quadricoptere (cercles des helices: blanc rpm=0, rouge rpm max, jaune en changement, vert stable; rpm des @@ -125,9 +131,48 @@ Points nommes (clavier du PC, 10 max): ## Regulation -- PID altitude: deux jeux de gains (montee / descente), derivee sur - la mesure et integrale conditionnelle (concu pour le - zero-depassement), consigne rampee (VITESSE_RAMPE). +- ASSERVISSEMENT EN CASCADE + FEEDFORWARD, ADAPTATIF (transport a + charge et centrage variables a chaque vol): + 1. feedforward de sustentation: rpm d'equilibre calcule depuis + POIDS (A VIDE) et POUSSEE_HELICE_MAX (poussee ~ rpm^EXPOSANT), + CORRIGE EN CONTINU PAR LA PRESSION mesuree (la poussee diminue + avec l'altitude): pousseeEffective = POUSSEE * pression / + PRESSION_REF. Mesurer poids a vide et poussee d'une helice et + les saisir (conf ou page PARAM). + 1b. ADAPTATION DE POIDS: en quasi-stationnaire, le residu du PID + de vitesse est transfere lentement vers le feedforward: le + drone SE PESE tout seul (poids estime affiche en vol). Remise a + zero a chaque decollage (nouvelle cargaison). Plafond: poids + total max = RATIO_CHARGE_MAX (60%%) * 4 * poussee de reference, + alerte SURCHARGE au dela. + 1c. TRIM D'ASSIETTE ADAPTATIF: en stationnaire, la composante + statique des corrections d'assiette (centre de gravite decale + par la cargaison) est absorbee par un trim par axe; alerte + "chargement desequilibre" si |trim| depasse + ADAPTATION.SEUIL_DESEQUILIBRE. + 1d. GAIN SCHEDULING: la boucle de vitesse est mise a l'echelle du + ratio poids estime / poids memorise a la calibration (borne + 0.5..2): calibrer avec n'importe quelle charge, les gains + suivent la cargaison. + Procedure par vol: charger -> mode vol -> 5-10 s de stationnaire + (pesee + trim + alertes) -> partir. Aucune recalibration. + 2. boucle externe: erreur d'altitude -> consigne de vitesse + verticale (P, bornee V_MONTEE_MAX / V_DESCENTE_MAX) + 3. boucle interne: PID sur la vitesse verticale mesuree (velocity + sensor vertical calibre; a defaut, derivee filtree de + l'altitude), deux jeux de gains montee / descente + Consigne rampee (VITESSE_RAMPE), derivee sur la mesure et + integrale conditionnelle (zero-depassement). +- Deux calibrations PID complementaires (onglet CALIB, mode vol): + - `pid` (auto-tune): recherche iterative en boucle fermee, garde + le meilleur essai valide (zero depassement, assiette bornee) + - `pidmath` (methodes mathematiques): identification du modele en + boucle ouverte autour du feedforward (echelon -> K, tau, L), + gains candidats par COHEN-COON et ZIEGLER-NICHOLS, validation en + boucle fermee des deux, conservation du meilleur valide (version + adoucie appliquee si aucun ne passe) + Conseil: regler POIDS/POUSSEE d'abord, puis pidmath (rapide), puis + pid si besoin d'affiner. - PID assiette: tangage et roulis vers leurs cibles; mixage par coin: base + corrections signees. - Moteur asservi au stressometer: augmente si l'utilisation depasse @@ -159,4 +204,4 @@ Points nommes (clavier du PC, 10 max): ## Points d'attention - tanks(): si la capacite n'est pas fournie par le jeu, la conf - CARBURANT.CAPACITE_TANK sert de repli. + CARBURANT.CAPACITE_TANK sert de repli. \ No newline at end of file