Jakie są dobre strategie strojenia pętli PID?

Dostrajanie korzyści z kontrolera może być trudne, co general strategie działają dobrze, aby uzyskać stabilny system, który jest zbieżny z właściwym rozwiązaniem?

Komentarze

  • Pytanie skierowane na bardziej szczegółowe pytanie byłoby bardziej przydatny. W przeciwnym razie wystarczy spojrzeć na artykuł PID , w którym znajduje się sekcja dotycząca dostrajania.
  • I ' zawsze uważaliśmy, że dostrajanie PIDów jest bardzo zależne od charakterystyki systemu, dlatego ' nigdy nie znalazłem systemów automatycznego dostrajania do strasznie przydatne. Są w porządku przy pierwszym przebiegu, zestaw parametrów o niskiej wydajności, ale są daleko od optymalnego i będziesz miał ten sam problem z każdą ogólną strategią, która nie jest zoptymalizowana dla mechanicznych, elektrycznych i kontrolnych aspektów danego systemu.

Odpowiedź

W przypadku małych silników o niskim momencie obrotowym przy niewielkim lub żadnym przełożeniu jedną z procedur, której można użyć do uzyskania dobrego strojenia podstawowego, jest zbadanie jego odpowiedzi na zakłócenie.

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

  1. Ustaw wszystkie wzmocnienia na zero.
  2. Zwiększaj wzmocnienie P, aż odpowiedź na zakłócenie będzie stałą oscylacją.
  3. Zwiększaj wzmocnienie D, aż oscylacje ustąpią (tj. jest krytycznie stłumiony).
  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, aż osiągniesz wartość zadaną z żądaną liczbą oscylacji (zwykle zero, ale można uzyskać szybszą reakcję, jeśli nie masz nic przeciwko kilku oscylacjom przeregulowania)

To, z jakiego zakłócenia korzystasz, zależy od mechanizmu, do którego podłączony jest kontroler. Zwykle wystarczy odsunąć mechanizm ręką od wartości zadanej i puścić. Jeśli oscylacje rosną i większe, należy zmniejszyć Wzmocnienie P.

Jeśli ustawisz wzmocnienie D zbyt wysoko, system zacznie drgać (wibrować z wyższą częstotliwością niż oscylacje wzmocnienia P). Jeśli tak się stanie, zmniejsz wzmocnienie D, aż się zatrzyma.

Myślę, że ta technika ma swoją nazwę. Umieszczę ją tutaj, gdy ją znajdę.

Komentarze

  • Brzmi jak Ziegler-Nichols: en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method
  • @ Throwback1986, to zdecydowanie nie Ziegler-Nichols, który używa tylko wzmocnienia P i gdzie Wzmocnienie I i D jest następnie obliczane odpowiednio na podstawie oscylacyjnego wzmocnienia P i okresu oscylacji.
  • Czy masz dodatkowe porady dotyczące strojenia ramienia robota, które ma wiele przegubów, które wymagają strojenia? Czy zaczynasz od podstawy i pracujesz na zewnątrz, aż do efektu końcowego, czy na odwrót, czy to w ogóle ma znaczenie?
  • W środowisku akademickim lub przemysłowym będziesz potrzebować bardziej wyrafinowanej metody sterowania. Dla hobbysty; grawitacja ma efekt tłumienia, więc ustaw każdy przegub pod kątem, pod którym grawitacja najmniej wpływa na silniki. Na przykład z ramieniem skierowanym prosto do góry, tak aby grawitacja działała na łożyska, a nie na silnik. Porządek nie ma znaczenia. Dodanie do sterowania terminem wyprzedzającej kompensacji grawitacji jest prawdopodobnie najłatwiejszym ulepszeniem (użyj rekurencyjnego Newtona-Eulera dla ramienia szeregowego), jeśli możesz ' uzyskać żądaną wydajność.
  • Narzędzie pidtuner.com dało mi lepsze wyniki niż metoda Zieglera-Nicholsa, która ma kilka znanych wad; folk.ntnu.no/skoge/publications/2003/tuningPID/more/…

Odpowiedź

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

  1. Ustaw wszystkie wzmocnienia na 0.
  2. Zwiększ Kd aż system zacznie oscylować.
  3. Zmniejsz K d o współczynnik 2–4.
  4. Ustaw Kp na około 1% wartości K d .
  5. Zwiększaj Kp , aż zaczną się oscylacje.
  6. Zmniejsz Kp przez współczynnik 2–4.
  7. Ustaw Ki na około 1% z Kp .
  8. Zwiększaj Ki aż do rozpoczęcia oscylacji.
  9. Zmniejsz Ki o współczynnik 2–4.

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

Ogólne zasady dotyczące wpływu każdego członu na czas narastania, przeregulowanie, czas ustalania, błąd stanu ustalonego i stabilność, patrz Tabela 1 of „PID Control System Analysis and Design” autorstwa Li, Ang i Chong w IEEE Control Systems Magazine.

Komentarze

  • Kd first? Zawsze myślałem, że najlepiej będzie zacząć od Kp.
  • Ja ' transkrypcję ze starych slajdów wykładów, jeśli są ' to dobry powód, aby nie robić tego w ten sposób. ' chciałbym to usłyszeć.
  • Że ' to algorytm, który zalecam dla ” siedzenia spodni ” strojenia. ' doprowadzi Cię tak blisko, jak to tylko możliwe, bez modelowania systemu lub mierzenia jego odpowiedzi. (Modelowanie i / lub pomiary to jedyna droga, jeśli naprawdę potrzebujesz odpowiedniego dostrojenia).
  • Strojenie Kd najpierw nie ' nie ma dla mnie żadnego sensu , jak w każdym PID I ' już zaimplementowanym znak Kd jest ujemny. ' jest używany do redukcji sygnału sterującego, gdy występują bardzo duże zmiany błędów, zasadniczo tłumiąc system. Jeśli masz tylko Kd, system poruszy się w przeciwnym kierunku, zwiększając błąd i komplikując problem. Jeśli Kd jest dodatnia, to ilekroć duża zmiana w błędzie wystąpi we właściwym kierunku, ' zamierzasz zmienić ją jeszcze szybciej i przekroczyć cel.
  • Właściwie najpierw dostrojenie wzmocnienia D ma jakiś sens, ale ' m zakładając, że ” zwiększanie ” Wzmocnienie D oznacza zwiększenie wartości bezwzględnej i ' zwiększa tylko tłumienie. Największym problemem ze wzmocnieniem D jest to, że wzmacnia on szum o wysokiej częstotliwości i ' dobrze jest widzieć ten efekt bez wzmocnienia P. Zatem ' zasadniczo zaczynasz od wyszukania wzmocnień, przy których przestaje zachowywać się jak tłumienie i zaczyna wzmacniać szum i opóźnione sygnały błędów. I ' m zakładam, że w kroku 2 musisz szturchać swoją roślinę, aby sprawdzić, czy oscyluje.

Odpowiedź

Witryna Embedded.com po raz kolejny przeniosła mój artykuł, ale tutaj jest teraz. To pokazuje, jak napisać pętlę PID (zastanawianie się, jak to zrobić w czymś innym niż zmiennoprzecinkowe, pozostaje ćwiczeniem dla czytelnika) i jak ją dostroić.

PID bez doktoratu

najlepszy sposób zależy w dużej mierze od twoich umiejętności. Sposobem na najlepsze dostrojenie , zakładając, że jesteś doświadczonym układem sterowania, jest zwykle zmierzenie odpowiedzi zakładu („roślina” == „rzecz, którą” kontrolujesz „), następnie w zależności od tego, jak wykonałeś pomiary, wyodrębnij model rośliny i zaprojektuj do tego lub po prostu zaprojektuj bezpośrednio do pomiarów.

W przypadku niektórych trudnych roślin okaże się, że nigdy nie będziesz pomiary, w takim przypadku musisz przejść przez same modele. Są rzadkie, ale satysfakcjonujące, gdy zaczną działać.

Odpowiedź

Sebastian Thrun przedstawił prosty algorytm dostrajania PID w swoim Zajęcia „Jak zaprogramować samochód-robot”. Nazywa się „twiddle”, opisuje go tutaj .

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

Odpowiedź

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

Kd może zmylić problem, ponieważ słabo reaguje na szum, a następnie zaczynasz dodawać filtry na wejściu analogowym, a następnie zapytaj, co to robi oprócz spowolnienia kontroli i utrudnienia całej sprawy …

Inną rzeczą, która może mnie zmylić, jest to, że równanie PID ma standardową postać lub w niezależnej (równoległej w Wikipedii) formie. Efekt Ki wydaje się odwrotny, gdy forma jest niewłaściwa do tego, co myślisz, że jest. Oba typy są używane w automatyce, czasem z możliwością przełączania się między nimi.

Odpowiedź

Modelowanie systemu

Oczywiście eksperymentalne strojenie można wykonać, jak wspomniano w innych odpowiedziach, ale jeśli jesteś w stanie zdefiniować rozsądny model dynamiczny dla wszystkiego, czym chcesz sterować i jesteś w stanie zidentyfikować jego parametry , powinieneś być w stanie zaprojektować swój kontroler w oparciu o dobrze zdefiniowane kryteria, takie jak przekroczenie , czas narastania , czas ustalania , stały -stan błąd i tak dalej.

W MATLAB-ie istnieją nawet narzędzia , które są w stanie dostroić kontroler w celu optymalizacji pod kątem kombinacji tych kryteriów, co czyni go jeszcze lepszym do użycia.

Poznaj swój kontroler

Dowiedz się, jaki jest każdy parametr w Sterownik PID również jest bardzo pomocny. 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 samemu to odczuć, łatwiejsze może być ręczne dostrojenie kontrolera.

Problemy w świecie rzeczywistym

Jest szansa, że jedna z tych rzeczy, między innymi, pojawi się na Twojej drodze podczas strojenia kontrolera: windup , nieodpowiednia częstotliwość próbkowania , nasycenie .

Wniosek

Ostatecznie wszystko zależy od tego, co faktycznie możesz zrobić ze swoim aby uzyskać wiedzę o tym, jak to działa i jakie eksperymenty można przeprowadzić. Najlepiej jest dowiedzieć się więcej o regulatorach PID i ogólnej teorii sterowania, IMO, ale jestem stronniczy 🙂

Komentarze

  • I nie ' nie rozumiem, dlaczego ludzie wciąż sugerują heurystykę do dostrajania PID, podczas gdy obecnie mamy wiele automatycznych narzędzi do identyfikacji zakładu i projektowania sterowników, które nie ' t wymagają pogłębionego zaplecza teoretycznego. W takim razie kciuk w górę przy tej odpowiedzi.

Odpowiedź

Postaram się nieco rozszerzyć moje doświadczenie 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 (i czasami nieprzydatne), a następnie mamy praktyczne zasady, 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 sterujące stają się niestabilne. W tej dyskusji założę system liniowy . Nieformalnie oznacza to, że jeśli twój sygnał sterujący jest falą sinusoidalną na danej częstotliwości, to obserwowane wyjście ma tę samą częstotliwość, a jeśli zmienisz amplitudę systemu sterowania, wyjście zareaguje z tym samym współczynnikiem. To założenie jest dobrym przybliżeniem dla wielu rzeczywistych systemów i pozwala nam spojrzeć na różne częstotliwości w izolacji.

Jeśli spojrzysz na ścieżkę sterowania, masz wartość zadaną, twój regulator PID, twój system (aka „Plant”), a następnie czujnik. Wyobraź sobie stałą wartość zadaną i falę sinusoidalną z czujnika (jest to równe rzeczywistemu zakłóceniu czujnika, sprzężone zwrotnie). W niestabilnym systemie sprzężenie zwrotne powoduje, że pętla sterowania wzmacnia błąd, zamiast go zmniejszać, tak że wraz ze wzrostem czasu wzrasta amplituda. Przyczyną tego jest opóźnienie lub przesunięcie fazowe między wejściem a wyjściem dla tej konkretnej częstotliwości. 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 to wszystko na wykresie, otrzymamy coś w rodzaju Bode Plot . Jeśli mamy sytuację na tym wykresie w otwartej pętli, w której błąd jest wciąż wzmacniany, 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 trochę marginesu od tego punktu (margines wzmocnienia i marginesu fazy), dlatego „zobaczysz to” wycofywanie się „w wielu metodach manualnych / heurystycznych.

Główny problem z tymi podręcznikami polega na tym, że „lecisz na ślepo” i masz prawie gwarancję, że otrzymasz kiepski system sterowania.

Pamiętaj też, że znaczenie P, I i D jest związane z tym, co mierzy czujnik jaką kontrolę stosujesz. Częstym błędem w kontrolerach budowanych w domu jest myślenie, że „stosują P, podczas gdy w rzeczywistości tego nie robią. Sterowniki silników często mają pętlę położenia, przebiegającą przez pętlę prędkości przebiegającą przez pętlę momentu. (A kaskada )

OK, ale w czym nam to pomaga?

Pierwszą kwestią, którą chciałbym poruszyć, jest to, że jeśli budujesz swój własny regulator PID, powinieneś również stworzyć sposób pomiaru otwartej pętli odpowiedź. Wykonaj przemiatanie częstotliwości na wejściu do kontrolera i zmierz wyjście czujnika z odłączonym sprzężeniem zwrotnym. Następnie możesz narysować wykres Bodea w otwartej pętli i zobaczyć , dlaczego twój system jest stabilny i może handlować Przydatne jest również mierzenie odpowiedzi w zamkniętej pętli i można to zrobić z dowolnym systemem, wykonując przemiatanie częstotliwością nastawy, gdy pętla jest zamknięta. Obie te czynności nie są tak trudne i nie wymagają dużej wiedzy teoretycznej.

Jeśli po prostu dostosowujesz elementy sterujące bez zrozumienia, co się dzieje pod maską, nie będziesz w stanie aby zoptymalizować system. Zbudowanie intuicji na temat tych systemów nie jest takie trudne. Na przykład. wzmocnienie proporcjonalne nie ma wpływu na fazę, ale po prostu zwiększa wzmocnienie pętli otwartej na wszystkich częstotliwościach. Więc to, co robisz, zwiększając proporcjonalne wzmocnienie we wszystkich tych ręcznych metodach strojenia, to znajdowanie częstotliwości, przy 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 pętli zamkniętej wymaga dostrajanie systemu, a nie tylko zyski kontrolera. Chcesz, aby system był jak najbardziej „sztywny”. Umożliwi to zwiększenie parametrów sterowania i uzyskanie najlepszej przepustowości otwartej i zamkniętej pętli. Z mojego doświadczenia w zastosowaniach do sterowania silnikami wynika, że wzmocnienie proporcjonalne jest tym, które powinno wykonywać większość „pracy”, a integrator „resztę”. Nie sądzę, żebyś w ogóle potrzebował członu 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 Bodea jest bardzo trudne (częstotliwość oscylacji, którą obserwujesz w pętli zamkniętej może różnić się od pętli otwartej).

Jeśli chodzi o bezpieczeństwo (bardzo mocne silniki lub system, który mógłby zostać zniszczony przez wymykający się spod kontroli silnik), należy limity przed rozpoczęciem strojenia (np. ograniczenie prądu, błąd maksymalnego położenia) w celu ochrony systemu. Następnie musisz wyczuć zakres parametrów. Jeśli twoja sprzężenie zwrotne ma 40 zliczeń na obrót lub 4000 zliczeń na obrót, parametry będzie dla danego systemu współczynnikiem 100. Moje podejście polegałoby na znalezieniu zakresu, w którym masz słabą sterowalność, a następnie przyspieszenie od tego miejsca, zaczynając od P, a następnie I (chociaż znowu lecisz na ślepo). Wycofanie się tworzy ten 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 pętli zamkniętej, a jednym ze sposobów jest zastosowanie techniki o nazwie feed do przodu . W sprzężeniu do przodu omijasz kontroler i wysyłasz polecenie bezpośrednio do systemu. Przykładem może być sprzężenie wyprzedzające przyspieszenia. Jeśli wiesz, że „ponownie” moment obrotowy silnika jest load można w zasadzie powiedzieć, ile prądu trzeba napędzać, aby uzyskać określone przyspieszenie obciążenia. Po prostu bierzemy przyspieszenie wejściowe polecenia, mnożymy je przez stałą i dodajemy to do polecenia sterującego sterownika. Zasadniczo robisz to, co trzeba by sterować systemem, gdyby nie było kontrolera i im bliżej możesz uzyskać, tym mniej błędów musi usunąć pętla i tym lepiej będzie działał twój system. To robi ogromną różnicę w praktyce.

Komentarze

  • ” Z mojego doświadczenia w zastosowaniach związanych ze sterowaniem silnikami wynika, że wzmocnienie proporcjonalne jest tym, które powinno być wykonując większość ” prac „, a integrator ” resztę „. Nie ' nie sądzę, że potrzebujesz w ogóle terminu D. ” Zgadzam się z tym dla typowych zastosowań sterowania silnikiem. P wykonuje główną pracę, a I kompensuje długoterminowe dryfowanie / błędy. Ale tutaj quadkopter będzie narażony na wiele zewnętrznych turbulencji, więc człon D jest ważny dla uzyskania szybkiej odpowiedzi. dla terminu I, chyba że quad jest w trybie nawigacji autonomicznej, nie jest aż tak istotne.
  • @ dm76: Większość mojego doświadczenia dotyczy sterowania silnikiem i robię to zastrzeżenie 😉 Moja intuicja mówi, że ' wciąż ma miejsce dla mnie w zastosowaniu quadkoptera i myślę, że jeśli P jest bardzo wysokie, może poradzić sobie z zakłóceniami zewnętrznymi (tak jak w przypadku sterowania silnikiem). Naprawdę musiałbym przyjrzeć się bliżej tym systemom, żeby powiedzieć coś konkretnego o quadcopterach …Myślę, że wiele z tego, co tu powiem, ma zastosowanie (zwłaszcza strojenie w dziedzinie częstotliwości i odpowiedź systemu w otwartej pętli).
  • @ dm76: I naprawdę te ” praktyczna zasada ” Strojenie PID skutkuje bardzo niską wydajnością w silnikach i prawdopodobnie taką samą w quadcopterach. Czasami dobrze umieszczony filtr wycinający może spowodować różnicę rzędu wielkości …

Odpowiedź

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

Poza tym wygoogluj „samostrojenie PID” dla niektórych zautomatyzowanych technik. Moim ulubionym jest zastosowanie sieci neuronowych do strojenia PID.

Odpowiedź

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

  • Często pobieraj dane statystyczne z siłownika (tj. zbierając napięcia wejściowe + impulsy enkodera w postaci stałej (0.01sec) czas dla 20secs jako 3 x 2000 macierz)
  • Pobierz funkcję transferu (TF) swojego siłownika (używając Ident z zestawu narzędzi MATLAB).
  • Na koniec użyj PIDTool w MATLAB i prześlij swoją funkcję transformacji.

Lub w szybki i prosty sposób:

Istnieje szybsze podejście o nazwie Ziegler – Nichols : enter opis obrazu tutaj

A na tym obrazku demonstruje wpływ parametrów PID :
Efekty parametrów PID

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *