Jakie są dobre strategie dostrajania pętli PID?


55

Strojenie zysków kontrolera może być trudne, jakie ogólne strategie działają dobrze, aby uzyskać stabilny system, który jest zbieżny z właściwym rozwiązaniem?


1
Przydałoby się pytanie skierowane na bardziej szczegółowe pytanie. W przeciwnym razie powinieneś po prostu spojrzeć na artykuł PID z sekcją o tuningu
ronalchn

2
Zawsze uważałem, że dostrajanie PID jest bardzo zależne od cech systemu, dlatego nigdy nie uważałem, że systemy dostrajające są niezwykle przydatne. Nadają się do pierwszego zestawu parametrów o niskiej wydajności, ale są dalekie od optymalnych i będziesz miał ten sam problem z każdą ogólną strategią, która nie jest zoptymalizowana pod kątem mechanicznych, elektrycznych i kontrolnych aspektów danego systemu.
Mark Booth

Odpowiedzi:


66

W przypadku małych silników o niskim momencie obrotowym z niewielkim przełożeniem lub bez niego, jedną z procedur, które można zastosować, aby uzyskać dobrą melodię wyjściową, jest sprawdzenie jej reakcji na zakłócenie.

Aby dostroić PID, wykonaj następujące czynności:

  1. Ustaw wszystkie zyski na zero.
  2. Zwiększaj wzmocnienie P, aż reakcja na zakłócenie będzie równomierna.
  3. Zwiększaj wzmocnienie D, dopóki oscylacje nie znikną (tj. Będą krytycznie tłumione).
  4. Powtarzaj kroki 2 i 3, aż zwiększenie wzmocnienia D nie zatrzyma oscylacji.
  5. Ustaw P i D na ostatnie stabilne wartości.
  6. Zwiększaj wzmocnienie, dopóki nie doprowadzi cię do wartości zadanej z żądaną liczbą oscylacji (zwykle zero, ale można uzyskać szybszą odpowiedź, jeśli nie przeszkadza ci kilka oscylacji)

To, czego używasz, zależy od mechanizmu, do którego podłączony jest kontroler. Zwykle wystarczy przesunąć mechanizm ręką od wartości zadanej i zwolnić. Jeśli oscylacje rosną i rosną, musisz zmniejszyć wzmocnienie P.

Jeśli ustawisz zbyt duże wzmocnienie D, system zacznie drgać (wibruje z większą częstotliwością niż oscylacje wzmocnienia P). Jeśli tak się stanie, zmniejsz wzmocnienie D, aż się zatrzyma.

Wierzę, że ta technika ma nazwę. Umieszczę go tutaj, kiedy go znajdę.



1
@ Throwback1986, To zdecydowanie nie jest Ziegler-Nichols, który używa tylko wzmocnienia P, a gdzie wzmocnienie I i D są następnie obliczane odpowiednio na podstawie oscylującego wzmocnienia P i okresu
oscylacji

Czy masz dodatkowe porady dotyczące strojenia w szczególności ramienia robota, które ma wiele połączeń wymagających strojenia? Czy zaczynasz od podstawy i pracujesz na zewnątrz do efektora końcowego, czy na odwrót, czy to w ogóle ma znaczenie?
adamconkey

1
W środowisku akademickim lub przemysłowym będziesz potrzebować bardziej wyrafinowanej metody kontroli. Dla hobbystów; grawitacja ma działanie tłumiące, dlatego dostrajaj każde złącze pod kątem, w którym grawitacja działa najmniej na silniki. Na przykład z ramieniem skierowanym prosto do góry, tak że grawitacja działa na łożyska, a nie na silnik. Porządek nie ma znaczenia. Dodanie zwrotnego kompensatora grawitacji do sterowania jest prawdopodobnie najłatwiejszym ulepszeniem (użyj rekurencyjnego Newtona-Eulera dla szeregowego ramienia), jeśli nie możesz uzyskać żądanej wydajności.
hauptmech

Pidtuner.com narzędzie dał mi lepsze wyniki niż metoda Zieglera-Nicholsa, który posiada kilka znanych wad; folk.ntnu.no/skoge/publications/2003/tuningPID/more/…
Juan Gonzalez Burgos

13

Podobna metoda eksperymentalna do odpowiedzi hauptmech, której nauczono mnie na studiach:

  1. Ustaw wszystkie wzmocnienia na 0.
  2. Zwiększenie K D aż układ oscylujący.
  3. Zmniejszenie K D o współczynnik 2-4.
  4. Zestaw K s do około 1% K D .
  5. Zwiększ K p aż rozpocznie oscylacje.
  6. Zmniejszyć K p o współczynnik 2-4.
  7. Ustaw K í do około 1% K p .
  8. Zwiększ K I dopiero zaczynają oscylacje.
  9. Zmniejsz K í przez współczynnik 2-4.

Metoda Zieglera-Nicholsa jest bardziej precyzyjna, jeśli można uzyskać dokładną liczbę dla okresu oscylacji. Generalnie powoduje oscylacje przy użyciu podanych „klasycznych liczb PID”, więc nie zawsze jest to optymalne.

Aby zapoznać się z ogólnymi zasadami dotyczącymi wpływu każdego terminu na czas narastania, przekroczenie, czas ustalania, błąd stanu ustalonego i stabilność, patrz Tabela 1 „Analiza i projektowanie układu sterowania PID” , autor: Li, Ang i Chong w IEEE Control Systems Magazyn.


2
Kd pierwszy? Zawsze myślałem, że najlepiej zacząć od Kp.
Rocketmagnet

Transkrybuję stare slajdy z wykładów, jeśli istnieje dobry powód, aby tego nie robić w ten sposób, chciałbym to usłyszeć.
Joe Baker,

1
To jest algorytm, który zalecam do strojenia „siedziska spodni”. Dzięki temu zbliżysz się tak blisko, jak to możliwe, bez modelowania systemu lub mierzenia jego reakcji. (Modelowanie i / lub pomiar to jedyny sposób, jeśli naprawdę potrzebujesz odpowiedniego strojenia).
TimWescott,

Strojenie Kd jako pierwsze nie ma dla mnie żadnego sensu, ponieważ w każdym PID, który wprowadziłem znak Kd jest ujemny. Służy do redukcji sygnału sterującego, gdy występują bardzo duże zmiany błędów, w zasadzie tłumiąc system. Jeśli masz tylko Kd, system porusza się w przeciwnym kierunku, zwiększając błąd i komplikując problem. Jeśli Kd jest dodatnia, to za każdym razem, gdy pojawi się duża zmiana błędu we właściwym kierunku, sprawisz, że zmieni się ona jeszcze szybciej i przekroczysz cel.
Andrew Capodieci

Właściwie strojenie wzmocnienia D ma najpierw sens, ale zakładam, że „zwiększenie” wzmocnienia D oznacza zwiększenie wartości bezwzględnej i tylko zwiększenie tłumienia. Największy problem ze wzmocnieniem D polega na tym, że wzmacnia on szum o wysokiej częstotliwości i miło jest widzieć ten efekt bez wzmocnienia P. Zasadniczo zaczynasz od szukania korzyści, przy których przestaje on zachowywać się jak tłumienie i zaczyna wzmacniać szum i opóźnione sygnały błędów. Zakładam, że w kroku 2 musisz szturchnąć roślinę, aby zobaczyć, czy oscyluje.
DrRobotNinja

7

Embedded.com po raz kolejny przeniósł mój artykuł, ale tutaj jest teraz. To pokazuje zarówno, jak napisać pętlę PID (zastanawianie się, jak to zrobić w czymś innym niż zmiennoprzecinkowy, pozostało jako ćwiczenie dla czytelnika) i jak ją dostroić.

PID bez doktora

Najlepszym sposobem zależy wiele na swoje możliwości. Najlepszym sposobem na dostrojenie , zakładając, że jesteś doświadczonym układem sterowania, jest zwykle zmierzenie reakcji rośliny („roślina” == „rzecz, którą kontrolujesz”), a następnie w zależności od tego, jak zrobiłeś pomiary wyodrębniają model zakładu i projektują do tego, lub po prostu projektują bezpośrednio do pomiarów.

W przypadku niektórych trudnych roślin przekonasz się, że nigdy nie będziesz w stanie wykonać zadowalających pomiarów, w takim przypadku musisz przejść sam przez modele. Są to rzadkie, ale satysfakcjonujące, kiedy je uruchomisz.


5

Sebastian Thrun przedstawił prosty algorytm dostrajania PID w swojej klasie „How to Program a Robotic Car”. Nazywa się to „twiddle”, opisuje to tutaj .

Twiddle jest bardzo podatny na znajdowanie lokalnych minimów - oznacza to, że możesz wymyślić zestaw trzech stałych, które są w porządku, ale nie optymalne do sytuacji. Problem dostrajania stałych PID stanowi podzbiór bardziej ogólnego problemu wyszukiwania w celu znalezienia pewnych parametrów w celu maksymalizacji użyteczności (w tym przypadku minimalizacji błędu algorytmu PID). Możesz przyjrzeć się innym ogólnym rozwiązaniom tego problemu, takim jak wspinaczka, symulowane wyżarzanie, algorytmy genetyczne itp., Które mogą w końcu znaleźć bardziej optymalne rozwiązania.


4

W przeciwieństwie do pozostałych dwóch odpowiedzi powiedziałbym, że dobrym ręcznym sposobem dostrajania PID jest ignorowanie Kd. Zacznij więc od 0 i zwiększ Kp, aż dojdziesz do celu, a następnie zwiększ Ki, aby pozbyć się błędu stanu ustalonego.

Kd może pomylić problem, ponieważ słabo reaguje na szum, a następnie zaczynasz dodawać filtry na wejściu analogowym, a następnie zastanawiasz się, co to poza tym spowalnia kontrolę i utrudnia całą pracę ...

Inną rzeczą, która może mnie pomylić, jest to, czy równanie PID ma postać standardową lub niezależną (równolegle w wikipedii). Wydaje się, że efekt Ki jest odwrotny, gdy forma jest złym sposobem na to, co myślisz. Oba typy są używane w automatyce, czasem z opcją przełączania się między nimi.


4

Modelowanie systemu

Oczywiście dostrajanie eksperymentalne można wykonać, jak wspomniano w innych odpowiedziach, ale jeśli jesteś w stanie zdefiniować rozsądny model dynamiczny dla wszystkiego, co chcesz kontrolować i jesteś w stanie zidentyfikować jego parametry , powinieneś być w stanie zaprojektować kontroler w oparciu o dobrze -defined kryteria, takie jak przeregulowania , czas narastania , rozliczania czasu , w stanie stacjonarnym błąd i tak dalej.

Istnieją nawet narzędzia w MATLAB, które są w stanie dostroić kontroler, aby zoptymalizować kombinację tych kryteriów, co czyni go jeszcze lepszym w użyciu.

Poznaj swojego kontrolera

Uczenie się, co robi każdy parametr w regulatorze PID, jest również bardzo pomocne. Wszystkie algorytmy eksperymentalne są w jakiś sposób oparte na tego rodzaju wiedzy. Jeśli nie tylko postępujesz zgodnie z instrukcjami, ale jesteś w stanie sam to poczuć, łatwiej będzie dostroić kontroler ręcznie.

Rzeczywiste problemy świata

Istnieje szansa, że ​​jedna z tych rzeczy, między innymi, stanie na twojej drodze podczas strojenia kontrolera: windup , nieodpowiednia częstotliwość próbkowania , nasycenie .

Wniosek

Ostatecznie wszystko zależy od tego, co możesz zrobić z systemem, aby uzyskać wiedzę na temat jego działania i rodzaju eksperymentów. Najlepiej jest dowiedzieć się więcej o sterownikach PID i ogólnie teorii sterowania, IMO, ale jestem stronniczy :)


Nie rozumiem, dlaczego ludzie wciąż sugerują heurystykę do dostrajania PID, podczas gdy w dzisiejszych czasach mamy mnóstwo automatycznych narzędzi do identyfikacji instalacji i projektowania sterowników, które nie wymagają głębokiego teoretycznego zaplecza. Kciuk w górę dla tej odpowiedzi.
Ugo Pattacini

3

Spróbuję rozszerzyć trochę z mojego doświadczenia dla tych, którzy mogą być zainteresowani. Myślę, że problem polega na tym, że mamy wiele teorii sterowania, które są nieco niedostępne (a czasem nie są przydatne), a następnie mamy praktyczne reguły, które przyjmują założenia dotyczące systemów, które są często niedokładne.

Stabilność

Porozmawiajmy najpierw o tym, dlaczego pętle sterowania stają się niestabilne. W tej dyskusji przyjmuję układ liniowy. Nieformalnie oznacza to, że jeśli twój sygnał kontrolny jest falą sinusoidalną przy danej częstotliwości, wówczas obserwowana moc wyjściowa jest na tej samej częstotliwości, a jeśli zmienisz amplitudę układu sterowania, twoja odpowiedź zareaguje w tym samym stosunku. To założenie jest dobrym przybliżeniem dla wielu rzeczywistych systemów i pozwala spojrzeć na różne częstotliwości w izolacji.

Jeśli spojrzysz na ścieżkę sterowania, masz nastawę, kontroler PID, system (inaczej „Plant”), a następnie czujnik. Wyobraź sobie ustaloną wartość zadaną i falę sinusoidalną z czujnika (jest to równe zakłóceniom rzeczywistym na czujniku, sprzężonym zwrotnie). W niestabilnym systemie sprzężenie zwrotne powoduje, że pętla sterująca wzmacnia błąd, zamiast go zmniejszać, tak że wraz ze wzrostem czasu wzrasta amplituda. Powodem tego jest opóźnienie lub dla tej konkretnej częstotliwości przesunięcie fazowe między wejściem a wyjściem. Dla danej częstotliwości możemy spojrzeć na to przesunięcie w otwartej pętli (tj. Bez sprzężenia zwrotnego) i amplitudę wyjścia, a kiedy narysujemy wszystkie na wykresie, otrzymamy coś w rodzaju wykresu Bode. Jeśli mamy sytuację na tym wykresie z otwartą pętlą, w której błąd ciągle się wzmacnia, mamy niestabilny system. Jeśli opóźnienie jest mniejsze niż 1/2 długości fali lub wzmocnienie jest mniejsze niż x1, system będzie stabilny . W praktyce chcemy od tego momentu marginesu (margines wzmocnienia i margines fazy), dlatego w wielu metodach manualnych / heurystycznych zobaczysz to „wycofywanie się”.

Głównym problemem związanym z tymi metodami ręcznymi jest to, że latasz w ciemno i masz prawie gwarancję, że uzyskasz słaby system kontroli.

Należy również pamiętać, że znaczenie P, I i D jest powiązane z tym, co mierzy czujnik i jaką kontrolą stosujesz. Częstym błędem w domowych kontrolerach jest to, że ludzie myślą, że stosują P, kiedy tak naprawdę nie są. Sterowniki silnika często mają pętlę położenia, przebiegającą przez pętlę prędkości biegnącej nad pętlą momentu obrotowego. ( Kaskada )

OK, ale jak to nam pomaga?

Pierwszą kwestią, o której chciałbym powiedzieć, jest to, że jeśli budujesz swój własny regulator PID, powinieneś również zbudować sposób pomiaru odpowiedzi w otwartej pętli. Wykonaj przemiatanie częstotliwości na wejściu do sterownika i zmierz moc wyjściową czujnika przy odłączonym sprzężeniu zwrotnym. Następnie możesz narysować wykres Bode z otwartą pętlą i zobaczyć, dlaczego twój system jest stabilny i być w stanie wymienić różne elementy sterujące. Przydatny jest również pomiar odpowiedzi w zamkniętej pętli i możesz to zrobić w dowolnym systemie, wykonując przemiatanie częstotliwości dla swojej wartości zadanej, gdy pętla jest zamknięta. Oba nie są tak trudne i nie wymagają dużej wiedzy teoretycznej.

Jeśli po prostu poprawiasz sterowanie, nie rozumiejąc, co dzieje się pod maską, nie będziesz w stanie zoptymalizować systemu. Budowanie intuicji na temat tych systemów nie jest trudne. Np. Wzmocnienie proporcjonalne nie ma wpływu na fazę, ale po prostu zwiększa wzmocnienie w otwartej pętli na wszystkich częstotliwościach. Tak więc, gdy zwiększasz proporcjonalne wzmocnienie we wszystkich tych metodach ręcznego strojenia, znajduje się częstotliwość, w której faza dochodzi do -180. Zobacz to, aby uzyskać więcej informacji na temat wpływu różnych elementów sterujących na pasmo przenoszenia.

Dość często uzyskanie najlepszej wydajności w zamkniętej pętli wymaga dostosowania systemu, a nie tylko wzmocnienia kontrolera. Chcemy, aby system był jak najbardziej „sztywny”. To pozwoli ci zwiększyć parametry sterowania i uzyskać najlepszą przepustowość w pętli otwartej i zamkniętej. Z mojego doświadczenia w aplikacjach sterowania silnikiem, proporcjonalne wzmocnienie jest tym, które powinno wykonywać większość „pracy”, a integrator „resztą”. Nie sądzę, żebyś potrzebował określenia D. Posiadanie filtra dolnoprzepustowego i filtra wycinającego bardzo pomaga w sytuacjach, w których możesz mieć pewien rezonans mechaniczny, ale ustawienie ich bez wykresu Bode jest bardzo trudne (częstotliwość oscylacji obserwowana w pętli zamkniętej może być inna niż w pętli otwartej).

Jeśli chodzi o bezpieczeństwo (bardzo mocne silniki lub system, który może zostać zniszczony przez silnik wymykający się spod kontroli), należy wprowadzić pewne ograniczenia przed rozpoczęciem strojenia (np. Ograniczenie prądu, błąd maksymalnego położenia), aby chronić system. Następnie musisz poczuć pewien zakres zakresu parametrów. Jeśli twoja informacja zwrotna ma 40 zliczeń na obrót lub 4000 zliczeń na obrót, twoje parametry będą miały współczynnik 100 dla danego systemu. Moim podejściem byłoby najpierw znaleźć zasięg, w którym masz słabą sterowalność, a następnie przyspieszyć stamtąd, zaczynając od P, a potem ja (choć znowu jesteś ślepy). Wycofanie tworzy margines stabilności.

Poza zamkniętą pętlą

Zamknięta pętla próbuje usunąć błąd z systemu. Zawsze będzie miał nieco ograniczoną wydajność. To, co chcesz zrobić, to zminimalizować błąd, który widzi kontroler w zamkniętej pętli, a jednym ze sposobów na to jest technika zwana feed forward. W informacjach zwrotnych omijasz kontroler i kierujesz polecenie bezpośrednio do systemu. Przykładem może być sprzężenie zwrotne przyspieszenia. Jeśli wiesz, że jesteś stałym momentem obrotowym silnika i znasz obciążenie, możesz właściwie powiedzieć, ile prądu potrzebujesz, aby uzyskać określone przyspieszenie obciążenia. Po prostu weź przyspieszenie wejściowe polecenia, pomnóż je przez stałą i dodaj to do polecenia napędu kontrolera. Zasadniczo robisz, co trzeba, aby sterować systemem, gdyby nie było kontrolera, a im bliżej możesz uzyskać, tym mniej błędów musi usunąć pętla i tym lepiej system będzie działał. To robi ogromną różnicę w praktyce.


„Z mojego doświadczenia w aplikacjach sterowania silnikiem proporcjonalne wzmocnienie jest tym, które powinno wykonywać większość„ pracy ”, a integrator„ resztą ”. Nie sądzę, żebyś potrzebował w ogóle określenia D.” Zgodziłbym się z tym w przypadku typowego zastosowania sterowania silnikiem. P wykonuje główne zadanie, a I kompensuje długoterminowe odchylenie / błędy. Ale tutaj quadkopter będzie podlegał wielu zewnętrznym turbulencjom, więc określenie D jest ważne, aby uzyskać szybką odpowiedź. Jeśli chodzi o I termin, chyba że quad jest w trybie autonomicznej nawigacji, nie jest to tak ważne.
dm76

@ dm76: Większość moich doświadczeń dotyczy sterowania silnikiem i zrzekam się tego ;-) Moja intuicja mówi jednak, że jest jeszcze miejsce dla mnie w zastosowaniu quadcoptera i myślę, że jeśli P jest bardzo wysoki, może poradzić sobie z zakłóceniami zewnętrznymi (tak jak robi to w sterowaniu silnikiem). Naprawdę musiałbym przyjrzeć się bliżej tym systemom, aby powiedzieć coś konkretnego na temat quadcopterów ... Myślę, że wiele z tego, co tu mówię, ma zastosowanie (szczególnie strojenie w dziedzinie częstotliwości i reakcja systemu na otwartą pętlę ).
Guy Sirton,

1
@ dm76: I naprawdę te „tuningowe” regulacje PID dają bardzo mierną wydajność w silnikach i przypuszczalnie takie same w quadcopters. Czasami dobrze umieszczony filtr wycinający może mieć różnicę rzędu wielkości ...
Guy Sirton

0

Ziegler-Nichols to łatwa metoda ręczna. Istnieją również bardziej niezawodne metody - zwykle opierają się one na rozwiązaniach matematycznych (analiza analityczna, optymalizacja iteracyjna itp.)

Poza tym Google „samostrojeniowy PID” dla niektórych automatycznych technik. Moim ulubionym jest zastosowanie sieci neuronowych do strojenia PID.


0

Jeśli chcesz mieć dokładny współczynnik PID:

  • Uzyskaj dane statystycznego aktuatora (tj. collecting input voltages+ encoder pulsesW stałej często ( 0.01sec) czasie 20secsjako macierz 3x 2000)
  • Uzyskaj funkcję przenoszenia (TF) swojego siłownika (za pomocą przybornika Ident w MATLAB).
  • Na koniec użyj narzędzia PIDTool w MATLAB i prześlij swoją funkcję transformacji.

Lub w szybki i prosty sposób:

Istnieje szybsze podejście zwane Ziegler – Nichols : wprowadź opis zdjęcia tutaj

I na tym obrazie demonstrują efekty parametrów PID :
Efekty parametrów PID

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.