Postaram się rozwinąć trochę z mojego doświadczenia dla tych, którzy mogą być zainteresowani. Myślę, że problem polega na tym, że mamy dużo teorii sterowania, która jest nieco niedostępna (i czasami nieprzydatna), a następnie mamy zasady kciuka, które przyjmują założenia dotyczące systemów, które często są niedokładne.
Stabilność
Porozmawiajmy najpierw o tym, dlaczego pętle sterowania stają się niestabilne. Dla tej dyskusji założę, że system jest liniowy. Nieformalnie oznacza to, że jeśli sygnał sterujący jest sinusoidą o danej częstotliwości, to obserwowane wyjście jest o tej samej częstotliwości i jeśli zmieniasz amplitudę układu sterowania, wyjście reaguje w tym samym stosunku. To założenie jest dobrym przybliżeniem dla wielu systemów w świecie rzeczywistym i pozwala nam spojrzeć na różne częstotliwości w izolacji.
Jeśli spojrzeć na ścieżkę sterowania, masz wartość zadaną, regulator PID, system (aka „Roślina”), a następnie czujnik. Wyobraź sobie stałą wartość zadaną i sinusoidę z czujnika (jest to równe zakłóceniu w świecie rzeczywistym na czujniku, przekazywane z powrotem). W niestabilnym systemie sprzężenie zwrotne powoduje, że pętla sterowania wzmacnia błąd zamiast go redukować, tak że wraz z upływem czasu wzrasta jego amplituda. Powodem tego jest opóźnienie lub, dla tej konkretnej częstotliwości, przesunięcie fazowe pomiędzy wejściem i wyjściem. Dla danej częstotliwości możemy spojrzeć na to przesunięcie w pętli otwartej (tj. bez sprzężenia zwrotnego) i amplitudę na wyjściu, a kiedy narysujemy to wszystko na wykresie, otrzymamy coś w rodzaju wykresu Bode’a. Jeśli na wykresie otwartej pętli mamy sytuację, w której błąd jest wzmacniany, mamy do czynienia z niestabilnym systemem. Jeśli opóźnienie jest mniejsze niż 1/2 długości fali lub wzmocnienie jest mniejsze niż x1, to układ będzie stabilny. W praktyce chcemy mieć pewien margines od tego punktu (margines wzmocnienia i margines fazy) i dlatego zobaczysz to „cofanie się” w wielu ręcznych/heurystycznych metodach.
Głównym problemem z tymi ręcznymi metodami jest to, że lecisz na oślep i masz prawie gwarancję, że otrzymasz słaby system sterowania.
Pamiętaj również, że znaczenie P, I i D jest związane z tym, co mierzy twój czujnik i jakie sterowanie stosujesz. Częstym błędem w domowych kontrolerach jest to, że ludzie myślą, że stosują P, gdy w rzeczywistości tak nie jest. Sterowniki silników często mają pętlę pozycji, biegnącą nad pętlą prędkości, biegnącą nad pętlą momentu obrotowego. (Kaskada)
OK ale jak to nam pomoże?
Pierwszym punktem, który chciałbym poruszyć jest to, że jeśli budujesz swój własny regulator PID, powinieneś również zbudować sposób pomiaru odpowiedzi otwartej pętli. Zrób przemiatanie częstotliwości na wejściu do twojego kontrolera i zmierz wyjście czujnika z odłączonym sprzężeniem zwrotnym. Wtedy możesz narysować wykres Bode’a w otwartej pętli i zobaczyć, dlaczego twój system jest stabilny i być w stanie handlować różnymi kontrolami. Przydatne jest również zmierzenie odpowiedzi zamkniętej pętli i można to zrobić z każdym systemem, wykonując przemiatanie częstotliwości wartości zadanej, gdy pętla jest zamknięta. Oba te zadania nie są trudne i nie wymagają dużej wiedzy teoretycznej.
Jeśli po prostu podrasowujesz sterowanie bez zrozumienia tego, co dzieje się pod maską, nie będziesz w stanie zoptymalizować swojego systemu. Zbudowanie pewnej intuicji na temat tych systemów nie jest takie trudne. Np. wzmocnienie proporcjonalne nie ma wpływu na fazę, ale po prostu zwiększa wzmocnienie w otwartej pętli we wszystkich częstotliwościach. Więc to co robisz, gdy zwiększasz wzmocnienie proporcjonalne we wszystkich tych ręcznych metodach strojenia, to znalezienie częstotliwości, w której faza zmierza do -180. Zobacz to, aby uzyskać więcej pomysłów na temat wpływu różnych elementów sterujących na odpowiedź częstotliwościową.
Często uzyskanie najlepszej wydajności pętli zamkniętej wymaga dostrojenia systemu, a nie tylko wzmocnienia regulatora. To, czego chcesz, to uczynić system tak „sztywnym”, jak to tylko możliwe. Pozwoli to na zwiększenie parametrów sterowania i uzyskanie najlepszej szerokości pasma w pętli otwartej i zamkniętej. Z mojego doświadczenia w aplikacjach sterowania silnikiem wynika, że wzmocnienie proporcjonalne jest tym, które powinno wykonywać większość „pracy”, a integrator „resztę”. Nie sądzę, abyś w ogóle potrzebował członu D. Posiadanie filtru dolnoprzepustowego i filtru pasmowego bardzo pomaga w sytuacjach, w których może wystąpić rezonans mechaniczny, ale ustawienie ich bez wykresu Bode’a jest bardzo trudne (częstotliwość oscylacji, którą obserwujesz w pętli zamkniętej może być inna niż w pętli otwartej).
Jeśli bezpieczeństwo jest problemem (bardzo mocne silniki lub system, który może zostać zniszczony przez silnik wymykający się spod kontroli), musisz wprowadzić pewne ograniczenia przed rozpoczęciem strojenia (np. limit prądu, maksymalny błąd pozycji), aby chronić system. Następnie należy uzyskać jakieś wyczucie zakresu parametrów. Jeśli Twoje sprzężenie zwrotne ma 40 zliczeń na obrót lub 4000 zliczeń na obrót, Twoje parametry będą współczynnikiem 100 dla danego systemu. Moje podejście polegałoby na znalezieniu zakresu, w którym masz słabą sterowalność, a następnie zwiększeniu tego zakresu, zaczynając od P, a następnie I (chociaż znowu lecisz w ciemno). Cofanie się tworzy margines stabilności.
Poza zamkniętą pętlą
Zamknięta pętla próbuje usunąć błąd z systemu. Zawsze będzie miała nieco ograniczoną wydajność. To, co chcesz zrobić, to zminimalizować błąd, który widzi kontroler w pętli zamkniętej, a jednym ze sposobów na zrobienie tego jest technika zwana feed forward. W feed-forward obchodzisz kontroler i kierujesz polecenie bezpośrednio do systemu. Przykładem tego może być feed-forward przyspieszenia. Jeśli znasz stałą momentu obrotowego silnika i znasz obciążenie, możesz dość dużo powiedzieć, ile prądu trzeba napędzać, aby uzyskać pewne przyspieszenie obciążenia. Wystarczy wziąć przyspieszenie wejściowe polecenia, pomnożyć je przez stałą i dodać do polecenia napędu kontrolera. Jesteś w zasadzie robi to, co trzeba by napędzać system, jeśli nie było kontrolera i bliżej można dostać mniejszy błąd pętla musi podjąć i lepiej system będzie działać. W praktyce robi to ogromną różnicę.