MATLAB & Simulink Matematické výpočty, analýza dat a tvorba aplikací
Jaroslav Jirkovský
[email protected] www.humusoft.cz
[email protected] www.mathworks.com
1
HUMUSOFT s.r.o.
Obsah • Úvod – novinky R2010a
• Matematické výpočty a analýza dat – statistika – optimalizace, prokládání dat – finanční analýza, neuronové sítě, fuzzy logika
• Samostatně spustitelné aplikace – tvorba uživatelského rozhraní, překlad a šíření aplikace
• Výměna dat a informací – propojení MATLABu s MS Excel a relačními databázemi – tvorba dokumentace
• Paralelní výpočty v MATLABu
2
HUMUSOFT s.r.o.
MATLAB & Simulink • Společnost The MathWorks založena v roce 1984 • Vývoj programu MATLAB – Od numerických výpočtů po komplexní výpočetní a vývojové prostředí Testování, Verifikace, Validace
Datové analýzy a vývoj algoritmů
Technické výpočty
• •
•
Rapid prototyping a HIL
•
Vestavěné programové vybavení
•
Software pro signálové procesory
§ Simulink
• •
Návrhy DSP Komunikační systémy
•
Stavové diagramy
•
Fyzikální modelování
• •
•
Zpracování obrazu
•
•
Tvorba aplikací
• •
Optimalizace Statistika
§ MATLAB 1985
3
Návrhy řídicích systémů Zpracování signálu
Testování a měření
•
Automatické generování kódu
Modelování systémů a simulace
•
1990
1995
Kontrola • Verifikace integrity modelů kódu
•
VHDL a Verilog
• •
Systémy diskrétních událostí Zpracování videa
Finanční modelování a analýzy
•
Výpočetní biologie
Studentská verze Komunikace s databázemi a instrumenty
•
Distribuované a paralelní výpočty
2000
2005
HUMUSOFT s.r.o.
Novinky MATLAB R2010a • Nové vlastnosti MATLABu a jeho nadstaveb: – rozšíření podpory více jader u matematických funkcí – zdokonalení grafického rozhraní MATLAB desktop – vylepšení v oblasti sdílení souborů a správy cest – nové System objekty v MATLABu, které podporují více než 140 algoritmů z VIP Blocksetu a Signal Processing Blocksetu • umožnění data stream processingu v MATLABu
– podpora více jader a zlepšení výkonu u více než 50 funkcí Image Processing Toolboxu včetně rozšíření podpory pro velké obrázky – nové metody GlobalSearch a MultiStart pro hledání globálních extrémů v Global Optimization Toolboxu – možnost převodu symbolických rovnic ze Symbolic Math Toolboxu do formátu pro Simscape language
4
HUMUSOFT s.r.o.
Novinky MATLAB R2010a • Nové vlastnosti Simulinku a jeho nadstaveb: – laditelné struktury parametrů, triggerované bloky modelu a větvení function call při tvorbě rozsáhlých modelů v Simulinku – Simulink PLC Coder, nový produkt určený pro generování strukturovaného textu dle IEC 61131 určeného pro PLC a PAC – rozšíření podpory generování kódu • Eclipse • Embedded Linux • ARM procesory
– certifikace dle ISO 26262 pro Real-Time Workshop Embedded Coder a PolySpace v nadstavbě IEC Certification Kit – rozšíření podpory DO-178B o model coverage v nadstavbě DO Qualification Kit
http://www.mathworks.com/access/helpdesk/help/base/relnotes/ 5
HUMUSOFT s.r.o.
Tok informací a dat v MATLABu vstupy
6
řešení
výstupy
HUMUSOFT s.r.o.
Matematické výpočty a analýza dat • Statistika – Statistics Toolbox
• Optimalizace a prokládání křivek – Optimization Toolbox – Curve fitting toolbox, Spline toolbox
• Finanční analýza – Financial toolbox, ...
• Neuronové sítě – Neural Network Toolbox
• Fuzzy logika – Fuzzy Logic Toolbox
• Symbolické výpočty – Symbolic Math Toolbox
• Řešení diferenciálních rovnic – MATLAB, COMSOL Multiphysics 7
HUMUSOFT s.r.o.
Statistics Toolbox • Rozšiřuje MATLAB o rozsáhlé funkce z oblasti statistiky a pravděpodobnosti • Dva nové typy dat – Catagorical array – Dataset Array
• Funkce: – jsou otevřené: lze je měnit, přidávat si vlastní kód – jsou rychlé: pracují s celým polem, ne s jednotlivou buňkou – pojetí matic: řádky = měření, sloupce = veličiny, statistické funkce se aplikují na jednotlivé sloupce
• Funkce příkazové řádky i GUI
8
HUMUSOFT s.r.o.
Statistics Toolbox • Funkce z oblastí: – deskriptivní statistika (centrální tendence, disperze, kvantily, …) – statistická vizualizace – pravděpodobnostní rozdělení – generování náhodných čísel – testy hypotéz – analýza rozptylu – regresní analýza – analýza clusterů – klasifikace – Markovské modely – návrh experimentů – řízení stochastických procesů
9
HUMUSOFT s.r.o.
Optimization Toolbox • Rozsáhlý soubor algoritmů pro optimalizaci – podmíněné, nepodmíněné, spojité i diskrétní úlohy
• Umožňuje řešit: – lineární programování – kvadratické programování – nelineární optimalizace – nelineární metoda nejmenších čtverců – řešení soustav nelineárních rovnic – vícekriteriální optimalizace
• Funkce příkazové řádky a GUI • Podpora paralelních výpočtů – s využitím Parallel Computing Toolboxu 10
HUMUSOFT s.r.o.
Global Optimization Toolbox • Rozšiřuje Optimization Toolbox • Řešení optimalizačních úloh s několika maximy, několika minimy nebo nehladkými funkcemi • Řešiče využívají – globální vyhledávání – start z několika výchozích bodů – pattern search – genetické algoritmy – simulované žíhání
• Využití pro úlohy obtížně řešitelné tradičními optimalizačními metodami – v případě že počítané funkce jsou • nespojité • stochastické • mají nejisté nebo neznámé derivace 11
HUMUSOFT s.r.o.
Curve Fitting Toolbox • Nástroje pro prokládání dat křivkami – zobrazení dat – předzpracování dat – vývoj standardních a uživatelských modelů – prokládání běžnými a robustními metodami – analýza proložení
• Nástroje pro prokládaní dat plochami • Funkce do příkazové řádky • GUI
12
HUMUSOFT s.r.o.
Financial Toolbox • Rozšiřuje Statistics Toolbox a Optimization Toolbox • Nabízí funkce pro matematickou a statistickou analýzu finančních dat a vývoj algoritmů pro finančnictví • Umožňuje výpočet – optimalizace portfolií – odhad rizik – analýza úrokové míry – oceňování finančních derivátů – práce s finančními časovými řadami
13
HUMUSOFT s.r.o.
Další nástroje pro finanční analýzu • Econometrics Toolbox – modelování a analýza finančních a ekonomických systémů pomocí statistických metod
• Financial Derivatives Toolbox – modelování a analýza akciových derivátů a derivátů s pevným výnosem
• Fixed-Income Toolbox – modelování a analýza cenných papírů s pevným výnosem
• Datafeed Toolbox – získávání finančních dat – poskytuje přímé spojení mezi MATLABem a finančními datovými servery
14
HUMUSOFT s.r.o.
Neural Network Toolbox • Nástroj pro práci s neuronovými sítěmi – návrh – vývoj – trénování – simulace – vizualizace
• Obsahuje přehledná GUI • Automatické vytváření simulačních bloků sítí v Simulinku • Uplatnění v oblastech kde je použití formálních analytických nástrojů obtížné či nemožné
15
HUMUSOFT s.r.o.
Fuzzy Logic Toolbox • Začlenění fuzzy logiky do MATLABu – fuzzy infereční systémy – neurofuzzy inferenční systémy – fuzzy clustering
• Grafické editory pro všechny fáze návrhu fuzzy systémů – editor základních vlastností fuzzy inferenčního systému – editor funkcí příslušnosti – editor pravidel – prohlížeč pravidel – prohlížeč řídicích ploch
• Blok Fuzzy regulátoru do Simulinku
16
HUMUSOFT s.r.o.
Řešení ODE a PDE • ODE – základní nástroj pro řešení ODE je Simulink – výběr z několika řešičů různých řádů (typu Runge-Kutta, prediktorkorektor) – umožňuje řešit komplexní systémy s ODE včetně nelinearit, nespojitostí, ...
• PDE – COMSOL Multiphysics – rozsáhlý modulární systém – řešení PDE ve 3D
17
HUMUSOFT s.r.o.
Grafika a samostatně spustitelné aplikace • Grafické uživatelské rozhraní – MATLAB
• Samostatně spustitelné aplikace – MATLAB Compiler – MATLAB Builder EX – MATLAB Builder JA – MATLAB Builder NE
18
HUMUSOFT s.r.o.
Grafické uživatelské rozhraní (GUI) • Tvorba grafického rozhraní pro snadné ovládání algoritmů uživateli • Veškeré standardní ovládací prvky – tlačítko, slider, textové pole, editovatelné pole, seznam, menu …
• Vhodné pro tvorbu stand-alone aplikací • GUIDE – editor pro tvorbu GUI – layout editor – m-file editor – property inspector – object browser – menu editor, toolbar editor
19
HUMUSOFT s.r.o.
MATLAB Compiler • Vytváří stand-alone aplikace a sdílené knihovny z programů v MATLABu • Lze použít většinu výpočetních a grafických funkcí MATLABu včetně vlastního GUI • Aplikaci je možné distribuovat – ke spuštění aplikace není nutná instalace MATLABu • uživatel bez MATLABu musí mít nainstalován MATLAB Compiler Runtime (MCR)
– k využívání aplikace není potřeba licence MATLABu – pokrývá licence MATLAB Compileru • v rámci komerční licence lze aplikaci zcela libovolně šířit • v rámci školní licence lze aplikaci šířit pouze bezplatně a musí být zajištěno její nekomerční (školní) využití
20
HUMUSOFT s.r.o.
Rozšíření MATLAB Compileru • MATLAB Builder EX – vytvoření samostatného doplňku pro Excel – Umožní začlenit do Excelu pokročilé algoritmy z MATLABu
• MATLAB Builder JA – začlenění aplikace z MATLABu do programů v jazyce JAVA
• MATLAB Builder NE – začlenění aplikace z MATLABu do programu vytvořením .NET nebo COM komponent
• Šíření pokrývá licence na MATLAB Compiler • uživatel bez MATLABu musí mít nainstalován MCR
21
HUMUSOFT s.r.o.
Výměna dat a informací • Propojení s Excelem – Spreadsheet Link Ex
• Propojení s databázemi – Database Toolbox
• Reportování – MATLAB - publish – MATLAB report generátor – Simulink report generátor
22
HUMUSOFT s.r.o.
Spreadsheet Link EX • Interaktivní propojení Excelu s výpočetním jádrem MATLABu • Umožňuje uživateli: – používat všechny funkce MATLABu přímo v Listu Excelu – vyměňovat data mezi Excelem a MATLABem – vkládat grafy z MATLABU do Listu Excelu
• Pozn.: čtení a zápis do .xls souborů je funkce základního MATLABu – lze načítat i zapisovat data z/do konkrétní části sešitu dané listem a rozsahem buněk
23
HUMUSOFT s.r.o.
Database Toolbox • Výměna dat s relačními databázemi • Podporuje interakci s nepoužívanějšími databázemi, jako je – Oracle – Sybase – Microsoft SQL Server – Informix
• Umožňuje – současný přístup do několika databází – transakce zahrnující rozsáhlé soubory dat
• Visual Query Builder – pro interakci s databázemi bez znalosti SQL
24
HUMUSOFT s.r.o.
Reportování • MATLAB – publish • v základním MATLABu • k jednoduché dokumentaci skriptů
• MATLAB Report Generátor – nástroj pro dokumentaci projektů v MATLABu – tvorba šablon pro dokumentaci – udržování aktuální dokumentace – tvorba manuálu k cílové aplikaci
• Simulink Report Generátor – nástroj pro dokumentaci modelů v Simulinku a Stateflow – zprávy z výsledků simulací – dokumentace ke kódu generovaném ze Simulinku pomocí Real-Time Workshopu 25
HUMUSOFT s.r.o.
Paralelní výpočty v MATLABu • Paralelní výpočty v rámci jedné multiprocesorové stanice – Parallel Computing Toolbox
• Distribuované výpočty v rámci výpočetního clusteru – MATLAB Distributed Computing Server
26
HUMUSOFT s.r.o.
Parallel Computing Toolbox • Návrh, tvorba a zpracování paralelních výpočtů a algoritmů • Struktura – klient • sekce MATLABu pro zadání úloh a spouštění celého procesu
– lokální plánovač (scheduler) • rozděluje úlohy do „workerů“, komunikuje s nimi a sbírá výsledky
– worker • jednotka pro výpočet jednotlivých úloh
• PCT umožňuje spustit až 8 lokálních „workerů“ v rámci jednoho PC
27
HUMUSOFT s.r.o.
Parallel Computing Toolbox • Interaktivní paralelní mód – umožňuje pracovat s paralelními výpočty interaktivně
• Jazyk pro paralelní výpočty – příkazy pro paralelní programování • parfor • spmd
– distribuovaná data • codistributed • codistributor
• S Parallel Computing Toolboxem lze – programovat paralelní algoritmy – provádět výpočet paralelních algoritmů na multiprocesorové stanici – testovat nastavení paralelního algoritmu před spuštěním na výpočetním clusteru 28
HUMUSOFT s.r.o.
MATLAB Distributed Computing Server • Rozšiřuje Parallel Computing Toolbox • Je možné zpracovávat rozsáhlé výpočetní úlohy v rámci výpočetního clusteru – konfigurace pro 8, 16, 32, 64, 96 a 128 workerů
• Lze využít vlastní nebo externí plánovač (Scheduler, Job Manager)
29
HUMUSOFT s.r.o.
Humusoft HeavyHorse • Procesory AMD Opteron – dva nebo čtyři procesory – čtyř, šesti, osmy a dvanácti jádrové – frekvence CPU 2.3 až 3.1 GHz
• 8-64 GB RAM • Grafická karta ATI Radeon HD 5770 nebo 5870 • Pevný disk SATA 500 GB nebo 1000 GB • Optická mechanika DVD±RW • Operační systém podle přání – Microsoft Windows 64-bit: XP, Vista, Server – Linux 64-bit: OpenSUSE, Ubuntu
• Možnost předinstalace aplikací – MATLAB – MATLAB Distributed Computing Server – COMSOL Multiphysics 30
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/
31
HUMUSOFT s.r.o.
Zdroje informací • Www 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ě • www.humusoft.cz/wwwseminare
• Workshopy – workshopy nabízí možnost praktického seznámení s programy MATLAB & Simulink a COMSOL Multiphysics – účastníci mají k dispozici PC, kde si mohou prezentované příklady za asistence přednášejícího sami vyzkoušet • www.humusoft.cz/workshop/
• Š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 32
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/matlab09
• Diskusní skupiny – Česká a slovenská skupina uživatelů MATLABu (CSMUG) • www.humusoft.cz/produkty/matlab/csmug
33
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]
34
HUMUSOFT s.r.o.
Děkuji za pozornost
35
HUMUSOFT s.r.o.