Model-Based Design – od nápadu až po kvalitné zariadenie

Vývoj zariadení sprevádza niekoľko fáz od stanovenia požiadaviek až po výslednú implementáciu. Počas vývoja sa môžu vyskytnúť chyby, ktoré dokážu výrazne spomaliť uvedenie na trh a samostatný vývoj predražiť. Zákazníci využívajúci pri vývoji výpočtové prostredie MATLAB a jeho nadstavbu Simulink od spoločnosti MathWorks si osvojili metódu Model-Based Design. Pomocou tejto metódy dokážu chyby identifikovať už v počiatočných fázach a overiť viaceré riešenia.

Predstavte si, že v tíme vyvíjate zložitejšie zariadenie s viacerými subsystémami a riadiacim softvérom. Po počiatočných požiadavkách sa predpoklady testujú na prototype zariadenia a riadiaci systém je ručne naprogramovaný. Pokiaľ sa vyskytne závažný nedostatok (výrazná zmena v požiadavkách), je potrebné celý systém prerobiť a preprogramovať. Tieto operácie predražujú a predlžujú celý projekt. Metóda Model-Based Design kladie dôraz na vytvorenie modelu zariadenia. Model sa využíva na simulovanie správania zariadenia vo viacerých situáciách, bez potreby tvorby kódu alebo prototypu. Metóda tiež kladie dôraz na testovanie v každej fáze vývoja, čím pomáha rýchlo zachytiť chyby návrhu. Ukazuje sa, že čím neskôr zachytíme chyby návrhu vedúce k prerobeniu celého konceptu, tým viac zaplatíme nielen finančne, ale aj časovo (odhady predpokladajú exponenciálny nárast).

Tvorba požiadaviek a ich správa

Návrh každého nového zariadenia začína požiadavkami. Požiadavky zachytávajú ako má zariadenie fungovať ako celok, prípadne ako sa majú správať jednotlivé súčasti a medzi sebou spolupracovať. Požiadavky sa väčšinou píšu ako obyčajné dokumenty, čo pri väčších projektoch a viacerých tímoch nemusí vždy fungovať bezchybne. Preto sa na ich tvorbu a správu vytvorili profesionálne nástroje. Spoločnosť MathWorks vytvorila nástroj Simulink Requirements, pomocou ktorého viete požiadavky nie len vytvárať alebo pripojiť k externému zdroju, ale aj spravovať v rámci Simulinku, pripojiť ku blokom, kódu a testom. Navyše dokáže sledovať ich implementáciu a verifikáciu. Na základe požiadaviek vieme vytvoriť vyšší pohľad na architektúru a komponenty systému pomocou nástroja System Composer.

Návrh systému

Pri tradičných postupoch je každý návrh naprogramovaný a testovaný na reálnom prototype. To má za následok, že je overená iba určitá časť nápadov a testovaných scenárov, vzhľadom na časové a finančné požiadavky. Pri metóde Model-Based Design sú všetky požiadavky zahrnuté do modelu. Model môže obsahovať viaceré súčasti ako prostredie, v ktorom zariadenie pracuje, samostatný fyzikálny model zariadenia alebo riadiaci algoritmus. Simulovaním modelu odhaľujeme problémy systému ešte skôr, ako vytvoríme drahý hardvér. Rýchlo tiež overíme množstvo iných možností, ich nedostatky a vplyv na systém. Pretože pracujeme s modelom naše možnosti sú v princípe neobmedzené. Základný nástroj na modelovanie dynamických systémov je Simulink. Jeho rozšírenia z rodiny produktov Simscape uľahčujú modelovanie fyzikálnych súčastí a rozšírenia Simulink Control Design alebo Stateflow slúžia na návrh riadiacej logiky. Prostredie MATLAB/Simulink však poskytuje oveľa viac rozšírení pre oblasti robotiky, autonómneho riadenia, bezdrôtových komunikácií, riadiacich systémov, elektroniky, energetiky a mnoho ďalších.

Generovanie kódu

Riadiace algoritmy sa typicky píšu ručne od samého začiatku, prípadne na základe modelu systému. Manuálne písanie kódu na základe špecifikácií a jeho ladenie je časovo náročná činnosť. Navyše nemusí zachytiť všetky prípady a môže obsahovať chyby aj po viacerých testoch. Pri metóde Model-Based Design sa namiesto ručného písania tisícov riadkov kód generuje priamo z modelu. Vygenerovaný kód sa dá overiť pomocou hardware-in-the-loop testov na zariadení, čo skracuje iterácie z týždňov na minúty. Generovaním kódu vieme ľahko pokryť rôzne programovacie jazyky a platformy. Simulink obsahuje viaceré nadstavby pre generovanie kódu ako Simulink Coder pre C/C++, Embedded Coder pre C/C++ optimalizovaný na embedded systémy, HDL Coder pre VHDL a Verilog, PLC Coder pre štruktúrovaný text a GPU Coder pre CUDA kód.

Testovanie a verifikácia

Testovanie a verifikácia sa robí tradične na konci vývojového cyklu. Spomaľuje to identifikáciu a hlavne opravu chýb, ktoré sa mohli vniesť nesprávnym návrhom a pri písaní kódu. Pri metóde Model-Based Design testovanie a verifikácia nastáva počas celého vývojového cyklu od požiadaviek, návrh, generovanie kódu až po integráciu. Formálne metódy pomáhajú overiť bezpečnosť kódu a certifikovať ho pre viaceré bezpečné štandardy. Simulink obsahuje viacero nadstavieb pre testovanie a verifikáciu Simulink Test, Simulink Check, Simulink Coverage a produkty Polyspace pre overenie kódu formálnymi metódami.

Skúsenosti používateľov

Produkty spoločnosti MathWorks využívajú tisíce zákazníkov po celom svete. Väčšina z nich si osvojilo metódu Model-Based Design a potvrdili, že táto metóda im pomáha zrýchliť a skvalitniť vývoj. Embraer skvalitnil tvorbu požiadaviek pre subdodávateľov s využitím detailného modelu riadiaceho systému pre lietadlá. Ather Energy pri tvorbe prvého elektrického skútra v Indii využili simuláciu na porovnanie viacerých navrhovaných parametrov namiesto vytvárania drahých prototypov. Murata Manufacturing pri vývoji EMS (energy management system) vygenerovala 100% kódu a úspešne ho nasadila na 32bitový mikrokontróler. Bombardier Transportation pri porovnaní metódy Model-Based Design a tradičného prístupu odhadli, že ušetrili 45% nákladov a 35% času znížením iterácií potrebných na návrh, implementáciu a testovanie.

Ako začať?

Pokiaľ by ste sa chceli zoznámiť s metódou Model-Based Design a prostredím MATLAB/Simulink, spoločnosť MathWorks pre vás pripravila dva bezplatné online kurzy. V prvom kurze sa naučíte pracovať v prostredí Simulink, kde si osvojíte modelovanie a simuláciu dynamických systémov. Druhý kurz vás oboznámi so Stateflow, nadstavbou Simulinku pre modelovanie udalostných systémov a rozhodovacej logiky. Kurzy sú dostupné na stránkach MATLAB Academy:

https://matlabacademy.mathworks.com/

Pokiaľ vás metóda Model-Based Design a súvisiace produkty zaujali, môžete si vyskúšať prostredie MATLAB a jeho nadstavby pomocou bezplatnej skúšobnej verzie na 30 dní.

Michal Blaho (HUMUSOFT), 15.7.2020