Skocz do zawartości

adam19_91

Użytkownicy
  • Zawartość

    10
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika adam19_91

Odkrywca

Odkrywca (4/19)

  • Za 5 postów
  • To już rok!
  • To już 5 lat!

Odznaki

0

Reputacja

  1. Witam jeśli masz problem z dostrojeniem regulatora PID to nie zabieraj się nawet za LQR. Tam masz cztery magiczne parametry, wzmocnienia, które musisz wyznaczyć najlepiej bazując na modelu matematycznym. W swoim robocie próbowałem LQR i PID nastawy dobierane w simulinku w oparciu o model i nie zauważyłem większej różnicy jeśli chodzi o regulację odchylenia od pionu. W obu przypadkach robot radzi sobie dość dobrze, problem natomiast leży gdzie indziej robot nie chce stać w miejscu cały czas porusza się w jedną stronę i to go wytrąca z równowagi. Nie pomaga tutaj nawet LQR a kaskady nie próbowałem. U mnie simulink wypluł takie nastawy dla LQR: K1=0.918365256753908 K2=-29.3979547980982 K3=8.05452269188653 K4=-0.321881543949043 K1 mnożę z drogą K2 z kątem odchylenia K3 z prędkoscią liniową K4 z prędkością obrotową i całość sumuję Jak widać K2 jest znacząco większe niż K1 czy K3, które są odpowiedzialne za pilnowanie by robot stał w miejscu co najoględniej mówiąc znaczy tylko tyle, że regulator pilnuje tylko odchylenia kątowego. Nie udało mi się rozwiązać tego problemu i efekt końcowy nie jest taki jak bym sobie wymarzył. Może ktoś uporał się z tym zjawiskiem i podzieli się doświadczeniem.
  2. Bardzo fajny robocik gratuluję wykonania i powodzenia na obronie. Zastanawia mnie natomiast inna rzecz jak rozwiązałeś sprawę sterowania silnikami krokowymi? Chodzi mi konkretnie o przełożenie wartości jaka wychodzi z PIDa na pracę silników? Jak to przeliczasz bo model matematyczny (nie wiem czy taki wykonałeś) zakłada, że sterowaniem jest moment obrotowy w Nm lub jeśli rozpiszesz również dynamikę silników to sterowanie jest napięciem w V a z tego co się orientuję obroty silników krokowych a co za tym idzie moment i przykładane napięcie zależą od odstępu czasowego między krokami. Powtórzę się jak to przeliczasz? I jeszcze czy zastosowałeś sterowanie mikrokrokowe bo na małych obrotach silniki takie mają tendencję do drgań co w tego typu konstrukcji jest niedopuszczalne. Pozdrawiam
  3. slawko_k, Witam piszę do ciebie ponieważ buduję robota balansującego z wykorzystaniem silników krokowych. Chciałbym zapytać jak wykorzystujesz wartość, która wychodzi z regulatora do sterowania silnikami? Ja myślałem żeby to jakoś zrobić na zasadzie proporcjonalności odwrotnej tzn. im większa wartość z regulatora tym mniejszy odstęp czasowy między krokami. Nie jestem pewien tego rozwiązania więc chciałem się poradzić. Pozdrawiam
  4. Wybacz mi dociekliwość ale nie potrafię zrozumieć jak regulator, który ma na wejściu uchyb prędkości na wyjściu generuje wypełnienie PWM? Skąd on ma wiedzieć na przykład jaką rozdzielczość ma PWM w twoim uC? Czy nie jest tak po prostu, że na wejściu regulatora jest uchyb prędkości to na wyjściu jest również wartość oznaczająca prędkość, o którą należy np. zwiększyć obroty? A dopiero tą wartość przeliczyć na PWM? A jak będzie w przypadku drona albo wahadła odwróconego gdzie wyjściem jest kąt, który wchodzi na regulator? Podaję kąt a on mi wylicza PWM czy kąt, o który należy zmienić położenie? To ważne pytanie jeśli chodzi o praktyczne podejście do tematu na zajęciach funkcjonują tylko pojęcia uchyb->regulator->sterowanie. Pozdrawiam
  5. Wreszcie jakiś ciekawy artykuł z teorii sterowania. Takie pytanie czemu w matlabie dobierasz nastawy dla regulatora dyskretnego a w programie stosujesz wzór dla ciągłego , w ogóle nie odejmujesz poprzedniej wartości sterowania ani nie uwzględniasz czasu próbkowania we wzorze? http://images.slideplayer.pl/2/840379/slides/slide_4.jpg Czy to trik polegający na tym, że wywołujesz przerwanie co okres próbkowania i wówczas można użyć regulatora ciągłego? Napisz z czego wynika wartość makra do antiwindup? #define ERR_SUM_MAX 1000 I ostatnie najtrudniejsze patrząc na model matematyczny silnika DC można zauważyć, że sterowaniem jest napięcie zasilające wirnik i moment obciążenia. Natomiast ty w swoim artykule jako wyjście z regulatora PID czyli sterowanie używasz wartości PWM, która najoględniej mówiąc steruje prędkością kątową(liczbą obrotów w jednostce czasu). I tu moje pytanie czy nie należy wyjścia z regulatora jakoś przeliczyć na prędkość i dopiero podać na obiekt? X1=Iw X2=omega U1=Uz U2=Mobc X2'=km/J*X1-B/J*X2+0*U1-1/J*U2; i z tego całka, otrzymujemy wartość prędkości wymaganej do zrealizowania sterowania, którą przeliczasz na PWM. Chodzi mi o to, czy wyjście regulatora może być czymkolwiek jest to wartość bez jednostki, za którą podstawiasz co ci pasuje?
  6. Na wejściu regulatora PID jest uchyb między wartością zadaną a zmierzoną E. Na wyjściu jest sterowanie U wyliczone na podstawie tego uchybu oraz poprzednich. Przypuszczam, że E to kąt a czym jest U? Chodzi mi o to jakiego rodzaju jest to wartość czy jest to przyspieszenie, siła, moment czy może coś innego.
  7. Tak użyłem zwykłej przejściówki rs-usb i chodzi jak marzenie temat do zamknięcia
  8. Spróbowałem i wyskakuje Warning: Unexpected Warning: A timeout occurred before the Terminator was reached. I chyba dalej się nie łączy bo na module mruga dioda a powinna świecić stale
  9. Witam Od kilku dni próbuję przesłać pomiary z STM32 po rs232 do matlaba w celu wyświetlenia ich na wykresie niestety jednak napotykam problem z połączeniem obu środowisk. Jako moduł RS232 używam modułu bluetooth z firmy atnel. Chciałbym zaznaczyć jeszcze, że w putty wszystko działa jak należy i wyniki są wyświetlane prawidłowo. Po wpisaniu komendy do matlaba: instrhwinfo('Bluetooth'); program ładnie zwraca informacje o module również gdy wpiszę komendę: bt=Bluetooth('STM32') wszystko wygląda w porządku Bluetooth Object : Bluetooth-STM32:0 Communication Settings RemoteName: STM32 RemoteID: 00126F62663C Channel: 0 Terminator: 'LF' Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 Natomiast gdy próbuje otworzyć połączenie to wyskakuje mi bląd: fopen(bt) Error using icinterface/fopen (line 83) Unsuccessful open: Cannot connect to the device. Possible reasons are another application is connected or the device is not available. Szukałem na anglojęzycznych forach matlaba ale nie wiele się tam dowiedziałem, jeśli ktoś miał z tym styczność to bardzo proszę o jakąś informację gdzie leży problem Pozdrawiam
×
×
  • 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.