Jak mogę automatycznie regulować parametry PID w locie?

15

Mam prosty system serwo, który wykorzystuje kontroler PID zaimplementowany w MCU do wykonania sprzężenia zwrotnego. Jednak właściwości systemu zmieniają się dynamicznie, dlatego parametrów PID nie można nigdy dostosować do wszystkich okoliczności.

Mój robot to lekkie ramię z napędzanymi z tyłu silnikami elektrycznymi, podobnymi do tego:

Lekkie ramię robota

Ramię wykonuje kilka zadań, w tym podnoszenie dużych ciężarów, pchanie i ciągnięcie przedmiotów po biurku. Każde z tych zadań wymaga innych parametrów strojenia PID, których nie mogę łatwo przewidzieć.

To, co naprawdę chciałbym, to funkcja wyższego poziomu, która może ostrożnie dostosowywać parametry w odpowiedzi na zachowanie ramienia. Na przykład, jeśli zauważy, że ramię oscyluje, może zmniejszyć P i zwiększyć D. Lub jeśli zauważy, że ramię nie osiąga celu, może zwiększyć I.

Czy takie algorytmy istnieją? Byłbym szczęśliwy, nawet gdyby algorytm nie udoskonalił parametrów od razu. EG ramię mogło oscylować kilka razy, zanim parametry zostały dostosowane do ich nowych wartości.

Rocketmagnet
źródło

Odpowiedzi:

10

Kiedyś współpracownik i ja wdrożyliśmy algorytm simpleksowy do dostrajania w locie parametrów PID pętli sterowania prądem dla silnika. Zasadniczo algorytm modyfikowałby jeden parametr na raz, a następnie zbierał dane dotyczące parametru sprzężenia zwrotnego, który był naszą miarą dobroci. Nasze było procentowe odchylenie od aktualnej docelowej wartości zadanej. W zależności od tego, czy parametr sprzężenia zwrotnego stał się lepszy czy gorszy, następny parametr został odpowiednio zmodyfikowany.

Lub w Wikipedii mów:

Niech program liniowy da kanoniczny obraz. Algorytm simpleks działa poprzez wykonywanie kolejnych operacji przestawnych, z których każda daje ulepszone podstawowe wykonalne rozwiązanie; wybór elementu przestawnego na każdym etapie jest w dużej mierze determinowany przez wymóg, aby ten element obrotowy poprawił rozwiązanie.

Technicznie zastosowaliśmy metodę Neldera-Meada, która jest rodzajem simpleksu. Można go również opisać jako algorytm wspinaczki pod górę, jeśli obserwujesz, jak modyfikuje parametry wejściowe, gdy szuka optymalnego parametru wyjściowego.

Animacja Neldera-Meada

Nedler-Mead działał najlepiej w naszym przypadku, ponieważ może ścigać wartość zadaną. Było to ważne, ponieważ nasza obecna docelowa wartość zadana zmieniła się wraz ze wzrostem zapotrzebowania na moment obrotowy.

technika Neldera-Meada jest heurystyczną metodą wyszukiwania, która może zbiegać się do punktów niestacjonarnych

embedded.kyle
źródło
czy możesz połączyć swoje podejście i wyniki, jeśli są one dostępne?
SPRajagopal
@SPRajagopal Przepraszamy, ale nie. Nie pracuję już dla tej firmy i nie mam dostępu do żadnych danych.
embedded.kyle
4

Dobrym podejściem do takiego problemu jest kontrola adaptacyjna. W skrócie, metodologia kontroli zakłada, że ​​model jest znany, ale parametry modelu (masa, bezwładność itp.) Nie są znane. Jego zadaniem jest oszacowanie nieznanych parametrów. Krótkie wprowadzenie można znaleźć na wikipedii . Tekst Robotics: Modeling, Planning and Control autorstwa Siciliano i in. dokładniej opisz ten temat.

Edytuj w odpowiedzi na zapytanie @Rocketmagnets:

Krótko mówiąc, musisz mieć model matematyczny swojego układu, tj. Równania opisujące, jak twój system ewoluuje w czasie, gdy jest wymuszony lub w inny sposób, ale nie musisz znać parametrów dynamicznych, takich jak masa różnych składników, ich bezwładność itp. .. Zadaniem kontrolera adaptacyjnego jest oszacowanie tych parametrów. Musisz jednak wstępnie zgadnąć dla każdego z nieznanych parametrów. Następnie podczas działania systemu wykorzystuje sygnały sterujące, sygnały wyjściowe i metodę, taką jak regresja liniowa lub opadanie gradientu, w celu aktualizacji nieznanych wartości parametrów. Z czasem parametry zbiegną się w wartości, które spowodują stan ustalony, chociaż mogą nie pasować do rzeczywistych parametrów, tj. Może to spowodować błędną masę, ale wartość nadal będzie działać.

Stąd radzę odnieść się do tekstu omawiającego tę metodę. Właśnie zauważyłem na przykład, że dr Marc Bodson oferuje na swojej stronie internetowej kopię swojego tekstu Adaptive Control: Stabilność, Wytrzymałość i Konwergencja w formacie PDF .

DaemonMaker
źródło
Czy możesz wyjaśnić tę metodę?
Rocketmagnet
1
Wątpię, czy mógłbym to zrobić sprawiedliwie, biorąc pod uwagę, że dopiero niedawno poznałem tę metodę. Co więcej, nie jest to jedna metoda, ale zbiór technik opracowanych w ciągu ostatnich 50 lat. Jednak zredaguję moją odpowiedź, aby opracować nieco więcej.
DaemonMaker
2

Opisany proces jest znany jako adaptacyjny PID.

Wydaje się to jednak przesadą. Odkryłem, że PID jest dość niezawodny w radzeniu sobie z zakłóceniami zewnętrznymi, a zadania, które opisujesz, nie wydają się wykraczać poza możliwości jednego zestawu korzyści.

użytkownik65
źródło
To coś więcej niż tylko zakłócenia zewnętrzne. Są to zmiany właściwości stawu. Na przykład podwojenie masy robota prowadzi do przekroczenia.
Rocketmagnet