
Trade Media International nejen ve své mediální nabídce denně dokazuje svou snahu naplnit hlavní slogan společnosti: INspirujeme INterakci INženýrů!
Návrháři řídicích systémů chtějí co nejlepší způsob ovládání aplikace. Podívejte se na příklady a obrázky.
Každý uživatel/návrhář řídicího systému se pravděpodobně často setkává se stejnou otázkou: Jaká je nejlepší metoda regulace? Otázka metod regulace je dnes obzvláště důležitá, protože možností je mnohem více než před desetiletími. Kdysi dávno byl „zlatým“ (vlastně jediným) řešením proporcionálně-integračně-derivační regulátor (PID). Ačkoli na regulaci PID není nic špatného, v mnoha aplikacích jsou kvůli praktickým omezením vhodnější jiné metody regulace. Jaké „jiné“ metody regulace jsou k dispozici?
Tento článek se kromě klasické regulace PID zabývá optimálním řízením, fuzzy regulací a umělými neuronovými sítěmi (neboli řízením na bázi sítě ANN – Artificial Neural Networks). Omezení klasického regulátoru PID jsou patrná z analýzy typického řízeného systému (závodu). Níže uvedené příklady se zaměřují na polohový servomechanismus, který se hojně využívá v průmyslových robotech, autonomních vozidlech a mnoha dalších, nejen průmyslových aplikacích.
Pokud je řízeným systémem servomechanismus založený na stejnosměrném motoru s konstantním buzením (např. s permanentními magnety), lze jej popsat zjednodušenou přenosovou funkcí, úhlovým posunem nad napětím v s-doméně jako
Φ(s) / V(s) = K/(1 sT)sTi,
kde K představuje konstantu krouticího momentu motoru, T představuje mechanické parametry motoru J/B, kde J je celková setrvačnost včetně zátěže a B tlumení motoru, a Ti představuje integrační konstantu (určenou otáčkami motoru a převodovým poměrem).
Výše uvedená přenosová funkce představuje systém prvního řádu v kombinaci s integrátorem. Je zde použit další filtr prvního řádu, dolní propust, který má časovou konstantu ekvivalentní poměru indukčnosti a odporu vinutí motoru; tato časová konstanta je výrazně menší než dominantní konstanta T, takže ji není třeba brát v úvahu.
Pokud jste uživatel motoru, nikoli jeho konstruktér, může být jednodušší zjistit (dominantní) časové konstanty experimentálním měřením jeho odezvy v otevřené smyčce. Za tímto účelem aplikujte na servopohon určitou akční proměnnou (napětí VIN), například 50 % hodnoty, která by odpovídala maximální rychlosti servopohonu. Servo musí být plně zatíženo jako za běžných pracovních podmínek. Skenujte odezvu polohy serva a vypněte jej těsně před dosažením maximální polohy. Vynesením naměřených hodnot do grafu může vzniknout graf, který je znázorněn na obrázku 1.
Z výše uvedených charakteristik a na základě znalosti vstupní hodnoty (krokové funkce VIN, která odpovídá například 50% maximální rychlosti serva) určete konstanty T a Ti této „astatické“ přenosové funkce prvního řádu (integrátor kombinovaný se zpožděním prvního řádu) typického servosystému.
Polohovací systém servomotoru a servopohonu může využívat různé uzavřené řídicí smyčky, které jsou níže popsány pomocí rovnic, příkladů, schémat, tabulek a grafů.
Kompenzace PID je jednou z nejběžnějších forem řízení v uzavřené smyčce. Proč je tak populární? Ve většině aplikací lze řízený proces modelovat přenosovou funkcí prvního nebo druhého řádu. Regulátor PID dokáže zrušit nebo alespoň výrazně kompenzovat přesně dva póly přenosové funkce.
Přenosovou funkci regulátoru PID, (U(s))/(E(s)), v s-doméně lze vyjádřit jako
Gc (s) = KP + (KI / s) + KD s.
Nyní mějme řízený systém, který lze aproximovat astatickou přenosovou funkcí prvního řádu
Gp (s) = K / ((1 + sτ1) sτ2).
Přenosová funkce otevřené smyčky řídicího systému, (Y(s))/(E(s)), je
Proč používat PD místo PID? Nejprve si všimněte, že v úplném PID regulátoru chybí integrační část. Proč? Protože integrátor je již přítomen v řízeném servosystému. U optimálně vyladěného řídicího systému bude muset poměr KD/KP odpovídat hodnotě časové konstanty τ1, takže přenosová funkce otevřené smyčky bude redukována pouze na (KPK)/(sτ2). Přenosová funkce uzavřené smyčky ideálně vyladěného řídicího systému PD, (Y(s))/(R(s)), bude
To odpovídá jednopólové přenosové funkci s časovou konstantou τ, která se rovná τ2 / (KP K), kde τ2 je integrační časová konstanta τi, KP je proporcionální konstanta regulátoru a K je zesílení řízeného systému. Pokud však byly časové konstanty nalezeny pomocí charakteristiky odezvy, jak je znázorněno na obrázku 1, pak se hodnota zesílení (tj. konstanta K) stává 1,0. Potom se časová konstanta přenosové funkce uzavřené smyčky τ rovná τ2 / KP. To je velmi dobré, protože s přiměřeně velkou konstantou KP lze dosáhnout mnohem rychlejší časové odezvy uzavřeného řídicího systému. V praxi může „přiměřeně velká“ konstanta poskytnout 5- až 10krát rychlejší odezvu. Vyšší hodnota KP může vést k nestabilní odezvě. Nezapomeňte, že v pouze aproximovaných parametrech systému se skutečné hodnoty určitě liší.
Příklad toho, proč regulátory potřebují omezovače: Takto optimálně vyladěný regulátor P(I)D má však své nedostatky. Sledujte výstupní (akční) proměnnou regulátoru P(I)D, abyste viděli, že v prvních krocích regulačního procesu dosahuje téměř nekonečně vysokých hodnot. Ty rychle klesají, ale po relativně dlouhou dobu zůstávají vysoko nad tím, co takový řízený systém (servomechanismus) snese. Představte si, že by servomotor, který pracuje na jmenovitém přívodu 24 V, v prvních krocích dostával napětí v řádu tisíců voltů a později stovek voltů. Žádný regulátor by nedokázal řídit tak vysoké napětí, ale i kdyby to dokázal, motor by tak vysoké napětí nevydržel. Co je potřeba? Přidání omezovače do regulátoru zaručuje, že akční proměnná nikdy nepřekročí maximální hodnotu přijatelnou pro řízený systém (v tomto případě stejnosměrný motor). Konečné uspořádání PID regulace servomechanismu je znázorněno na obrázku 2.
Ke konci článku je uvedeno porovnání chování PID regulátoru s jinými typy regulátorů. Optimálně vyladěný PD regulátor s neomezenou akční proměnnou (tj. ideální regulátor) má tvar výstupní charakteristiky znázorněný žlutou barvou (obrázek 8); jeho praktická verze (s akční proměnnou omezenou na maximální přípustné hodnoty) je znázorněna červenou barvou.
Optimální řízení je předmětem rozsáhlého výzkumu již mnoho desetiletí. Některé základní myšlenky o optimálním řízení stojí za připomenutí.
Definice časově optimálního řízení s příkladem: Představte si běžný elektrický servomechanismus se stejnosměrným motorem. Úkolem je řídit servo tak, aby dosáhlo nového referenčního bodu v co nejkratším čase. Optimálně vyladěný PID regulátor by tohoto cíle nedosáhl, pokud by měl aplikovat reálnou akční proměnnou. Intuitivní reakcí by bylo přivést na stejnosměrný motor maximální přípustné napětí a nechat motor běžet na plné otáčky vpřed.
Pak v určitém okamžiku změnit polaritu napětí, aby motor začal maximálním možným tempem zpomalovat. Později, tj. v okamžiku, kdy jsou otáčky motoru nulové, napětí vypnout. Pokud se polarita napětí změní ve správnou chvíli, pak v okamžiku, kdy motor přestane běžet, bude servo přesně v požadované poloze. Tomu se říká optimální řízení. Protože je v tomto případě kritériem optimálního řízení čas, nazývá se řízení časově optimální.
Obrázek 3 vysvětluje výše popsaný proces časově optimálního řízení ve stavovém prostoru, který je v tomto případě dvourozměrným prostorem (plochou); jeden rozměr představuje výstupní proměnnou a druhý rozměr její (časovou) derivaci. V okamžiku, kdy je použita nová referenční hodnota, je výstupní proměnná posunuta podél vodorovné osy, takže představuje regulační odchylku (err), což je rozdíl mezi referenčním a skutečným výstupem. Současně je na stejnosměrný motor přivedeno maximální napětí t0. Servo opustí výchozí polohu P0 a začne zrychlovat. V čase t1 regulátor změní polaritu napětí a otáčky motoru začnou brzy klesat. V okamžiku t2, právě když se otáčky motoru vynulují a je dosaženo požadované polohy P2 , se vypne akční proměnná, napětí. Ačkoli se to zdá být jednoduché, znát tvar spínací křivky není tak snadné. Pokud je řízeným systémem servomechanismus se zjednodušenou přenosovou funkcí, je úhlový posun nad napětím v s-doméně
Φ (s) / V (s) = K / (1 + sT) sTi,
pak může mít kompletní, časově optimální řídicí systém blokové schéma podle obrázku 4.
Původ názvu regulátoru typu „bang-bang“: Toto regulační schéma je zcela odlišné od PID regulace. Jedná se o nelineární řízení, a protože druhá nelinearita N2 představuje relé zajišťující hodnotu ±U akční veličiny, nazývá se takové řízení „bang-bang“ (dvoustavové). Pokud jde o první nelinearitu N1, která představuje spínací křivku, funkce „sqrt“ (odmocnina) z regulační odchylky E poskytuje docela rozumné výsledky. V praxi je vždy obtížné najít přesnou spínací křivku; v důsledku toho může regulátor donekonečna přepínat budicí napětí mezi jeho maximem a minimem. Chcete-li tomu zabránit, zvětšete pásmo necitlivosti relé.
Ke konci článku je uvedeno, jak dobře si takový časově optimální regulátor poradí ve srovnání s jinými typy regulátorů. Funkce jeho výstupní proměnné je zobrazena světle modrou barvou (obrázek 8).
Fuzzy řízení je další nelineární metoda řízení, která může být velmi dobrým řešením pro řízené systémy, které se obtížně analyzují, nebo pro systémy, jejichž dynamické chování není v době návrhu známo.
Fuzzy řízení lze přirovnat k „suboptimálnímu“ časově optimálnímu řízení, které může poskytovat horší než optimální výsledky, i když stále mohou být velmi dobré. Více informací o fuzzy řízení a časově optimálním řízení najdete v článku časopisu Control Engineering.
V tomto konkrétním případě s řízením polohového servomechanismu lze použít následující schéma řízení (obrázek 5) s použitím fuzzy regulátoru.
Vysvětlení fuzzifikace, defuzzifikace: Fuzzy řízení lze považovat za rozšíření nebo modifikaci fuzzy logiky. V první fázi fuzzy logika převádí (v procesu známém jako fuzzifikace) „ostré“ vstupní proměnné na „fuzzy“ množiny. Ve druhé fázi tyto fuzzy množiny zpracovává. V závěrečné fázi převede (v procesu známém jako defuzzifikace) zpracované fuzzy množiny zpět na ostrou výstupní proměnnou.
Pro fuzzifikaci vstupních proměnných zvolte například sadu 5 funkcí příslušnosti ve tvaru lambda _/\_. Aby byl proces regulace lepší (jemnější), je v příkladu použito 7 funkcí příslušnosti. Pokrývají celý rozsah regulační odchylky err a její derivace der, stavových proměnných, které mohou nabývat hodnot mezi
–1000 a +1000. Mohou se nazývat: velká záporná (High-Negative – HN), střední záporná (Medium-Negative – MN), malá záporná (Low-Negative – LN), malá (Small – S), malá kladná (Low-Positive – LP), střední kladná (Medium-Positive – MP) a velká kladná (High-Positive – LP).
Pro fuzzifikaci výstupní (akční) proměnné se používá sedm podobných úrovní: plná záporná (Full-Negative – FN), střední záporná (Medium-Negative – MN), malá záporná (Low-Negative – LN), nula (Zero – Z), malá kladná (Low-Positive – LP), střední kladná (Medium-Positive – MP) a plná kladná (Full-Positive – FP).
Zpracování fuzzy množin je nejkritičtější fází fuzzy regulace. Je „řízeno“ znalostní bází fuzzy regulace. Obrázek 6 ukazuje příklad takové vhodné znalostní báze. Všimněte si, jak jsou kvantifikovány vstupní proměnné err a der. Jejich distribuční funkce nejsou rozloženy rovnoměrně; funkce příslušnosti err jsou „posouvány“ více ke středu (S), zatímco funkce příslušnosti der jsou posouvány více k nejvyšším hodnotám. Proč je takové uspořádání lepší? Odpovědí je zkoumání rozložení výstupních proměnných ve znalostní bázi. Podívejte se na nulové úrovně (Z). Jsou uspořádány tak, aby velmi přesně sledovaly výstup funkce druhé odmocniny odchylky err, což je nejlepší možná emulace spínací křivky použité v časově optimálním řízení. Dále se dozvíte, jak dobře si tento fuzzy regulátor vede ve srovnání s jinými regulátory. Oranžová barva (obrázek 8) znázorňuje tvar výstupní proměnné.
Existuje nespočet možností využití umělých neuronových sítí (ANN) v řídicích systémech. Řada z nich využívá modely řízených systémů (závodů) na bázi ANN nebo modelují jejich inverzní dynamiku, což v kombinaci s klasickými PID regulátory pomáhá vytvářet adaptivní a další, sofistikovanější řídicí systémy. Vyzkoušejte jiný přístup, a to trénováním takové ANN pro modelování spínací křivky polohového servosystému. Jak jsme se dozvěděli, nejlepšího (nejrychlejšího) pohybu servomechanismu lze dosáhnout použitím časově optimálního řízení. Nejjednodušší aproximací spínací křivky (nejkritičtější aspekt) je použití odmocninové funkce regulační odchylky. Dokonce i fuzzy regulátor byl „vyladěn“ tak, aby emuloval takovou funkci druhé odmocniny. Skutečná spínací křivka se může stále lišit od její aproximace například pomocí funkce sqrt(). Existuje způsob, jak zjistit skutečnou spínací křivku polohového servomechanismu? Odpověď zní ano. Je možné zjistit skutečnou spínací křivku polohového servomechanismu, „natrénovat“ síť ANN, aby si ji zapamatovala, a na požádání ji vygenerovala. Pokud půjdeme ještě o krok dál, je možné ANN natrénovat tak, aby převzala celý dvoustavový řídicí systém (typu „bang-bang“) (viz obrázek 4).
Spínací křivka je posloupnost hodnot dvojice err a der, při nichž regulátor servomotoru komutuje polaritu jmenovitého (maximálního) napětí, které lze na motor přivést. Tyto hodnoty zjistíte tak, že servomechanismus spustíte v otevřené smyčce (tj. bez zpětné vazby) a budete měřit a zaznamenávat jeho polohu err a jeho rychlost der. Nejprve si připravte řadu očekávaných hodnot der (otáček servomechanismu) od nejnižší po nejvyšší hodnotu. Nyní aplikujte maximální kladnou akční proměnnou (napětí +U) na motor a nechte jej běžet, dokud servomechanismus nedosáhne první očekávané hodnoty der v této sérii. Důležité: Zaznamenejte polohu serva ve stejném okamžiku jako P1 a současně přepněte akční proměnnou na hodnotu -U. V okamžiku, kdy rychlost serva (der) klesne na nulu, vypněte napětí a aktuální polohu zaznamenejte jako P2. Tento postup poskytne první dvojici souřadnic err a der (kde err = P2 – P1) prvního bodu spínací křivky. Servomechanismus musí samozřejmě pracovat plně zatížený, tj. přesně tak, jak je určen k použití.
Posloupnost souřadnic err a der představuje body spínací křivky. Pro optimální výsledky vezměte asi 50 souřadnic (párů) rovnoměrně rozložených podél osy der. Poté natrénujte vhodnou síť ANN, která bude tyto spínací body využívat ke komunikaci akční proměnné se servomechanismem. To je možné i u nejjednodušší sítě ANN s jednou skrytou vrstvou a přibližně 12 uzly. Více informací o použití ANN v řídicích aplikacích najdete v článku časopisu Control Engineering.
Obrázek 7 ukazuje tabulku výstupních hodnot, kterou lze použít k trénování ANN regulátoru. Po zachycení bodů spínací křivky má smysl trénovat ANN regulátor off-line, tj. ne přímo na fyzickém řízeném systému. Začněte od dolní (nebo horní) části zachycené řady souřadnic a pro každý jednotlivý vstup der musíte vygenerovat několik (20?) hodnot err (od –max do +max) a ke každé kombinaci souřadnic err a der zadat (na výstupu ANN) konkrétní výstupní hodnotu.
Všechny výstupní hodnoty vlevo od spínací křivky by měly odpovídat maximální záporné akční hodnotě; všechny výstupní hodnoty na pravé straně spínací křivky by měly být kladná maxima. A samozřejmě na těchto konkrétních souřadnicích err a der, které byly dříve nalezeny jako body spínací křivky, aplikujte nulové hodnoty. Čím dále jsou souřadnice err od spínací křivky, tím méně často je třeba tyto hodnoty ±U uvádět, protože výstupní plocha zde zůstává rovná: +U nebo –U.
Všimněte si, že tato tabulka trénovacích dat je velmi podobná znalostní bázi fuzzy systému (obrázek 6). Nejprve se pro trénování ANN regulátoru použije pouze horní polovina stavového prostoru (obrázek 3). Pokud se má servo pohybovat opačným směrem, regulátor ANN pouze prohodí výstupní hodnoty. Pokud se servosystém nechová identicky v obou směrech pohybu, je třeba regulátor ANN naučit chování v celém stavovém prostoru. Jak může řídicí systém založený na ANN konkurovat ostatním? Podívejte se na tvar jeho výstupní proměnné (bílá barva).
Snímek obrazovky (obrázek 8) s použitím jazyka Python ukazuje výsledky simulace servomechanismu a jeho regulátorů. Přenosová funkce servomechanismu byla aproximována jako
1 / ((1 + s100) s200), kde časové konstanty jsou v počtech vzorků. (Podrobnější vysvětlení viz článek časopisu Control Engineering: https://www.controleng.com/articles/from-simulationto-computer-aided-design-of-control-systems). Kroková funkce (požadovaná poloha servopohonu) byla generována od nuly do 800 (kde 1000 je maximum požadované polohy a akční proměnné) a později, po 1000 vzorcích, klesla z 800 na 400. Vstupní kroková funkce je znázorněna zelenou barvou.
Obrázek 8 rovněž ukazuje, jak si vedly jednotlivé řídicí systémy. Prvním byl optimálně vyladěný PD regulátor, který reagoval na krokovou funkci okamžitě. Jeho parametr KP byl nastaven na hodnotu 5. To je však skutečně pouze ideální regulace PD. Reálný, optimálně vyladěný PD regulátor s omezenou akční proměnnou se chová tak, jak ukazuje červená exponenciální křivka. V porovnání s ostatními regulátory je vlastně nejhorší (nejpomalejší). Pokud je však správně nastaven, nedochází k překmitům, což může být v určitých aplikacích velmi důležité.
Nejlepším (nejrychlejším) regulátorem byl regulátor založený na ANN (znázorněný bílou křivkou). To by nemělo být překvapivé – regulátor ANN byl natrénován k napodobování přesné spínací křivky, takže se chová jako dokonalý, časově optimální řídicí systém. Klasický, časově optimální regulátor (azurová barva) simulující spínací křivku pomocí funkce sqrt(e) si vedl o něco hůře (pomaleji). Vzhledem k jeho velmi jednoduché implementaci by neměly být žádné stížnosti na jeho výkon. Fuzzy regulátor (oranžová barva) v tomto konkrétním případě nefungoval tak dobře. Nebyl však vyladěn na nejlepší výkon (bylo provedeno pouze počáteční ladění, aby se zhruba simulovala spínací křivka), takže je zde prostor pro další zlepšení výkonu. Teoreticky by fuzzy regulátor neměl fungovat hůře než klasický, časově optimální regulátor.
Na základě tohoto příkladu je potvrzeno použití sítě ANN pro aplikace v řídicím průmyslu. Pokud systémy mění chování/parametry „za běhu“, je zapotřebí regulátor, který je k takovým změnám tolerantnější. Tolerance je to, v čem fuzzy regulátory vynikají. Mezi překvapivá zjištění patří, že klasický, časově optimální regulátor (založený na funkci sqrt()), který se na univerzitách vyučoval před více než 50 lety, stále dobře funguje.
Peter Galan, autor článku, je designer řídicího softwaru v důchodu. Upravil Mark T. Hoske, obsahový ředitel časopisu Control Engineering, CFE Media and Technology, Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript..
Control Engineering Česko je přední časopis o průmyslové automatizaci. Je vydáván v licenci amerického Control Engineering, které poskytuje novinky z této oblasti více než 60 let.
www.controlengcesko.com