Warning
This page is located in archive.

Řízení stejnosměrného motoru

Varianta semestrální práce pro studenty se zájmem o procesorovou techniku a řízení

Motivace k úloze

V současné době sledujeme jak na planetě Mars zvládne létat helikoptérka Ingenuity. Běží na ní výsledek kompilace podobných komponent (GNU/Linux) jako na výukových kitech MZ_APO, architektura procesoru je také 32-bitová verze ARMv7. Natáčení listů a další funkce obstarávají klasické, na ovládání jednodušší, stejnosměrné motorky s průměrem 10 mm vyrobené firmou Maxon Motors. Jedná se o podobné motorky, jako jsou použité v rozšiřujících přípravcích připojených ke kitům MZ_APO.

Na vlastním vozítku Perseverance jsou pak použité motory bezkartáčové (PMSM - Permanet Magnet Synchronous Motor), které obecně nabízí delší životnost, ale jsou také složitější na řízení. Vyrobené jsou stejnou firmou.

My se však přesuneme v čase o nějaké desetiletí dále, kdy úspěšně přistála na Marsu mise s astronauty. V jejich plánu je postavit základnu, využít solární elektrárny a nalezených zdrojů podzemní vody k výrobě vodíku a kyslíku pro zajištění paliva pro návrat na planetu Zemi. Pro řízení čerpadel jak v systému umělé fotosyntézy zajišťujícím kyslík pro astronauty, tak v systému pro získávání paliva pro návratový modul byly použité nové moderní kontroléry. Při výrobě a pouzdření použitých obvodů však došlo v okolí výrobního závodu k záplavám a i přes prováděné sušení prostorů výrobních linek, do kterých voda nedosáhla, byly keramické díly pouzder vystaveny po určitou dobu vyšší vlhkosti, než byl předpoklad při návrhu pouzdření čipů. Časové okno přiblížení Marsu k Zemi se blížilo a i když došlo k zapouzdření čipů v nejzazším možném termínu a po dlouhém a pečlivém vysoušení, tak z keramiky postupně skrze lepidlo na povrch čipů pronikala během letu vlhkost. Po sestavení a zprovoznění technologie došlo během poklesu teplot přes noc na Marsu k odtržení kontaktních zlatých drátků a k dalším poškozením centrálních procesorů kontrolérů motorů.

Situace se stala kritickou, letové středisko na Zemi spočítalo, že pokud se nepodaří systémy zprovoznit, tak zásoby kyslíku posádce stačí pouze do konce května (deadline). Časové okno přiblížení Marsu k Zemi již pominulo a příští nastane až za dva roky a dva měsíce, takže přímá pomoc ze Země již možná není. Stejně jako v případu havárie během letu Apollo 13 k Měsíci, byly probírané veškeré možnosti využití jakéhokoliv materiálu, který měli astronauti k dispozici (v případě Apollo 13 pomohly ponožky, lepicí páska, plastové sáčky a plastový obal od letové příručky).

K provádění experimentů se synchronizací a fúzování přesného měření času (Clock Composition by Wiener Filtering Illustrated on Two Atomic Clocks) přivezla posádka několik již desetiletími služby osvědčených jednotek dvoucestné časomíry firmy Eltvor Instruments, které navrhoval okolo roku 2022 jeden z absolventů Elektrotechnické fakulty ČVUT. Mimochodem se také později podílel na vývoji aktuálně používané satelitní konstelace přesného měření času a polohy na Zemi i na Marsu.

Součástí pozemního týmu expertů mise byl i jiný absolvent ČVUT, který měl za úkol připravit experimenty v oblasti přesného měření času a ten si vzpomněl, že na akci LinuxDays 2016 shlédl přednášku Procesorové systémy a nejen GNU/Linux v řídicích aplikacích (PDF, Video) pojednávající o návrhu servořízení stejnosměrného motoru s výukovým počítačem Raspberry Pi. Později pak shlédl i navazující přednášku GNU/Linux a programovatelná logika v řídicích aplikacích (PDF, Video). Spojil si možnost využít procesorových jednotek ze sytému měření přesného času pro řízení čerpadel. Oslovil své bývalé spolužáky, kteří v době studií s nyní již historickým hardwarem na bázi obvodu Xilinx Zynq 7010 pracovali v rámci prázdninové brigády prezentované na akci InstallFest21 (přednáška FPGA od studentů pro studenty, Video). Nyní již vážení odborníci v oboru návrhu nových jader RISC-V a umělé inteligence provedli logický návrh periferií vhodných pro řízení motorů. Návrh se podařilo přes poslední generaci modemu Electra Proximity Link Payload odeslat na stanici na Marsu. Pro úplnost, modem běží na operačním systému RTEMS, jehož EDF plánovač navrhoval další ze studentů FEL (diplomová práce) a další lidé ze stejné university se účastnili mnoha GSoC projektů, které ze systému RTEMS učinili jednoznačnou volbu pro řídící počítače vesmírných plavidel jak NASA, tak ESA.

Podle instrukcí pozemního týmu provedli astronauti napojení výkonových stupňů stejnosměrných motorů v čerpadlech s konektory PMOD procesorových desek z rozebraných systémů časomíry.

Nyní je potřeba naimplementovat řídící algoritmus servořízení motorů čerpadel. Postačí jednoduchý regulátor s možností nastavení proporcionální, derivační a integrační složky (regulátor PID/PSD). Dále bude potřeba připravit jednoduchý zdroj referenční polohy (jako inspirace může posloužit fázový akumulátor používaný při digitální syntéze). Protože je potřeba, aby parametry regulátorů mohla nastavit lokálně posádka na Marsu (nastavování na dálku by se zpožděním komunikace Země, Mars pravděpodobně vedlo k tak velkých chybám, že by mohlo dojít ke zničení životně důležité technologie), je potřeba jednotky vybavit jednoduchým textovým a grafickým výstupem. K jádru na bázi Zynq pro tento účel byly připojené displeje z personálních kardiografů, důležitější než sledovat tep, je nyní přežití posádky. Pozemní tým pak má možnost sledovat stav technologických celků přes kamery. Aby měli všichni členové pozemního týmu přístup k přenosu, byl signál z kamer přes streamovací systém Kurento zapojený do virtuální místnosti APO LAB vytvořené v lokální instalaci systému BigBlueButton (Fotografie z pozemního testovacího dvojčete vzdálené základny na Marsu). Předpokládá se, že po zprovoznění servořízení motorů s lokálním i vzdáleným nastavováním a monitorováním parametrů bude vhodné přidat i algoritmus řízení výkonu čerpadel umělé fotosyntézy podle aktuálního stavu zásob kyslíku a hladiny CO2 v prostorách stanice. Čidla hladiny O2 a CO2 původního systému vysílají informaci přes staniční síť ETHERNET balenou v UDP paketech. Neměl by tedy být problém data na kontrolérech přijímat a zpracovávat a přidat řídicí smyčky vyšší úrovně.

Podaří se pozemnímu týmu včas naimplementovat potřebné algoritmy a zachránit posádku stanice, to jsou nyní titulky, které plní záhlaví novinových interaktivních fólií a holografických displejů na Zemi, nebo budeme koncem května svědky toho nejhoršího?

Úkoly k řešení

  • Seznámit se s šablonou aplikace https://gitlab.fel.cvut.cz/b35apo/mzapo_template
  • Zvolit jméno projektu, smysluplná náhrada, zkratka za change_me a change_me.c
  • Naučit se spouštět aplikaci na výukových kitech přístupných přes SSH
  • Připravit si pro ladění výstupy na řádku LED diod a na RGB diody
  • Naimplementovat zobrazení jmen a hodnot procesních proměnných na LCD dipleji
  • Zvolit pro nejdůležitější veličiny, odchylka aktuální rychlosti, aplikované napětí nějakou grafickou formu zobrazení, případně i graf s historií
  • Realizovat jednoduchý PID/PSD regulátor polohy/rychlosti otáčení připojeného stejnosměrného motoru, na začátek na jednu zakompilovanou rychlost
  • Přidat možnost nastavení rychlosti a parametrů regulátoru lokálně otočnými voliči (pro obsluhu na planetě Mars)
  • Přidat možnost vzdáleného nastavení alespoň přes terminálové spojení přes SSH
  • Další možnost rozvoje, pokud bude zájem, přidáme simulaci změn hladiny CO2 a O2 v místnosti a výstup simulovaných čidel ve formě UDP paketů, úloha se pak rozšiřuje o automatický mód regulace otáček pro dosažení a udržování požadované koncentrace

Odkazy na informace a materiály

  • Přípravek MicroZed APO - dokumentace na stránkách předmětu
  • Linux pro řízení: minimalistické řešení řízení stejnosměrného mo­toru článek ROOT.cz a příslušný projekt rpi_simple_dc_servo v repozitáři https://github.com/ppisa/rpi-rt-control
  • Procesorové systémy a nejen GNU/Linux v řídicích aplikací 1. (PDF, Video) - řízení DC motoru z Raspberry Pi
  • GNU/Linux a programovatelná logika v řídicích aplikacích 2. (PDF, Video) - řízení PMSM a DC motorů jak z Raspberry Pi tak z Xilinx Zynq MZ_APO
  • Workshop - Real Embedded Linux, FPGA and Motion Control Systems (PDF, Video, Fotografie) - ukázka jak přistupovat k periferiím na jednotce MZ_APO, nejdříve realizace světelného hada, pak s přesným časováním přes clock_nanosleep()
  • Přednáška Vstup a výstup na výukovém kitu MZ_APO (PDF, Video, doktor Štěpán zhuštěná verze) - především nápověda ke grafickému výstupu na LCD display a skládání barev
  • Martin Prudek, Řízení bezkartáčových motorů s deskou Raspberry Pi a Linuxem, 2015 (PDF)
  • Tomáš Nepivoda, Periferní modul pro řízení stejnosměrných motorů pro platformu Zynq, 2016 (PDF)
  • GNU/Linux a řízení po sběrnici CAN s využitím generovaného kódu a FPGA (PDF, Video) - propojení řízení motorů s komunikací po sběrnici CAN používané v automobilech, robotice a průmyslu - dvojice desek v APO_LAB jsou CAN sběrnicí také propojené
  • Open-source knihovna PXMC pro koordinované robotické řízení (http://pxmc.org/)
  • Vykreslení růžové zahrádky v podání výše uvedené knihovny a jednotky vyrobené pro robota BOSCH SR 450 na Katedře kybernetiky
courses/b35apo/semestral/emocon/start.txt · Last modified: 2021/04/28 14:47 by pisa