PID pagrindai — P, I, D ir feedforward
PID kontroleris — tai pati skrydžio kontrolerio veikimo esmė. Suprasti, ką daro kiekvienas terminas ir kaip atrodo, kai jį sugadini, yra būtina sąlyga bet kokiam prasmingam derinimui. Beje, „sugadini“ čia nėra teorinė sąvoka — aš kiekvieną iš šitų simptomų atpažinau ne iš vadovėlio, o iš savo paties dronų.
Valdymo kilpa
flowchart LR
P([Pilot stick<br/>setpoint]) --> E{Error<br/>calculation}
G([Gyro<br/>actual rate]) --> E
E --> PT[P term]
E --> IT[I term]
E --> DT[D term]
FF([Stick input<br/>direct]) --> FFT[Feedforward]
PT --> S[Σ Sum]
IT --> S
DT --> S
FFT --> S
S --> M([Motor<br/>command])
M --> Q([Quad])
Q --> GKontroleris mato error (setpoint − faktinė reikšmė), tada reaguoja keturiais indėliais, kurie susumuojami į variklio komandą.
Ką daro kiekvienas terminas
P — Proportional
Reaguoja į dabartinį error. Didesnis error → didesnė korekcija.
- Per mažas: dronas jaučiasi minkštas ir neatsakingas, prastai seka stick'us, klaidžioja darant greitus krypties pokyčius.
- Per didelis: oscilacijos darant aštrius manevrus ir keičiant gazą. Aukšto tono zyzimas varikliuose. Propwash pablogėja.
I — Integral
Kaupia error laike. Koreguoja nuolatinį nuokrypį (vėjas, variklių disbalansas, netolygus propelleris).
- Per mažas: dronas lėtai dreifuoja į vieną pusę be stick'o įvesties; negali išlaikyti aukščio ar kurso vėjyje.
- Per didelis: atšokimas po staigaus sustojimo; lėta, „vata“ dvelkianti oscilacija, kuri nurimsta per kelias sekundes (I-term windup).
D — Derivative
Reaguoja į tai, kaip greitai keičiasi error (pokyčio greitis). Slopina P-term atsaką ir apsaugo nuo overshoot.
- Per mažas: propwash, atšokimas paleidus stick'ą, oscilacija po flip'ų.
- Per didelis: aukšto dažnio oscilacijos (varikliai kaista), dronas zyzia/vibruoja tam tikrose gazo pozicijose, D-term triukšmą sustiprina filtravimas.
Feedforward (FF)
Ne klasikinės PID kilpos dalis — jis skaito stick'o judėjimą tiesiogiai ir stumia variklius prieš susikaupiant error. Sumažina įgimtą vėlinimą grįžtamojo ryšio kontroleryje.
- Per mažas: sekimo vėlinimas; dronas jaučiasi šiek tiek atsiliekantis nuo stick'ų; „vata“ darant greitus krypties pokyčius.
- Per didelis: overshoot į stick'o įvestis; aštru, bet nervinga. Sustiprina RC linijos jitter'į.
Vaizdinė iliustracija: step response koncepcija
Tai rodo, kas nutinka, kai staigiai duodi pilno atlenkimo roll komandą. Skirtingos kreivės atspindi PID derinimo kokybę:
Derinimo eiliškumas
Visada derink šia tvarka — ankstesni terminai veikia vėlesnių elgseną:
flowchart TD
A[1. Set safe starting PIDs<br/>from a preset] --> B[2. Tune P<br/>Raise until oscillation, back off 20%]
B --> C[3. Tune D<br/>Raise until propwash disappears or motors get hot]
C --> D[4. Tune I<br/>Low by default; raise if drifting in wind]
D --> E[5. Tune FF<br/>Raise until tracking feels instant without overshoot]
E --> F[6. Verify with blackbox<br/>Check step response and motor traces]Niekada nepradėk derinimo nuo I ar FF. P ir D pirmiausia turi būti stabilūs, kitaip I windup ir FF overshoot supainios kiekvieną matavimą.
Betaflight numatytieji PID diapazonai (5" freestyle, BF 4.4)
| Terminas | Numatytoji | Tipiškas diapazonas | Derinimo kryptis |
|---|---|---|---|
| Roll P | 47 | 35–65 | Aukštyn → aštriau, žemyn → minkščiau |
| Roll D | 35 | 25–55 | Aukštyn → slopina propwash, žemyn → mažiau variklių kaitimo |
| Roll I | 85 | 60–110 | Paprastai palik ramybėje, nebent dreifuoja vėjyje |
| Roll FF | 120 | 80–160 | Aukštyn → momentinis sekimas, žemyn → mažiau overshoot |
| Pitch ≈ Roll | — | ±10% nuo roll | Pitch paprastai 5–10% didesnis P/D nei roll |
| Yaw P | 45 | 30–60 | Mažesnis nei roll; yaw yra lėtesnė ašis |
TPA (Throttle PID Attenuation)
Esant dideliam gazui, RPM aukštas, varikliai reaguoja greičiau, ir tie patys PID gain'ai tampa efektyviai „agresyvesni“. TPA automatiškai sumažina P (ir pasirinktinai D) virš tam tikro gazo slenksčio.
1set tpa_rate = 65 # reduce P/D by 65% at full throttle
2set tpa_breakpoint = 1500 # start reducing at 50% throttle (1500 µs)
3set tpa_mode = PD # apply to P and D
4save
Be TPA: dronas gali oscilliuoti esant dideliam gazui, bet jaustis minkštas kabant vietoje. Su tinkamai nustatytu TPA: nuoseklus pojūtis per visą gazo diapazoną — ir, tiesą sakant, būtent TPA man kadaise „išgydė“ tą punch-out zyzimą, kurį pusę dienos gaudžiau kaltindamas viską, tik ne gazą.
Related Snippets
- BBL paremtas PID derinimo protokolas
Struktūrizuotas, blackbox paremtas PID derinimo protokolas, pagrįstas step … - Betaflight derinimo matematika — ką iš tikrųjų daro kiekvienas terminas
Kas vyksta Betaflight viduje, kai pastumi slankiklį. Čia pateiktos formulės … - Betaflight Rate režimai — formulės, palyginimas ir konvertavimas
Betaflight palaiko keturias rate režimų formules. Visos daro tą patį darbą — … - Betaflight Rates paaiškinti
Rates nusako, kaip greitai dronas sukasi reaguodamas į stick'ų judesį. Didesni … - Blackbox logginimo nustatymas ir lauko gidas
Blackbox įrašo kiekvieną jutiklio rodmenį, RC įvestį, PID išvestį ir variklio … - Cinematic tune iš Betaflight preset'ų
Betaflight ateina su Presets biblioteka, kurioje yra paruošti cinematic tune'ai. … - Derinimo skrydžio protokolas — kaip sukurti naudingą blackbox log'ą
Norint gauti gerus PID analizės rezultatus, reikia konkrečios skrydžio sekos. … - PID derinimas — wobble-test protokolas (nemokamų įrankių leidimas)
Sistemingas PID derinimo protokolas, pagrįstas Joshua Bardwell / Brian White … - Rate preset'ai — 733 / 633 / 533 Betaflight'e ir Actual'e
533, 633, 733 — tai bendruomenės trumpiniai trims populiariems freestyle rate … - Rate profilio parinkimas ir Persistent Stats
Rate profilių perjungimas vidury sesijos per siųstuvo jungiklį ir asmeninių … - Rates Deep Dive — Expo kreivė, zonos ir throttle
Rates — tai ne tik „kaip greitai sukasi“ nustatymas. Jie nusako, kurioje stick'o …