Seminár – Embedded MATLAB in Code Generation

30. Október, 2009, Autor článku: Blaho Michal, MATLAB/Comsol, Oznamy
Ročník 2, číslo 10 This page as PDF Pridať príspevok

Spoločnosť HUMUSOFT s.r.o. organizovala v utorok 20.10.2009 seminár o Embedded Matlabe a jeho využitie pri generovaní kódu. Seminár sa konal v príjemnom prostredí hotela International v Brne a naše poznatky z tohoto seminára vám priblížime v tomto článku.

Seminár bol určený pre odborníkov z rôznych priemyselných oblastí a akademickú obec, ktorej pojem Matlab nie je cudzí. Seminár bol vedený špecialistom firmy The MathWorks Michaelom Fröstlom z Nemecka a vypomáhal mu zástupca firmy Humusoft Jaroslav Jirkovský. Rokovacím jazykom seminára bola kvôli zahraničnému hosťovi angličtina.


Obr.1 Michael Fröstl (vľavo) a Jaroslav Jirkovský (vpravo)

Seminár bol rozdelený do dvoch častí, medzi ktorými bola krátka prestávka na oddych a občerstvenie. Prvá časť bola venovaná Embedded Matlabu, jeho možnostiam, návrhu algoritmov, generovaniu kódu a využitiu modelovo založenému postupu návrhu. V druhej časti boli prezentované metódy na kontrolu a overenie na úrovni modelu, ale aj kódu a využitiu metódy PIL (Processor-in-the-Loop).


Obr.2 Prezentácia Embedded Matlabu

Čo to vlastne Embedded Matlab je? Embedded Matlab je podmnožina klasického Matlabu, ktorá obsahuje len učité dátové typy a funkcie. Dokáže generovať bloky kódu jazyka C priamo z matlabových M-súborov, pričom nepoužíva dynamickú alokáciu pamäte (kód je generovaný staticky). Klasický postup generovania kódu sa dá popísať nasledujúcimi bodmi:

  1. Návrh (čísla s pohyblivou čiarkou)
  2. Simulácia (čísla s pohyblivou čiarkou)
  3. Program v C (čísla s pohyblivou čiarkou)
  4. Konverzia čísla s pohyblivou čiarkou na čísla s pevnou čiarkou
  5. Simulácia (čísla s pevnou čiarkou)
  6. Kontrola a overenie po preložení

Prvé dva body boli navrhnuté v Matlabe a zvyšok v prostredí C/C++. Embedded Matlab sa nám snaží uľahčiť prácu, preto bol navrhnutý nový spôsob generovania C kódu:

  1. Vývoj algoritmu (čísla s pohyblivou čiarkou)
  2. Simulácia (čísla s pohyblivou čiarkou)
  3. Konverzia na čísla s pevnou čiarkou
  4. Simulácia (čísla s pevnou čiarkou)
  5. Automatické generovanie kódu C
  6. Kontrola a overenie po preložení

Oproti klasickému generovaniu sú všetky spomenuté body, okrem posledného, urobené v Matlabe. Zjednoduší sa tak práca pre používateľov Matlabu. Na seminári bol po úvode do Embedded Matlabu ukázaný modelovo založený postupu návrhu vnoreneho algoritmu. Následne boli predstavené produkty, ktoré podporujú funkcie Embedded Matlabu, nástroje potrebné na vytvorenie Embedded algoritmu pre jednotlivé produkty a stánka pre ďalšie informácie o Embedded Matlabe [1]. Po prvej časti nasledovala krátka prestávka s občerstvením.


Obr.3 Občerstvenie

Druhá časť seminára bola venovaná kontrole a overovaniu algoritmov. Táto časť je dôležitá hlavne pre systémy citlivé na bezpečnosť. Nástroje Matlabu spĺňajú vysoké nároky o čom svedčia aj získané certifikáty IEC Certification Kit (pre IEC 61508 a ISO 26262) a DO Qualification Kit (pre DO-178B).


Obr.4 Časť účastníkov seminára

Seminár pokračoval prehľadom metód testovania a hľadaním optimálných testovacích metód z pohľadu relevantnosti požiadaviek a stupňa automatizácie. Matlab vybral najvhodnejšie metódy, ktoré spolupracujú so zadanými požiadavkami (Formalized Requirements). Požiadavky môžu byť zadané ako cieľ dôkazu (čo má byť dokázané – true alebo false), predpoklad dôkazu (obmedzenia prostredia) a ako ich kombinácia pomocou blokov dočasných operátorov, ktoré špecifikujú časové obmedzenia požiadaviek.

Spomenuté boli aj obmedzenia na testovanie konkrétne, že testovať sa nemôžu spojité modely procesov (iba diskrétne regulátory), čísla s pohyblivou čiarkou sa využívajú iba lineárne a veľkosť modelu je limitovaná jeho komplexnosťou. Na názornej ulážke bolo vysvetlené testovanie v nástroji PolySpace.

Veľmi zaujímavá bola praktická ukážka s využitím testovacej metódy PIL (Processor-in-the-Loop). Pomocou tejto metódy dokážeme porovnávať výsledky vygenerované algoritmom a reálnym zariadením. Dokážeme tak povedať, že chyba nie je v algoritme, ale v navrhnutom zariadení, čím môžeme pomôcť vývojárom hardvéru. Komunikácia ku zariadeniu môže prebiehať cez sériovú linku prípadne cez zbernicu CAN. Matlab obsahuje podporu pre kompilačné nástroje (Altium TASKING, Green Hills MULTI, TI Code Composer Studio, Analog Devices VisualDSP++) a konkrétne mikroprocesory (Freescale MPC5xx, rady Infineon C166 / STMicro ST10, TI C6000 / TI 2000). Záver patril tradične otázkam a voľnej diskusii s prednášajúcim. Na záver musíme ešte poukázať na tradičnú moravskú pohostinnosť, ktorú sme si vychutnali cez obednú prestávku Na Špalíčku. Kvalitou aj milou obsluhou vysoko prevýšili podobné slovenské zariadenia.


Obr.5 Obed Na Špalíčku

Seminár bol nad naše očákavania a vysoko odborný. Pán Fröstl ako šéf tímu pre vývoj Embedded Matlabu nás do hĺbky oboznámil s jeho možnosťami a na praktických príkladoch ukázal jeho možné využitie. Firma Humusoft sa tradične ukázala ako dobrý hostiteľ a celú akciu zorganizovala výborne. Na záujem o jej akcie ukazuje aj fakt, že miestnosť pre seminár bolá plná do posledného miesta. Už teraz sa tešíme na ďalšiu pripravovanú akciu Technical Computing Prague 2009 v novembri, z ktorej sa vám budeme snažiť priniesť ďalšie reportáže.

Literatúra

  1. Embedded Matlab Landing Page

Napísať príspevok