Jak nauczyć się sterowania PID?

26

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.

Daniel Grillo
źródło
Próbowałem zdobyć podstawowy projekt, z którego ktoś mógłby się uczyć, myślę, że matematyka jest również interesująca. Ludzie poświęcają temu swoje życie.
Kortuk
Co chcesz kontrolować temperaturę?
J. Polfer,
3
Ponieważ nie możesz usunąć ciepła, musisz upewnić się, że Twój system będzie nadal chłodził, nawet gdy przyłożysz niewielki prąd lub twój pid może mieć problemy z regulacją. Dodałbym wachlarz lub lód podczas eksperymentu. Chcesz, aby wznosił się, kiedy jesteś najedzony, i opadał, gdy jesteś nieobecny. W takim przypadku informacja zwrotna zostanie dla ciebie uregulowana.
Rex Logan,
1
Jest to określone przez wymaganą temperaturę zbiornika na wodę. Jeśli chce 80 ° C, wystarczy temperatura otoczenia, jeśli chce 25 ° C, wtedy będzie miał problem. Prawidłowo dostrojony PID powinien być w stanie poradzić sobie z powolną utratą temp.
Kortuk

Odpowiedzi:

27

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ć!

J. Polfer
źródło
nie pamiętałam, dokąd poszedł ten link do PID bez doktoratu. Zapomniałem o jego nazwie i nie pamiętałem, co czytałem tak dawno temu. +1 pan
Kortuk
3
PID bez doktora to świetny artykuł! Jednak mój 8-bitowy mikrokontroler nie lubił arytmetyki zmiennoprzecinkowej ..
abdullah kahraman
Po prostu świetnie! PID bez PHD jest idealny. Mam doktorat, ale dołożyłem wszelkich starań, aby trzymać się z dala od teorii kontroli :) Uwielbiam też zwolennika mini-linii.
@Bistromath Proszę nie dodawać „dziękuję” jako odpowiedzi. Po uzyskaniu wystarczającej reputacji będziesz mógł głosować na pytania i odpowiedzi, które uważasz za pomocne.
m.Alin
10

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.

Kortuk
źródło
Są to dobre sugestie, aby spróbować zrozumieć sposób, w jaki zachowują się pętle PID.
J. Polfer,
1

Miłym symulator PID jest dostępny dla Scilab.

Leon Heller
źródło
1

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.

Odkryłem, że największy błąd dotyczył lokalizacji i niewielkich zmian ciśnienia wody na czujniku. (Byłem wtedy mały, tylko 185 funtów, ale na łóżku o masie 2000 funtów <10% zmiana ciśnienia wody była niewielka)

Opór cieplny między czujnikiem a łóżkiem wodnym spowodował niewielki błąd przesunięcia w zależności od ciśnienia wody skierowanego na czujnik. W scenariuszu dotyczącym zbiornika na wodę błąd czujnika może wynikać z wielkości zbiornika i odległości między czujnikiem a podgrzewaczem lub czujnikiem i najdalszą powierzchnią wody lub szybkości przepływu wody lub pęcherzyków między czujnikiem a podgrzewaczem.

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.

(Wyciągnięta lekcja. Nie zaniedbuj źródeł zakłóceń i ich wpływu na błąd Systemu Kontroli)

Tony Stewart Sunnyskyguy EE75
źródło