Skocz do zawartości

Strojenie kontrolera PID - transmitancja


Archeerie

Pomocna odpowiedź

Witam wszystkich,

próbuję stworzyć kontroler PID, który ma sterować silnikiem DC poruszającym sankami po ławie pomiarowej. Mam problem (który być może wynika z tego, że mechatronika nie jest moją domeną) z wyznaczeniem transmitancji silnika DC połączonego z przekładnią ślimakową. Transmitancję dla samego silnika wyznaczyłem na podstawie danych katalogowych. Nie bardzo wiem co zrobić z przekładnią, która charakteryzuje się samohamownością w jednym z kierunków przenoszenia mocy.

Czy znacie jakieś pozycje literaturowe (linki rówież będą mile widziane), które mogłyby być przydatne? W Google grzebię już od dłuższego czasu (być może używam złej frazy), ale nie udało mi się znaleźć niczego poza transmitancją silnika DC oraz przekładni klasycznej, która nie charakteryzuje się samohamownością. Jak podejść do tematu? Bez znajomości transmitancji układu nie dostroję kontrolera (metody na czuja raczej odpadają).

Będę niezmiernie wdzięczny za okazaną pomoc.

Pozdrawiam

P.S. Drogi Moderatorze, jeśli źle dobrałem wątek (mimo starań), proszę o korektę.

Link do komentarza
Share on other sites

Wydaje mi się, że taki układ elektromechaniczny może być nieliniowy. Jeśli szukasz literatury, poszukaj czegoś z Identyfikacji Obiektów Sterowania. Będziesz musiał prawie na pewno pobudzać obiekt różnymi sygnałami i na podstawie odpowiedzi wyznaczyć transmitancję (lub nawet dwie: druga dla przeciwnego kierunku ruchu).

Link do komentarza
Share on other sites

Dzęki za odpowiedź.

Mniemam, że nieliniowość będzie wynikała z zastosowania przekładni ślimakowej. W takim razie miałbym jeszcze jedno pytanie: czy odpowiednio strojąc kontroler dam radę skompensować czas/drogę hamowania silnika i w ten sposób poprawić dokładność pozycjonowania? Czy oprócz PID'a można zastosować jakieś inne rozwiązanie, być może prostsze w implementacji (pomijając silnik krokowy)?

Link do komentarza
Share on other sites

A nie możesz pominąć samohamowalności i przyjąć, że przekładnia ślimakowa to zwykły element proporcjonalny?

A swoją drogą skąd weźmiesz parametry do transmitancji silnika? Jak niepoprawnie zidetyfikujesz model to tą całą transmitancję możesz do kosza wyrzucić😋

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

No właśnie, proporcjonalność przekładni. Przekładnia ślimakowa jest przekładnią cierną, a jak podają mądre książki, tarcie jest nieliniową funkcją prędkości (się douczyło pomiędzy postami). Poza tym samohamowność przekładni występuje tylko w jednym kierunku, tj. jeśli kręcimy ślimacznicą. Wówczas ślimak hamuje ruch. Póki co wydaje mi się, że silnik inaczej będzie widział obciążenie (a konkretnie jego inercję), niż silnik podłączony do konwencjonalnej przekładni. I tu rodzi się pytanie: czy rzeczywiście mogę odpuścić samohamowność?

Co do modelu silnika to myślałem podeprzeć się danymi katalogowymi i pomiarami (ale raczej parametrów elektrycznych jak rezystancja czy indukcyjność). Zdaję sobie sprawę, że każdy model to tylko model i może być co najwyżej bliski rzeczywistości. Ale chyba warto świadomie zbliżać się do rzeczywistości, niż robić to po omacku metodą prób i błędów. Mógłbym to zrobić po amerykańsku: poczekać aż zrobią inni. To drugie rozwiązanie brzmi interesująco, ale niestety nie wiadomo jaki będzie czas oczekiwania na rozwiązanie, a jak wiadomo czasu zawsze mało.

Zastanawiam się, czy potrzebny jest mi PID. Czy ktoś bardziej doświadczony ode mnie mógłby podzielić się swoimi doświadczeniami (odwołania do literatury również bardzo mile widziane)? Może nie potrzebnie kombinuję z PID'em?

OldSkull

jak już będę miał dwie funkcje transmitancji przekładni ślimakowej, jak wtedy stroić PID'a? Jak wyznaczyć transmitancję układu silnik + przekładnia, skoro są dwie funkcje transmitancji?

Link do komentarza
Share on other sites

Jeśli chcesz się bawić w identyfikację, powinieneś ją przeprowadzać w kompletnym już urządzeniu. Kolejną kwestią jest co chcesz sterować: prędkość, położenie czy może coś jeszcze innego. W przypadku PID (a nawet PI) nie ma największego znaczenia super dokładne wyznaczenie transmitancji, jeżeli środowisko jest zmienne, możesz:

- skompensować w sterowaniu ruch w przeciwnym kierunku, jeżeli jest to w ogóle możliwe. Przełączanie między dwoma regulatorami możę być kłopotliwe ze względu na całkę. Natomiast jeśli skorzystasz z dwóch transmitancji, to całe strojenie PID dla jednej, nie będzie już dobre dla drugiej.

- spróbować zastosować logikę rozmytą do regulatora i odpowiednio nastroić dla różnych kierunków. Strojenie na czuja, bądź wg jakiegoś pomysłu na sterowanie (czyli i tak na czuja).

- z grubsza ustalić stałe czasowe obiektu dla obu kierunków i dla nich dobrać Ti, Td i kp. Następnie ręcznie je poprawiać już w działającym obiekcie. PI ma ogólnie taką cechę, że przy dużym Ti,najwyżej będzie działał wolniej, więc prawie zawsze można z niego skorzystać (czasem trzeba pamiętać o windup). Jeśli interesuje Cię ogólnie działanie, ale niekoniecznie bardzo szybkie, jest rozwiązanie warte rozważenia. Na pewno warto od niego zacząć.

Pamiętaj, że będziesz mieć nieliniowości z:

- tarcia: statyczne oraz kinetyczne (prawdopodobnie) liniowo-kwadratowe

- luzy i niedoskonałości mechanizmu

Oprócz tego mogą się pojawić opóźnienia (i tym samym silne oscylacje przy źle dobranym regulatorze), a obiektem sterowania nie jest sam silnik z przekłądnią, ael również z całym mechnizmem stołu.

Najlepiej napisz o co właściwie chodzi, nie każy wie jakie możę być zadanie takiego silnika w ławie pomiarowej. Swoją drogą: po co Ci ława pomiarowa? I tak na żadne DIY nie dostaniesz homologacji czy innego papierka pozwalającego Ci prowadzić pomiary dla celów innych niż własne.

Link do komentarza
Share on other sites

Spróbuję po krótce opisać do czego dążę:

- ława pomiarowa w postaci T-ownika z MDF. T-ownik ułożony bokiem

- po ławie za pomocą paska zębatego (HTD M5) poruszana jest karetka tocząca się na kółkach łożyskowanych

- napęd stanowi silnik DC z przekładnią ślimakową (i=15)

- na przekładni zębate koło pasowe z=20, moduł = 5mm, profil HTD

- na osi silnika zainstalowany optyczny enkoder kwadraturowy 500imp/obr.

- długość całkowita części jezdnej ławy to 2500mm, długość robocza to 2200mm

- pomiar będzie przeprowadzany albo ze stałą prędkością, albo z prędkością zmienianą zgodnie z zadanym profilem trapezowym ("dołki" przy zbliżaniu się do punktu pomiarowego, "garby" pomiędzy - w ten sposób chciałbym poprawić dokładność pozycjonowania i jednocześnie utrzymać względnie dużą średnią prędkość przejazdu podczas pomiaru)

- pomiar to de facto dwa przejazdy: tam i z powrotem. Przy obu przejazdach punkty pomiarowe muszą się pokrywać

- czas przejazdu w jedną stronę nie powinien przekraczać 35s (dla pomiaru na pelnej długości ławy)

- po zakończeniu pomiaru karetka powinna być utrzymywana w stałej pozycji

- chciałbym uzyskać dokładność pozycjonowania na poziomie 1mm przy rozłożeniu kolejnych pozycji (raster) co 10mm

Jakiś czas temu eksperymentowałem z napięciem zasilania. Udało mi się ustalić taką jego wartość, że karetka zatrzymuje się praktycznie tam gdzie trzeba (oczywiście dla rastra co najmniej 20mm). Przy innych napięciach, silnik albo nie dociągał, albo przestrzeliwał pozycję. Zasadiczym problemem jest więc odpowiednie sterowanie silnika. Pomyślałem więc, żeby zastosować PWM i PID klacy C, który miałby zapewnić odpowiednie pozycjonowanie karetki. Na chwilę obecną, poruszając karetkę odcinkami po 20mm na długości 2000mm uzyskuję w punkcie końcowym dokładność pozycjnowania ok. 2-3mm. Myślę, że muszę popracować nad naciągiem paska i wtedy może będzie lepiej. Zasadnicze problemy zaczynają się przy krótszych rastrach rzędu 10mm i mniej: przy dłuższych dystansach skumulowany błąd wynosi 5 do 10mm (i to jest już za dużo). Wydaje mi się, że winny jest czas hamowania silnika (obniżenie napięcia zasilania powodowało poprawę dokładności pozycjonowania). Mógłbym spróbować uzyskiwać mniejsze rastry na zasadzie różnicy: podjechać 21mm, wrócić 20mm i mam zmianę pozycji o 1mm (w teorii), ale będzie to bardzo czasochłonne.

Ponadto karetka podczas pomiaru nie zawsze przemierza całą ławę, czasami trzeba podjechać np. 500mm i dopiero zaczynać pomiar. Jest to kolejny powód, dla którego chciałem zastosować PWM i PID.

Środowisko będzie zmienne, ale tylko na początku pomiaru, tak więc zmiany te mogę uwzględnić poprzez modyfikację inercji układu (bo zmieniać się będzie obciążenie karetki).

Co do przekładni ślimakowej to zastanawiam się, czy jeśli zawsze napędzany będzie ślimak, to czy transmitancja w drugim kierunku (czyli ta przy napędzaniu ślimacznicy) bedzie miała jakiekolwiek znaczenie?

Link do komentarza
Share on other sites

Jeżeli stabilizujesz położenie, użycie PID nie jest dobrym pomysłem, gdyż silnik całkuje wymuszenie. Spróbuj PD, a nawet PDD^2 (druga pochodna, po zcałkowania da człon D) - silnik i tak będzie całkował regulator. Jeżeli użyjesz członu I, otrzymasz drugą całkę, która zrobi więcej szkody niż pożytku. Ze względu na obecność wielu elementów wprowadzających tarcie statyczne, inercję i elastyczność, osiągnięcie dokładności 1mm może się okazać prawie niemożliwe.

Nie rozumiem dlaczego błąd Ci się kumuluje - czasem moze być nieco większy, czasem mniejszy (przy kroku co taką samą odległość, różnice wynikają z tarcia statycznego), ale w sumie będzie mniej więcej równy. Sprawdź, czy poprawnie jest odbierany i przeliczany sygnał z enkoderów.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.