Mitkä ovat hyvät strategiat PID-silmukoiden virittämiseksi?

Ohjaimen vahvistusten säätäminen voi olla vaikeaa, mitä general strategiat toimivat hyvin vakaan järjestelmän saamiseksi oikeaan ratkaisuun?

Kommentit

  • Kysymys, joka on kohdistettu tarkempaan kysymykseen, olisi parempi hyödyllinen. Muussa tapauksessa sinun tulisi vain tarkastella PID -artikkelia, jossa on osio virityksestä
  • I ’ ve on aina havainnut PID-tunnusten olevan hyvin riippuvaisia järjestelmän ominaisuuksista, minkä vuoksi en ’ ole koskaan löytänyt automaattiviritettäviä järjestelmiä erittäin hyödyllinen. Ne sopivat ensikierrosta, matalan suorituskyvyn parametrijoukkoon, mutta ne ovat kaukana optimaalisista, ja sinulla on sama ongelma minkä tahansa yleisen strategian kanssa, jota ei ole optimoitu tietyn järjestelmän mekaanisiin, sähköisiin ja ohjauskysymyksiin.

vastaus

Pienille, pienimomenttisille moottoreille Kun vaihdetta on vähän tai ei lainkaan, yksi menetelmä, jolla saat hyvän lähtötason virityksen, on tutkia sen reaktio häiriöön.

PID: n virittämiseksi toimi seuraavasti:

  1. Aseta kaikki vahvistukset nollaan.
  2. Lisää P-vahvistusta kunnes vaste häiriöön on tasainen värähtely.
  3. Lisää D-vahvistusta, kunnes värähtelyt häviävät (ts. se on kriittisesti vaimennettu).
  4. Toista vaiheet 2 ja 3, kunnes D-vahvistuksen lisääminen ei pysäytä värähtelyjä.
  5. Aseta P ja D viimeisiin vakaisiin arvoihin.
  6. Lisää I-vahvistusta, kunnes se vie sinut asetuspisteeseen halutulla värähtelyjen määrällä (normaalisti nolla, mutta nopeampi vastaus voidaan saada, jos et pidä mielessäsi paria ylitysvärähtelyä)

Käytettävä häiriö riippuu mekanismista, johon ohjain on kiinnitetty. Normaalisti mekanismin siirtäminen käsin pois asetuspisteestä ja päästäminen irti riittää. Jos värähtelyt kasvavat suuremmiksi, sinun on vähennettävä P-vahvistus.

Jos asetat D-vahvistuksen liian suureksi, järjestelmä alkaa pulista (värisee korkeammalla taajuudella kuin P-vahvistuksen värähtelyt). Jos näin tapahtuu, pienennä D-vahvistusta kunnes se pysähtyy.

Uskon, että tällä tekniikalla on nimi. Laitan sen tänne, kun löydän sen.

Kommentit

  • Kuulostaa Ziegler-Nichols: fi.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method
  • @ Throwback1986, tämä on ehdottomasti ei Ziegler-Nichols, joka käyttää vain P-vahvistusta ja missä I- ja D-vahvistus lasketaan sitten vastaavasti värähtelevän P-vahvistuksen ja värähtelyjakson perusteella.
  • Onko sinulla lisäohjeita nimenomaan robotin käsivarren virittämiseen, jossa on useita säätöä tarvitsevia liitoksia? Aloitatko pohjalta ja työskentelet ulospäin loppuefektoriin, vai päinvastoin, vai onko sillä edes merkitystä?
  • Haluatko akateemisessa tai teollisessa ympäristössä kehittyneemmän ohjausmenetelmän. Harrastajalle; painovoimalla on vaimennusvaikutus, joten säädä jokainen liitos kulmaan, jossa painovoima vaikuttaa moottoreihin vähiten. Esimerkiksi käsivarsi osoittaa suoraan ylöspäin niin, että painovoima vaikuttaa laakereihin eikä moottoriin. Järjestyksellä ei ole merkitystä. Syötettävän painovoiman kompensointitermin lisääminen hallintaan on todennäköisesti helpoin parannus (käytä sarjakäsivarressa rekursiivista Newton-Euleria), jos ’ et saa haluamaasi suorituskykyä.
  • pidtuner.com -työkalu on tuottanut minulle parempia tuloksia kuin Ziegler-Nichols-menetelmä, jolla on useita tunnettuja haittoja; folk.ntnu.no/skoge/publications/2003/tuningPID/more/…

vastaus

Samanlainen kokeellinen menetelmä hauptmechin vastaukseen, jota minulle opetettiin yliopistossa:

  1. Aseta kaikki vahvistukset arvoon 0.
  2. Lisää Kd , kunnes järjestelmä värisee.
  3. Pienennä K d kertoimella 2-4.
  4. Aseta Kp arvoksi noin 1% K d .
  5. Lisää Kp kunnes värähtelyt alkavat.
  6. Vähennä Kp kertoimella 2-4.
  7. Aseta Ki arvoon noin 1% Kp : stä.
  8. Lisää Ki , kunnes värähtelyt alkavat.
  9. Pienennä Ki kertoimella 2-4.

Ziegler-Nichols-menetelmä on tarkempi, jos saat tarkan luvun värähtelyjaksolle. Se aiheuttaa yleensä värähtelyjä käyttämällä ”cla” ssic PID-numerot on annettu, joten se ei ole aina optimaalinen.

Katso taulukon 1 yleiset säännöt kunkin termin vaikutuksesta nousuaikaan, ylitykseen, asettumisaikaan, vakaan tilavirheen ja vakauteen. ”PID-ohjausjärjestelmän analyysi ja suunnittelu” , kirjoittanut Li, Ang ja Chong IEEE Control Systems -lehdessä.

Kommentit

  • Kd ensin? Ajattelin aina, että on parasta aloittaa Kp: llä.
  • I ’ m kirjoitan vanhojen luentojen dioista, jos ’ on hyvä syy olla tekemättä sitä näin ’ olla utelias kuulemaan sen.
  • Että ’ s algoritmi, jota kannatan ” housujen istuimen ” virityksessä. Se ’ saa sinut suunnilleen niin lähelle kuin mahdollista mallintaa järjestelmää tai mittaa sen vastetta. (Mallinnus ja / tai mittaus on ainoa tapa edetä, jos todella tarvitset oikean virityksen.)
  • Kd: n virittäminen ei ole ensin ’ minulle järkevää , kuten jokaisessa PID: ssä, olen ’ toteuttanut Kd: n merkin negatiivisena. Sitä ’ käytetään vähentämään ohjaussignaalia, kun virheissä tapahtuu hyvin suuria muutoksia, mikä pohjimmiltaan vaimentaa järjestelmää. Jos sinulla on vain Kd, järjestelmä liikkuu vastakkaiseen suuntaan, mikä lisää virhettä ja vaikeuttaa ongelmaa. Jos Kd on positiivinen, niin aina kun virheessä tapahtuu suuri muutos oikeaan suuntaan, ’ saat sen muuttumaan entistä nopeammin ja ylittämään tavoitteen.
  • Itse asiassa D-vahvistuksen virittäminen on ensin järkevää, mutta olen ’ m olettaen, että ” kasvaa ” D-vahvistus tarkoittaa absoluuttisen arvon kasvua ja ’ vain lisää vaimennusta. Suurin ongelma D-vahvistuksessa on, että se vahvistaa suurtaajuista kohinaa ja on ’ mukava nähdä tämä vaikutus ilman P-vahvistusta. Joten ’ aloitat olennaisesti etsimällä voittoja, joilla se lakkaa toimimasta kuten vaimennus ja alkaa vahvistaa kohinaa ja viivästyneitä virhesignaaleja. Olen ’ m olettaen vaiheelle 2, sinun täytyy pistää kasvejasi nähdäksesi, heilahtelevatko he.

Vastaa

Embedded.com on jälleen siirtänyt artikkelini, mutta tässä se on nyt. Tämä näyttää sekä PID-silmukan kirjoittamisen (sen selvittäminen, miten se tehdään muussa kuin kelluvassa pisteessä, jää lukijan tehtäväksi), että miten se viritetään.

PID ilman tohtoria

Paras tapa riippuu paljon kyvyistäsi. Tapa saada paras viritys olettaen, että olet kokenut ohjausjärjestelmän käsi, on tavallisesti mitata laitoksen reaktio (”kasvi” == ”asia, jota hallitset uudelleen”), sitten riippuen siitä, miten teit mittaukset, poimi malli laitoksesta ja mallista tai vain suunnittele suoraan mittauksiin.

Tietyille vaikeille kasveille huomaat, että et voi koskaan tehdä tyydyttävää mittaukset, jolloin sinun on käytettävä yksin malleja. Ne ovat harvinaisia, mutta tyydyttäviä, kun saat ne toimimaan.

Vastaus

Sebastian Thrun esitteli yksinkertaisen algoritmin PID: n virittämiseksi. ”Kuinka ohjelmoida robotti-auto” -luokka. Sitä kutsutaan ”twiddle”, hän kuvailee sitä täällä .

Twiddle on erittäin taipuvainen löytämään paikallisia minimimääriä – tämä tarkoittaa, että voisi keksiä joukon kolmesta vakiosta, jotka ovat kunnossa, mutta eivät optimaaliset tilanteelle. PID-vakioiden virittäminen on osa yleisempiä hakuongelmia tiettyjen parametrien löytämiseksi hyödyllisyyden maksimoimiseksi ( PID-algoritmin virheiden minimointi). Voit etsiä muita yleisiä ratkaisuja tähän ongelmaan, kuten kiipeily, simuloitu hehkutus, geneettiset algoritmit jne., jotka saattavat löytää optimaalisempia ratkaisuja.

vastaus

Toisin kuin kaksi muuta vastausta, sanoisin, että hyvä manuaalinen tapa PID: n virittämiseen jättää Kd: n huomiotta. Joten aloita 0: sta ja lisää Kp: tä, kunnes pääset tavoitteeseen, ja lisää sitten Ki päästäksesi eroon vakaan tilan virheistä.

Kd voi sekoittaa ongelman, koska se reagoi huonosti meluun, ja aloitat sitten suodattimien lisäämisen. kysy sitten mitä analoginen tulo lisäksi hidastaa hallintaa ja tekee koko asiasta vaikeamman työskennellä …

Toinen asia, joka varmasti hämmentää minua, on, että PID-yhtälö on vakiomuodossa tai itsenäisessä muodossa (rinnakkain wikipediassa). Ki: n vaikutus näyttää käänteiseltä, kun muoto on väärä tapa luulluksi. Molempia tyyppejä käytetään automaatiossa, joskus mahdollisuus vaihtaa niiden välillä.

vastaus

Järjestelmämallinnus

Kokeellinen viritys voidaan tietysti tehdä kuten muissa vastauksissa mainitaan, mutta jos pystyt määrittelemään järkevän dynaamisen mallin kaikelle mitä haluat hallita ja pystyt tunnistaaksesi sen parametrit , sinun tulisi pystyä suunnittelemaan ohjaimesi hyvin määriteltyjen kriteerien, kuten ylityksen , nousuaika , asettumisaika , tasainen – valtion virhe ja niin edelleen.

MATLABissa on jopa työkaluja , jotka pystyvät virittämään ohjaimesi optimoimaan näiden kriteerien yhdistelmän, mikä tekee siitä vieläkin paremman käyttää.

Tunne ohjaimesi

Opi, mitä kukin parametri PID-ohjain on myös varsin hyödyllinen. Kaikki kokeelliset algoritmit perustuvat jotenkin tällaiseen tietoon. Jos et vain noudata ohjeita, mutta pystyt saamaan tämän tunteen itse, saatat löytää helpomman säätää ohjainta manuaalisesti.

Todellisen maailman ongelmat

On mahdollista, että yksi näistä asioista, muun muassa, pääsee matkallesi ohjainta viritettäessä: windup , riittämätön näytteenottotaajuus , kylläisyys .

Päätelmä

Loppujen lopuksi kaikki riippuu siitä, mitä voit itse tehdä järjestelmän saamiseksi jonkin verran tietoa sen toiminnasta ja millaisia kokeita voidaan tehdä. Parasta on oppia lisää PID-ohjaimista ja ohjausteorioista yleensä, IMO, mutta olen puolueellinen 🙂

Kommentit

  • I don ’ ei ymmärrä, miksi ihmiset ehdottavat jatkuvasti heuristiikkaa PID: n virittämiseksi, kun nykyään meillä on runsaasti automaattisia työkaluja kasvien tunnistamiseen ja säätimien suunnitteluun, jotka don ’ t eivät vaadi syvällistä teoreettista taustaa. Peitä tämä vastaus sitten.

Vastaa

Yritän laajentaa kokemuksistani hieman niille, jotka saattavat olla kiinnostuneita. Mielestäni ongelmana on, että meillä on paljon kontrolliteoriaa, johon ei pääse (ja joskus ei ole hyötyä), ja sitten meillä on nyrkkisäännöt, jotka tekevät oletuksia järjestelmistä, jotka ovat usein epätarkkoja.

Vakaus

Puhutaan ensin siitä, miksi ohjaussilmukat muuttuvat epävakaiksi. Oletan, että tässä keskustelussa lineaarinen järjestelmä . Epävirallisesti tämä tarkoittaa, että jos ohjaussignaalisi on siniaalto tietyllä taajuudella, havaittu lähtösi on samalla taajuudella ja jos muutat ohjausjärjestelmän amplitudia, lähtösi vastaa samassa suhteessa. Tämä oletus on hyvä arvio monille reaalimaailman järjestelmille ja antaa meidän tarkastella eri taajuuksia erillään.

Jos tarkastelet ohjauspolua, sinulla on asetuspiste, PID-ohjaimesi, järjestelmäsi (alias ”Kasvi”) ja sitten anturi. Kuvittele anturistasi kiinteä asetuspiste ja siniaalto (tämä on sama kuin reaalimaailman häiriö anturissa, joka palaa takaisin). Epävakaassa järjestelmässä palautteesi saa ohjaussilmukan vahvistamaan virhettä eikä vähentämään sitä siten, että ajan kasvaessa amplitudisi kasvaa. Syy tähän johtuu viiveestä, tai tälle taajuudelle vaihesiirto tulon ja lähdön välillä. Tietyllä taajuudella voimme tarkastella tuota avoimen silmukan (ts. Ei palautetta) siirtymää ja ulostulon amplitudia, ja kun piirrämme kaikki ne kaavioon, saamme jotain Bode Plot . Jos meillä on tässä avoimen silmukan kaaviossa tilanne, jossa virhe jatkuvasti vahvistuu, meillä on epävakaa järjestelmä. Jos viive on alle 1/2 aallonpituudesta tai vahvistus on pienempi kuin x1, järjestelmä on vakaa . Käytännössä haluamme jonkin verran marginaalia siitä kohdasta (vahvistusmarginaali ja vaihemarginaali), minkä vuoksi ”näette tämän” perääntymisen ”monissa manuaalisissa / heuristisissa menetelmissä.

Tämän käsikirjan suurin ongelma menetelmien mukaan ”sinä lennät sokeana ja sinulla on melko taattu, että saat huono ohjausjärjestelmän.

Pidä myös mielessä, että merkitys P, I ja D liittyy siihen, mitä anturi mittaa ja mitä hallintaa käytät. Yleinen virhe kodissa rakennetuissa ohjaimissa on, että ihmiset ajattelevat käyttävänsä P: tä, kun eivät todellakaan. Moottorin ohjaimilla on usein asennosilmukka, joka kulkee momenttisilmukan yli kulkevan nopeussilmukan yli. (A kaskadi )

OK, mutta miten tämä auttaa meitä?

Ensimmäinen asia, jonka haluan tehdä, on se, että jos rakennat omaa PID-ohjainta, sinun tulisi myös rakentaa tapa mitata avoin silmukka vastaus. Suorita taajuuspyyhkäisy ohjaimesi tuloon ja mittaa anturin lähtö palautteen ollessa irti. Sitten voit piirtää avoimen silmukan Bode-käyrän ja nähdä miksi järjestelmäsi on vakaa ja pystyy käymään kauppaa On myös hyödyllistä mitata suljetun silmukan vaste ja voit tehdä sen missä tahansa järjestelmässä tekemällä asetuspisteen taajuuspyyhkäisy silmukan ollessa suljettu. Molemmat eivät ole kovin kovia eivätkä vaadi paljon teoreettista tietämystä.

Jos yksinkertaisesti säätät hallintalaitteita ymmärtämättä mitä hupun alla tapahtuu, et voittanut optimoida järjestelmäsi. Näiden järjestelmien intuition rakentaminen ei ole kovin vaikeaa. Esimerkiksi. suhteellisella vahvistuksella ei ole vaikutusta vaiheeseen, vaan se yksinkertaisesti lisää avoimen silmukan vahvistusta kaikilla taajuuksilla. Joten mitä teet, kun lisäät suhteellista vahvistusta kaikissa näissä manuaalisissa viritysmenetelmissä, on löytää taajuus, jossa vaihe menee -180: een. Katso tämä saadaksesi lisää käsitystä eri säätimien vaikutuksesta taajuusvasteeseesi.

Usein parhaan suljetun piirin suorituskyvyn saavuttaminen edellyttää säätämällä järjestelmää eikä vain ohjaimen hyötyä. Haluat tehdä järjestelmästä mahdollisimman ”jäykän”. Sen avulla voit nostaa ohjausparametreja ja saada parhaan avoimen ja suljetun silmukan kaistanleveyden. Kokemukseni mukaan moottorinohjaussovelluksista suhteellinen voitto on se, jonka pitäisi tehdä suurin osa ”työstä” ja integraattori ”lopusta”. En usko, että tarvitset D-termiä lainkaan. Alipäästösuodattimen ja lovisuodattimen käyttö auttaa paljon tilanteissa, joissa sinulla saattaa olla mekaaninen resonanssi, mutta niiden asettaminen ilman Bode-juontia on erittäin vaikeaa (havaitsemasi värähtelytaajuus suljetun piirin alla voi olla erilainen kuin avoin silmukka).

Jos turvallisuus on huolenaihe (erittäin voimakkaat moottorit tai järjestelmä, jonka moottori voi tuhota hallinnan ulkopuolella), sinun on asennettava rajoituksia ennen virityksen aloittamista (esim. nykyinen raja, suurin sijaintivirhe) järjestelmän suojaamiseksi. Sitten sinun on saatava jonkinlainen tuntuma parametrien alueelle. Jos palautteessasi on 40 lukua kierrosta kohden tai 4000 lukua kierrosta kohden, parametrit on kerroin 100 tietylle järjestelmälle. Minun lähestymistapani olisi ensin löytää alue, jossa sinulla on vähän hallittavuutta, ja sitten ramppi ylöspäin alkaen P: stä ja sitten minä (vaikka taas olet lentävä sokea). Varmuuskopiointi luo tämän vakausmarginaalin.

Suljetun piirin ulkopuolella

Suljettu piiri yrittää poistaa virheen järjestelmästä. Sillä on aina jonkin verran rajoitettu suorituskyky. Mitä haluat tehdä, on minimoida suljetun piirin ohjaimen näkemä virhe ja yksi tapa tehdä se on tekniikka nimeltä eteenpäin . Siirrä eteenpäin eteenpäin kiertämällä ohjainta ja ajamalla komento suoraan järjestelmään. Esimerkki siitä olisi kiihdytyksen eteenpäin. Jos tiedät moottorin vääntömomentin vakion ja tiedät Voit melko paljon kertoa kuinka paljon virtaa sinun täytyy ajaa saadaksesi tietyn kuormituksen kiihtyvyyden.Voit yksinkertaisesti ottaa komennon syötekiihdytyksen, kerrottamalla sen vakiolla ja lisäämällä sen ohjaimen ajokomentoon. Teet pohjimmiltaan sitä, mitä järjestelmän ajaminen edellyttäisi, jos ohjainta ei olisi, ja mitä lähempänä saat vähemmän virheen, jonka silmukasi on poistettava, ja sitä paremmin järjestelmäsi toimii. Se tekee valtavan eron käytännössä. / p>

kommentit

  • ” Kokemukseni mukaan moottorinohjaussovelluksissa suhteellinen voitto on se, jonka pitäisi olla tekee suurimman osan ” työstä ” ja integraattori ” lepää ”. En ’ usko, että tarvitset lainkaan D-termiä. ” Olen samaa mieltä tyypilliselle moottorinohjaussovellukselle. P tekee päätyön ja I kompensoi pitkäaikaiset ajautumiset / virheet. Mutta tässä quadcopteriin kohdistuu paljon ulkoista turbulenssia, joten D-termi on tärkeä, jotta saat nopean vastauksen. I-termille, ellei quad ole autonomisessa navigointitilassa, se ei ole niin ratkaiseva.
  • @ dm76: Suurin osa kokemuksestani on moottorin ohjauksesta, ja teen tämän vastuuvapauslausekkeen 😉 Intuitiossani sanotaan kuitenkin, että ’ on vielä tilaa minulle quadcopter-sovelluksessa, ja mielestäni jos P on erittäin korkea, se voisi käsitellä ulkoisia häiriöitä (aivan kuten moottorinohjauksessa). Minun olisi todella tarkasteltava näitä järjestelmiä tarkemmin sanoakseni jotain varmuutta nelikoptereista …Luulen, että monet sanomani pätevät (varsinkin kun virität taajuusalueella ja sinulla on järjestelmän avoimen silmukan vaste).
  • @ dm76: Ja oikeastaan ne ” nyrkkisääntö ” PID-viritys johtaa erittäin keskinkertaiseen suorituskykyyn moottoreissa ja oletettavasti samaan nelikoptereihin. Joskus hyvin sijoitettu lovisuodatin voi tehdä suuruusluokan eron …

Vastaa

Ziegler-Nichols on helppo manuaalinen menetelmä. Vankempia menetelmiä on myös olemassa – nämä perustuvat yleensä matemaattisiin ratkaisuihin (analyyttinen, iteratiivinen optimointi jne.).

Sen lisäksi, google ”itsesäätyvä PID” joillekin automatisoiduille tekniikoille. Suosikkini on hermoverkkojen käyttö PID-virityksessä.

Vastaa

Jos haluat tarkan PID-kertoimen:

  • Hae toimilaitteen tilastotiedot (ts. kerää tulojännitteitä + kooderipulsseja konstissa usein (0.01sec) 20secs -aika 3 x 2000 -matriisina)
  • Hanki toimilaitteen siirtofunktio (TF) (käyttämällä Ident -työkalupakettia MATLAB: ssa).
  • Käytä lopuksi PIDTool -työkalupakki MATLAB: ssä ja lataa muunnosfunktio.

Tai nopeasti ja yksinkertaisesti:

On olemassa nopeampi lähestymistapa nimeltä Ziegler – Nichols : enter kuvakuvaus täällä

Ja tässä kuvassa esitellä PID-parametrien vaikutuksia :
PID-parametrien vaikutukset

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *