MATLAB & Simulink Matematické výpočty, analýza dat a tvorba aplikací Jaroslav Jirkovský jirkovsky@humusoft.cz www.humusoft.cz info@humusoft.cz www.mathworks.com 1
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
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 Testování a měření Kontrola Verifikace integrity modelů kódu Automatické generování kódu Rapid prototyping a HIL Vestavěné programové vybavení Software pro signálové procesory VHDL a Verilog Modelování systémů a simulace Simulink Návrhy DSP Komunikační systémy Stavové diagramy Fyzikální modelování Systémy diskrétních událostí Zpracování videa Datové analýzy a vývoj algoritmů Návrhy řídicích systémů Zpracování signálu Optimalizace Statistika Zpracování obrazu Finanční modelování a analýzy Výpočetní biologie Technické výpočty MATLAB Tvorba aplikací Studentská verze Komunikace s databázemi a instrumenty Distribuované a paralelní výpočty 3 1985 1990 1995 2000 2005
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
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
Tok informací a dat v MATLABu vstupy řešení výstupy 6
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
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
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
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
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
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
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
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
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
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
Řešení ODE a PDE ODE PDE 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í,... COMSOL Multiphysics rozsáhlý modulární systém řešení PDE ve 3D 17
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
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
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
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
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
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
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
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
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
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) worker rozděluje úlohy do workerů, komunikuje s nimi a sbírá výsledky jednotka pro výpočet jednotlivých úloh PCT umožňuje spustit až 8 lokálních workerů v rámci jednoho PC 27
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
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 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
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
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ě Workshopy www.humusoft.cz/wwwseminare 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 Školení www.humusoft.cz/workshop/ 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
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
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 info@humusoft.cz 34
Děkuji za pozornost 35