Kuczmann Miklós

Lineáris rendszerek és szabályozások Arduino UNO mikrovezérlővel


IV.2.5.9. Diszkrét idejű PID-szabályozók tervezése

A szakasz folytonos idejű átviteli függvényének megfelelő egységugrás-ekvivalens diszkrét idejű átviteli függvény a Matlab utasításával számítható:
 
Ts = 1/10;
WP_DI = c2d(WP,Ts);
 
Tapasztalataink szerint 10 Hz mintavételi frekvenciát célszerű választani a megépített szerkezet viselkedése miatt: kicsi mintavételi frekvencián (például 5 Hz) a rúd mozgása túlságosan darabos, ami nagy hibát eredményez a szabályozásban; nagyobb mintavételi frekvencián (például 20 Hz) a mozgás túl gyors, remegő, a labda esetenként pattog a rúdon, ami szintén kerülendő. A 10 Hz-es mintavétel mellett a rúd nem rángat, a labda nem pattog, a mozgás sebessége is megfelelő a szabályozáshoz. Ezek után, mintavételi periódusidő mellett kapjuk, hogy
 
 
A szakasz átviteli függvényének diszkrét idejű Bode-diagramja szaggatott vonallal a IV.43. ábrán látható.
 
IV.43. ábra. A szakasz és a felnyitott kör Bode-diagramja mintavételes PD-szabályozó és PID-szabályozó esetében.
 
A P- és a PI-szabályozókkal a folytonos idejű vizsgálatoknál szerzett tapasztalatok értelmében itt nem foglalkozunk.
A diszkrét idejű PD-szabályozó átviteli függvénye
 
(IV.81)
 
konkrétan a folytonos idejű szabályozó paraméterét használva
 
 
aminek szerint az alábbi differenciaegyenlet felel meg:
 
 
A erősítés a felnyitott kör átviteli karakterisztikájának Bode-diagramja alapján határozható meg a folytonos idejű szabályozó tervezésével analóg módon (IV.43. ábra). A felnyitott kör fáziskarakterisztikája maximális értékéhez tartozó körfrekvenciánál választjuk meg az amplitúdókarakterisztika értékét egységnyinek, meghatározva ezáltal az vágási körfrekvencia értékét is. A fáziskarakterisztikán ezt a pontot külön megjelöltük. A konkrét értékek a IV.8. táblázatban találhatók. A tervezést Matlab környezetben végezzük:
 
WC1_DI = tf(-1*[1 -exp(-Ts/TD)],[1 0],Ts); % PD
WC2_DI = tf(-1*conv([1 -exp(-Ts/TI)], ... % PID
[1 -exp(-Ts/TD)]),conv([1 -1],[1 0]),Ts);
 
[mag,phase,w] = bode(WC_DI*WP_DI); % WC_DI=WC1_DI vagy WC_DI=WC2_DI
[ph,i] = max(phase(1:end-1));
K = 1/mag(i)
WC_DI = K*WC_DI
 
A mikrovezérlőben a hibaszámítást követően a szabályozójelet a következő programrész állítja elő:
 
u = -22.6*error+20.45*error_old;
error_old = error;
 
IV.8. táblázat. A mintavételes PD- és PID-szabályozókkal kapott adatok összefoglalása.
Szabályozó
K
PD
2
,85
54
,48
22
,6
PID (1)
4
,59
39
,56
39
,09
PID (2)
3
,94
42
,04
32
,85
 
A diszkrét idejű PID-szabályozó átviteli függvénye
 
(IV.82)
 
A folytonos idejű szabályozó paramétereit használva
 
 
aminek az alábbi differenciaegyenlet felel meg:
 
 
A szabályozó erősítésének tervezése a PD-szabályozó erősítésének meghatározásával megegyező módon történik (végeredményt (1) jelzéssel l. a IV.8. táblázatban).
A folytonos idejű PID-szabályozóhoz hasonlóan a diszkrét idejű PID-szabályozóhoz is nagyobb vágási körfrekvenciaérték tartozik, vagyis a PID-szabályozó a PD-szabályozónál gyorsabb működést biztosít mintavételes esetben is. A folytonos idejű modellnél említett okok miatt célszerű a választással implementálni a szabályozót (l. a (2) jelzésű PID-szabályozót a IV.8. táblázatban):
 
 
aminek az alábbi differenciaegyenlet felel meg:
 
 
IV.44. ábra. A mintavételes PD-szabályozó állandósult állapotban nagy hibával követi a referenciajelet.
 
IV.45. ábra. A PID-szabályozó stabil és pontos irányítást tesz lehetővé.
 
A mikrovezérlőben mindezt a következő programrészlet realizálja:
 
u = u_old-32.85*error+60.04*error_old-27.44*error_old2;
u_old = u;
error_old2 = error_old;
error_old = error;
 
A IV.44. ábrán és a IV.45. ábrán a folytonos idejű rendszer vizsgálatakor bemutatotthoz hasonló módon a 80 mm, 120 mm és 160 mm referenciajelre adott mért és számított ugrásválaszok összehasonlítása látható a PD-szabályozásra és a PID-szabályozásra. A szabályozások viselkedése értelemszerűen hasonló a folytonos idejű megoldásokhoz: a PD-szabályozó a tényleges fizikai rendszeren pontatlan eredményt ad maradó statikus hibával, habár a stabilizálást a zárt kör megoldja; a PID-szabályozó a fizikailag megépített rendszeren is pontos statikus válaszjelet szolgáltat. Az utóbbi zárt szabályozási kör itt is nem minimumfázisú rendszerként viselkedik, jelentősen lassítva a szabályozást.
A PID-szabályozás jelen berendezésnél megismert hátránya miatt rátérünk a kaszkádba kapcsolt PI-PD-szabályozó mintavételes megvalósítására, amely a IV.46. ábrán látható. A rendszer a folytonos idejű szabályozóhoz hasonló módon néz ki: a belső zárt kört a szakasz és a negatívan visszacsatolt diszkrét idejű PD-szabályozó alkotja; efelett egy szintén negatívan visszacsatolt diszkrét idejű PI-szabályozó áll a külső zárt körben. A belső kör felel a stabilizálásért, a külső kör pedig ezt pontossá teszi.
 
IV.46. ábra. A kaszkád PI-PD-típusú szabályozást megvalósító zárt szabályozási kör.
 
A belső kör szabályozója ugyanaz a diszkrét idejű PD-szabályozó, amelynek paramétereit fentebb már behangoltuk:
 
 
A belső kör (IV.80) átviteli függvénye alapján tervezhető a külső PI-szabályozó időállandóval:
 
 
a erősítést előírt fázistartalékra tervezve:
 
 
ekkor és , . A kaszkád szabályozó külső köre a Bode-diagram segítségével az alábbi átviteli függvényekkel tervezhető Matlab környezetben:
 
WCL_DI = c2d(WCL,Ts);
WC_kulso_DI = tf(1*[1 -exp(-Ts/TI)],[1 -1],Ts);
bode(WC_kulso_DI*WCL_DI);
 
Az így előálló kaszkád PI-PD-rendszer már nem mutatja a IV.39. ábrán látható hátrányos viselkedést. A 80 mm, 120 mm és 160 mm referenciajelre adott mért és számított ugrásválaszok a IV.42. ábrán láthatóak.
A kaszkád szabályozást megvalósító programsorok az alábbiak, ahol a változókat is frissítjük:
 
error = Ref-r/1000.0;
Ref1 = Ref1_old+0.8453*error-0.6838*error_old;
error1 = Ref1-r/1000.0;
u = -22.6*error1+20.45*error1_old;
 
Ref1_old = Ref1;
error_old = error;
error1_old = error1;
 
IV.47. ábra. A kaszkád PI-PD-szabályozó stabil és pontos irányítást tesz lehetővé.
 

Lineáris rendszerek és szabályozások Arduino UNO mikrovezérlővel

Tartalomjegyzék


Kiadó: Akadémiai Kiadó

Online megjelenés éve: 2026

ISBN: 978 963 664 238 9

A könyv a lineáris rendszerek és lineáris szabályozások témaköreit dolgozza fel azzal a céllal, hogy az elméleti ismereteket egyszerűen kivitelezhető gyakorlati problémák megoldásával támassza alá, különös hangsúlyt fektetve ezért az Arduino UNO mikrovezérlő használatára. Fontos célunk, hogy a bemutatott demonstrációs eszközök egyszerűen kivitelezhetőek legyenek, így az eredmények könnyen rekonstruálhatóak, ugyanakkor jó alapot biztosítanak a továbblépéshez, bonyolultabb berendezések építéséhez, és az elmélet helyes alkalmazásához.

Az első rész a felhasznált hardvereket és szoftvereket mutatja be. A Matlab alapvető jelentőségű rendszerek analízisében, szabályozások tervezésében, és a különféle szimulációkban. A könyvbeli példákat Matlab környezetben dolgoztuk ki. Ezek bemutatása nagyon részletes, a példák nagyban segítik az elmélet megértését. Az Arduino UNO mikrovezérlőre és a hozzá kapcsolható egyéb hardverekre egyszerűségük és kedvező áruk miatt esett a választás. A Matlab környezetben tervezett szabályozókat, illetve a méréseket ezzel a mikrovezérlővel valósítjuk meg.

Számos nagyon jó könyv létezik, amelyek a szükséges mélységben vezetik be az Olvasót a Jelek és rendszerek, illetve a Szabályozástechnika témakörökbe. Néhányat a könyv végén található irodalomjegyzékben megadunk. Szándékosan csak magyar nyelvű könyveket sorolunk itt fel, a témakör hazai és nemzetközi irodalma óriási.

A második részben a Jelek és rendszerek témakörét dolgozzuk fel, ahol az elméleti háttér mellett illusztratív példákat hozunk, melyek segítségével könnyebben érthetővé válnak a tárgyalt fogalmak és módszerek. A témában számos kiváló irodalom fellelhető, melyekre hivatkozva tömör összefoglalását adjuk a témakörnek.

A harmadik rész a Szabályozástechnika területét járja körbe, ismét csak nagyon tömören, a klasszikus PID szabályozóktól az állapottér alapú szabályozásokig mutatjuk be a módszereket. Az elméleti alapokat egy konkrét példa illusztrálja.

A negyedik rész két esettanulmányt tárgyal nagyon részletesen. Az első egy egyenáramú motor, melynek modellezését, paramétereinek méréseken alapuló identifikálását és fordulatszámának szabályozását mutatjuk be. A másik egy instabil rendszer, egy lejtőn guruló golyó stabilizálását valósítja meg. Elvégezzük a demonstrációs eszközök aprólékos matematikai modellezését, a szabályozási körök elméleti tervezését, majd gyakorlati megvalósítását.

Reményeink szerint a könyv az Olvasó segítségére lesz a lineáris rendszerek és szabályozások megismerésében, valamint gyakorlatban való alkalmazásukban. A könyv jól használható az egyetemi mérnöki és informatikus oktatásban, különösen a témakörbe vágó szakdolgozatok, diplomamunkák és a hallgatói kutatómunka területén.

A közölt mintaprogramok szabadon felhasználhatók, továbbfejleszthetők.

Hivatkozás: https://mersz.hu/kuczmann-linearis-rendszerek-es-szabalyozasok-arduino-uno-mikrovezerlovel//

BibTeXEndNoteMendeleyZotero

Kivonat
fullscreenclose
printsave