Witam
Zbudowałem urządzenie do lutowania (podgrzewacz 3 strefowy + hotair). Regulacji temperatury dokonuję w układzie zamkniętym używając algorytmu PID. Niestety w tym przypadku mam do regulacji w zasadzie 4 różne obiekty. Są 3 grzałki podgrzewacza, które w przybliżeniu mają taki sam charakter obiektu + grzałka gorącego powietrza dla której regulator już musi mieć całkowicie inne nastawy. Wzorując się na ogólnodostępnych materiałach, posiadanej skromnej wiedzy oraz projekcie stacji lutowniczej AVT–987 p. Lucjana Bryndzy, rozszerzyłem funkcję regulator PID dla 4 obiektów w taki sposób:
Natomiast wywołanie wygląda tak:
Niestety to złe rozwiązanie. O ile da się wprowadzić różne nastawy regulatora to nie da się zmienić okresu próbkowania, który w tym przypadku będzie taki sam dla każdego obiektu. Grzałka hotair ma bardzo małą bezwładność temperaturową czego nie da się powiedzieć o podgrzewaczu.
Jaki jest inny, lepszy pomysł na rozwiązanie problemu regulacji kilku obiektów do zaimplementowania w jednym uP?
Dodam, że procesor w czasie pracy ma do obsłużenia
- synchronizację z siecią na przerwaniu INT7_vect, przerwanie od fazowej regulacji mocy TIMER0_COMP_vect, przerwanie od TIMER2_COMP_vect, na którym zrealizowana jest regulacja PWM dla 5 różnych wyjść dodatkowych, przerwanie od timera ogólnego TIMER1_COMPA_vect (wszelkie stałe czasowe, opóźnienia itp) poza tym obsługuje komunikację przez RS232 oraz wykonuje kilka prostych obliczeń. Dlaczego to wypisuje, a na dlatego że boję się, że może dochodzić do sytuacji takich gdy tych wiele przerwań zakłóca normalną pracę regulatora PID.
Regulacja temperatury podgrzewacza działa względnie. Na początku jest w sumie spore przeregulowanie (nawet do 15'C) a potem uchyb maleje do +/- 2-3'C jednak regulacja hotair to totalna porażka.
Za każdą pomoc i nakierowanie na słuszny trop z góry dziękuję.
Zbudowałem urządzenie do lutowania (podgrzewacz 3 strefowy + hotair). Regulacji temperatury dokonuję w układzie zamkniętym używając algorytmu PID. Niestety w tym przypadku mam do regulacji w zasadzie 4 różne obiekty. Są 3 grzałki podgrzewacza, które w przybliżeniu mają taki sam charakter obiektu + grzałka gorącego powietrza dla której regulator już musi mieć całkowicie inne nastawy. Wzorując się na ogólnodostępnych materiałach, posiadanej skromnej wiedzy oraz projekcie stacji lutowniczej AVT–987 p. Lucjana Bryndzy, rozszerzyłem funkcję regulator PID dla 4 obiektów w taki sposób:
Kod: C / C++
Natomiast wywołanie wygląda tak:
Kod: C / C++
Niestety to złe rozwiązanie. O ile da się wprowadzić różne nastawy regulatora to nie da się zmienić okresu próbkowania, który w tym przypadku będzie taki sam dla każdego obiektu. Grzałka hotair ma bardzo małą bezwładność temperaturową czego nie da się powiedzieć o podgrzewaczu.
Jaki jest inny, lepszy pomysł na rozwiązanie problemu regulacji kilku obiektów do zaimplementowania w jednym uP?
Dodam, że procesor w czasie pracy ma do obsłużenia
- synchronizację z siecią na przerwaniu INT7_vect, przerwanie od fazowej regulacji mocy TIMER0_COMP_vect, przerwanie od TIMER2_COMP_vect, na którym zrealizowana jest regulacja PWM dla 5 różnych wyjść dodatkowych, przerwanie od timera ogólnego TIMER1_COMPA_vect (wszelkie stałe czasowe, opóźnienia itp) poza tym obsługuje komunikację przez RS232 oraz wykonuje kilka prostych obliczeń. Dlaczego to wypisuje, a na dlatego że boję się, że może dochodzić do sytuacji takich gdy tych wiele przerwań zakłóca normalną pracę regulatora PID.
Regulacja temperatury podgrzewacza działa względnie. Na początku jest w sumie spore przeregulowanie (nawet do 15'C) a potem uchyb maleje do +/- 2-3'C jednak regulacja hotair to totalna porażka.
Za każdą pomoc i nakierowanie na słuszny trop z góry dziękuję.