Dec 06, 2018 Zostaw wiadomość

Projekt systemu sterowania silnikiem do obsługi robota

2 projektowanie oprogramowania systemowego

Architektura 2.1μC / OS-II

μC / OS-II to przenośny, wszczepialny ROM, obciążalny, prewencyjny wielozadaniowy system operacyjny w czasie rzeczywistym z wysoką wydajnością wykonania, niewielką powierzchnią, dobrą wydajnością w czasie rzeczywistym i skalowalnością. Funkcje, najmniejsze jądro może być skompilowane do 2KB. μC / OS-II jest napisany w języku C i języku asemblera. Większość kodu jest napisana w C. Tylko kilka kodu ściśle związanych z procesorem jest napisanych w języku asemblerowym. μC / OS-II zawiera tylko podstawowe funkcje, takie jak planowanie zadań, zarządzanie zadaniami, zarządzanie czasem, zarządzanie pamięcią, komunikacja pomiędzy zadaniami i synchronizacja.

Przypisanie zadań w systemie 2.2μC / OS-II

Po pomyślnym przeniesieniu systemu μC / OS-II do STM32F107 programowanie oparte na μC / OS-II odbywa się poprzez podzielenie dużej aplikacji na stosunkowo niezależne zadania. Priorytet każdego zadania jest zdefiniowany, a jądro μC / OS-II planuje i zarządza tymi zadaniami.

Ideą projektowania oprogramowania jest zapewnienie prędkości silnika i pozycji kierowniczej przekładni kierowniczej przez port szeregowy zgodnie z rzeczywistą pracą robota. Prędkość silnika jest porównywana z ustawioną wartością enkodera inkrementalnego, a sterowanie w pętli zamkniętej realizowane jest za pomocą algorytmu PID prędkości. Położenie układu kierowniczego polega głównie na tym, że enkoder wartości bezwzględnej podaje aktualną pozycję, a prędkość urządzenia sterującego jest dostosowywana zgodnie z wymaganiami czasu działania. Funkcje realizowane przez oprogramowanie systemu sterowania silnikiem tego robota obsługującego są następujące:

◆ Górna maszyna podaje prędkość silnika, kąt skrętu i czas działania;

◆ Wymaga ciągłej regulacji prędkości silnika oraz dobrych osiągów statycznych i dynamicznych. Prędkość nie jest zliczana przez algorytm PI.

◆ Wymaga, aby układ kierowniczy szybko osiągnął określony kąt, a sprzężenie zwrotne pozycji służy jako regulacja zadanej prędkości urządzenia sterowego;

◆ Ma określoną funkcję ochrony przed zwarciem. Gdy silnik jest zablokowany, prąd jest zbyt duży, a przekładnia kierownicza dotyka wyłącznika krańcowego, wymagane jest zatrzymanie modułu przemiennika częstotliwości.

Aby powyższe funkcje mogły zostać zaimplementowane, projekt aplikacji można podzielić na następujące zadania:

1 Uruchom zadanie. Zainicjuj system, utwórz początkowy stan silnika, a następnie usuń się i uruchom uśpienie.

2 zadania ochrony silnika i urządzenia sterowego. Służy do reagowania na zewnętrzne przerwanie, gdy aktywny jest wyłącznik nadprądowy lub krańcowy. Po wprowadzeniu stanu przerwania wysyłany jest semafor zadania. Program zadaniowy wykrywa, że semafor jest prawidłowy i odpowiada na zadane zadanie i zatrzymuje wysyłanie. Priorytet zadania ustawiony jest na poziom 0.

3 zadania komputera hosta. Służy on do sterowania maszyną i urządzeniem sterowniczym na górnej maszynie, a priorytet zadania ustawiony jest na poziom 1. Kiedy zostanie wygenerowany rejestr danych z komputera hosta, zostanie wygenerowane przerwanie, które wyśle odebrany bajt do buforuj i zwolnij semafor danego zadania komputera hosta; po wykryciu semafora zadanie zostanie rozpoczęte, a odpowiedni bajt zostanie wykonany. Informacje są przetwarzane na odpowiednią informację o prędkości silnika i pozycji układu kierowniczego, aby przypisać wartości do odpowiednich zmiennych.

4 zadanie kontroli prędkości silnika. W przypadku regulacji prędkości silnika w zamkniętej pętli priorytet zadania jest ustawiony na poziom 2.

5 zadań sterowania urządzeniem sterowym. Służy do sterowania urządzeniem sterowym, aby osiągnąć określone położenie w określonym czasie, a priorytet zadania jest ustawiony na poziom 3.

2.3 Uruchom zadanie

W głównym programie, przed wywołaniem innych zadań μC / OS-II, najpierw wywołaj funkcję inicjalizacji systemu OSInit (), aby zainicjować wszystkie zmienne i struktury danych μC / OS-II; w tym samym czasie, ustanowienia bezczynnego zadania OS_TaskIdle (), to zadanie jest zawsze w stanie gotowości; wywołaj funkcję OSTaskCreate (), aby ustalić zadanie uruchamiania; wywołaj OSStart (), przenieś kontrolę do jądra μC / OS-II, uruchom wielozadaniowość.

Zadanie uruchomienia jest tworzone w głównym programie, który ma trzy główne funkcje:

1 dla inicjalizacji systemu (moduł wyjściowy PWM, port szeregowy, moduł ADC, funkcja przerwania poziomu wejściowego, timer).

2 Ustal ilość sygnału używanego przez system.

3 ustalić inne zadania systemu.

Na koniec wywołaj OSTaskDel (OS_PRIO_SELF), aby usunąć samego siebie i uruchomić zadanie do uśpienia. Główny przebieg zadań programu pokazano na rysunku 4.

2.4 zadanie kontroli prędkości silnika

Za każdym razem, gdy enkoder inkrementalny generuje przerwanie zewnętrzne, semafor zadania jest wydawany w stanie przerwania. Program zadania wykrywa, że semafor jest prawidłowy i odpowiada na zadanie. Zadanie realizuje sterowanie w pętli zamkniętej, mierząc aktualną prędkość silnika i dane porównanie prędkości. Przepływ zadań sterowania prędkością silnika pokazano na rysunku 5.

2.5 zadanie sterowania urządzeniem sterowym

Sterowanie serwo generuje czas odniesienia przez timer, wysyła semafor za każdym ustalonym czasem, a zadanie zostanie wykonane jeden raz. Zadanie sterowania serwomechanizmem porównuje pozycję zmierzoną przez enkoder absolutny z zadaną pozycją i dostosowuje prędkość serwomotoru do pozostałego czasu. Przebieg zadania sterowania serwomechanizmem pokazano na rysunku 6.

3 systemowy interfejs elektromechaniczny

Urządzenie sterowe robota składa się z reduktora 30: 1 podłączonego do silnika prądu stałego. Enkoder położenia absolutnego jest połączony z urządzeniem sterowym i wysyła sygnał kąta urządzenia sterującego do płytki sterowania napędem. Dwa wałki przedniego koła robota połączone są drążkiem transmisyjnym. Jeden z wałów jest połączony z przekładnią kierowniczą za pomocą pasa transmisyjnego, tak że gdy obraca się przekładnia kierownicza, pas transmisyjny napędza drążek transmisyjny, aby zapewnić, że dwa koła przednie mogą się obracać synchronicznie. Silnik z napędem na tylne koła jest silnikiem prądu stałego, który jest bezpośrednio połączony z enkoderem inkrementalnym. Po zmniejszeniu stopnia redukcji o 25: 1 reduktor, tylne koło jest napędzane mechanicznym mechanizmem różnicowym. Sygnały z enkodera inkrementującego są również przesyłane na płytkę sterowania napędem. Strukturę układu elektromechanicznego pokazano na rysunku 7.

Wniosek

W niniejszym dokumencie opracowano konstrukcję sprzętu do sterowania silnikiem i serwo robota manipulacyjnego. System operacyjny μC / OS-II działający w czasie rzeczywistym został z powodzeniem wbudowany w STM32F107, a eksperyment zamkniętego obiegu silnika i przekładni kierowniczej został zakończony. Wykorzystując charakterystykę wielozadaniowego działania kontrolera rdzeniowego Cortex-M3 w czasie rzeczywistym i systemu μC / OS-II, zapewnia on podstawę oprogramowania i sprzętu do późniejszego przechwytywania obrazu z robota i śledzenia nawigacji. Jeśli istniejący algorytm PI zostanie poprawiony, a prędkość obrotowa silnika i podwójna regulacja w pętli zamkniętej zostaną osiągnięte, charakterystyka silnika robota będzie lepsza, a perspektywa zastosowania robota obsługowego będzie szersza.



Wyślij zapytanie

whatsapp

teams

Adres e-mail

Zapytanie