Návrh konstrukce odchovny – 3. dil
16. Február, 2011, Autor článku: Pikner Michal, Elektrotechnika
Ročník 4, číslo 2
Pridať príspevok
V minulém díle jsme se seznámily s elektronickým zapojením. Popsali jsme si principy jeho jednotlivých částí. V dnešním díle se dozvíme jaký byl princip programu v mikrokontroléru a jakým způsobem probíhala identifikace odchovny.
3. Popis softwarového vybavení mikrokontroléru
3.1 Princip programu v mikrokontroléru
Pro ovládání všech periférii mikrokontroléru je zapotřebí napsání správného programu, který bude plnit předem požadované funkce. Zdrojový kód je napsán v jazyce c za pomocí programového prostředí AVR studia a WinAVR. Program do mikrokontroléru je nahrán pomocí vývojového a ladicího kitu AVR DRAGON přes rozhraní JTAG.
Obr. 1. Vývojový kit AVR DRAGON
Celý program je rozdělen do několika knihoven. Hlavním programu začíná definicí a deklarací proměnných, nastavení funkcí vstupně výstupních portů a načítáním uložených dat z EEPROM. Inicializuji se jednotlivé periferie od položek menu, uart komunikace, senzoru, LCD displeje až po časovače. Poté je povoleno přerušení a program vstupuje do nekonečné smyčky, ve které se obsluhují jednotlivé periférie.
Běh programu v hlavní smyčce je řízen pomocí časovače TIMER2, který vyvolává přerušení 0,001s. Toto přerušení se využívá ke kontrole hodnoty pinů, na nichž jsou připojeny tlačítka pro menu a také pro zvolenou periodu běhu programu v hlavní smyčce. Hodnota tohoto přerušení je vynásobena tisíckrát a tím získáme periodu rovnu 1s. První funkce volaná v hlavní smyčce je reset komunikace SHT senzoru. Poté proběhne měření teploty, vlhkosti a následuje přepočet dat do reálných hodnot. Další část kódu obsahuje dva PI regulátory, kterými je řízena vlhkost a teplota vzduchu. Návrh těchto regulátoru bude popsán níže. Vypočtený akční zásah PI regulátoru pro vlhkost je uložen do registru OCR0, který nám řídí pulzní šířkovou modulaci.
Jelikož je registr OCR0 o velikosti 1Byte je akční zásah v rozmezí 0 až 255. Akční zásah PI regulátoru pro teplotu je v rozmezí 0-100% a je zpracován v obsluze přerušení od vstupu z obvodu na obrázku. Z této hodnoty se v tomto přerušení se zpracovává doba, jak dlouho má být nastaven pin obsluhující zapínání triaku. Každý regulátor má svou vlastní periodu vzorkování, která se počítá z počtu průběhů hlavní smyčky. Oba regulátory mají zavedenou saturaci.
Komunikace po UART je také uložena v hlavní smyčce a kontroluje, jestli byl přijat datový rámec. Pokud ano, tak je proveden kontrolní součet. Jestli kontrolní součet nesouhlasí, odešle se datový rámec o chybě. Pokud souhlasí, jsou přijatá data zpracována a pomocí podmínek je provedena odpověď. Princip a tvary datových rámců budou popsány níže.
Poslední částí programu je posílání dat na displej. Pokud nebyly zmáčknuty tlačítka pro menu, tak se každou sekundu přepisují data na displeji. Jsou zde zobrazeny žádané i naměřené hodnoty teploty a vlhkosti. Při vstupu do menu, jsou na výběr tři položky a to: nastavení žádané teploty, nastavení žádané vlhkosti a položka zpět. Přepínání mezi položkami je umožněno horizontálními tlačítky. Pomocí vertikálních tlačítek se nastavují žádané hodnoty nebo se potvrzuje položka zpět.
3.2 Princip skládání a tvarů datových rámců
Všechny datové rámce se skládají z ASCII znaků, jsou zakončeny terminátorem „\r\n“ a kontrolním součtem. Každé číslo je převedeno na tvar ve formátu IEEE 754 do 4bytové podoby a poté v hexadecimálním tvaru převedeno postupně nybble po nybble na znaky ASCII. Pro komunikaci s PC slouží následující datové rámce.
3.2.1 Datový rámec pro nastavení akčního zásahu
Tab. 1: Datový rámec pro změnu akčního zásahu
uX | Data | CRC |
Datový rámec začíná znaky ‘uX’, kde X představuje znak T pro teplotu a H pro vlhkost. Následuje hodnota 0-100 nebo 0-255 představující akční zásah. Tato hodnota je pouze celé číslo, proto se nepřevádí do formátu IEEE 754. Datový rámec je zakončen kontrolním součet a je možné ho použít k identifikaci odchovny.
3.2.2 Datový rámec pro příjem dat
Tab. 2: Datový rámec pro zasílání dat z mikrokontroléru do PC
D | Data | CRC |
Znak ‚D’ říká mikrokontroléru, že má odeslat data. Požadované druhy dat pro příjem jsou poslány v jednom bytu do mikrokontroléru ve formátu v Tab. 3. Mikrokontrolér přijme byte a podle nahozených bitů odešle požadované data zpět do PC.
Tab. 3: Formát zasílaného bytu
eH(k) | eT(k) | wH(k) | wT(k) | uH(k) | uT(k) | yH(k) | yT(k) |
3.3 Program pro komunikaci
V prostředí MATLAB byl napsán jednoduchý program pro komunikaci s odchovnou. Je uložen ve formátu M-file. Obsahuje konfiguraci parametrů sériového portu COM1 s přenosovou rychlostí 9600Bd, 1 stop bitem, 8 datovými bity, bez parity a zakončení datového rámce terminátorem ‚\r\n‘. U objektu sériové linky je nastavena obsluha událostí jako funkce vyvolaná při obdržení terminátoru v Rxbufferu. Tato funkce čte data s RxBufferu a kontroluje crc součet. Pokud součet souhlasí, převede data z IEEE754 do float a uloží je do pole. Jestli crc nesouhlasí nebo jestli byl obdržen error, pak pošle poslední žádost na data znovu.
Po přijetí všech požadovaných dat jsou data vykreslena pomocí funkce Plot. Pro posílání dat je nadefinován objekt Timer s funkcí pro obsluhu událostí. Tato funkce je zavolána pokaždé, když je časovač roven zadané periodě a posílá zadaný datový rámec do mikrokontroléru. Perioda časovače se volí vetší jak 1s protože hlavní smyčka mikrokontroléru má periodu rovnu 1s. Díky tomuto programu jsme schopni jednoduše přijímat data z odchovny.
4. Identifikace a praktické ověření odchovny
4.1 Identifikace odchovny
Systém odchovny je tvořen dvěma vstupy akčních zásahů. Pro změnu teploty to je u_T(k) a pro změnu vlhkosti u_H(k). Výstupní měřitelné veličiny systému jsou teplota y_T(k) a vlhkost y_H(k) uvnitř odchovny. Identifikace proběhla za pokojových podmínek pro každou měřenou veličinu.
Obr.2. Blokové schéma dvourozměrného systému odchovny
Změna teploty se uskutečňuje pomocí spínání triaku v nule. Její akční zásah je v intervalu 0-100 po kroku 1. Změna vlhkosti se uskutečňuje pomocí změny otáček ventilátoru s využitím pulzní šířkové modulace s akčním zásahem v intervalu 0-255 po kroku 1. Při identifikaci celé soustavy byly naměřeny statické charakteristiky, které nám udávají, jakých hodnot dosáhne soustava po ustálení přechodového jevu v závislosti na vstupním signálu. Základní dynamické vlastnosti systému jsou určeny z přechodových charakteristik, což jsou odezvy systému na skokovou změnu akční veličiny. Tyto charakteristiky nám určují rychlost a tvar průběhu dané veličiny uvnitř odchovny.
Na obrázku (Obr. 3) je vidět závislost teploty v prostoru odchovny na změně akčního zásahu topného tělesa při změně otáček ventilátoru vlhkosti.
Obr. 3. Závislost teploty v prostoru líhně na akčním zásahu topného tělesa a akčním zásahu otáček ventilátoru.
Pro akční zásah otáček ventilátoru rovný nule, byla vykreslena statická charakteristika pro teplotu v odchovně. Z grafu (Obr. 4) je vidět, že je statická charakteristika téměř lineární, proto pro identifikaci z přechodové charakteristiky byl zvolen skok akčního zásahu topného tělesa ze 40 na 60%.
Obr. 4. Statická charakteristika teploty ve vnitřním prostoru odchovny při nulovém akčním zásahu ventilátoru.
Statická charakteristika změny vlhkosti ve vnitřním prostoru odchovny je zobrazena na obrázku (Obr. 5) na němž je vidět jak akční zásah topného tělesa ovlivňoval vlhkost. Z naměřených přechodových charakteristik byla vykreslena prostorová statická charakteristika závislosti vlhkosti v prostoru líhně na akčním zásahu ventilátoru a akčním zásahu topného tělesa. Na obrázku (Obr. 6) je zobrazena jedna statická charakteristika vlhkosti při ustálené teplotě o akčním zásahu topného tělesa 40%. Jak je patrné tak statická charakteristika vlhkosti je značně nelineární. Pro identifikaci z přechodové charakteristiky byla zvolena skoková změna z 0 na 25 při akčním zásahu topného těles na 20%.
Obr. 5. Závislost vlhkosti v prostoru líhně na akčním zásahu ventilátoru a akčním zásahu topného tělesa.
Obr. 6. Statická charakteristika vlhkosti ve vnitřním prostoru odchovny při 40% akčním topného tělesa.
Naměřené přechodové charakteristiky teploty i vlhkosti byly vzorkovány po intervalech 1s a posunuty do počátku souřadnicového systému jak je vidět na obrázcích (Obr. 7) a (Obr. 8). Celkový čas pro naměření u obou charakteristik byl 20000s a 700s.
Obr. 7. Přechodová charakteristika teploty
Obr. 8. Přechodová charakteristika vlhkosti.
U obou přechodových charakteristik je patrné, že se jedná o soustavu prvního řadu bez dopravního zpoždění. Přenos obou soustav má tvar:
(1) |
Na naměřené přechodové charakteristice si zvolíme bod A a odečteme hodnoty tA a yA jak je vidět na obrázku (Obr. 9).
Obr. 9. Přechodová charakteristika soustavy prvního řádu
Zesílení soustavy K určíme pomocí vzorce (2) a časovou konstantu T pomoci vzorce (3)
(2) |
(3) |
Pro přechodovou charakteristiku teploty byly určeny hodnoty tA=4000s, yA=5,55°C a ∆y(t)max=9,75°C, z nichž byla určena časová konstanta T=4750s.Zesílení soustavy je K=0,4875.
Pro přechodovou charakteristiku vlhkosti byly určeny hodnoty tA=60, yA=9,9177% a ∆y(t)max=19.0773%, z nichž byla určena časová konstanta T=81.78. Zesílení soustavy je K=0,7631.
Obě vypočtené hodnoty z obou charakteristik, byly použity jako počáteční hodnoty pro funkci FMINSEARCH z prostředí MATLAB, která hledala nejmenší plochu mezi naměřenou a identifikovanou odezvou systému. Výsledkem této funkce jsou přenosy v následujícím tvaru. Pro teplotu:
(4) |
(5) |
Průběhy naměřených a identifikovaných soustav jsou na obrazcích (Obr. 10) a (Obr. 11).
Obr. 10. Srovnání naměřené a vypočtené přechodové charakteristiky teploty
Obr. 11. Srovnání naměřené a vypočtené přechodové charakteristiky vlhkosti
V posledním díle bude popsána použitá metoda regulace a její ověření v praxi.