Kuczmann Miklós

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


II.5.4.1. Időtartománybeli analízis.

A hálózat egyenlete egyszerűen felírható a huroktörvény segítségével:
 
 
ahol a három feszültség az ellenálláson és a kondenzátoron eső feszültség, illetve a forrásfeszültség. A kondenzátoron eső feszültség adja a kimeneti feszültséget: . A három elem árama megegyezik a soros kapcsolás miatt, továbbá a kondenzátor karakterisztikája , így a huroktörvény a argumentum elhagyását követően felírható, mint
 
 
ahonnan
 
 
a hálózat állapotváltozós leírása.
Az
 
 
felírásban
 
 
A differenciálegyenlet megoldását itt is a Laplace-transzformáció segítségével végezzük. A differenciálegyenletet transzformálva kapjuk a kondenzátor feszültségének Laplace-transzformáltját:
 
 
ahol a gerjesztőjel, a kimeneti jel Laplace-transzformáltja. Ha a rendszer bemenőjele például egy szélességű négyszögimpulzus, aminek Laplace-transzformáltja , akkor a kimenőjel Laplace-transzformáltja
 
 
azaz a kimeneti feszültség időfüggvénye
 
 
A hálózat sajátértéke és időállandója és .
 
 
A II.15. ábrán látható kapcsolást a II.16. ábrán látható fénykép szerint valósíthatjuk meg. A négyszögjelet egyszerűen a 8. digitális kimenet kapcsolgatásával állítjuk elő. A kapcsolás bemeneti és kimeneti feszültségét az és analóg bemeneteken mérjük.
A méréshez készített Arduino programkód két megszakítást használ. A segítségével négyszögjelet állítunk elő, amivel gerjesztjük a soros RC-kört, a segítségével pedig mérjük a bemeneti és a kimeneti feszültséget. A soros RC-kör egy rezisztenciájú ellenállásból és egy kapacitású kondenzátorból áll, a hálózat időállandója így . Emiatt a négyszögjel periódusidejét értékűnek választva a kondenzátor feltöltődése és kisülése, azaz a rendszer dinamikája jól látható (egy félperiódus így ).
A 2 kHz frekvencián, a 5 Hz frekvencián végez megszakítást. A program két periódust mér, de csak a második adatait menti a tömbökbe. Ezeket aztán a soros porton keresztül adja a felhasználó kezébe. A végeredmény a II.17. ábrán látható, ahol karikákkal jelöljük a ténylegesen mért adatokat.
A megszakítások beállítása további beállítások mellett a függvényben történik, az alábbi módon:
 
void setup(){
cli();
// Jelgenerálás megszakításának beállítása
TCCR2A = 0;
TCCR2B = 0;
TCNT2 = 0;
OCR2A = 124;
TCCR2A |= (1 << WGM21);
TCCR2B |= (1 << CS21) | (1 << CS20);
TIMSK2 |= (1 << OCIE2A);
 
// Mérés mintavételezésének beállítása
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 3124;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS12) | (1 << CS10);
TIMSK1 |= (1 << OCIE1A);
sei();
 
pinMode(8, OUTPUT);
// A négyszögjel periódusideje 10s:
T = 10*1000000;
t = 0;
n = 0;
i = 0;
 
Serial.begin(9600);
}
 
Az utolsó négy változó típusú.
A négyszögjel generálása a által végzett megszakítással az alábbi függvény segítségével végezhető el, amely a 8. digitális kimenetet kapcsolgatja (5 V) és (0 V) érték között:
 
ISR(TIMER2_COMPA_vect){
t = micros() - n;
if (t > T) {n += T;}
if (t<=T/2){digitalWrite(8,HIGH);}
else{ digitalWrite(8,LOW);}
}
 
Az és jelek mintavételes mérése a által végzett megszakítással az alábbi függvény segítségével végezhető el:
 
ISR(TIMER1_COMPA_vect){
if ((i>=N) && (i<2*N)){
ido[i-N] = millis();
U1[i-N] = 5.0/1024.0*analogRead(A0);
U2[i-N] = 5.0/1024.0*analogRead(A1);
}
i++;
}
 
A programrészlet a második periódust menti el, az változó értéke itt 50, továbbá
 
unsigned int ido[N]; // Időpillanat tárolása
float U1[N]; // Mért bemenőfeszültség tárolása
float U2[N]; // Mért kimenőfeszültség tárolása
 
Végül a mentett értékeket soros porton keresztül küldjük a számítógépre további felhasználás céljából (l. II.17. ábra):
 
void loop(){
if (i==2*N){
for (int j=0;j<N;j++){
Serial.print(ido[j]); Serial.print(",");
Serial.print(U1[j]); Serial.print(",");
Serial.print(U2[j]); Serial.print("\n");
}
i++;
}
}
 
II.17. ábra. A soros RC-kör bemeneti és kimeneti feszültségének mintavételezéssel mért időfüggvényei.
 
A kondenzátor feltöltődésének tranziense az
 
 
időfüggvény szerint történik. Az időállandó definíciója értelmében a időpillanatban az időfüggvény helyettesítési értéke . Ezen információ birtokában az elsőrendű rendszer időállandója az időfüggvényről közvetlenül leolvasható, a érték ugyanis az időállandónak megfelelő időpillanatnak felel meg. A időpillanatot a II.17. ábrán ki is emeltük.
 

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