Aktuální vydání

celé číslo

04

2019

Plnicí a balicí stroje, výrobní logistika a správa skladových zásob

Průmyslové počítače, PLC

celé číslo

Matlab a internet věcí

Internet věcí (Internet of Things – IoT) je souhrnné označení formujícího se konceptu spočívajícího v současném připojení mnoha vestavěných zařízení k internetu. Struktury využívající koncept IoT pokrývají široké spektrum úloh od péče o životní prostředí přes automatizaci domácností až po použití v průmyslu. Výpočetní a vývojové prostředí Matlab&Simulink nabízí úplnou podporu vývoje aplikačních programů i v této oblasti.

 
Základním rysem konceptu IoT je komunikace vestavěných zařízení (věcí) prostřednictvím internetového připojení. Jednotlivá zařízení komunikují s ostatními připojenými zařízeními a také s lidmi a často přenášejí naměřené či jinak získané údaje do úložiště dat umístěného ve vzdáleném cloudu. Ke zpracování dat jsou využívány výpočty prováděné v cloudu za účelem hlubší analýzy vedoucí ke zjištění důležitých informací.
 
Levná výpočetní kapacita cloudových výpočetních systémů a neustále zdokonalovaná konektivita vestavěných zařízení podporují rychlé pronikání konceptu IoT do nejrůznějších oborů a úloh. Struktury založené na metodě IoT nacházejí uplatnění i v automobilovém průmyslu, zejména v úlohách sledování průjezdů vozidel nebo chodu výrobních systémů.
 

Podpora konceptu IoT v prostředí Matlab&Simulink

Výpočetní a vývojové prostředí Matlab&Simulink od firmy MathWorks nabízí širokou podporu vývoje aplikačních programů pro oblast IoT. Nástroj Matlab je výkonný programovací jazyk a interaktivní prostředí pro vědecké a technické výpočty, analýzu dat, vizualizaci a vývoj algoritmů. Simulink je nadstavba nástroje Matlab určená k simulaci a modelování dynamických systémů a k vývoji algoritmů s možností použití v oboru reálného času a ve vestavných zařízeních. Modely a algoritmy jsou v prostředí Simulink vytvářeny v podobě přehledných blokových schémat.
 
Obecný princip uspořádání a fungování sběrné či řídicí úlohy řešené s využitím konceptu IoT je ukázán na obr. 1. Prostředí Matlab v tomto typu úloh poskytuje nástroje pro vývoj a ověřování zařízení tvořících inteligentní okrajové uzly (vestavné procesory, programovatelná hradlová pole, jednodeskové počítače Arduino, Raspberry Pi atd.), umožňuje zpřístupnit a agregovat údaje a též poskytuje výpočetní nástroje pro hloubkovou analýzu rozsáhlých souborů dat přicházejících ze snímačů přes okrajové uzly. Vytvořené analytické algoritmy mohou být realizovány formou on-line výpočtů v cloudových serverech nebo být použity ke zpracování historických dat.
 
Prostředí Matlab&Simulink nabízí též přímé připojení ke službě ThingSpeak, otevřenému agregátoru dat určenému k podpoře konceptu IoT.
 

Uspořádání úlohy podle konceptu IoT

Levá strana schématu na již zmíněném obr. 1 reprezentuje inteligentní okrajové uzly, což jsou zařízení, která sbírají údaje, a to především automatizovaně prostřednictvím k nim připojených různých periferií, jako jsou např. kamery, mikrofony, teploměry, průmyslové snímače atd.
 
Střední část schématu znázorňuje agregaci údajů. Agregátor sbírá, zpracovává a ukládá údaje z mnoha okrajových uzlů, často rozprostřených na geograficky vzdálených místech. V agregátoru je možné přijímané údaje průběžně analyzovat a popř. vyvolat odezvu na získané informace.
 
Pravá část schématu reprezentuje analýzu historických údajů. Údaje nasbírané za určitou dobu jsou z agregátoru staženy do lokálního softwarového prostředí, kde je lze podrobně analyzovat za účelem zjištění hlubších vazeb a souvislostí v získaných údajích. Historické údaje mohou být použity také k vypracování návrhu analytických technik a programů určených pro analýzy on-line v agregátoru nebo k vývoji a ověřování prototypů algoritmů pro okrajové uzly.
 
Prostředí Matlab a Simulink lze snadno využít k analýze historických dat i k návrhu a zavedení veškerých algoritmů.
 

Zpracování údajů v okrajových uzlech

Podpora nabízená v prostředí Simulink zahrnuje mj. tvorbu algoritmů pro hardwarové platformy využívané v rámci inteligentních okrajových uzlů v konceptu IoT. V prostředí Simulink lze sestavit algoritmus určený ke zpracování snímaných údajů a poté jej zavést do vestavného hardwaru při použití automatického generování kódu v jazycích C nebo HDL. Zpracováním údajů v okrajových uzlech je možné významně zmenšit tok dat z okrajového uzlu do agregátoru údajů v cloudu.
 
K tvorbě prototypů okrajových uzlů lze využít levné hardwarové platformy, např. Arduino nebo Raspberry Pi. Nástroj Simulink umožňuje vytvořené modely uzlů přímo zavést na tyto platformy a nabízí i speciální programové bloky pracující s jejich periferiemi. K dispozici je i blok k zasílání údajů do agregátoru dat ThingSpeak.
 

Agregace a přístup k údajům

Při vývoji a ověřování chodu úlohy v prostředí IoT je možné využít propojení prostředí Matlab s otevřenou, zdarma přístupnou agregační službou ThingSpeak, která přijímá a ukládá údaje z připojených uživatelských zařízení. Jakmile jsou údaje na platformě ThingSpeak uloženy, lze je analyzovat on-line při použití zabudovaného jádra programu Matlab (Matlab engine). Uživatel může na platformě ThingSpeak spustit vlastní výpočetní skript napsaný v jazyce Matlab. Skripty je možné spouštět jednorázově nebo nastavit plánovač pro opakované spouštění (analýza dat on-line). Výsledné údaje mohou být ukládány na platformě ThingSpeak do nového kanálu. Data uložená na platformě ThingSpeak mohou být snadno stažena do prostředí Matlab nainstalovaného na počítači uživatele a analyzována off-line.
 
Jsou-li údaje úlohy v prostředí IoT uloženy v databázi, v privátním cloudu nebo v jiném agregátoru dat s webovým rozhraním, lze využít prostředky k připojení k relačním databázím (ODBC, JDBC) nebo příkazy pro komunikaci s webovými službami obsažené v prostředí Matlab.
 

Analýza údajů a tvorba prediktivních modelů

Účelem analýz spouštěných v rámci agregace dat je průběžně získávat z údajů relevantní informace. Přes rostoucí množství údajů však může být obtížné tyto informace získat – vazby, které mezi údaji panují, jsou mnohdy skryté a odhalit je může být i velmi pracné.
 
Prvním krokem k pochopení vztahů mezi údaji bývá analýza historických údajů. Může jít o základní statistické zpracování určené k hledání anomálií, očištění dat od chybných měření nebo filtraci šumu. Jakmile jsou údaje zřetelnější, přijdou na řadu úlohy jako např. klasifikace událostí nebo predikce budoucích hodnot sledovaných veličin. K tomu lze využít techniky strojového učení, kdy algoritmy strojového učení využívají výpočetní metody k „učení se“ přímo z údajů, aniž potřebují předem dané rovnice popisující jejich chování.
 
Prostředí Matlab nabízí funkce jak z oblasti zpracování signálu (filtrace, spektrální analýza), tak z oblasti statistiky a strojového učení (klasifikace, regrese, shluková analýza) a lze je využít i pro úlohy z oblasti strojového vidění a další úlohy, které se ve světě IoT často objevují. Jestliže úloha vyžaduje práci s rozsáhlými údaji, je možné s výhodou využít prostředky připravené v prostředí Matlab pro tyto případy (paralelní výpočty, výpočty s GPU, integrace s prostředím Hadoop).
 

Analýza dopravy s využitím konceptu IoT

Příkladem úlohy založené na konceptu IoT a řešené s použitím nástrojů Matlab&Simulink je použití platforem Raspberry Pi 2 a ThingSpeak k počítání automobilů projíždějících po rychlostní komunikaci (obr. 2).
 
Okrajový uzel byl tvořen jednodeskovým počítačem Raspberry Pi opatřeným webovou kamerou a bezdrátově připojeným k internetu. Protože přenos videozáznamu z okrajového uzlu do agregátoru by znamenal přílišný tok dat, byl základní detekční algoritmus realizován přímo v jednotce Raspberry Pi.
 
Algoritmus detekce průjezdů vozidel byl vytvořen v podobě blokového schématu v prostředí Simulink (na obr. 2 uprostřed dole). Jeho vstupem jsou obrazová data z webové kamery a výstupem je počet průjezdů. Algoritmus zahrnuje bloky a funkce Video Capture, Foreground Detector, Median Filter, Blob Analysis a ThingSpeak Write, které jsou v prostředí Simulink k dispozici. Informace o počtu průjezdů je zasílána do portálu ThingSpeak každých 15 s. Samotné zavedení algoritmu z prostředí Simulink do jednotky Raspberry Pi bylo jen otázkou stisknutí příslušného tlačítka – celý proces překladu a zavedení algoritmu je zcela automatický.
 
Údaje shromážděné v portálu ThingSpeak byly posléze staženy do prostředí Matlab k analýze vytížení dálniční komunikace v závislosti na denní době a jiných faktorech. Analýza zahrnovala sloučení údajů nasbíraných ve čtvrtminutových intervalech a výpočet akumulovaných součtů přes různá časová období, hledání špiček, vykreslení histogramů a další úlohy.
 
Část analytického programu, výpočet celkového počtu průjezdů automobilů za jeden den, byla zavedena přímo v portálu ThingSpeak. Tato analýza údajů on-line využívá vestavěný Matlab engine. Program byl automaticky spouštěn jedenkrát za den a výsledky byly ukládány na platformě ThingSpeak do samostatného kanálu.
Jaroslav Jirkovský, Humusoft s. r. o. 
Obr. 1. Uspořádání úlohy podle konceptu IoT
Obr. 2. Matlab&Simulink: realizace úlohy sledování průjezdů automobilů s využitím konceptu IoT (platformy Raspberry Pi 2, ThingSpeak)