Chcę nauczyć się regulacji PID (proporcjonalnej – całkowej – pochodnej) głównie dla temperatury.
Chciałbym się uczyć najlepiej poprzez prosty projekt.
Czy mógłbyś polecić coś, czego nauka zajęłaby kilka tygodni?
Edycja: Chcę kontrolować temperaturę zbiornika na wodę. Ogrzewanie odbywa się za pomocą rezystora.
microcontroller
control-system
pid-controller
Daniel Grillo
źródło
źródło
Odpowiedzi:
Kontrolowanie temperatury (zależy od twojego medium) nie jest strasznie trudne. To był mój pierwszy projekt, kiedy zaczynałem. Wybacz mi, jeśli powtórzę rzeczy, które już znasz.
Zakładam, że masz już sposób kontrolowania systemu (tj. Grzejnika lub chłodnicy) i sposób uzyskiwania informacji zwrotnych z systemu (czujnik temperatury, taki jak termistor lub coś takiego). Będziesz musiał wdrożyć pętlę PID, która jest rodzajem sterowania w pętli zamkniętej. Wszystko, co naprawdę musisz zrobić, to napisać trochę oprogramowania do wysyłania poleceń sterujących, czytać opinie i podejmować decyzje na podstawie tych opinii.
Zacznę od czytania PID bez doktoratu . To artykuł, którego użyłem, kiedy po raz pierwszy musiałem regulować temperaturę w eksperymencie naukowym. Zapewnia kilka łatwych do zrozumienia zdjęć i ładny przykładowy kod (podstawowa pętla, którą możesz ulepszyć, potrzebuje tylko 30 linii), który wyjaśnia, jak kontrolować swoją „roślinę” - w tym przypadku rzecz, którą chcesz kontrolować temperaturę .
Istotą kontroli PID - Proporcjonalnie-Całkowo-Różniczkowej - jest wykorzystanie natychmiastowej, przeszłej i przewidywanej przyszłej wydajności systemu (odpowiednio) systemu, aby określić, jak kontrolować system w danym momencie, aby osiągnąć określoną wartość zadaną. W wielu przypadkach będziesz musiał dostroić współczynniki wzmocnienia algorytmu, aby uzyskać żądaną wydajność, której potrzebujesz - jak szybko temperatura wzrośnie, o ile chcesz uniknąć przekroczenia itp. Może się okazać, że nie potrzebujesz różnicy lub nawet integralna kontrola, aby dostać się tam, gdzie chcesz być!
źródło
Tak. Zdobądź termistor i rezystor. Wybierz rezystancję, która może pobierać przyzwoicie duży prąd (> 100mA).
Użyj pasty termicznej między nimi i sklej je taśmą. Podłączyć obwód termistora do mikrokontrolera przez ADC. Użyj tranzystora do sterowania rezystorem i kontroluj go za pomocą PWM.
Opracuj PID, który pozwala kontrolować temperaturę za pomocą pokrętła i poćwicz tworzenie PID, który przekracza temperaturę i dzwoni. Spraw, aby było nadmiernie tłumione i trwa wieczność, aby osiągnąć temperaturę, i spróbuj uzyskać krytycznie tłumione i osiągnąć temperaturę przy maksymalnej prędkości.
Daj mi znać, jeśli pomogłyby więcej szczegółów.
Gdy to zrobisz, zmniejsz ich przewodność cieplną, spróbuj dodać etap, który opóźni propagację temperatury i postaraj się, aby dobrze go kontrolować.
Można to również zrobić za pomocą diody LED i fototranzystora.
źródło
Oprócz oczywistej aplikacji do kontroli temperatury, tutaj jest piękny projekt, który wymagał kontroli PID. Zrób sobie bota śledzącego linię: http://elm-chan.org/works/ltc/report.html
źródło
Miłym symulator PID jest dostępny dla Scilab.
źródło
Już dodając moje 2 centy do dobrych odpowiedzi już.
Praktyczne zastosowanie PID do kontroli temperatury często zachowuje się nieliniowo, jeśli wykrywanie błędu temperatury jest ograniczone (wzmocnienie wzmacniacza operacyjnego nasyca moc wyjściową), a moc dostępna do sterowania temperaturą jest stała.
Rozważ kontroler on-off. System będzie miał opóźnienie od momentu przyłożenia ciepła i wykrycia zmiany temperatury. To opóźnienie powoduje niestabilną pętlę oscylującą, a jeśli występuje jakakolwiek histereza, cykle mocy z szumem (On-Off-On) Jednak bardzo duże wzmocnienie (takie jak komparator) powoduje mały błąd resztkowej temperatury. Opóźnienie wpływa na czas cyklu i przeregulowanie.
Jeśli wystąpiły zakłócenia zewnętrzne, takie jak lampa w zbiorniku, która może powodować znaczne ciepło, regulator nagrzewnicy musi zareagować natychmiast po wykryciu wzrostu temperatury z ciepła lampy. Jeśli twoja lampa nie jest częścią pętli PID, to nie może „przewidzieć” efektu (pochodne sprzężenie zwrotne) Oczywiście, jeśli lampy wytwarzają zbyt dużo ciepła, wówczas temperatura nie może być regulowana i przekroczy wartość zadaną.
Sterowanie ogrzewaniem za pomocą regulatora PID może wymagać włączenia przełącznika stanu lampy i sterowania mocą wyjściową, aby regulować moc światła jako wtórne źródło ciepła, jeśli jest to zbyt duże.
Zdefiniowanie wymagań dotyczących bezwzględnego błędu sterowania, przekroczenia% i czasu reakcji to niektóre dane wejściowe potrzebne do optymalizacji pętli PID. Równie ważne jest zdefiniowanie zakłóceń systemu i włączenie ich do systemu sterowania dla danych wejściowych i wyjściowych. na przykład. Moc cieplna lampy oraz wybór czujnika (czujników) i lokalizacji.
Oprócz doświadczenia.
Moje pierwsze doświadczenie z użyciem podgrzewacza wody miało miejsce w erze łóżka wodnego w latach 70., kiedy byłem studentem, zaprojektowałem swój własny regulator temperatury za pomocą termistora, obwodu sterującego i przełącznika triakowego z przejściem przez zero do grzejnika. Zacząłem od kontroli komparatora i znalazłem niezwykłą reakcję po skoku do łóżka. Więc dodałem proporcjonalną kontrolę za pomocą niefiltrowanego szumu na czujniku, aby dać mi proporcjonalne „brakujące cykle”, gdy triak ZCS był włączony blisko progu. Mogłem regulować temperaturę w zakresie 0,1 ° C. Odpowiedź była łagodniejsza, ale wynik był taki sam.
W moim przypadku za każdym razem, gdy wskakiwałem do łóżka, opór cieplny nieznacznie spadał z powodu dodatkowego ciśnienia, a lampka mocy świeciła ściemniaczem przez minutę lub dwie, dopóki temperatura nie spadłaby o dziesiątą część stopnia lub aby dopasować się do widocznego wzrostu temperatury spowodowanego dodatkowym ciężarem i ciśnieniem łóżko wodne przy termostacie.
źródło