Workshop Vývoj embedded aplikací v systému MATLAB a Simulink
Jiří Sehnal
[email protected] www.humusoft.cz
[email protected] www.mathworks.com
1
HUMUSOFT s.r.o.
Obsah workshopu • Model Based Design – model soustavy a regulátoru – ověření offline a real-time simulací
• Příprava modelu pro embedded aplikaci – požadavky na embedded aplikaci – Real-Time Workshop Embedded Coder a Simulink Fixed Point – převod modelu do fixed-point aritmetiky – ověření funkčnosti simulací
• Automatické generování aplikace – embedded targety – konfigurace targetu pro Microchip PIC32 – doplnění I/O periferií – generování aplikace a spuštění v cílovém HW
• Generování HDL kódu
2
HUMUSOFT s.r.o.
Co je MATLAB • Integrované prostředí pro vědeckotechnické výpočty • Grafické a výpočetní nástroje • Intuitivní uživatelské rozhraní MATLAB Desktop • Rychlé výpočetní jádro • Programovací jazyk 4. Generace – více než 1 000 funkcí – objektově orientované programování
• Grafická uživatelská rozhraní (GUI) • Rozsáhlá HTML nápověda – prohlížeč funkcí
• Systém MATLAB je: – modulární – toolboxy – otevřený – uživatel může zobrazit i upravovat funkce 3
HUMUSOFT s.r.o.
Co je Simulink • Nadstavba MATLABu • Modelování, simulace a analýza dynamických systémů • Prostředí blokových schémat – předdefinované knihovny bloků – systém práce „drag and drop“ – tvorba vlastních funkčních bloků
• Prvky pro tvorbu algebraických a diferenciálních rovnic • Otevřené rozhraní pro tvorbu aplikací – začlenění kódu z programů MATLAB, C, Fortran
• Platforma pro Model Based Design – následně může být automaticky generován kód pro cílovou platformu
4
HUMUSOFT s.r.o.
Obsah workshopu • Model Based Design – model soustavy a regulátoru – ověření offline a real-time simulací
• Příprava modelu pro embedded aplikaci – požadavky na embedded aplikaci – Real-Time Workshop Embedded Coder a Simulink Fixed Point – převod modelu do fixed-point aritmetiky – ověření funkčnosti simulací
• Automatické generování aplikace – embedded targety – konfigurace targetu pro Microchip PIC32 – doplnění I/O periferií – generování aplikace a spuštění v cílovém HW
• Generování HDL kódu
5
HUMUSOFT s.r.o.
Model based design • Úkol: – seznámení s aplikací, modelem soustavy a navrženým regulátorem, magnet_mbd.mdl – simulace, zobrazení výsledků, 3D animace – rapid prototyping, ověření s reálnou soustavou
6
HUMUSOFT s.r.o.
Obsah workshopu • Model Based Design – model soustavy a regulátoru – ověření offline a real-time simulací
• Příprava modelu pro embedded aplikaci – požadavky na embedded aplikaci – Real-Time Workshop Embedded Coder a Simulink Fixed Point – převod modelu do fixed-point aritmetiky – ověření funkčnosti simulací
• Automatické generování aplikace – embedded targety – konfigurace targetu pro Microchip PIC32 – doplnění I/O periferií – generování aplikace a spuštění v cílovém HW
• Generování HDL kódu
7
HUMUSOFT s.r.o.
Požadavky na embedded aplikaci • Produkční řídicí jednotka – Navržena s ohledem na minimální náklady v sériové výrobě – Malý výkon CPU – Málo paměti – Většinou nemá floating-point ALU – Náročné na optimalizaci
• Postup návrhu – Model odladěný na prototypovém systému se použije i na produkční ECU – Použije se generátor produkčního kódu – Implementace fixed-point aritmetiky – Optimalizace využití paměti – Optimalizace na konkrétní CPU – Kvalita ručně psaného kódu
8
HUMUSOFT s.r.o.
Převod do fixed-point aritmetiky Princip: scaling po blocích, autoscaling
- na základě výsledků simulace - pro nejhorší případ
Kompromis rychlosti, nároků na paměť a přesnosti: velká scaling mocninou dvou n
f=2 i malá
malá
rychlost výpočtu scaling mocninou dvou s offsetem n
f = 2 i + offs
obecný scaling
obecný scaling s offsetem
f=Si
f = S i + offs
přesnost
velká
Volba datových typů, ošetření přetečení, zaokrouhlování
9
HUMUSOFT s.r.o.
Ruční nastavení • Minima a maxima signálu, zjednoduší návrh pokud jsou známá • Datové typy podle použitého procesoru • Zamknout scaling kde je jasný • Zaokrouhlování • Saturace
10
HUMUSOFT s.r.o.
Automatické nastavení • Doplnit konverze datových typů na rozhraní generované části modelu • Fixed-Point Advisor – menu Tools -> Fixed-Point – zvolit subsystém – spustit konverzi – Run to Failure – provedení úprav dle doporučení – ukládat mezivýsledky – opakované spouštění až do úplného odladění – u větších modelů převod po částech, nefunguje pro model referencing a maskované subsystémy
11
HUMUSOFT s.r.o.
Ověření simulací • Fixed-Point Tool – model magnet_mbd_fp.mdl – menu Tools -> Fixed-Point – zvolit subsystém – Data Type Override – volba datového typu – referenční simulace v double precision – simulace ve fixed-point – porovnání výsledků – návrh změny datových typů podle výsledků simulace
12
HUMUSOFT s.r.o.
Obsah workshopu • Model Based Design – model soustavy a regulátoru – ověření offline a real-time simulací
• Příprava modelu pro embedded aplikaci – požadavky na embedded aplikaci – Real-Time Workshop Embedded Coder a Simulink Fixed Point – převod modelu do fixed-point aritmetiky – ověření funkčnosti simulací
• Automatické generování aplikace – embedded targety – konfigurace targetu pro Microchip PIC32 – doplnění I/O periferií – generování aplikace a spuštění v cílovém HW
• Generování HDL kódu
13
HUMUSOFT s.r.o.
Embedded Targety • MathWorks – Target Support Package • • • •
Analog Devices Sharc, Blackfin Freescale MPC 5xx Infineon C166, ST10 TI 2000, TI 5000, TI 6000
• Produkty třetích stran – Embedded Target for dsPIC • • • •
Microchip PIC24 Microchip PIC30 Microchip PIC32 Microchip PIC33
• Obsahuje: – konfigurace – časování aplikace – obsluha onchip periferií
14
HUMUSOFT s.r.o.
Embedded Target for dsPIC • Konfigurační bloky – Master • typ CPU, hodiny, timery a další parametry
– Configure Model • nastaví parametry RTW pro dsPIC
– Configuration • volba double nebo single precision
• I/O bloky • • • • • • • • 15
A/D Digital I/O CAN SPI I2C Serial Capture/compare unit PWM HUMUSOFT s.r.o.
Příprava modelu pro generování aplikace • model magnet_mbd_pic32.mdl • přidané konfigurační bloky • nastavení CPU 32MX360F512L • hodiny, timing • A/D převodník • PWM výstup • ovládání, tlačítka
16
HUMUSOFT s.r.o.
Vygenerování a spuštění aplikace • Tools –>RTW -> Build Model, Blok Generate Code, Ctrl B • vyrobí aplikaci (.elf) • Pomocí Microchip MPLAB IDE se aplikace naloaduje do CPU a spustí • ladicí prostředky vývojového prostředí MPLAB IDE (včetne source code debugging)
17
HUMUSOFT s.r.o.
Simulink HDL Coder • Kompiluje modely do Verilog a VHDL kódu – Simulink – Stateflow – Embedded MATLAB
• Pro implementaci algoritmů na programovatelná hradlová pole (FPGA) a zákaznické integrované obvody (ASIC) • Vyžaduje – Fixed Point Toolbox – Simulink Fixed Point
18
HUMUSOFT s.r.o.
Zdroje informací • Internetové stránky – www.humusoft.cz • domovská stránka firmy Humusoft s.r.o.
– www.mathworks.com • domovská stránka firmy The MathWorks, Inc.
• MATLAB central – prostor pro vzájemnou komunikaci mezi uživateli a příznivci systému MATLAB/Simulink (otevřená platforma pro prezentaci vlastních aplikací, výměnu souborů, názorů i zkušeností) • www.mathworks.com/matlabcentral/
19
HUMUSOFT s.r.o.
Zdroje informací • Webové semináře (webinars) – on-line semináře zdarma probíhající na internetu v reálném čase v daný den a hodinu – videa webových seminářů, které již proběhly, jsou ke stažení – v angličtině (The MathWorks), češtině, slovenštině – přehled připravovaných a archiv uskutečněných webových seminářů • www.humusoft.cz/wwwseminare
• Školení – Firma HUMUSOFT provádí školení na MATLAB, Simulink, Stateflow, Real Time Workshop, fyzikální modelování – zhruba 1x za dva měsíce, termíny jsou vyhlašovány 3 týdny předem • www.humusoft.cz/skoleni
20
HUMUSOFT s.r.o.
Zdroje informací • Knihy a publikace – CZ/SK knihy a publikace využívající nebo popisující systém MATLAB/Simulink • www.humusoft.cz/produkty/matlab/knihy
– kompletní seznam knih a publikací využívajících nebo popisujících systém MATLAB/Simulink • www.mathworks.com/support/books
• Konference Technical Computing Prague – příspěvky uživatelů o využití systému MATLAB/Simulink v praxi • www.humusoft.cz/akce/matlab08
• Diskuzní skupiny – Česká a slovenská skupina uživatelů MATLABu (CSMUG) • www.humusoft.cz/produkty/matlab/csmug
21
HUMUSOFT s.r.o.
Zkušební verze • Plnohodnotná verze MATLAB • Časově omezena na 30 dní • Možnost libovolných toolboxů a blocksetů • V případě zájmu nás kontaktujte –
[email protected]
22
HUMUSOFT s.r.o.
Děkuji za pozornost
23
HUMUSOFT s.r.o.