A vezérlő erősítéseinek hangolása nehéz lehet, mi general a stratégiák jól működnek annak érdekében, hogy stabil rendszert kapjanak, amely konvergál a megfelelő megoldáshoz?
Megjegyzések
- Egy konkrétabb kérdésre célzott kérdés jobban megfelelne hasznos. Ellenkező esetben csak meg kell néznie a PID cikket, amelynek része a hangolás
- I ‘ ve mindig úgy találta, hogy a PID-k beállítása nagyon függ a rendszer jellemzőitől, ezért ‘ soha nem találtam automatikus hangolás rendszereket rettenetesen hasznos. Rendben vannak az első lépés, alacsony teljesítményű paraméterek esetén, de messze vannak az optimálisaktól, és ugyanez a probléma jelentkezik minden általános stratégiával, amely nincs optimalizálva egy adott rendszer mechanikai, elektromos és vezérlési szempontjaihoz.
Válasz
Kis, alacsony nyomatékú motorokhoz kevés áttétellel vagy egyáltalán nem, az egyik eljárás, amellyel jó alapjelet kaphat, az, hogy megvizsgálja annak reakcióját egy zavarra.
A PID hangolásához kövesse az alábbi lépéseket:
- Állítsa az összes erősítést nullára.
- Növelje a P erősítést, amíg a zavarra adott válasz egyenletes oszcillációra nem képes.
- Növelje a D erősítést, amíg a rezgések elmúlnak (azaz kritikusan csillapított).
- Ismételje meg a 2. és 3. lépést, amíg a D erősítés növelése nem állítja le az oszcillációkat.
- Állítsa a P és a D értéket az utolsó stabil értékre.
- Növelje az I erősítést, amíg az el nem éri az alapértéket a kívánt rezgések számával (általában nulla, de gyorsabb válaszra lehet szükség, ha nem gondol néhány túllövési rezgésre)
Az Ön által használt zavar attól függ, hogy a vezérlő milyen mechanizmust használ. Normál esetben a mechanizmust kézzel el kell mozdítani az alapértéktől és elengedni. Ha az oszcillációk egyre nagyobbak, akkor csökkentenie kell a P erősítés.
Ha a D erősítést túl magasra állítja, a rendszer elkezd fecsegni (magasabb frekvencián rezeg, mint a P erősítés oszcillációi). Ha ez megtörténik, addig csökkentse a D erősítést, amíg le nem áll.
Úgy gondolom, hogy ennek a technikának van neve. Ide teszem, amikor megtalálom.
Megjegyzések
- Úgy hangzik, hogy Ziegler-Nichols: hu.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method
- @ Throwback1986, Ez mindenképpen nem Ziegler-Nichols, amely csak a P erősítést használja és hol Ezután az I és D erősítést ennek megfelelően számoljuk ki az oszcilláló P erősítésből és az oszcillációs periódusból
- Van-e további tanácsotok egy robotkar karjának hangolásához, amelynek több ízülete van, és amelyekre hangolásra van szükség? Elindul az alaptól és kifelé halad a végeffektorig, vagy fordítva, vagy akár számít?
- Akadémiai vagy ipari környezetben kifinomultabb ellenőrzési módszert szeretne. Hobbinak; a gravitációnak csillapító hatása van, ezért állítsa az egyes ízületeket arra a szögre, ahol a gravitáció a motorokat érinti legkevésbé. Például úgy, hogy a kar egyenesen felfelé mutat, így a gravitáció a csapágyakra és nem a motorra hat. A rend nem számít. A visszavezethető gravitációs kompenzációs kifejezés hozzáadása az irányításához valószínűleg a legkönnyebb fejlesztés (rekurzív Newton-Eulert használjon egy soros karhoz), ha ‘ nem tudja elérni a kívánt teljesítményt.
- A pidtuner.com eszköz jobb eredményeket hozott , mint a Ziegler-Nichols módszer, amelynek számos ismert hátránya van; folk.ntnu.no/skoge/publications/2003/tuningPID/more/…
Válasz
Hasonló kísérleti módszer a hauptmech válaszához, amelyet nekem az egyetemen tanítottak:
- Állítsa az összes erősítést 0 értékre.
- Növelje a Kd értéket, amíg a rendszer rezg.
- Csökkentse az K d 2-4-szeresére.
- Állítsa a Kp értéket a körülbelül 1% -ára K d .
- Növelje a Kp t, amíg a rezgések meg nem kezdődnek.
- Csökken Kp 2-4-szeresére.
- Állítsa a Ki értéket kb. A Kp 1% -a.
- Növelje a Ki számot, amíg a rezgések meg nem kezdődnek.
- Csökkentse a Ki t 2-4-es szorzóval.
A A Ziegler-Nichols módszer pontosabb, ha pontos számot lehet kapni az oszcillációs periódusról. Általában a „cla” használatával okoz rezgéseket ssic PID “számok vannak megadva, ezért nem mindig optimálisak.
Az egyes kifejezések emelkedési időre, túllépésre, beállási időre, egyensúlyi hibára és stabilitásra gyakorolt hatására vonatkozó általános szabályokat lásd az 1. táblázatban. “PID vezérlőrendszer elemzése és kialakítása” , írta Li, Ang és Chong az IEEE Control Systems magazinban.
Megjegyzések
- Kd először? Mindig úgy gondoltam, hogy a legjobb a Kp-vel kezdeni.
- I ‘ m régi előadások diáiról írok, ha ‘ jó ok arra, hogy ezt ne tegyem, ‘ kíváncsi lennék rá.
- Ez ‘ s az algoritmus, amelyet a ” nadrág ülésének ” hangolásáért javasolok. ‘ a lehető legközelebb hozza Önt anélkül, hogy modellezné a rendszert vagy megmérné annak reakcióját. (A modellezés és / vagy a mérés az egyetlen út, ha valóban szüksége van a megfelelő hangolásra.)
- A Kd hangolása először ‘ nincs értelme számomra , mint minden PID-ben, ‘ megvalósítottam, a Kd jele negatív. ‘ csökkenti a vezérlőjelet, amikor a hibák nagyon nagy változásai következnek be, lényegében lecsökkentve a rendszert. Ha csak Kd van, akkor a rendszer ellentétes irányba fog mozogni, növelve a hibát és növelve a problémát. Ha a Kd pozitív, akkor amikor a hibában nagy változás történik a megfelelő irányba, ‘ akkor még gyorsabban változtatja meg, és felülmúlja a célt.
- Valójában a D erősítés hangolásának először van értelme, de én ‘ m feltételezem, hogy ” növekszik ” A D erősítés az abszolút érték növelését jelenti, és ‘ csak növeli a csillapítást. A D erősítéssel az a legnagyobb probléma, hogy felerősíti a nagyfrekvenciás zajt, és ‘ jó látni ezt a hatást a P erősítés nélkül. Tehát ‘ lényegében azzal kezdi, hogy megkeresi azokat a nyereségeket, amelyeknél abbahagyja a csillapításhoz hasonló viselkedést, és elkezdi erősíteni a zajt és az elmaradt hibajeleket.
m feltételezve a 2. lépést, meg kell piszkálnod a növényedet, hogy lássuk-e.
Válasz
Az Embedded.com ismét áthelyezte cikkemet, de itt van most. Ez megmutatja, hogyan kell írni egy PID-hurkot (kitalálni, hogyan kell ezt másban lebegőponttal megtenni, mint gyakorlatot az olvasó számára), és hogyan hangolni.
A legjobb mód nagyban függ a képességeitől. A legjobb hangolás megszerzésének módja, ha feltételezzük, hogy Ön egy tapasztalt irányítási rendszer keze, általában a növény reakciójának mérése (“üzem” == “az a dolog, amelyet” újra irányít “), akkor attól függően, hogy miként végezted el a méréseket, nyerj ki egy modellt a növényről és a kialakításról, vagy csak közvetlenül a mérésekre tervez.
Bizonyos nehéz növényeknél azt fogod találni, hogy soha nem tudsz kielégítővé tenni méréseket, ebben az esetben egyedül modellek szerint kell haladni. Ezek ritkák, de kielégítőek, amikor működésbe hozzák őket.
Válasz
Sebastian Thrun egy egyszerű algoritmust mutatott be a PID hangolására a “Hogyan programozzunk egy robotautót” osztály. “Twiddle” -nek hívják, ő leírja itt .
A twiddle nagyon hajlamos megtalálni a helyi minimumokat – ez azt jelenti, hogy három konstans készlettel állhat elő, amelyek rendben vannak, de nem optimálisak a helyzethez. A PID-állandók hangolásának problémája egy általánosabb keresési probléma részhalmaza, amely bizonyos paramétereket keres a hasznosság maximalizálása érdekében ( ebben az esetben a PID algoritmus hibájának minimalizálása). Megtekintheti a probléma egyéb általános megoldásait, például a dombmászást, a szimulált hőkezelést, a genetikai algoritmusokat stb., amelyek végül optimálisabb megoldásokat találnak.
Válasz
A másik két választól eltérően azt mondanám, hogy a PID hangolásának jó kézi módja a Kd figyelmen kívül hagyása. Tehát kezdje 0-nál, és növelje a Kp értéket, amíg el nem éri a célt, majd növelje a Ki értéket, hogy megszabaduljon az egyensúlyi állapottól.
A Kd megzavarhatja a problémát, mivel rosszul reagál a zajra, majd elkezdi hozzáadni a szűrőket majd kérdezd meg, hogy ez mit tesz azon kívül, hogy lassítja az irányítást és megnehezíti az egész dolgának kidolgozását …
Egy másik dolog, ami megzavar, az az, ha a PID egyenlet szabványos formában van vagy független (a wikipédiában párhuzamos) formában. A Ki hatása megfordulni látszik, ha a forma rossz út vezet ahhoz, amire gondol. Mindkét típust használják az automatizálásban, néha lehetőségük van váltani közöttük.
Válasz
Rendszermodellezés
Természetesen kísérleti hangolás elvégezhető a többi válaszban említettek szerint, de ha ésszerű dinamikus modellt tudsz definiálni bármit, amit irányítani akarsz, és képes vagy azonosítsa a paramétereit , képesnek kell lennie a vezérlő megtervezésére olyan jól meghatározott kritériumok alapján, mint például túllépés , emelkedési idő , beállási idő , stabil -állapot hiba és így tovább.
A MATLAB-ban vannak még eszközök is, amelyek képesek beállítani a vezérlőt, hogy optimalizálják ezeket a kritériumokat, ami még jobbá teszi használni.
Ismerje meg a vezérlőjét
Megtanulja, hogy az egyes paraméterek A PID vezérlő igen hasznos. Az összes kísérleti algoritmus valahogyan ezen a tudáson alapszik. Ha nemcsak követi az utasításokat, de képes magának is elkapni ezt az érzést, akkor könnyebb lehet a vezérlő manuális hangolása.
Valósági problémák
Előfordulhat, hogy a vezérlő hangolásakor többek között ezek közül az egyik útba lép: windup , nem megfelelő mintavételi arány , telítettség .
Következtetés
Végül minden attól függ, hogy valójában mit tehet a rendszer ismereteinek megszerzéséről a működéséről és arról, hogy milyen kísérleteket lehet elvégezni. A legjobb az, ha valóban többet megtudunk a PID-vezérlőkről és általában az irányítási elméletről, az IMO-ról, de elfogult vagyok 🙂
Hozzászólások
- I ne ‘ ne értsd meg, miért javasolják az emberek folyamatosan a heurisztikát t a PID beállításához, miközben manapság rengeteg automatikus eszközt biztosítunk a növények azonosításához és a vezérlő tervezéséhez, amelyek nem id = “fc18e3c2d2”>
nem igényel mély elméleti hátteret. Akkor hüvelykujj erre a válaszra.
Válasz
Megpróbálok egy kicsit bővíteni tapasztalataimból azok számára, akik érdeklődhetnek. Azt hiszem, a probléma az, hogy sok olyan kontrollelméletünk van, amely kissé hozzáférhetetlen (és néha nem is hasznos), és akkor vannak olyan ökölszabályok, amelyek feltételeznek rendszereket, amelyek gyakran pontatlanok.
Stabilitás
Beszéljünk először arról, miért válnak instabillá a vezérlő hurkok. Ennél a beszélgetésnél egy lineáris rendszert feltételezek . Informálisan ez azt jelenti, hogy ha a vezérlőjeled egy adott frekvenciájú szinuszhullám, akkor a megfigyelt kimenet ugyanazon a frekvencián van, és ha megváltoztatja a vezérlő rendszer amplitúdóját, akkor a kimenet ugyanazon az arányon reagál. Ez a feltételezés jó közelítés sok valós világ rendszeréhez, és lehetővé teszi számunkra, hogy a különböző frekvenciákat külön nézzük meg.
Ha megnézi a vezérlő útvonalat, akkor van egy alapértéke, a PID vezérlője, a rendszere (aka “Plant”), majd az érzékelőt. Képzeljen el egy rögzített alapjelet és egy szinuszhullámot az érzékelőtől (ez egyenlő az érzékelő valós zavarával, visszacsatolással). Egy instabil rendszerben a visszacsatolás a vezérlőhurok helyett a hibát erősíti, nem pedig úgy csökkenti, hogy az idő növekedésével az amplitúdója növekszik. Ennek az oka a késleltetés, vagy ennek a frekvenciának a fáziseltolódása a bemenet és a kimenet között. Adott frekvencia esetén megnézhetjük a kimenet nyitott hurok (azaz nincs visszacsatolás) eltolódását és amplitúdóját, és amikor az összeset megrajzoljuk egy grafikonon, akkor valami hasonlót kapunk . Ha van olyan helyzetünk ebben a nyílt hurok grafikonban, ahol a hiba folyamatosan erősödik, akkor instabil rendszerünk van. Ha a késés kisebb, mint a hullámhossz fele, vagy az erősítés kisebb, mint x1, a rendszer stabil lesz . A gyakorlatban bizonyos margót akarunk ettől a ponttól (erősítési margó és fázis margó), ezért ezt a “hátralépést” sok kézi / heurisztikus módszerben látni fogja.
A kézikönyv fő problémája módszerek szerint vakon repül, és nagyjából garantáltan gyenge ellenőrzési rendszert kap.
Ne feledje azt is, hogy a P, I és D jelentése összefügg az érzékelő által mért és milyen irányítást alkalmaz. Az otthon épített vezérlőkben gyakori hiba, hogy az emberek azt gondolják, hogy “akkor alkalmazzák a P-t, amikor valójában nem. A motorvezérlőknek gyakran van egy helyzethurkuk, amely egy nyomatékhurok felett futó sebességi körön fut át. (A kaszkád )
OK, de hogyan segít ez nekünk?
Az első pont, amit szeretnék elmondani, hogy ha saját PID-vezérlőt épít, akkor meg kell építenie a nyitott hurok mérésének módját is válasz. Végezzen frekvencia söpörést a vezérlő bemenetén, és mérje meg az érzékelő kimenetét a visszacsatolt visszacsatolással. Ezután megrajzolhatja a nyitott hurok Bode-diagramot, és megnézheti , hogy miért stabil a rendszere és képes-e kereskedni Hasznos megmérni a zárt hurok válaszát is, és ezt bármelyik rendszerrel megteheti úgy, hogy az alapjel frekvenciasöpörését végzi, miközben a hurok zárva van. Mindkettő nem olyan nehéz, és nem igényel sok elméleti ismeretet.
Ha egyszerűen módosítja a kezelőszerveket anélkül, hogy megértené, hogy mi folyik a motorháztető alatt, akkor nem lesz képes optimalizálni a rendszert. Néhány intuíció felépítése ezekről a rendszerekről nem olyan nehéz. Például. az arányos erősítésnek nincs hatása a fázisra, hanem egyszerűen növeli a nyitott hurok erősítését az összes frekvencián. Tehát amit csinál, amikor növeli az arányos erősítést mindazon manuális hangolási módszerekben, az a frekvencia megtalálása, ahol a fázis -180-ra megy. Lásd ezt , hogy még több képet kapjon a különféle vezérlők frekvenciaválaszra gyakorolt hatásáról.
Gyakran a legjobb zárt hurkú teljesítmény elérése jár a rendszer módosítása és nemcsak a vezérlő nyeresége. Azt szeretné, hogy a rendszer a lehető legmerevebb legyen. Ez lehetővé teszi a szabályozási paraméterek felemelését, és a legjobb nyitott és zárt hurok sávszélességének elérését. A motorvezérlő alkalmazásokban szerzett tapasztalataim szerint az arányos nyereség az, aminek a “munka” nagy részét el kellene végeznie, az integrátor pedig a “többit”. Szerintem egyáltalán nincs szüksége D kifejezésre. Az aluláteresztő szűrő és a bevágási szűrő sokat segít azokban a helyzetekben, amikor előfordulhat, hogy van valamilyen mechanikai rezonanciája, de a Bode Plot nélkül történő beállítása nagyon nehéz (a megfigyelt oszcillációs frekvencia) zárt hurok alatt eltérhet a nyitott huroktól).
Ha a biztonság aggodalomra ad okot (nagyon erős motorok vagy olyan rendszer, amelyet tönkretehet az irányításon kívül eső motor), be kell állítania néhányat korlátokat, mielőtt elkezdené a hangolást (pl. áramkorlát, maximális helyzethiba) a rendszer védelme érdekében. Ezután valamilyen érzést kell kapnia a paraméterek tartományáról. Ha visszajelzésének száma 40 forgásonként vagy 4000 számlálás fordulatonként, akkor a paraméterei 100-as tényező lesz egy adott rendszer esetén. Az lenne a megközelítésem, hogy először találok egy tartományt, ahol rosszul kezelhető, majd felfelé haladva P-vel kezdve, majd én (bár ismét vakon repül). A visszalépés létrehozza ezt a stabilitási margót.
Zárt hurkon túl
Zárt hurok megkísérli eltávolítani a hibát a rendszerből. Mindig némileg korlátozott teljesítményt fog elérni. Amit meg kell tennie, az az, hogy minimalizálja a zárt hurkú vezérlő által látott hibákat, és ennek egyik módja a feed nevű technika. előre . Az előtolásban megkerüli a vezérlőt, és egy parancsot közvetlenül a rendszerhez vezet. Erre példa lehet a gyorsítás előtolás. Ha tudja, hogy a motor nyomatéka állandó és ismeri a A terhelés nagyjából meg tudja mondani, hogy mekkora áramot kell vezetnie a terhelés bizonyos gyorsulásához. Egyszerűen meg kell tennie a parancs beviteli gyorsítását, megszorozva egy konstanssal, és hozzáadva ezt a vezérlő meghajtó parancsához. Alapvetően azt csinálja, ami a rendszer meghajtásához szükséges, ha nem lenne vezérlő, és minél közelebb lehet kapni, annál kevesebb hibát kell kihúznia a hurokból, és annál jobban teljesít a rendszere. Ez a gyakorlatban óriási különbséget jelent.
megjegyzések
- ” A motorvezérlő alkalmazásokban szerzett tapasztalataim szerint az arányos nyereséget kell megadni a ” munka nagy részét ” és az integrátort a ” többi “. Nem gondolom, hogy egyáltalán szükséged lenne D kifejezésre. ” Egyetértek ezzel tipikus motorvezérlő alkalmazáshoz. A P végzi a fő feladatot, az I pedig kompenzálja a hosszú távú sodródást / hibákat. De itt a quadcopter sok külső turbulenciának lesz kitéve, ezért a D kifejezés fontos a gyors válasz eléréséhez. az I kifejezésre, hacsak a quad nem autonóm navigációs módban van, akkor ez nem olyan döntő jelentőségű.
- @ dm76: Tapasztalataim nagy része motorvezérléssel kapcsolatos, és ezt a felelősség kizáró nyilatkozatot teszem 😉 Az intuícióm azonban azt mondja, hogy ‘ még mindig van helyem a quadcopter alkalmazásban, és úgy gondolom, hogy ha a P nagyon magas, akkor képes kezelni a külső zavarokat (csakúgy, mint a motorvezérlésnél). Valójában alaposabban meg kellene vizsgálnom ezeket a rendszereket, hogy valami határozottat mondjak a kvadrokról …Azt hiszem, sok minden, amit itt mondok, igaz (főleg a frekvencia tartományban történő hangolás és a rendszer nyitott hurok válasza).
- @ dm76: És valóban azok, ” ökölszabály ” A PID hangolás nagyon közepes teljesítményt eredményez a motorokban, és feltehetően ugyanezt a quadrokopterekben is. Előfordul, hogy egy jól elhelyezett hornyos szűrő nagyságrendben különbséget okozhat …
Válasz
A Ziegler-Nichols egy egyszerű manuális módszer. Robusztusabb módszerek is léteznek – ezek általában matematikai megoldásokra (analitikus, iteratív optimalizálás stb.) Támaszkodnak.
Ezen túlmenően a google néhány automatizált technikához “google” hangoló PID-t keres. Kedvencem az ideghálózatok alkalmazása a PID-hangoláshoz.
Válasz
Ha pontos PID-együtthatót szeretne megadni:
- A statisztikus működtető adatok (azaz bemeneti feszültségek gyűjtése + kódolóimpulzusok lekérdezése egy konstansban gyakran (
0.01sec
) idő a20secs
mint3
x2000
mátrix) - Szerezze be az aktuátor átviteli függvényét (TF) (a MATLAB Ident eszközkészletével).
- Végül használja a PIDTool eszköztár a MATLAB-ban, és töltse fel az átalakítási funkciót.
Vagy gyorsan és egyszerűen:
Van egy gyorsabb megközelítés, amelyet úgy hívnak: Ziegler – Nichols :