Funkcjonowanie i budowa modelu układu regulacji temperatury Jakub Rotkiewicz AIR 2018
Opis i przeznaczenie układu Przedmiotem prezentacji jest układ regulacji umożliwiający utrzymywanie temperatury na zadanej wartości. Regulacja odbywa się poprzez regulator PID. Mózgiem całego układu jest mikrokontroler Arduino Leonardo steruje on wykonywanymi procesami i ich kolejnością. Obiektem regulacji jest moduł Peltiera konkretnie jego zimna strona, gdyż sygnał regulujący powoduje jedynie chłodzenie, grzanie układu następuje samoczynnie, pod wpływem temperatury otoczenia. Przetwornik temperatury to bardzo popularny DS18B20 z możliwością podłączenia One-Wire. Wielkości mierzone w układzie to temperatura oraz napięcie, które jest podawane na moduł Peltiera. Układ ma na celu pokazanie działania oraz funkcjonalności takiego systemu. Jest to model prototypowy.
Arduino Leonardo Arduino platforma elektroniczna, bazująca na prostym w użyciu, ogólnodostępnym sprzęcie i oprogramowaniu Mikrokontroler mały komputer na pojedynczym układzie scalonym. Zawiera jeden lub więcej procesorów, pamięć i programowalne wejście/wyjście do urządzeń peryferyjnych. Leonardo w układzie regulacji jest podmiotem odpowiedzialnym za wykonywanie pomiarów temperatury, obliczeń do regulatora i wysyłania odpowiedniego sygnału sterującego. Źródło: www.botland.com.pl
Moduł Peltiera Moduł Peltiera urządzenie do realizacji funkcji chłodzenia. Budowa i zasada działania została przedstawiona na rysunku. Termometr w układzie jest podczepiony do strony,,zimnej. Strona,,ciepła ma podłączony radiator i nie jest do wykorzystywana. Źródło: https://www.semicon.com.pl/index/?id=698d51a19d8a121ce581499d7b701668
DS18B20 Cyfrowy termometr zapewniający 9-cio i 12-sto bitowy pomiar temperatury w stopniach Celsjusza. Komunikacja odbywa się poprzez jednoprzewodową (One-Wire) magistrale danych - co oznacza tyle, że potrzebujemy tylko przewodu sygnałowego (i masy) do połączenia z centralnym mikroprocesorem. Jest również możliwość działania z,,pasożytniczym zasilaniem co eliminuje potrzebę zasilania zewnętrznego. DS18B20 ma swój unikalny 64-bitowy kod, który umożliwia wielu termometrom pracę na jednym przewodzie. Źródło: https://elty.pl/pl/p/czujniktemperatury-ds18b20-/673
Zabezpieczenie optoizolator PC817 Optoizolator PC817 w obudowie z czterema pinami, z których jedna para to I/O diody emitującej falę świetlną, a druga to I/O fototranzystora odbierającego sygnał z diody. Izolacja w takim elemencie jest zapewniona aż do 5kV. W przedstawionym układzie Arduino zasilane jest napięciem 5V i steruje zasilaniem 12-sto woltowym modułu Peltiera. Załączanie większego napięcia realizuje tranzystor (MOSFET IRL540NPBF). Wydawałoby się, że optoizolator jest zbędny, bo sprawę załatwiłby sam tranzystor słusznie, jednak w momencie, gdy uszkodzi się tranzystor, uszkodzeniu może ulec również mikrokontroler - dla którego 12V jest zabójcze. Dlatego w przedstawionym modelu wykorzystano optoizolator PC817, który skutecznie izoluje galwanicznie dwa układy oraz zapewnia możliwość regulacji i sterowania. Źródło: nota katalogowa i https://hacktronics.co.in/opto-isolatoroptocoupler/pc817-el817-4-pin-phototransistor-photocoupler
Schemat modelu układu regulacji temperatury Źródło własne, opracowano w EagleCAD Student
Układ rzeczywisty Na zdjęciu przedstawiono zmontowany układ. Montaż został przeprowadzony według schematu z poprzedniej strony. Do pokazanego układu został napisany program. Język programu bazuje na językach C/C++ (typowo dla Arduino) i jest przetwarzany przez kompilator AVR-GCC. Kod został udostępniony na następnych stronach. Źródło własne
Opis działania układu Na początku działania program wymaga wprowadzenia czterech danych: temperatury zadanej, wartości wzmocnienia Kp, współczynnika członu całkującego Ki oraz współczynnika członu różniczkującego Kd. Program pobiera adres czujnika temperatury, ustawia jego czułość i precyzję. Następnie ustawia nastawy regulatora i zarządza jego automatyczne działanie. W pętli: pobierana jest temperatura z przetwornika DS18B20, następuje przeliczenie tej informacji i wystawienie wyliczonego sygnału wyjściowego na port odpowiedzialny za sterowanie modułem Peltiera. Dla wygody informacje o temperaturze zadanej, rzeczywistej i wartości sygnału sterującego PWM są wyświetlane w Monitorze Portu Szeregowego jak i w Kreślarce.
Kod Arduino Źródło własne i przykładowe programy bilbliotek
Przebieg sygnałów w czasie Linia zielona przebieg napięcia sterującego Linia niebieska rzeczywista wartość temperatury Linia czerwona temperatura zadana Na przebieg sygnału sterującego mają bezpośredni wpływ wartości nastaw regulatora PID. Na tym wykresie temperatura zadana jest mniejsza niż temperatura rzeczywista, dlatego regulator utrzymuje wysoki sygnał napięcia sterującego,,zbija temperaturę. Gdy temperatura spada poniżej zadanej, sygnał sterujący wynosi 0 układ jest ogrzewany przez otoczenie. Źródło własne Kreślarka Arduino
Przebieg sygnałów w czasie Początkowo temperatura rzeczywista jest równa temperaturze zadanej - wartość sygnału sterującego utrzymuje się na stałym poziomie, w tym przypadku wynosi 0. W momencie przekroczenia temperatury zadanej, wartość sygnału sterującego wzrasta, próbując jak najszybciej obniżyć temperaturę do wartości zadanej. Źródło własne Kreślarka Arduino
Agilent Vee Obsługa i wyświetlanie danych z Arduino została zapewniona przez program napisany w Agilent Vee. Umożliwia on programowanie poprzez dodawanie kolejnych elementów i łączenie ich w,,drzewo programu. Poniżej kawałek rozgałęzień kodu.
Agilent Vee Oto panel główny programu. Możliwość zmiany temperatury zadanej, współczynników Kp, Ki i Kd. Obok wykresy przedstawiające zależność temperatur (zadanej T_z i rzeczywistej T_rz) od czasu i napięcia sterującego od czasu.
Podsumowanie Prostota wykonania, zaprogramowania, izolacji i montażu układu sprawia, że uzyskane wyniki są jedynie przybliżone. Jest wiele możliwości,,dopieszczenia modelu, wymagają one jednak głębszego wdrożenia się w temat. Wartości temperatury rzeczywistej widoczne na wykresach byłyby dużo bardziej zgodne z temperaturą zadaną przy prawidłowych parametrach regulatora. Pokazane przeze mnie wyniki i działania są wystarczające do nabycia podstawowej wiedzy na temat działania poszczególnych części układu jak i ich implementacji w jednym większym prototypie regulacji.
Źródła https://www.arduino.cc/ https://www.wikipedia.org/ https://www.semicon.com.pl/index/?id=698d51a19d8a121ce581499d7b70 1668 https://www.youtube.com/user/elektroprzewodnik Noty katalogowe elementów układu Wiedza własna