Skocz do zawartości

Inne podejście do regulatorów PID (transmitancja, wyliczenie współczynników)


Treker

Pomocna odpowiedź

Witajcie,
chciałbym podpytać czy ktoś z Was implementując regulator PID w swoich konstrukcjach próbował zrobić to trochę lepiej niż metodą prób i błędów?

Mam na myśli wyznaczenie transmitancji obiektu, wyliczenie/symulacja nastaw itd.?

Chociażby w najprostszym przypadku - PID dla prędkości silnika. Nawet takiego prostego jak Pololu.

  • Lubię! 1
Link do komentarza
Share on other sites

Jeżeli silnik jest dobrze opisany przez producenta (stałe elektryczne, mechaniczne, moment bezwładności twornika, rezystancja i indukcyjność uzwojeń) to nie problem zrobić model matematyczny silnika np w matlabie i tam zrobić symulację i wyznaczenie nastaw PID.

Jeżeli brakuje nam danych można próbować coś wyliczyć (stała elektryczna z napięcia znamionowego i prędkości obrotowej znamionowej, stała mechaniczna z momentu maksymalnego i prądu maksymalnego).

No a jeżeli producent nie jest w stanie dostarczyć takich danych, co niestety często się zdarza, pozostają eksperymentalne metody wyznaczania modeli matematycznych i jak tak wyznaczymy model/transmitancję można ją wtedy wprowadzić do symulacji jako nasz silnik i na jej podstawie wyznaczać nastawy.

Ewentualnie mając już regulator PID zaimplementowany i podpięty silnik bez konkretnej wiedzy o układzie można dobierać nastawy metodą Zieglera-Nicholsa czy też metodą Astroma-Hagglunda (która jest stosowana w układach samostrojących się).

Link do komentarza
Share on other sites

Najpierw odnosząc się do postu wyżej, nawet jeśli znamy parametry silnika lub jesteśmy w stanie je wyliczyć(czyli de facto je znamy), to są to parametry teoretyczne. W rzeczywistości i tak musimy zidentyfikować silnik eksperymentalnie. Ewentualnie jeśli producent podał jakieś wartości to możemy je przyjąć jako początkowy model przy wyznaczaniu transmitancji( realne wartości nie powinny zbytnio odbiegać od teoretycznych, więc algorytm optymalizacji, dopasowujący dane eksperymentalne do modelu będzie miał łatwiej). W naszym robocie Thunderstorm w ramach pracy inżynierskiej robiliśmy identyfikację silnika, jednak próba symulacji i wyznaczania nastaw za pomocą simulinka okazała się trudna. Simulink korzysta z algorytmu ciągłego. W rzeczywistości algorytm jest dyskretny i posiada ograniczenie na sterowanie. Ograniczenie sterowania powoduje, że obliczanie nastaw, czy nawet transmitancji jest trudne/niemożliwe, gdyż obiekt staje się nieliniowy. Podsumowując Simulinka można wykorzystać, żeby wyznaczyć jakieś początkowe wartości nastaw, jednak jakość sterowania najlepiej oceniać już na rzeczywistym obiekcie i dobierać nastawy znając działanie każdej części regulatora. Z teorii wiadomo, że metody Z-N i A-H dają nastawy dalekie od optymalnych, ale można spróbować ich użyć (tylko trzeba uważać przy utracie stabilności). Osobiście nigdy nie korzystałem z nich przy doborze nastaw silnika. Przepraszam za przydługi post. Mam nadzieję, że trochę pomogłem.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

KonradIC13, dzięki za odpowiedź. Teoria robienia takich rzeczy w miarę znam. Zależało mi właśnie na wiedzy, czy ktoś to robił i z jakim efektem 😉

flesiu, również dziękuję Ci za odpowiedź. Rozumiem, że pobudzaliście układ skokiem jednostkowym, a następnie sprawdzaliście prędkość obrotową co jakiś czas i rysowaliście z tego wykresy odpowiedzi układu? Możesz zdradzić jak często próbkowaliście dane o prędkości? No i najważniejsze, jakie były efekty? Czy ilość włożonej pracy w zidentyfikowanie obiektu dała wymierne korzyści?

Link do komentarza
Share on other sites

Tak pobudzaliśmy układ skokiem, ale logowaliśmy odczyty enkodera, nie prędkość. Dane odczytywaliśmy najszybciej jak się dało logując czas i wartość enkodera. Samo zidentyfikowanie i dopasowanie modelu udało się całkiem dobrze, lecz tak jak pisałem już wcześniej późniejsze wykorzystanie modelu jest trudne do zrealizowania. Znajomość modelu może pomóc wyznaczyć jakieś początkowe nastawy, ale i tak bez metody prób i błędów się nie obejdzie 😉

Link do komentarza
Share on other sites

Ok, w Twoim poście trochę to dwuznacznie brzmi, ale rozumiem, że wartości odczytywaliście najszybciej jak się dało, ale była to ustalona wartość? W sensie zawsze odstęp był taki sam? Czy było to "losowe"? Czyli mijało X czasu robiliście odczyt "ticków" enkodera, zerowaliście ilość "ticków" i od nowa?

Link do komentarza
Share on other sites

Do różnych pomiarów stosowaliśmy oba wymienione przez Ciebie sposoby. Było to już chwilę temu więc na 100% nie jestem w stanie powiedzieć, ale chyba do identyfikacji były równe odstępy, gdyż do logowania użyliśmy matlaba z ustawionym trybem fixed point. Pomiary co 1 ms jeśli dobrze pamiętam. Ale sposób z zapisywaniem czasu i ticków też stosowaliśmy do innych pomiarów.

Link do komentarza
Share on other sites

Dzięki za informację. Zabiorę się za to pewnie w wakacje - wtedy będę miał więcej pytań. Szybciej nie będę tego robił, bo z tego, co piszesz wynika, że nie dało to gigantycznych profitów 😉

Link do komentarza
Share on other sites

Zgaduje, że piszesz o metodzie tzw. "kompensacji dynamiki obiektu".

Sam stosowałem tą metodę, jednak w rzeczywistości większość parametrów trzeba wyznaczyć samemu, potem zbudować zastępczy model fizyczny, na jego podstawie wyprowadzić układ równań ruchu (dla modelu mechanicznego) i dopiero na końcu można wyprowadzić transmitancję obiektu. Z resztą obarczoną dużym błędem - chyba że posiadasz porządny sprzęt pomiarowy, lub modelowane zjawisko jest nazwijmy to "nie wymagające pomiarowo".

Mając transmitancję obiektu w przypadku PIDa proponuje stosować równanie regulatora rzeczywistego, a nie idealnego bo to drugie rozwiązanie... jednym słowem jest tylko stratą czasu (nie zapomnij o dyskretyzacji - metody przybliżone są wystarczające).

Porównując oba równania wyprowadzasz współczynniki Kp, Ki, Kd i to są powiedzmy całkiem dobre nastawy wyjściowe, które i tak trzeba korygować. Plus jest taki, że jeśli regulowany proces jest bardzo dynamiczny to inaczej (bez strat w sprzęcie i ofiar w obserwatorach) było by ciężko wyznaczyć nastawy.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.