Kuczmann Miklós

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


IV.1.5.3. Másodrendű rendszer folytonos idejű átviteli függvényének identifikálása.

A (IV.15) átviteli függvényekben szereplő paramétereket a Matlab függvényével meg lehet határozni. A minimalizálandó hiba a keresett átviteli függvény segítségével számított válaszjel (szögsebesség, áram) és a mért időfüggvények különbségeként áll elő. A számított szögsebesség és áram az alábbi állapottérmodell megoldásaként számítható:
 
(IV.18)
 
ahol és fiktív állapotváltozók, pedig a modell kimenete. A kimeneti vektor választással a szögsebességet, választással az áramot adja. Az és fiktív állapotváltozóknak ilyen értelemben nincs fizikai tartalma.
Az függvény meghívása mellett a következőképp néz ki:
 
[x,fval] = fminsearch(@motormodell,[10 100 1000],[],t,9.82,w)
 
Itt és egy-egy vektor a mért szögsebesség és az időpillanatok rögzített értékeivel (l. IV.2. táblázat). A érték a 250-es PWM-értékhez tartozó feszültség voltban kifejezve (l. IV.1. táblázat). A hármas a , és paraméterek inicializálására szolgál.
A függvény a számított szögsebesség (, ahol a fordulatszám) és a mérésből adódó szögsebesség közti különbséget, azaz a minimalizálandó hibát adja. A motor működését leíró differenciálegyenlet a függvényben foglal helyet. A függvények az alábbiak szerint implementálhatók:
 
function f = motormodell(x,t,Ua,w)
delta = x(1);
epsilon = x(2);
alfa = x(3);
 
[T,Y] = ode45(@motor_2,[t(1) t(end)],[0 0],[],delta,epsilon,Ua);
y1 = alfa*interp1(T,Y(:,2),t);
f = sum(abs(y1-w));
 
function dx = motor_2(t,x,delta,epsilon,Ua)
dx(1,1) = -delta*x(1) - epsilon*x(2) + Ua;
dx(2,1) = x(1);
 
Másik lehetőség, amikor a kimenetet is használjuk, ekkor a következő függvényhívást kell eszközölni:
 
[x,fval] = fminsearch(@motormodell,[10 100 1000 200 1],[],t,9.82,w,i)
 
A , és vektorok a mért szögsebesség, áram és az időpillanatok rögzített értékeit tartalmazzák (l. IV.2. táblázat). A érték szintén a 250-es PWM-értékhez tartozó feszültség (l. IV.1. táblázat). A vektor a , , , és paraméterek kezdőértékei.
A függvény itt nemcsak a számított és a mért szögsebesség közti különbséget adja vissza, hanem a számított és a mért áramok közti különbséget is felhasználja a hibaképzésben. A motor működését leíró differenciálegyenlet függvénye változatlan. A függvények az alábbiak szerint implementálhatók:
 
function f = motormodell(x,t,Ua,w,i)
delta = x(1);
epsilon = x(2);
alfa = x(3);
beta = x(4);
gamma = x(5);
 
[T,Y] = ode45(@motor_2,[t(1) t(end)],[0 0],[],delta,epsilon,Ua);
y1 = alfa*interp1(T,Y(:,2),t);
y2 = beta*interp1(T,Y(:,1),t) + gamma*interp1(T,Y(:,2),t);
f = sum(abs(y1-w)) + sum(abs(y2-i));
 
A fenti két programmal számított paraméterek az alábbiak:
 
 
azaz
 
 
Érdemes ezeket összevetni az előző pontban kapott átviteli függvényekkel. Az átviteli függvény a Matlab függvényével adható meg: .
A másodrendű rendszer átviteli függvényéből és a fizikai paraméterekkel számított átviteli függvényből az alábbi villamos időállandókat kapjuk: , illetve . A mechanikai időállandók a következők: , illetve . Látható, hogy a villamos időállandó nagyjából tizede a mechanikai időállandónak.
 

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