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).
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.
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.
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 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.
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.
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