MATLAB 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.
O společnosti HUMUSOFT • MATLAB, Simulink Název firmy: Humusoft s.r.o.
• Comsol Multiphysics
Založena: 1990
• WITNESS
Počet zaměstnanců: 15
• dSPACE - vývojové systémy
Sídlo: Praha 8, Pobřežní 20
• Vývoj vlastního software & hardware • Multiprocesorové stanice HeavyHorse • Výukové modely • 3D polohovací zařízení
2
HUMUSOFT s.r.o.
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
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 4
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
5
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Tok informací a dat v MATLABu vstupy
8
řešení
výstupy
HUMUSOFT s.r.o.
Práce s MATLABem • Výpočty v MATLABu – MATLAB
• Programování v MATLABu – MATLAB
• Grafika v MATLABu – MATLAB
9
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Grafika v MATLABu • Typy grafů – 2D • • • •
čárové spojnicové grafy schodové grafy bodové grafy sloupcové grafy
– 3D • čá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
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
13
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
14
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í
15
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
16
HUMUSOFT s.r.o.
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
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
18
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
19
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ů
20
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 21
HUMUSOFT s.r.o.
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 • • • •
22
nespojité vysoce nelineární stochastické mají nejisté nebo neznámé derivace
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
23
HUMUSOFT s.r.o.
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
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
25
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
26
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é
27
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
28
HUMUSOFT s.r.o.
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
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
30
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
31
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
32
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 33
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
34
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
35
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 • 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
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)
37
HUMUSOFT s.r.o.
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 s.r.o.
HUMUSOFT MF 624 a AD 622 • AD 622 – levná měřicí karta pro PC • 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ů
• MF 624 – 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 39
HUMUSOFT s.r.o.
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 • • • • • • •
40
Měření polohy Servosystémy Pulzně-šířková modulace Měření frekvence Měření času Generování pulzů/frekvence Čítání pulsů
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Toolboxy MATLABu k dané tématice • Finanční analýza – Financial toolbox – Econometrics Toolbox – Financial Derivatives Toolbox – Fixed-Income Toolbox – Datafeed Toolbox
43
HUMUSOFT s.r.o.
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
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/
45
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
46
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 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
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]
48
HUMUSOFT s.r.o.
Děkuji za pozornost
49
HUMUSOFT s.r.o.