Ústav automatizace a informatiky Fakulta strojního inženýrství Vysoké učení technické v Brně Přednáška č. 4 z předmětu Zpracování informací (kombinované studium) Ing. Radek Poliščuk, Ph.D. Tato publikace vznikla jako součást projektu CZ.04.1.03/3.2.15.2/0285 Inovace VŠ oborů strojního zaměření, který je spolufinancován evropským sociálním fondem a státním rozpočtem České republiky 1/15+16
Ohlédnutí přednášky 1-3 Abychom získali INFORMACE, potřebujeme DATA. Technická data získáváme měřením a sledováním. Logické a spojité veličiny (signály) měříme pomocí snímačů (senzorů). Pro elektronické zpracování je nutný převod do formy elektrického signálu (U,I...). Pro digitální zpracování se signály vzorkují (v čase) a kvantují (A/D). Data ze senzorů obvykle potřebujeme někam přenést, archivovat a analyzovat. Technickou úroveň přenosu a archivace přizpůsobujeme rozpočtu dané úlohy. Technickou úroveň přenosu a archivace přizpůsobujeme rozpočtu dané úlohy. Souborový formát a rozmístění dat volíme s ohledem na budoucí použití (datové tabulky, jednotlivé binární soubory, datové stromy ve značkovaných souborech). Rychlost prohledávání datových záznamů je možné optimalizovat použitím indexů. Pro zabezpečení spolehlivého víceuživatelského přístupu k datům: DBS Práci s daty je možné zefektivnit relačním uspořádáním (vazbami mezi tabulkami) Relační data nemusí nutně mít charakter tabulek (viz XML stromy) Pro jednotný přístup k datům se nejčastěji používá DDL/DML jazyk SQL. 2/15+16
Obsah přednášky Přednáška 4 Analýza dat základní analýzy tabulkových dat tabulkové editory algebraické editory laboratorní software aplikační vývojová prostředí Realita DATA Informační systém Informace Příjemce 3/15+16
Analýza tabulkových dat Paralelně s vývojem sekvenčních zápisových technik (výrobní postupy, recepty, algoritmy...) se používaly i vícerozměrné formy zápisu (tabulky, schémata, animace), např. Účetní knihy (starověk), matriky (středověk) a veškeré tabulkové protokoly (výstupem výpočtů prvních počítačů byly dělostřelecké tabulky). Takto zorganizovaný zápis umožňoval data nejen přehlednou formou zobrazit, ale i nad snadno definovatelnými skupinami provádět určité operace (přepočty, sumy...) a z DAT tak extrahovat INFORMACE. Všechny druhy číselných dat je možné transformovat do formy tabulky/tabulek. Většina DBS je schopná už v rámci DML (SQL příkaz Select) nad daty provádět jen základní analytické operace: filtrování (klauzule WHERE a HAVING) transformace (běžné algebraické operace nad výstupními daty: +-*/,sin,cos...) agregace (operace nad skupinami dat: Count, Sum, Avg, Min, Max...) Výstupem je pak vždy zase datová tabulka ( DATASET ). pro pokročilejší typy analýz (OLAP, regresní a kovarianční analýzy, řešení soustav rovnic, MKP...) a výstupů (grafy, animace...) už bývá vhodnější použít příslušný analytický software... 4/15+16
Tabulkové editory Potřeba flexibilnější práce s daty než je pouhé spuštění programu a čekání na výsledek vedla v 70. letech k návrhu prvních interaktivních tabulkových procesorů, umožňujících vytváření průběžných přehledů a rozvah (...účetnictví). Toto bylo umožněno zavedením souřadnic pro jednotlivá pole tabulky, z nichž každé se tak může chovat nejen jako textová konstanta, ale i jako textová, číselná nebo jiná proměnná, indexovaná vždy svým sloupcem a řádkem. Každá buňka může obsahovat i vzorec, definující její hodnotu buď relativními (=A1), nebo absolutními (=$A$1) odkazy na okolní buňky nebo pole (A1:C5). Relativním rozkopírováním vzorců je potom možné definovat celé tabulky. 1 2 3 4 5 6 7 A B C D E Položka á ks cena vč. DPH počítač 10 500,00 Kč 1 =B2*C2 =D2*1,19 monitor 1 6 200,00 Kč 7 378,00 Kč 6 200,00 Kč myš 350,00 Kč 1 350,00 Kč 416,50 Kč klávesnice 720,00 Kč 1 720,00 Kč 856,80 Kč DVD média 10,00 Kč 25 250,00 Kč 297,50 Kč Celkem: =SUM(D2:D6) 21 443,80 Kč Prvním komerčním tabulkovým procesorem pro PC byl VISICALC (viz http://www.danbricklin.com/visicalc.htm), následoval Lotus 1-2-3 (a další, které se jeho funkce dodnes snaží kopírovat MS Excel, OOo Calc...). 5/15+16
Analýza tabulkových dat Tabulkové editory pracují buď s vlastními (přímo zadanými) daty, nebo mohou prostřednictvím SQL přistupovat k datasetům z existujících datových zdrojů. podobně jako u DBS, je možné na získaná data aplikovat řádkové filtry (v Excelu/Calcu menu Data ), transformace (do nových sloupců) prostřednictvím vzorců a relativních odkazů agregační funkce (sumační, statistické,...) s výstupem ve zvolených polích. Některá data ale přímo transformovat nejde => speciální funkce: Kontingenční tabulky (Pivot Tables) agregace řádkových záznamů do přehledové tabulky dle zvolených stat. kritérií: (filtry, sumace, průměry, min/max,...) Pobočka Brno Brno Praha Praha Plzeň Plzeň Plzeň Brno Praha Produkt A A A B A B A C A Měsíc Rok 1 3 2 1 1 2 2 1 3 Ks 2005 2005 2005 2005 2005 2004 2004 2005 2005 5 3 6 2 3 4 1 5 8 Pobočka (Vše) Součet z Ks Rok Měsíc 2004 2 Celkem z 2004 2005 1 2 3 Celkem z 2005 Celkový součet Produkt A 1 1 8 6 11 25 26 B 4 4 2 C 2 6 5 5 5 Celkový součet 5 5 15 6 11 32 37 6/15+16
Analýza tabulkových dat Online Analytical Processing (OLAP, E.F. Codd & Associates,1993) Dolují-li se kontingenční data ne z jedné, ale z mnoha (typicky časovými) relacemi propojených tabulek, je mezikrok s 2D zdrojovou tabulkou neefektivní a nekonzistentní (spousta opakujících se dat = velký dataset, nepřehledné a děravé KT, pomalé zpracování=>offline data). Pobočka (Vše) Součet z Ks Rok Měsíc 2004 2 Celkem z 2004 2005 1 2 3 Celkem z 2005 Celkový součet Produkt A 1 1 8 6 11 25 26 B 4 4 2 C 2 6 5 5 5 Celkový součet 5 5 15 6 11 32 37 => Snaha o vícerozměrný on-line pohled na data ( hyperkostka ), s výstupem vždy jen ve zvolených řezech, vedených podél os které nás zajímají. data se drží buď v dynamické vícerozměrné struktuře (MOLAP - viz spreadsheety, XML), nebo se obvyklé relační tabulky doplňují o předzpracované informace (ROLAP) specializovaná SQL nadstavba MDX (Microsoft, '97), výrazně zjednodušující dotazy: SELECT { [Measures].[Store Sales] } ON COLUMNS, { [Date].[2002], [Date].[2003] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] ) 7/15+16
Analýza tabulkových dat Mnoho úloh vede k řešení soustav lineárních rovnic: Ax=b => x = A-1 b...kde A je čtvercová matice soustavy, x je vektor proměnných a b je vektor pravých stran. pro menší soustavy mívají spreadsheety přímo funkce pro inverzi matic koeficientů OOo Calc: MInverse(rozsah zdrojových dat), MS Excel/CZ: Inverze(rozsah zdrojových dat)...nutno zadat jako maticový vzorec Pro větší soustavy lin. rovnic (>128 128) je nutný specializovaný software, využívající přímé metody (Gaussova eliminační metoda, L-U rozklad...) - pomalejší - ale fungují vždy, nebo iterační metody (Jacobiho, Gauss-Seidel) pro vhodná data rychlé, nemusí vždy konvergovat! Matlab, Octave,... 8/15+16
Analýza tabulkových dat Regresní a kovarianční analýzy: Statistická analýza vzájemné závislosti náhodných veličin x a y (více viz Matematika 3) f(x ) Nejčastěji používaná: Metoda nejmenších čtverců hledá se ideální přímka f(x) (nebo obecně i polynom) pro proložení množiny bodů: míru vzájemné lineární závislosti x a y pak udává korelační koeficient: kde 9/15+16 je rozptyl (disperze) dané veličiny
Analýza tabulkových dat Vizualizace dat pomocí grafů: Graf je grafické zobrazení číselných dat. Namísto procházení mnoha sloupců čísel na listu stačí jediný pohled k tomu, abyste získali přehled o situaci. Před vlastní tvorbou grafu bychom si měli ujasnit, co zobrazuje a k čemu slouží: zobrazení prosté posloupnosti hodnot (spojité:čarové grafy, diskrétní:bodové) zobrazení vzájemného poměru hodnot (blokové, skládané a koláčové grafy) zobrazení závislosti mezi sloupci (X-Y grafy, radarové grafy) zobrazení statistických údajů (proložení regresních křivek, krabicové grafy...) Opatrně s 3D pohledy... 10/15+16
Celoškolský software Během studia na FSI se možná setkáte s tímto komerčním analytickým softwarem: ABAQUS (simulace a metody konečných prvků) ANSYS, LS-DYNA, CivilFEM (MKP) Labview (laboratorní software pro řízení, sběr, analýzu i vizualizaci dat) Maple (symbolický algebraický a vizualizační sw více viz předmět Matematika 2) Mathematica (dtto) Matlab (dtto) Microsoft Windows a Office (kancelářské aplikace Word, Excel, Access,...) Minitab (statistický software) Pro/ENGINEER (konstrukce) Statistica (statistika a kvalitativní ukazatele výroby, plánování experimentů) (některé licence jsou na serveru https://sw.vutbr.cz volně přístupné i pro studenty FSI) Open-Source nebo zdarma dostupné varianty: OpenOffice.org (kancelářské aplikace, náhrada MS Office) GNU Octave (symbolický algebraický a vizualizační sw, náhrada Matlabu) Python (symbolický algebraický software, rozhraní pro vývoj univerzálních aplikací) Při znalosti potřebných algoritmů si můžete vytvořit i svou vlastní aplikaci pomocí Delphi 6PE (nainstalováno na internetových studovnách, pro nekomerční použití) Lazarus (multiplatformní Open-Source klon Delphi, vč. object Pascalu) Microsoft Visual Studio.Net (Visual Basic, C#, C++, Java; studentské edice zdarma). 11/15+16
Maple Interaktivní editor pro symbolickou algebru a pohodlnou vizualizaci výsledků více viz předmět Matematika 2 12/15+16
Matlab (Octave) CLI algebraické interpretery s důrazem na práci s maticemi (MATrix LABoratory) rychlé výpočetní jádro s podporou paralelních výpočtů a Just in Time kompilací podpora vícerozměrných polí a uživatelsky definovaných datových struktur rozšiřitelnost, velké množství aplikačních knihoven (Toolboxů), nadstavba Simulink pro simulaci a modelování - využívá jádro Matlabu pro numerické řešení nelineárních diferenciálních rovnic. 2D a 3D grafika včetně animací, interaktivní nástroje pro tvorbu GUI komunikace s externím přístrojovým vybavením (sériová linka,...) 13/15+16
Labview Ne všechny aplikace je nutné napsat pomocí některého z programovacích jazyků... nástroje pro sběr, analýzu a zobrazení dat (mnoho ovladačů a virtuálních přístrojů) objektové vývojové prostředí (vizuální programování UI, blokovými diagramy + MathScript + DLL) výhodné pro RAD laboratorních aplikací 14/15+16
Shrnutí přednášky Většinu technických analýz provádíme nad tabulkovými daty informace můžeme z naměřených dat získávat jejich filtrováním transformací agregací regresní analýzou náhodných dat řešením soustav rovnic náhledy ve formě kontingenčních tabulek a vizualizací výsledků ve formě grafů Pro řešení základní úlohy jsou určeny interaktivní tabulkové editory, u složitějších úloh je vhodné sáhnout po některé ze specializovaných analytických aplikací. Po přestávce: více o Labview (doplňkový text) 15/15+16
Doplňkový text Doplnění LabVIEW co je LabVIEW použití labview vizuální programování generátor signálů MathScript a DLL vizualizace a export výsledků 16/15+16
Co je LabVIEW? Laboratory Virtual Instrument Engineering Workbench RAD vývojové prostředí od firmy National Instruments pracující s grafickým programovacím jazykem G OOP systém pro sběr, analýzu a vizualizaci dat (Windows, MacOS X a Linux) programy = Virtuální měřicí přístroje (Virtual Instruments, VI) programový kód v podobě blokového schématu řešení úlohy na základě toku dat, ve směru od zdroje přes jednotlivé komponenty možnost kombinace vizuálního programu s MathScriptem (MATLAB) schopnost exportu VI ve formě DLL komponent a používání DLL třetích stran Realita DATA Informační systém Informace Příjemce 17/15+16
Použití LabVIEW Získávání dat Data Acquisition Device (USB, PCI/PXI) PLC s příslušnými ovladači Zvuková karta (analogový In/Out) Simulované (SW simulace dat) Analýza dat logické a matematické zpracování získaných signálů (program v G) Prezentace dat grafy a přehledy export dat do souborů senzory zvuková karta 18/15+16
Vizuální programování LabVIEW C, Object Pascal, matlab... * does not include code to generate UI 19/15+16
Aplikace = Virtuální přístroj Virtual Instrument = VI Front Panel = Uživatelské rozhraní (GUI), Ovládací prvky = Vstupy (přepínače, posuvné stupnice...) Indikátory = Výstupy (grafy, kontrolky/led, tabulky, ) Block Diagram = Grafický kód bloky zobrazují jednotlivé komponenty data jsou mezi objekty přenášena virtuálními dráty operace s daty s pomocí logických a numerických operátorů možnost seskupování komponent přístrojů do cyklicky opakovaných bloků, sekvencí, větvení... 20/15+16
Pracovní nástroje Výběr změna pozice popisovač ovladač spojovač scrooling propojovač výběr barvy dle objektu pop-up menu spojovač - space bar sonda barva breakpoint run stop Svítí-li žárovička: Labview při vykonávání zobrazuje svoji činnost v blokovém schématu výběr - single click výběr - double click krokování výběr - triple click nastavení textu pauza Opakované spuštění 21/15+16
Front panel = GUI Panel nástrojů Ikona Nápověda Tabulka Legenda Graf Numerický ovládací prvek Logický ovládací prvek Numerický indikátor Logický indikátor STOP tlačítko 22/15+16
Block diagram = propojení Panel nástrojů Funkce dělení SubVI Terminál grafu Dráty (tok dat) While Loop (smyčka) Numerická konstanta Funkce časovače Terminál logického ovladače 23/15+16
Datové typy a signály 24/15+16
Programové struktury Signál probíhá paralelně po všech platných větvcích (rámcích): Sekvence (složena z navazujících rámců) vynucení posloupnosti provádění příkazů. rámce sekvence se provádějí popořadě (0, 1, 2 ) (zobrazen je vždy jen jede rámec) Vstup i výstup do rámce jediným tunelem (každý vstup ale může vést do více bloků) Přepínač (case) Větvení programu, dle podmínky do dvou či více větví Terminál pro připojení testovací podmínky For-loop cyklus pro známý počet opakování Automatická indexace vstupního/výstupního kanálu [i] frekvenci cyklu lze ovlivnit vložením bloku Wait Until Next ms Multiple. While-loop cyklus běží dokud JE SPLNĚNA řídící podmínka Event rámec je vykonán při určité události 25/15+16
podprogramy a funkce Pro zpřehlednění schématu se dodané a odladěné kusy kódu zapouzdřují : uživatelské programy (VI) i podprogramy (SubVI s) mají block diagram i front panel. express VI: interaktivní VI konfigurovatelným dialogovým oknem funkce: operátory v LabVIEW (nemá front panel ani block diagram) Funkce Express VI Standardní VI 26/15+16
Generování signálu Při ladění aplikace se hodí nástroje pro generování a filtraci signálu: skupina nástrojů: VI Expres, VI, Funkce možnost náhrady reálného zdroje dat VI Express Classic VI 27/15+16
MathScript Tam kde vizuální programování nestačí: možnost použití kódu MathScript, vyvinutého v prostředích MATLAB a GNU Octave nativní interpretr a editor MathScript uvnitř LabVIEW (instalace Matlab/Octave není nutná), cca 650 vestavěných funkcí, bez toolboxů (nejde o úplnou náhradu originálu) možnost importu DLL 28/15+16
Vizualizace výsledků Pohled na řídící panel je možné doplnit o: výstupy ve formě 2D a 3D grafů (ActiveX) událostmi řízené 3D animace 3D scény definované jako obrázkové VI řízení polohy, velikosti a barvy entit import objektů z formátů VRML, STL, ASE HW akcelerace zobrazování (OpenGL) 29/15+16
Export výsledků - TDMS Získaná data je možné ukládat ve formě TDMS souborů Vestavěné komponenty manipulaci s daty TDM Data Model & File TDM Streaming VIs Data Storage VIs DataPlugins DIAdem DataFinder (pro dolování dat) TDM je možné importovat do Excelu (importní filtr na www.ni.com/tdm) TDM je možné streamovat pro vzdálené zpracování 30/15+16
Další informace Tento dokument vychází z veřejných podkladů na: www.ni.com www.ni.com/czech - česká příručka k LabVIEW www.ni.com/trylabview - online demoverze www.ni.com/labview www.ni.com/automatedtest www.ni.com/measurementfundamentals uai.fme.vutbr.cz 31/15+16