PID temperatura

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
modrzew
Posty: 12
Rejestracja: 10 sty 2012 17:59
Wersja środowiska: LabVIEW 2009

PID temperatura

Post autor: modrzew »

Witam, mam taki problem, iż potrzebuje sprzężyć termoparę z zasilaczem przy pomocy PID. DOkładnie chodzi o to, że zasilacz daje prąd na grzałkę i ona się grzeje a termopara mierzy jej temperaturę, a chodzi aby założyć jakąć temperaturę do której grzałka będzie grzała, a jak juz osiągnie tą temperaturę to aby ją utrzymać na tym poziomie, co wymuszałoby zmianę natężenia jakie generuje zasilacz na grzałkę. Nie miałem możliwości aby zgłębić się w tajniki LV tylko mam odrazu działać na z tym problemem. Pomiar temperatury i obsługa zasilacza działają ale oddzielnie. Korzystam z gotowych programów ze stron producenta zasilacza oraz z PID z przykładu (ponieważ ma tyle tych parametrów, że nie sposób na chwilę obecną mi się połapać). Czy dobrze myśle, że ścieżka syglału wygląda tak:
termopara mierzy temperaturę, jeśli jest za niska to daje sygnał do zasilacz, który puszcza prąd na grzałkę, i mierzy znów temperaturę, i tak do temperatury w pobliżu temperatury założonej, kiedy to maleje? lub stabilizuje się na jednym poziomie prąd i jest zachowana temperatura (bez przegrzania tj bez znacznego przekroczenia założonej temperatury)
W jaki sposób powinien ze sobą połączyć zasilacz, termoparę i PID aby grzało tylko do odpowiedniej temperaturu, i jaki jeszcze element powinienem dodać do tego układu? W którym momencie powinno być podłączone PID? Czy dobrze robie korzystając z gotowego przykładu PID co jest w LabView Example, czy wystarczy (na początek) tylko klacek PID aby to zadziałał plan grzania to odpowiedniej temperaturu??
Dzięki serdecznie za poświęconenie czasu mojemu problemowi i uwagi. Ze względu na krótki staż prosiłbym o trochę prosty język i wyrozumiałość.
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: PID temperatura

Post autor: Zyga »

Miałem podobne zagadnienie, z tym że sterowałem grzałką dwu poziomowo, poprzez przekaźnik (Grzeje - nie grzeje). W takim wypadku zawsze jest histereza, ale przy dobrych nastawach pida osiągała u mnie +/-0,1 C. Natomiast sygnał sterujący grzałkę generowany był przez PWM (Pulse Width Modulation). Wystawiał on 1 lub 0 na wyjścia cyfrowe sterujące przekaźnikiem, przez określony czas.. Załączam mojego SubVI (tam są trzy pidy, bo trzy grzałki miałem).
Załączniki
PWM_rur.vi
PID+PWM
(47.95 KiB) Pobrany 451 razy
modrzew
Posty: 12
Rejestracja: 10 sty 2012 17:59
Wersja środowiska: LabVIEW 2009

PID temperatura

Post autor: modrzew »

Dzięki za odp, powiedz istnieje możliwość przesłania tego załączniki na labView 2009 bo Ty masz chyba 11 i nie chce mi odpalić?? Byłbym wdzięczny.
1125
Posty: 37
Rejestracja: 25 cze 2011 09:28
Wersja środowiska: LabVIEW 2011

PID temperatura

Post autor: 1125 »

Witaj,

Jeżeli pracujesz i masz ten układ wykonać fizycznie to polecam regulator z wyjściem przekaźnikowym (koszt 300-400zł) podpinasz, wpisujesz wartość i sprawa załatwiona, używanie LV do tego to jak zabijanie komara łopatą bo koszty za duże. No ale jak robisz to na uczelnie to tak:
Termopara (jeszcze zależy jaką masz, czy w zabudowaną czy nie) jest czujnikiem szybko reagującym i jeżeli Twoja grzałka nie grzeje się z niesamowitą szybkością to możesz to zrobić na zasadzie zwykłego odczytu i porównania wartości (napisz jeszcze w jaki sposób zamierzasz odczytywać temperaturę, bo tu potrzebowałbyś przetwornik i kabel RS), czyli za pomocą palety "comparison" i jednej pętli, następnie rodzi się pytanie jak chcesz uruchomić grzałkę (tu potrzebny jest jakiś przekaźnik oraz wyjście przekaźnikowe).

Najlepiej napisz jaki sprzęt posiadasz, czyli jak zrobić chcesz odczyt i jak wystawić sygnał na grzałkę to dalej już nie powinno być problemu.

Pozdrawiam
1125
modrzew
Posty: 12
Rejestracja: 10 sty 2012 17:59
Wersja środowiska: LabVIEW 2009

PID temperatura

Post autor: modrzew »

Tak przy uczelni, a sprzęt na jakim ma to robić to LabView 2009, karta NI 9213, termopara (nie wbudowane w elemnencie grzewczym, tylko osobno) zasilacz sterowany Instek 10100A no i RS232, grzałka- świeca żarowa. Mam już stworzony program do odczytu temperatu przez tą termoparę i kartę pomiarową. Program do sterowania zasilaczem użyłem gotowy do producenta. Grzałka ( zasilacz zasilający grzałkę jest połączony i sterowany z komputera). Grzałka to świeca żarowa, tj maxsymalna prędkość grzania to ok. 20-30 sekund do 800 stopni C. Oba programy działają osobno, ale teraz chciałem podłączyć te PID aby mieć kontrolę na temperaturą jaką ma grzałka, mój koncept polegał na tym, włączam zasilacz i steruje nim z komputera, mierzona jest temperatura i wted ytak mi się wydaję że PID już samo powinno dostosowywac natężenie do do obecnej temperatury, aby nie przekroczyć tego setpoint'a i utrzymać tą temperaturę.
Napisanie programu na zasilacz było znacznie trudniejsze niż na odczyt temperatury z termopary, więc korzystam z gotowego programu producenta.
Nie wiem coś jeszcze mogę opisać aby zrozumiećmój problem?
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: PID temperatura

Post autor: Zyga »

Sorki, moje niedopatrzenie.
PID zwraca wartość z zakresu <-100,100>. W związku z tym, że nie możesz chłodzić ustawiasz ograniczenie sygnału <0,100> (tak jak w moim przypadku). Należy to interpretować, jako 0-100% natężenia prądu z zasilacza. Pętla PWMa u mnie to u Ciebie ten program sterujący zasilaczem..
Załączniki
PWM_2009.rar
PWM_2009
(35.89 KiB) Pobrany 404 razy
modrzew
Posty: 12
Rejestracja: 10 sty 2012 17:59
Wersja środowiska: LabVIEW 2009

PID temperatura

Post autor: modrzew »

Dzięki za przykład i podpowiedź, które mi trochę pomogły w stworzeniu swojego prostego programu. Moje rozwiązanie opiera się na podpięciu klocku DAQ-(temperatury) jako zmiennej PID i input current (zasilacz) jako wyjście PID. Po prostej próbie wydaje się że działa i nie jest to aż tak skomplikowane, odpowiednie wpięcie przewodów. Ale mam pytanie odnośnie rozbudowy czy da się a jak się da to w jaki sposób najprościej zrealizować, takie problemy:
-optymalizacja parametrów PID?
-czy można ustalić za pomocą PID szybkość grzania np 10 stopni celcjusza na sekundę?
-jak zrealizować zatrzymanie grzanie (albo całego programu) po np. 5 minutach grzania po osiągnięciu stabilnego set pointa w PID, powiązane jest to z pierwszym?
Dzięki jeszcze raz za pomoc i podpowiedzi.
ODPOWIEDZ