Obsah článku
Koláž priemyselných aplikácií, vývoja softvéru a práce s riadiacimi systémami

Vývoj riadiacich systémov prepája modelovanie, simuláciu, generovanie kódu a testovanie na reálnom hardvéri.

Čo je Model-Based Design?

Tradičný vývoj riadiacich systémov vyzerá zvyčajne tak, že niekto napíše požiadavky na papier, programátor ich ručne prepíše do kódu, testér ich otestuje a všetci traja spoločne ladia problémy, ktoré vznikli niekde po ceste. Cyklus sa opakuje, je pomalý, drahý a chyby sa objavujú práve tam, kde si nikto nie je istý, kto čo má na starosti.

Model-Based Design (MBD) tento postup zefektívňuje pomocou modelu. Model nie je len dokumentácia, ale zároveň zdrojový kód, simulačná platforma aj základ pre automatické generovanie výsledného kódu.

Myšlienka je jednoduchá: vytvoríte presný, spustiteľný model systému, overíte ho simuláciou a z tohto modelu automaticky vygenerujete kód. Potom postupne, krok za krokom, prechádzate z virtuálneho sveta do reálneho, pričom každý krok overuje, že nikde nevznikla chyba.

Výsledkom je menej chýb pri prechode od požiadavky ku kódu, rýchlejšie iterácie a testovanie, ktoré môžete vykonávať aj bez toho, aby ste mali fyzické zariadenie k dispozícii.

Nástroje: kde čo patrí

Skôr než sa pozrieme na jednotlivé etapy testovania, potrebujeme rozumieť tomu, čo ktorý nástroj robí.

MATLAB je matematické prostredie pre výpočty, analýzu dát a skripty. Tu definujete parametre modelu, ako sú zosilnenie regulátora, konštanty motora alebo koeficienty filtra. Tu tiež spracovávate výsledky simulácií.

Simulink je vizuálne prostredie pre modelovanie dynamických systémov pomocou blokových diagramov. Tu žije váš model: regulátor, model riadeného systému, senzory aj aktuátory. Správanie systému môžete simulovať bez akéhokoľvek hardvéru.

Skúšate svoje nápady a meriate veličiny, ktoré sú v reálnom svete nedostupné. Bezpečne vo svojom počítači a bez nutnosti pripájať hardvér.

Simulink Coder je generátor C/C++ kódu priamo z vášho Simulink modelu. Predstavuje kľúčový most medzi virtuálnym a reálnym svetom. Generovaný kód je deterministický, efektívny a pripravený pre embedded systémy.

dSPACE ConfigurationDesk umožňuje graficky prepojiť váš Simulink model, vstupné a výstupné kanály a zbernice simulačnej platformy. Poskytuje prehľadný a ľahko zdokumentovateľný súhrn konfigurácie celej aplikácie v reálnom čase.

dSPACE ControlDesk je softvér pre živé monitorovanie signálov a ladenie parametrov počas behu systému. Vytvárate virtuálne ovládacie panely s displejmi, posuvníkmi a tlačidlami, ktoré umožňujú stimulovať aplikáciu bez zmeny kódu a bez rekompilácie.

dSPACE real-time platforma je hardvér reálneho času: procesory, FPGA jednotky a rozhrania pre vstupné a výstupné signály. Dokáže spúšťať riadiaci algoritmus s presným a deterministickým časovaním. Každý výpočtový cyklus prebehne presne vtedy, keď má, bez oneskorení typických pre bežné počítače.

Schéma vývojového reťazca od Simulinku cez ConfigurationDesk po real-time hardvér a ControlDesk

Typický vývojový reťazec: návrh a simulácia, konfigurácia I/O, implementácia na real-time hardvéri a následné monitorovanie a ladenie.

Kľúčový prepoj: Simulink Coder + ConfigurationDesk

Toto je miesto, kde sa Simulink stretáva s dSPACE. Simulink Coder vygeneruje C kód z vášho modelu. ConfigurationDesk tento kód skompiluje, prepojí s dSPACE knižnicami ovládačov a výslednú aplikáciu nahrá na hardvér. Odtiaľ váš Simulink model – teraz už aplikácia v reálnom čase – beží na dSPACE platforme. Napríklad každých 100 mikrosekúnd prečíta snímač, vypočíta výstup regulátora a vydá príkaz aktuátoru.

Čo znamená reálny čas?

Bežný počítač spúšťa úlohy podľa toho, čo práve stihne. Operačný systém sám rozhoduje o prioritách, antivírus sa môže spustiť v nevhodný moment a iné procesy môžu zabrať procesorový čas. Pri e-maile alebo prehliadaní webu to neprekáža.

Pri riadení elektromotora je situácia iná. Potrebujete každých 100 mikrosekúnd prečítať snímač prúdu a vydať príkaz invertoru. Jedno oneskorenie o 1 milisekundu môže znamenať nestabilitu regulátora alebo poškodenie zariadenia.

Reálny čas znamená zaručené časovanie. Systém musí splniť svoju úlohu v presne definovanom časovom intervale, vždy a bez výnimky. Nie „väčšinou rýchlo“, ale „garantovane do X mikrosekúnd v každom cykle“. dSPACE hardvér beží na operačnom systéme reálneho času, ktorý toto časovanie garantuje.

Testovacie scenáre so Simulinkom a dSPACE

Model-in-the-Loop

Model-in-the-Loop: regulátor a model riadeného systému prepojené v Simulinku

MIL: regulátor aj riadený fyzický systém sú reprezentované modelmi a bežia v Simulinku.

MIL je štartovací bod každého projektu v MBD. Simulujete celý systém – regulátor aj riadený fyzický systém – výhradne v Simulinku na bežnom počítači. Žiadny hardvér, žiadny generovaný kód. Iba matematika, bloky a prepojenia.

Čo overujete: správnosť algoritmu regulátora, odozvu na referenčný signál, stabilitu systému a správanie pri poruchách. Je regulátor dostatočne rýchly? Prekmitáva? Čo sa stane, ak vstupný signál náhle vypadne?

Kedy ho použiť: na začiatku vývoja, keď ešte nemáte hardvér ani reálny kód. Iterácie sú rýchle a lacné, takže zmena parametra trvá sekundy, nie dni.

Príklad: riadenie točivého momentu e-motora

Modelujete PI regulátor prúdu a matematický model PMSM elektromotora: odpor vinutia, indukčnosť a momentovú konštantu. V simulácii testujete skokovú zmenu požadovaného momentu. Sledujete odozvu: je čas usadenia v požadovaných medziach? Aký je prekmit? Čo sa stane, ak sa zmení zaťaženie motora? Celý experiment prebehne za niekoľko sekúnd bez akéhokoľvek fyzického zariadenia.

Príklad: riadenie polohy robotického ramena

PID regulátor polohy kĺbu doplníte o dynamický model ramena, moment zotrvačnosti, gravitačné zaťaženie a tlmenie. Simulujete pohyb z 0° na 90°. Overujete presnosť polohy, rýchlosť reakcie a to, či sa rameno pri cieľovej pozícii nezachveje. Všetko bez mechaniky, len v Simulinku.

Nástroje: MATLAB, Simulink, prípadne Stateflow pre stavové automaty a Simscape pre fyzikálne modely.

Software-in-the-Loop

Software-in-the-Loop: vygenerovaný C kód komunikujúci so simulovaným modelom systému

SIL: Simulink model regulátora je nahradený generovaným C kódom, ktorý sa porovnáva s pôvodným modelom.

SIL je prvý krok smerom od modelu ku kódu. Z vášho Simulink modelu regulátora vygenerujete C kód pomocou Simulink Coderu. Tento kód spustíte na počítači ako black box a porovnáte jeho správanie s pôvodným modelom.

Prečo je tento krok dôležitý: Simulink model a generovaný kód nemusia byť úplne identické. Môžu nastať rozdiely v numerickej presnosti. SIL tieto rozdiely odhalí ešte pred nasadením na hardvér.

Čo overujete: zhodu správania modelu a generovaného kódu, numerickú presnosť a správnosť generovania kódu Simulink Coderom.

Kedy ho použiť: po MIL a pred nasadením na hardvér. Umožní overiť kód bez nutnosti fyzického procesora.

Príklad: riadenie točivého momentu e-motora

Simulink Coder vygeneruje C kód PI regulátora prúdu. Spustíte ho na počítači, kde vstup prichádza zo simulovaného modelu motora v Simulinku. Výstupný moment z kódu porovnáte s výstupom pôvodného modelu. Maximálna odchýlka by mala byť v rádoch strojovej presnosti. Ak je väčšia, rýchlejšie odhalíte miesto, kde môže byť problém.

Príklad: riadenie polohy robotického ramena

Generovaný PID kód je napojený na Simulink model ramena bežiaci na počítači. Overujete správanie kódu aj pri krajných hodnotách uhla, napríklad 180° alebo −90°, a pri rýchlych zmenách referenčného signálu. Hľadáte numerické divergencie, ktoré v modeli neboli viditeľné.

Nástroje: Simulink Coder, Simulink.

Processor-in-the-Loop

Processor-in-the-Loop: cieľový procesor prepojený so simulovaným modelom systému

PIL: generovaný kód už beží na reálnom procesore, zatiaľ čo riadený fyzický systém zostáva virtuálny.

PIL posunie kód na procesor, ale riadený fyzický systém zostáva stále virtuálny v Simulinku. Generovaný C kód beží na reálnom procesore a komunikuje so Simulink modelom na počítači cez sériové rozhranie alebo Ethernet.

Čo overujete: správanie kódu na reálnom procesore, časovanie výpočtov, pretečenia registrov a chyby zaokrúhľovania špecifické pre daný čip a kompilátor.

Prečo je to dôležité: iný procesor znamená inú aritmetiku a iné optimalizácie. PIL odhalí problémy skôr, ako pripojíte skutočný aktuátor, čo je bezpečnejšie a lacnejšie.

Kedy ho použiť: keď máte k dispozícii cieľový procesor, ale ešte nie reálnu mechaniku alebo fyzický systém.

Príklad: riadenie točivého momentu e-motora

Kód PI regulátora beží na testovacom procesore. Simulink na počítači simuluje motor a posiela aktuálny prúd na procesor, ktorý vracia žiadaný moment. Meriate skutočný čas výpočtu na procesore. Spĺňa 100 µs cyklus? Môžete odhaliť napríklad overflow pri vysokých otáčkach, ktorý na počítači nebol viditeľný pre odlišnú šírku slova procesora.

Príklad: riadenie polohy robotického ramena

PID kód na procesore komunikuje so Simulink modelom ramena na počítači. Meriate skutočný čas výpočtu. Spĺňa požadovaný riadiaci cyklus? Vznikajú problémy s fixed-point aritmetikou pri malých hodnotách uhla, kde rozlíšenie nie je dostatočné?

Nástroje: Simulink Coder, Embedded Coder.

Rapid Control Prototyping

Rapid Control Prototyping s MicroAutoBoxom pri testovaní riadiacich funkcií lietadla

Príklad RCP: prototypový riadiaci algoritmus beží na MicroAutoBoxe a riadi reálny alebo testovaný systém.

MicroLabBox prepojený so snímačmi, hostiteľským počítačom a modelom srdca

Real-time platforma umožňuje prepájať model, meracie signály a fyzický systém v jednom prototypovom pracovisku.

Tu sa model prvýkrát stretáva s fyzickou realitou. Váš Simulink model regulátora, teraz už ako aplikácia v reálnom čase, beží na dSPACE hardvéri, ktorý je priamo pripojený k reálnemu zariadeniu. dSPACE tu zastupuje úlohu budúcej produkčnej ECU.

Dôležitý rozdiel oproti HIL: pri RCP testujete algoritmus regulátora na reálnom zariadení a dSPACE je dočasná prototypová ECU. Pri HIL testujete hotovú ECU a dSPACE simuluje fyzický systém. Iná úloha, iný cieľ.

Čo overujete: správanie algoritmu v reálnych podmienkach, ladenie parametrov regulátora a neideálnosti fyzického systému, ako sú trenie alebo elektromagnetické rušenie, ktoré model nedokázal zachytiť.

Kedy ho použiť: keď máte funkčný algoritmus overený v MIL, SIL a PIL a chcete ho prvýkrát otestovať na reálnom zariadení, ale ešte nemáte produkčnú ECU.

Príklad: riadenie točivého momentu e-motora

dSPACE MicroAutoBox II je pripojený k motoru. Číta enkodér motora a prúdové snímače cez I/O bloky a vydáva PWM príkazy na invertor. Regulátor z modelu riadi reálny PMSM motor. Pomocou ControlDesk ladíte parametre PI regulátora v reálnom čase. Posúvate napríklad slidery na obrazovke a okamžite vidíte odozvu motora bez nutnosti rekompilovať model.

Príklad: riadenie polohy robotického ramena

dSPACE MicroLabBox číta enkodéry kĺbov ramena a priamo riadi servopohony. PID nastavenia meníte v ControlDesk počas pohybu ramena. Odhaľujete reálne efekty: trenie v kĺboch, pružnosť prevodovky alebo elektromagnetické rušenie od motorov – teda veci, ktoré model nezachytil.

Nástroje: dSPACE ConfigurationDesk, Simulink Coder, dSPACE ControlDesk, MicroAutoBox II a MicroLabBox.

Hardware-in-the-Loop

HIL otáča perspektívu. Máte hotovú riadiacu jednotku, ECU od dodávateľa alebo vlastnej výroby. Táto ECU „verí“, že riadi skutočné zariadenie. V skutočnosti však komunikuje s dSPACE simulátorom, ktorý fyzický systém napodobňuje v reálnom čase pomocou aplikácie vygenerovanej zo Simulink modelu.

Porovnanie reálnej dopravnej situácie a jej Hardware-in-the-Loop simulácie

HIL simuluje správanie fyzického systému tak, aby pripojená ECU reagovala rovnako ako v reálnej situácii.

Čo overujete: integráciu softvéru a hardvéru ECU, správanie pri krajných stavoch a poruchách, fault-injection scenáre, ako sú výpadok senzora, prepätie alebo skrat, a plnenie normatívnych požiadaviek, napríklad ISO 26262 alebo DO-178.

Prečo bez reálneho zariadenia: testovanie kritických stavov je bezpečné a plne opakovateľné. Havárie môžete testovať desiatkykrát za deň bez rizika poškodenia hardvéru alebo ohrozenia ľudí. Fyzický prototyp navyše ešte nemusí existovať.

Kedy ho použiť: keď máte hotovú ECU a potrebujete ju systematicky otestovať pred integráciou do reálneho vozidla alebo zariadenia.

Príklad: riadenie točivého momentu e-motora

Produkčná MCU invertora je zapojená do dSPACE SCALEXIO. Simulátor generuje analógové signály snímačov prúdu a napätia a číta PWM príkazy z MCU. Testujete: čo sa stane pri výpadku senzora otáčok? Reaguje MCU správne na nadprúd? Ako sa ECU správa pri teplotnom limite? Všetko bez rizika zničenia motora alebo invertora.

Príklad: riadenie polohy robotického ramena

Riadiaca doska robotického ramena, napríklad EtherCAT PLC, je napojená na dSPACE MicroLabBox s modelom mechaniky. Simulujete poruchu enkodéra, blokovanie kĺbu alebo výpadok napájania. Overujete, že riadiaca doska správne aktivuje bezpečnostné zastavenie a že nie je možné dosiahnuť stav, pri ktorom by sa rameno poškodilo alebo ohrozilo obsluhu.

Nástroje: dSPACE SCALEXIO, ControlDesk, ConfigurationDesk, AutomationDesk pre automatizáciu testovania a Simulink pre plant modely.

Vehicle-in-the-Loop

Nočné testovanie asistenčného systému vo vozidle s virtuálnym dopravným prostredím

VIL kombinuje reálne vozidlo s virtuálnymi senzorovými podnetmi a simulovaným okolím.

VIL je najvyspelejšia etapa. Reálne vozidlo alebo zariadenie fyzicky existuje a pohybuje sa, no dostáva virtuálne senzorové signály zo simulovaného prostredia. Ide o kombináciu fyzickej reality a digitálneho dvojčaťa.

Čo overujete: funkcie ADAS a autonómneho riadenia v bezpečnom prostredí pred nasadením na verejné cesty. Testujete scenáre, ktoré by boli v reálnych podmienkach nebezpečné alebo nemožné: hustú hmlu, dieťa vbiehajúce do cesty alebo protiidúce vozidlo v slepej zákrute.

Kedy ho použiť: pri vývoji pokročilých asistenčných systémov (ADAS), autonómneho riadenia alebo iných systémov, pri ktorých nie je fyzické testovanie všetkých scenárov bezpečné ani praktické.

Príklad: ADAS systém vo vozidle

Reálne vozidlo jazdí na uzavretom testovacom okruhu. dSPACE AURELION generuje senzorovo realistické virtuálne signály. Radar vidí simulovaných chodcov a kamera registruje virtuálne vozidlá meniace jazdný pruh. Testujete systém automatického núdzového brzdenia: zabrzdí spoľahlivo aj v noci, hustej hmle alebo protisvetle?

Príklad: kolaboratívny robot vo výrobe

Reálny priemyselný robot pracuje na testovacej pracovnej stanici, pričom jeho virtuálne okolie – polohy ďalších robotov, dopravníkov a pracovníkov – pochádza z digitálneho dvojčaťa výrobnej linky. Testujete kolaboratívne bezpečnostné funkcie a scenáre možných kolízií bez rizika zranenia.

Nástroje: dSPACE AURELION, dSPACE SCALEXIO AutoBox a ASM modely v Simulinku (Automotive Simulation Models).

A čo kód v samotnej produkčnej ECU?

Odpoveď na túto otázku uzatvára celý kruh. Aj tento kód môže byť vygenerovaný priamo zo Simulinku. Na tento účel existujú nástroje Embedded Coder a TargetLink. Oba poskytujú možnosti generovania efektívneho a optimalizovaného kódu pre konkrétny hardvér riadiacej jednotky, ktorá bude použitá vo výslednej produkcii.

Zhrnutie

  1. MIL: regulátor = Simulink model, fyzický systém = Simulink model. Všetko je virtuálne. Nástroj: Simulink.
  2. SIL: regulátor = generovaný C kód na počítači, fyzický systém = Simulink model. Prostredie je virtuálne, ale kód je reálny. Nástroje: Simulink a Simulink Coder.
  3. PIL: regulátor = C kód na cieľovom procesore, fyzický systém = Simulink model na počítači. Reálny procesor, virtuálna fyzika. Nástroje: Simulink Coder, Embedded Coder a TargetLink.
  4. RCP: regulátor = aplikácia na dSPACE, ktoré zastupuje prototypovú ECU; fyzický systém = reálne zariadenie. Nástroje: dSPACE ConfigurationDesk, Simulink, Simulink Coder a ControlDesk.
  5. HIL: regulátor = reálna ECU, fyzický systém = dSPACE simulátor v reálnom čase. Reálna ECU, virtuálna fyzika. Nástroje: dSPACE SCALEXIO, Simulink, ConfigurationDesk a ControlDesk.
  6. VIL: regulátor = reálna ECU v reálnom vozidle, prostredie = virtuálne senzorové signály. Nástroje: dSPACE AURELION, Simulink, ConfigurationDesk a SCALEXIO AutoBox.

Prečo to celé dáva zmysel

Model-Based Design je systematický spôsob, ako presunúť odhalenie čo najväčšieho počtu chýb do fázy, v ktorej ich odhalenie a oprava stoja najmenej – teda do simulácie, nie až do implementácie produkčného hardvéru.

Každý krok tejto cesty má svoju úlohu. MIL overí algoritmus. SIL overí kód. PIL overí správanie kódu na procesore. RCP overí algoritmus na reálnom zariadení. HIL overí ECU bez rizika poškodenia. VIL overí celý systém v reálnom prostredí, ale bezpečne.

MATLAB a Simulink vám dajú model. Simulink Coder premení model na kód. dSPACE ConfigurationDesk prevedie model do aplikácie reálneho času a na simulačnú platformu. ControlDesk vám umožní aplikáciu na platforme sledovať a stimulovať.

TargetLink nasadí algoritmus na výslednú produkčnú riadiacu jednotku.

Ak vyvíjate riadiace systémy a chcete to robiť profesionálne, toto je cesta. Nemusíte nasadiť všetky etapy naraz. Začnite tam, kde ste. Aj samotný MIL s kvalitným modelom vám ušetrí hodiny ladenia na reálnom zariadení.

“dSPACE provided an easy-to-use and reliable platform for prototyping our algorithm within a very short lead time.”

Chinedum Okwudire, University of Michigan

Späť na začiatok článku

Jana Trojáková, 17.7.2026

close