Kuczmann Miklós

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


Egyszerű jelgenerátor R-2R létrahálózattal.

A legegyszerűbb átalakító az I.18. ábrán felvázolt kétbites hálózat, amely csupán az és feszültségforrásokból, továbbá három és egyetlen ellenállásból épül fel. A kimeneti feszültség a következő:
 
 
A D/A átalakító kimenete az és feszültségek súlyozott összege, ahol a súlyok ½ hatványai. Az és feszültségek értéke 0 V vagy 5 V, attól függően, hogy a bináris jelsorozat 0 vagy 1 értékű. Ennek az átalakítónak a felbontása természetesen nagyon csekély, ¼, ahogy azt az I.19. ábrán is látható oszcilloszkóp képernyőn felrajzolt szinuszos jele mutatja. A közelítő jelnek csupán négy kvantumnak megfelelő értéke lehet.
 
 
I.19. ábra. Szinuszjel közelítő előállítása 2 bites D/A átalakítóval.
 
 
A négybites átalakító értelemszerűen két újabb létrafokkal bővül (I.20. ábra), melynek kimeneti feszültsége:
 
 
Az általános bites átalakító formulája az alábbi:
(I.5)
 
I.21. ábra. Szinuszjel közelítő előállítása 4 bites D/A átalakítóval.
 
I.22. ábra. Szinuszjel közelítő előállítása 8 bites D/A átalakítóval.
 
Az I.21. ábrán látható oszcilloszkópról mentett kép mutatja a 4 bites átalakító által generált közelítő szinuszos jelet. A jelalakon megszámlálható a 16 kvantum, a 16 lépcsőfoknak megfelelően. A nyolcbites átalakító által generált jel az I.22. ábrán már 256 felosztást tartalmaz.
A mintavételes jelgenerátort megvalósító kód az alábbiak szerint implementálható.
A létrahálózatban szereplő feszültségeket (0 V vagy 5 V) a digitális kimenetek kapcsolásával elő lehet állítani. Erre alkalmas a regiszter, amely egyszerre kapcsol több digitális kimenetet. Ez gyorsabb kapcsolást biztosít, mint a kimenetek függvények sorozatával való manipulálása.
A jelgenerátor bites és mintát generál egy periódusban. A kvantált szinuszos jel a tömbbe kerül. Ezt a második ciklus tölti fel. A változó a felbontás.
A jel 0,5 eltolással (offset) rendelkezik, hogy az előálló jel értéke ne legyen negatív.
A függvényben felismerhető a megszakítás definiálása. Az első ciklus a digitális kimeneteket nullázza.
Az függvény a megszakítás által kerül meghívásra, itt 2 kHz frekvenciával. Ez adja ki a 8 bites értéket és lépteti a számlálót.
Fontos, hogy az függvény tartalma minél rövidebb legyen, pontosabban hogy az itt elvégzendő műveletek biztosan beleférjenek egy mintavételi periódusba.
A függvény ebben a példában üres.
 
#define n 8
#define N 200
 
int Signal[N];
 
unsigned long counter;
 
void setup(){
float quant=1/(pow(2,n)-1);
int signal;
 
cli();
TCCR0A = 0;
TCCR0B = 0;
TCNT0 = 0;
OCR0A = 124; // = (16*10^6) / (2000*64) - 1 (<256)
TCCR0A |= (1 << WGM01);
TCCR0B |= (1 << CS01) | (1 << CS00);
TIMSK0 |= (1 << OCIE0A);
sei();
 
for(int i=0;i<n;i++){
pinMode(i,OUTPUT);
digitalWrite(i, LOW);
}
for(int i=0;i<N;i++){
signal = (int)round((0.5+0.5*sin(2*PI*1*(float)i/(float)N))/quant);
Signal[i] = signal;
}
 
counter = 0;
}
 
ISR(TIMER0_COMPA_vect) {
PORTD = Signal[counter];
 
counter++;
if (counter==N){
counter=0;
}
}
 
void loop(){
}
 
A 2 kHz-es mintavételi frekvencia mintavételi periódusidőt jelent. Az minta tehát , ami az I.22. ábrán látható fotón is leolvasható, mert egy osztás , a generált szinuszos jel frekveciája tehát 10 Hz. A jel amplitúdója 2,5 V.
A mintavételezés frekvenciájával és a generált mintaszámmal a jel frekvenciája változtatható. Erre a II.5.4. fejezetben tárgyalt példa kapcsán még visszatérünk.

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