MATLAB 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
O společnosti HUMUSOFT Název firmy: Humusoft s.r.o. Založena: 1990 Počet zaměstnanců: 15 Sídlo: Praha 8, Pobřežní 20 MATLAB, Simulink Comsol Multiphysics WITNESS dspace - vývojové systémy Vývoj vlastního software & hardware Multiprocesorové stanice HeavyHorse Výukové modely 3D polohovací zařízení 2
Obsah Úvod co je MATLAB & Simulink Práce s MATLABem výpočty, programování, grafika Samostatně spustitelná aplikace tvorba uživatelského rozhraní, překlad a šíření aplikace Matematické výpočty a analýza dat statistika, optimalizace, finanční analýza neuronové sítě, fuzzy logika symbolické výpočty 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 3
Co je MATLAB 4 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
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 5
Struktura systému MATLAB Aplikace v reálném čase Blocksety (knihovny bloků) Tvorba samostatných aplikací Toolboxy (knihovny funkcí) Simulink Simulace a modelování dynamických systémů MATLAB Výpočty, programování, vizualizace... 6
Oblasti využití systému MATLAB Tradiční Letectví, kosmonautika a obrana Automobilový průmysl Automatizace a strojírenství Komunikace, elektronika, polovodiče a výpočetní technika Školství Nově vznikající Biotechnologie, zdravotnictví a farmacie Finance a ekonomika Chemie a petrochemie Přírodní vědy Energetika a veřejné služby 7
Tok informací a dat v MATLABu vstupy řešení výstupy 8
Práce s MATLABem Výpočty v MATLABu MATLAB Programování v MATLABu MATLAB Grafika v MATLABu MATLAB 9
Výpočty v MATLABu Základní matematický prvek je matice algoritmy optimalizované pro práci s vektory a maticemi V MATLABu je více než 1000 funkcí z různých oblastí elementární matematické funkce trigonometrické funkce vektorové a maticové operace řešení soustav lineárních rovnic práce s polynomy a prokládání dat základní statistické funkce diskrétní Fourierova transformace řešení obyčejných diferenciálních rovnic K některým úlohám připravené GUI 10
Programování v MATLABu Tvorba programů a algoritmů Pokročilé datové typy n-d pole, cell array, struktura Základní programové elementy přiřazovací příkaz, relační operátory,... Řízení toku programu podmíněný příkaz: if, switch cyklus: for, while Uzivatelské programové celky skripty funkce Objektově orientované programování Nástroje pro ladění programu debugger m-lint profiler 11
Grafika v MATLABu Typy grafů 2D 3D čárové spojnicové grafy schodové grafy bodové grafy sloupcové grafy čárové grafy v prostoru plošné grafy Objemové vizualizace hodnot veličin v objemu vizualizace vektorů veličin v objemu Systém Handle Graphics všechny grafické prvky jsou objekty s definovanámi vlastnostmi vlastnosti jsou přístupné přes identifikátor objektu, tzv. handle 12
Grafika a samostatně spustitelné aplikace Grafické uživatelské rozhraní MATLAB Samostatně spustitelné aplikace MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE 13
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 14
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í 15
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 16
Matematické výpočty a analýza dat Řešení diferenciálních rovnic MATLAB, COMSOL Multiphysics Statistika a optimalizace Statistics Toolbox 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 17
Ř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 18
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 19
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ů 20
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 21
Genetic Algorithm and Direct Search Tbx. Rozšiřuje Optimization Toolbox o generické algoritmy algoritmy s přímým vyhledáváním Využití pro úlohy obtížně řešitelné tradičními optimalizačními metodami v případě že počítané funkce jsou nespojité vysoce nelineární stochastické mají nejisté nebo neznámé derivace 22
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 23
Spline Toolbox Algoritmy založené na splinech určené pro prokládání dat interpolaci extrapolaci vizualizaci Obsahuje přehledné GUI Další operace se spline vyčíslení skládání derivace integrace 24
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 25
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 26
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é 27
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 28
Symbolic Math Toolbox Symbolické výpočetní jádro MuPAD Vnáší symbolické výpočty do numerického prostředí MATLABu aritmetika s proměnnou přesností kalkulus (derivace, integrály, limity, ) lineární algebra (inverze, determinant, ) řešení rovnic (algebraické, diferenciální) transformace (Fourier, Laplace, Z) MuPAD notebook pro alternativní zápis a výpočet symbolických výrazů 29
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 30
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 31
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 32
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 33
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 34
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 35
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 dfeval 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 36
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) 37
Humusoft HeavyHorse Procesory AMD Opteron dva nebo čtyři čtyřjádrové procesory frekvence CPU 2.3 až 2.9 GHz 8-64 GB RAM Grafická karta ATI Radeon HD 4870 nebo 4870 X2 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 Mutliphysics 38
HUMUSOFT MF 624 a AD 622 39 AD 622 levná měřicí karta pro PC MF 624 Osm single-ended 14-bitových analogových vstupů Osm 14-bitových analogových výstupů 8 digitálních vstupů, 8 digitálních výstupů multifunkční vstupně-výstupní karta Osm single-ended 14-bitových analogových vstupů Osm 14-bitových analogových výstupů 8 digitálních vstupů, 8 digitálních výstupů 4 vstupy inkrementálních snímačů (diferenciální) 4 čítače/časovače Společné vlastnosti Nízká spotřeba Krátká doba A/D převodu Ovladače pro Real Time Toolbox, Real-Time Windows Target Windows, 32 i 64-bitové aplikace
HUMUSOFT MF 624 a AD 622 Aplikace společné Měření stejnosměrných napětí Připojení převodníků a snímačů Měření vibrací a přechodových jevů Řízení a monitorování procesů Snímání a analýza průběhu Vícekanálový sběr dat Simulace v reálném čase + MF 624 lze navíc využít pro Měření polohy Servosystémy Pulzně-šířková modulace Měření frekvence Měření času Generování pulzů/frekvence Čítání pulsů 40
COMSOL Multiphysics Řešení parciálních diferenciálních rovnic (PDE) metodou konečných prvků řešení ve 2D a 3D Rozsáhlý modulární systém AC/DC Module RF Module Heat Transfer Module Acoustics Module Structural Mechanics Module MEMS Module Chemical Engineering Module Earth Science Module COMSOL Reaction Engineering Lab Optimization Lab 41
Toolboxy MATLABu k dané tématice Statistika a analýza dat Statistics Toolbox Curve Fitting Toolbox Spline Toolbox Neural Network Toolbox Fuzzy Logic Toolbox Optimalizace Optimization Toolbox Genetic Algorithm and Direct Search Toolbox Parciální diferenciální rovnice Partial Differential Equation Toolbox Symbolické výpočty Symbolic Math Toolbox 42
Toolboxy MATLABu k dané tématice Finanční analýza Financial toolbox Econometrics Toolbox Financial Derivatives Toolbox Fixed-Income Toolbox Datafeed Toolbox 43
Toolboxy MATLABu k dané tématice Tvorba aplikací MATLAB Compiler MATLAB Builder EX MATLAB Builder NE MATLAB Builder JA Propojení s Excelem Spreadsheet Link EX Reportování a spolupráce s databázemi Database Toolbox MATLAB Report Generator 44
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/ 45
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ářů Školení www.humusoft.cz/wwwseminare 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 46
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 MATLAB 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 47
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 48
Děkuji za pozornost 49