Poprawiona wydajność sterowania silnikami w czasie rzeczywistym
Jaki jest najważniejszy element sterowania silnikiem za pomocą urządzeń elektronicznych? Trudno wskazać tylko jeden. Wynika to z faktu, że system sterowania silnikiem składa się z wielu współpracujących ze sobą elementów – brak któregokolwiek z nich uniemożliwia prawidłowe działanie całego układu. Z drugiej strony, wydajność w czasie rzeczywistym należy do kluczowych czynników wpływających na sterowanie silnikiem, ponieważ zapewnia precyzję, zwiększa efektywność i pomaga zapobiegać awariom.W tym artykule przyjrzymy się działaniu w czasie rzeczywistym, ze skupieniem na technologii MCU.
Zanim przejdziemy do kwestii wydajności w czasie rzeczywistym, silniki sterowane elektronicznie są budowane z wykorzystaniem kontrolerów, takich jak mikrokontrolery (MCU/MPU). Te wbudowane procesory posiadają architekturę skoncentrowaną na procesorach (CPU) i pamięci, wykonywaniu instrukcji i przetwarzaniu danych. W sterowaniu silnikami mikrokontrolery (MCU) są często używane w takich zastosowaniach, jak wentylatory i pompy, gdzie wahania obciążenia są niewielkie, a prędkość obrotowa nie zmienia się znacząco, podczas gdy mikrokontrolery (MPU) są używane w takich zastosowaniach, jak przemysłowe napędy i serwomechanizmy prądu przemiennego, które sterują dużymi silnikami i wymagają szybkiego sterowania prędkością obrotową oraz momentem obrotowym.
Główne różnice pomiędzy MCU oraz MPU
Wydajność w czasie rzeczywistym oznacza ukończenie określonego procesu w ustalonym czasie. Innymi słowy, najważniejsze jest, aby czas przetwarzania był stabilny i aby operacje zawsze kończyły się w wyznaczonym momencie. Jeśli nie można zagwarantować wydajności w czasie rzeczywistym, silnik nie tylko nie będzie pracował zgodnie z wartością polecenia, ale w najgorszym przypadku może stracić kontrolę i doprowadzić do wypadku.
W konwencjonalnych mikrokontrolerach (MCU) częstotliwość taktowania procesora (CPU) i pamięci wbudowanej jest zbliżona, co pozwala im oszacować najgorszy czas przetwarzania i łatwo zagwarantować wydajność w czasie rzeczywistym. Z drugiej strony, mikrokontrolery (MPU) charakteryzują się krótszym cyklem sterowania, co poprawia dokładność sterowania, oraz szybszym procesorem (CPU). Gdy program jest wykonywany z zewnętrznej pamięci flash, która jest wolniejsza niż procesor (CPU), prędkość pamięci staje się czynnikiem ograniczającym, uniemożliwiając osiągnięcie pierwotnej wydajności. Dlatego ogólnym środkiem zaradczym jest umieszczanie programów we wbudowanej, szybkiej pamięci SRAM lub TCM podczas uruchamiania, aby osiągnąć wysoką prędkość działania. Jednakże umieszczenie wszystkich programów w pamięci SRAM lub TCM jest trudne pod względem pojemności, więc zapewnienie wydajności w czasie rzeczywistym poprzez wykorzystanie ograniczonej pamięci wbudowanej jest zawsze wyzwaniem dla programistów systemów sterowania silnikami opartych na mikrokontrolerach (MPU). W odpowiedzi na ten problem mikrokontroler RA8T2 opracowany przez Renesas łączy najlepsze cechy mikrokontrolerów (MCU) i mikrokontrolerów (MPU), aby wnieść znaczący wkład w realizację systemów sterowania w czasie rzeczywistym. Pod względem wydajności jest on wyposażony w 1 GHz Arm® Cortex®-M85 1 GHz. Podobnie jak mikrokontroler (MPU), ma wbudowaną pamięć podręczną (TCM) i pamięć SRAM, ale tym, co znacząco różni go od mikrokontrolera (MPU), jest to, że jest wyposażony w pamięć magnetorezystywną (MRAM) dla programów jako mikrokontroler (MCU). Pamięć MRAM działa z częstotliwością 100 MHz, a więc wolniej niż SRAM lub TCM, ale jej wydajność jest znacznie lepsza w porównaniu z zewnętrzną pamięcią flash, co ułatwia zapewnienie wydajności w czasie rzeczywistym, takiej jak w przypadku konwencjonalnych mikrokontrolerów (MCU).
W systemach sterowania silnikami wciąż występują wyzwania. W zaawansowanych urządzeniach sterujących silnikami, w zależności od zastosowania, do sterowania silnikiem dodawane są inne zadania, takie jak sterowanie systemem i komunikacja z innymi urządzeniami. Innymi słowy, przetwarzanie sterowania silnikiem w czasie rzeczywistym i inne zadania przetwarzania poza czasem rzeczywistym muszą być wykonywane równolegle. Skutecznym sposobem rozwiązania tego problemu jest zastosowanie systemu wielordzeniowego, który stosowany jest głównie w mikrokontrolerach (MPU).
Rysunek 1: Przykład delegowania zadań w RA8T2 Dual-Core System
RA8T2 oferuje opcjonalny rdzeń Cortex-M33 oprócz Cortex-M85, co pozwala użytkownikom na zbudowanie systemu dwurdzeniowego. Jako przykład rozważmy przypadek, w którym przetwarzanie sterowania silnikiem jest umieszczone po stronie Cortex-M85 (rysunek 1). Strona Cortex-M33 jest przypisana do sterowania systemem, a jej maksymalna częstotliwość robocza 250 MHz jest wystarczająca do ogólnego sterowania systemem. Dzięki tej konfiguracji możliwe jest oddzielenie sterowania silnikiem od sterowania systemem, które nie jest procesem w czasie rzeczywistym, co pozwala na uzyskanie w pełni równoległego przetwarzania. Dzięki temu możliwe jest nie tylko uzyskanie wysokiej wydajności w czasie rzeczywistym po stronie sterowania silnikiem, ale także poprawienie reakcji i jakości systemu po stronie sterowania systemem.
Źródło: Better Real-Time Performance for Motor Control Systems, Naoki Abe, Principal Engineer © Renesas
Zapraszamy na TEK.day Wrocław, 19 marca 2026. Zapisz się tutaj!