• No results found

Big data visualisering

N/A
N/A
Protected

Academic year: 2021

Share "Big data visualisering"

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

Datateknik C, Examensarbete, 15 högskolepoäng

”BIG DATA” VISUALISERING

Carolin Jaber

Dataingenjörsprogrammet, 180 högskolepoäng Örebro vårterminen 2019

Examinator: Federico Pecora

BIG DATA VISUALIZATION

       

Örebro universitet Örebro University 

Institutionen för  School of Science and Technology  naturvetenskap och teknik   SE-701 82 Örebro, Sweden 

701 82 Örebro  

   

(2)

Sammanfattning

Visualisering av data i grafiska presentationer är viktigt inom många olika områden för att enklare förstå information och relationer av insamlad data. Mängden data växer snabbt till stora skalor som är svåra att hantera och bidrar till nya utmaningar vid visualisering av data i grafiska presentationer. System är beroende av data visualisering för att upptäcka defekter och fel av produktion. Genom att förbättra prestandan av tidsseriedata visualisering ökar det möjligheten att upptäcka fel och defekter av produktion.

Rapporten tar upp metoder för visualisering av tidsseriedata med snabb prestanda och diskuterar hur Big data av multivaribler kan visualiseras med PCA.

Abstract

Presenting data in graphical forms is important in many different industries in order to

understand information asset from data that is being collected. The amount of data is growing fast and brings new challenges for visualizing the data in graphical representations. Systems are dependent on data visualization for detecting defects and faults of productions. By improved performance of time series data visualization increases the ability of detecting faults and defects of productions.

This report takes up a methods for visualizing time series data with high velocity in to account and discusses how big data of multivariable can be visualized with PCA.

(3)

Förord

Jag vill tacka HiQ för möjligheten att jobba med utveckling av produktionstestsystemet

(4)

Innehållsförteckning

1 Inledning 5 1.1 Bakgrund . . . 5 1.1.1 HiQ . . . 5 1.1.2 HiMacs . . . 5 1.1.3 HiVision . . . 6 1.2 Projekt . . . 7 1.2.1 Prototyp . . . 7 1.2.2 Utredning . . . 7 1.3 Syfte . . . 8 1.4 Krav . . . 8

2 Visualisering av stora mängder data 9 2.1 Datavisualisering . . . 9

2.2 Definition av stor mängd data . . . 9

2.3 Metoder och verktyg för datavisualisering av stora mängder . . . 9

2.3.1 Principal Component Analysis . . . 10

2.3.1.1 Förbehandling av data . . . 10 2.3.1.1.1 Centrera . . . 10 2.3.1.1.2 Skalning . . . 11 2.3.1.2 Hitta Komponenter . . . 11 3 Systemarkitektur 15 3.1 MVVM . . . 15

4 Metoder och verktyg 16 4.1 Programmeringsspråk och programbibliotek . . . 16

4.1.1 C# Programmering. . . 16

4.1.2 LiveCharts . . . 16

4.1.3 Prism Library . . . 16

4.2 Verktyg . . . 16

4.2.1 Windows 8 . . . 16

4.2.2 Windows Presentation Foundation . . . 16

4.2.3 Microsoft Visual Studio 2017 . . . 16

5 Genomförande 17 5.1 Förberedelser. . . 17

5.1.1 Valkriterier . . . 17

5.1.2 Ramverk . . . 18

5.2 Implementation av HiVision i WPF . . . 21

5.3 Förbättra prestandan av HiVision . . . 22

(5)

6 Resultat 23

6.1 Prototyp HiVision. . . 23 6.2 Fördjupning - Visualisera data av multi variabler . . . 25

7 Diskussion 26

7.1 Uppfyllande av projektets krav . . . 26 7.2 Sociala och ekonomiska implikationer . . . 26 7.3 Projektets utvecklingspotential . . . 27

8 Reflektion kring eget lärande 28

(6)

1 Inledning

Detta kapitel innehåller bakgrundsinformation och kontext till projektets alla delar, samt en beskrivning av projektets syfte och kravspecifikation.

1.1

Bakgrund

1.1.1

HiQ

HiQ arbetar med leveranser av systemutveckling av programvaror och tjänster. HiQ som är i det här projektet agerar som uppdragsgivare. De har arbetat med utveckling av områden som kompilatorer, testprogramvara, utvecklingsplattform såsom molntjänst, applikationsserver, utvecklingsramverk och många fler områden [1] sedan år 1995, det år som företaget grundades [2].

HiQ har under flera år varit verksamma inom produktionstestsystem av Volvo motorer som används internationellt, exempelvis till kollektivtrafik, lastbilar och anläggningsmaskiner. Denna mät- och styrsystem benämns HiMacs och används för att upptäcka defekter av motorer som har en omfattande betydelse för utvecklingen inom tillverkningsindustrin.

1.1.2

HiMacs

HiMacs är ett mät- och styrsystem av motorer. Typiskt körs detta produktionstestsystem genom att placera en motor för test på en riggdator. En riggdator fungerar som ett provrum för att testa motorer. Vid simulerad testkörning av motorer skickas flera olika typer av mätdata i realtid genom ett fältbussystem till separata kanaler. Det data som produceras vid simuleringen kan exempelvis komma från temperatur eller tryckgivare men även digitala signaler. Mätfrekvensen för HiMacs är 1000 mätningar/sekund. Mycket av det inhämtade data kastas bort på grund av att C# inte stödjer en uppdateringsfrekvens snabbare än 1 kHz. Det fältbussystem som används är TwinCat utvecklat av BeckHoffs Automation. Det är via TwinCat system manager de olika I/O information från kopplat fältbussystem är hanterade [3]. TwinCats komponenter som är uppbyggda av varierande terminaler och terminalkopplare är sammankopplade av EtherCat. Det är med hjälp av EtherCat, HiMacs kan kommunicera med de övriga delarna av systemet.

(7)

Figur 1: Översikt över HiMacs systemkomponenter och uppbyggnad

HiMacs är uppbyggt av användargränssnittet HiVision, Alarms och HiSequence som

kommunicerar via HiCore som är kärnan av produktiontestsytemet HiMacs. HiVision är det delområdet detta arbetet omfattar.

1.1.3

HiVision

HiVision är programmet för användargränssnitt i produktiontestsytemet HiMacs. Programmet visualiserar grafer av nuvarande värde av indata i realtid genom övervakning av kanaler. Det paket som används för att visualisera nuvärde av data kommer från National Instruments med Windows Forms ramverk för att visualisera grafer. National Instruments är ett begränsat licens baserat paket. Detta gör att produktionstestsystemet blir begränsat till ett fåtal användare som kan jobba med produktionstestsystemet då det kräver licens från National Instruments.

   

(8)

1.2

Projekt

1.2.1

Prototyp

Uppdragsgivarens tidigare paket från National Instruments som används i

användargränssnittet HiVision för att visualisera grafer av nuvarande värde av indata ger god noggrannhet och hög prestanda för visualisering av grafer med mycket data, ​men på grund av begränsningen i C# kastas mycket av det insamlade datat bort och endast ett fåtal data

visualiseras i HiVision.

Figur 2: Linjeserie med 30 datapunkter med färgkod blå för data som visualiseras av HiVision respektive data i svart färg som kastas bort vid visualiseringen.

Eftersom National Instruments är ett begränsat paket som kräver licens medför detta till att det blir svårt för flera användare att jobba med produktiontestsystemet, då det är ett closed source licens. ​Closed source även benämnt proprietary är ett begränsat licens som är  distribuerat under villkor för användare med begränsning för modifikation, kopiering och  reproduktion av källkod [23]

Uppdraget i detta projekt är att ersätta detta paket med ett alternativ som gör att man inte längre är bunden till ett licens som är begränsat för att enklare jobba utan begränsningar, samt ge en god lösning för att förbättra grafens prestanda genom att minska datapunkter som ignoreras vid visualisering av grafen. Detta skulle innebära att fler utvecklare kan jobba med samma system, samt en förbättring av grafens noggrannhet för att enklare upptäcka defekta motorer. Projektresultatet ska användas som ett bättre alternativ av HiVision.

1.2.2

Utredning

Projektet har även en teoretisk del där tillämpning av HiVision utreds. Följande punkter ska  utredas  

 

● Undersöka vilket ramverk ska användas Windows Forms eller Windows  Presentation Foundation.  

(9)

Följande punkt ska utredas inom det fördjupade området    

● Undersöka hur data av multi responsvariabler kan visualiseras 

1.3

Syfte

Syftet med projektet är att uppdragsgivaren vill ta fram ett bättre alternativ av HiVision. En lösning som är tillgänglig för flera utvecklare av systemet, samt en lösning för en mer noggrann och bättre prestanda av HiQs program HiVision då de tillgängliga lösningarna inte uppfyller deras önskemål och behov i prestandan av programmet HiVision.

1.4

Krav

De krav som ställs på detta arbete var enligt uppdragsgivare:

● Ta fram användargränssnittet HiVision i ramverket Windows Presentation Foundation

● Visualisera mätvärden som presenteras med en grafkontroll ● Ta fram egna eller fria varianter av kontroller

(10)

2 Visualisering av Big Data

I detta kapitel beskrivs den teoretiska bakgrundsinformation inom det fördjupade området i detta arbete.

2.1

Datavisualisering

Visualisering av data i grafiska presentationer används inom många områden för att enklare förstå information och relationer av data [4]. Datavisualisering är data som presenteras i form av grafiska bilder, detta medför till att människan kan uppfatta information och mönster enklare av data med hjälp av datavisualisering. [5]

2.2

Definition av Big Data

Visualisering av data är ett relativt stort och studerat område som förekommer inom många områden såsom i medicin, ekonomi och informationsteknik. Visualisering av stor mängd data däremot innebär en mer komplex hantering vid datavisualisering. Hanteringen av data av stor mängd skiljer sig från när man hanterar färre mängd data i jämförelse med stor mängd. Definitionen av stor mängd data enligt De Mauro, Greco och Grimaldi författarna av artikeln ‘A formal definition of Big Data based on its essential features’ kan definieras av “Big Data is the information asset characterised by such a High volume, Velocity and Variety to require specific Technology and Analytical Methods for transformation into value”. Big data är data som man måste ta till med speciella verktyg och metoder för att visualisera [LHJKL].

‘Big Data’ varierar därför i egenskap och man har olika definitioner av vad big data kan vara. Big data kan bland annat vara [LHJKL]

● data av stora mängder

● komplex eller ostrukturerad data

● data som är för stort för att få plats i en skärm

● hög volym, mängd, prestanda, “veracity” eller en kombination av dessa

2.3

Metoder och verktyg för datavisualisering av stora mängder

Det finns en mängd olika metoder och verktyg för visualisering av data. Vilka metoder som används beror på vilken data man hanterar, därför är det viktigt att känna till vilken data man hanterar. Varje metod och verktyg är anpassade bäst för vissa typer av data. Eftersom ‘Big Data’ varierar i volym, prestanda, “veracity” och andra faktorer finns det flera olika metoder och verktyg som kan användas för att visualisera “Big Data” [7]. Principal Component Analysis är ett av dem många olika metoder och verktyg som finns som kommer att tas upp i detta arbete för att visualisera large data av stora skalor. Denna teknik används vid big data av multivariabler i syfte om att reducera antalet dimensioner [8].

(11)

2.3.1

Principal Component Analysis

PCA är en av dem äldsta teknikerna som använts genom åren, dessutom bland den mest använda tekniken för data av multivariabler. PCA står för Principal Component Analysis och fungerar som en analys av data med multiresponsvariabler. En modellanalys görs av en datatabell med värden för flertalet dimensioner och uttrycks i form av nya ortogonal

information som benämns “Principal Components”, d.v.s komponenter som är vinkelräta till varandra. “Principal components” är information överförda av en datatabell av

multiresponsvariabler. Observationer av mönster överförda av principal components presenteras i form av punkter i en koordinatisk graf [8].

Tabellen kan behöva förbehandlas först för att kunna bygga en modell och överföra viktig information från tabellen. Storleken av data komprimeras genom att endast behålla den överförda viktiga informationen i syfte om att förenkla storleken av data innan en analys kan genomföras. PCA skapar nya principal components som är linjära kombinationer erhållna av ursprungs variablerna för att kunna genomföra en modellanalys. Dessa beräknas så att varje komponent är ortogonal (90 grader) mot den föregående beräknade komponent och har den största möjliga ”inertia” av datatabellen som är den största möjliga variansen av

datapunkterna i tabellen. Den första ”principal component” beräknas så att den har största möjliga varians och omfattar den största delen av “inertia” av data tabellen [8].

Målet med PCA är att [8]

1. Överföra viktig information erhållet av datatabellen.

2. Reducera storleken av data genom att behålla endast den viktiga informationen överförda av datatabellen.

3. Förenkla beskrivningen av det reducerade datat. 4. Analysera strukturen.

2.3.1.1

Förbehandling av data

Innan en analys kan genomföras för att kunna ta fram viktig information kan datatabellen behöva att förbehandlas. I de flesta fall kan datatabellen behöva centrera dess data,

normalisera värden till samma skala och även transformera extrema värden. Dessa är viktiga för att kunna ta fram en optimal modellanalys med PCA [9].

2.3.1.1.1 Centrera

Centrera koordinatsystemet till en ny referenspunkt kan göras med mean centering. Koordinaterna centreras i koordinatsystemet för att man ska kunna ta fram riktning till komponenter genom medelvärdet [9].

Mean centering beräknas

xk,center​ ​= ​x​k,raw - medelvärde (​x​k,raw) ekv. 1

Varav ​X ​är en förbehandlad 3-dimensionell matris med observationer [​x​1,​x​2,​x​3] och ​X​raw är den obehandlade matrisen av ​X​ för ​k​:de kolumn.

(12)

genom origo som visualiseras av figur 3.

Källa:https://learnche.org/pid/latent-variable-modelling/principal-component-analysis/preprocessing-th e-data-before-building-a-model#lvm-preprocessing

Figur 3. Tredimensionellt koordinatsystem som centreras med mean centering. De tre variablerna flyttas tillsammans mot origo.

2.3.1.1.2 Skalning

Skalning kan vara nödvändigt att applicera innan en analys genomförs för att varje kolumn av data ska få möjlighet att bidra till analysmodellen. Genom att dividera varje kolumn av datatabellen med dess standardavvikelse kan man få bort oönskad variation och varje data kommer att ha en variation av exakt 1.0 [9].

Skalning kan kombineras med mean centering som beräknas av ekv. 2 [9]

​ekv. 2

2.3.1.2

Hitta komponenter

Första steget i PCA är att hitta principalkomponenter. PCA reducerar data genom en

geometrisk projection. Den första komponenten bestäms genom att hitta den största möjliga inertia som är den största variansen av datapunkterna i tabellen. Genom att minimera den totala distansen mellan data och dess projektion går det att hitta den största möjliga inertia av datatabellen som är principal components. Vidare komponenter ska vara ortogonala mot de föregående beräknade komponent och ha den största möjliga “inertia” av datatabellen [10]. Det minsta antalet av observationer och egenskaper blir det maximala antalet av principal components. Korrelationen mellan data och dess projicerad data maximeras vid processen för bestämmelse av PC komponenter. En multipel linjär regression utförs på den projicerade data mot varje variabel av originaldata [10].

(13)

Källa: ​https://www.nature.com/articles/nmeth.4346

Figur 4. a) illustrerar projection av en 2D punkt och linje för att beräkna distansen mellan data och dess projection i syfte om minimera distansen. b) Projektion av data från ​a​ för varje linje. De projicerade punkterna varierar i σ2c) linje u från ​a​ är den maximerade projektionen av PC1. PC2 ärσ2

vinkelrät till PC1. y~x och x~y är linjär regression av y och x.

Källa: ​https://www.nature.com/articles/nmeth.4346

Figur 5 a) Illustrerar profil för nio gener från A-I med sex observationer av a-f med färgkod för form likheter. Illustrerar även en graf av varje observation (a-f) variation b) Illustrerar PC från 1-6 för varje

profil i ​a​. Tydliga trender är synliga i PC1 och PC2 med endast en minimal variation i resterande komponenter. c) Profilerna är transformerade och uttrycka i σ2och “PC scores”. d) Med nyttjande av

PC1, PC2 och PC3 bildas en profil. e) en 2 dimensionell graf med koordinater för varje profils PC score av de första två principal components.

Vid multipel regression med PC1 har PC2 maximalt r2i projektion. De

principalkomponenter är en linjärkombination av datans ursprungliga variabler. I figur 4c i det 2-dimensionella exemplet är PC1 = x / √2 + y / √2. Dessa är koefficienter som lagras i en PCA-laddningsmatris som roterar datat längs axeln med största möjliga varians. PCA skiljer sig från linjära regression. PCA minimerar den vinkelräta distansen mellan en datapunkt och det principalkomponent. Den linjära regressionen minimerar distansen mellan response

(14)

variabel och dess förutsedda värde [10].

PCA är illustrerad med data av gener som simuleras för gener av nio profiler. Generna faller in i 3 olika mönster för sex olika observationer (figur 5a). Då variansen i de olika

observationerna är någorlunda lika i (figur 5a) behövs samtliga sex dimensioner för att uttrycka den viktiga informationen. PCA används för att se om den kan fånga mönstret med ett mindre antal kombinationer av observationer. PC1-PC6 blir de nya axlarna för att hitta komponenter (figur 5b). Profilerna transformeras så att de uttrycks i linjära kombinationer och varje profil är en uppsättning koordinater på axlarna med beräknad varians. PC1 omfattar den största variansen med 52,6% inertia (figur 5c) och PC2 den nästa största möjliga varians med 47,0% av inertia. r2av regressionen är den procentuella variationen av samtlig data. Den procentuella variationen förklaras av komponenterna PC1-PC6 [10].

Skillnaden i r2 när ytterligare PC komponenter kombineras är den varians som PC

komponent motsvarar. Eftersom PC1-PC2 motsvarar 99,6% av data tabellens inertia behövs inte alla PC komponenter användas då de återstående komponenter bidrar endast till 0,4% varians. Profilerna kan återskapas med endast PC1 och PC2 utan att förlora mycket information som visualiseras av figur 5d. Skillnaden i kvadratiskt medelvärde av den ursprungliga profil A och dess 1-dimensionella, 2-dimensionella och 3-dimensionella avbildning är endast 0.29, 0.03 och 0.01. Datat kan därför sammanfattas i ett punktdiagram med ett färre antal variabler (figur 5e) [10].

Resultatet av en PCA plot visar potentiell klustring av datat och används ofta för att hitta gruppering av datamängder samt för att hitta avvikande värden som ligger på ytterområden. Förbehandling av databellen har en inverkan på resultatet i en PCA plot och är därför viktigt i processen för PCA [10].

Källa: https://www.nature.com/articles/nmeth.4346

Figur 6: illustrerar dataklustring med PCA. ​a ​en hierarkisk graf av 26 profiler med 15 observationer. ​b Kofficienter för PC komponenter. ​c ​Resultat för PCA av data med varierande skala i observationer. ​d

resultat för data med varierande skala i variabler.

Detta illustreras i figur 6 med ett exempel av 26 gener med 15 observationer. I ​6a ​presenteras generna vertikalt och observationerna horisontellt i en hierarkisk graf. Exemplet återskapas i

(15)

detta​ ​genom att reducera antalet variabler. ​6b​ som visar koefficienter för profilerna så är det svårt att skilja mellan grupp D och E, medan i ​6c ​skiljer sig i resultat då de två första

observationer är avskalade med 300 respektive 200 för varje profil av gener så att de är dominanta. Detta resulterar i att den stora skillnaden i variansen beror på att skalorna är olika. Även en dataset med en del av variabler som har högre magnitud kommer PCA att ignorera de variabler som har lägre magnitud och endast skapa komponenter utifrån de variabler med hög magnitud, detta medför även till påverkan av PCA resultatet med stor varians av

(16)

3 Systemarkitektur

3.1

MVVM

Programmet HiVision använder MVVM arkitektur. MVVM arkitektur är ett sätt att

organisera kod i ett Model-View-ViewModel mönster. Koden organiseras och struktureras i [11]

● Model ● ViewModel ● View

för att skilja på gränssnitt, affärslogik och data [12]. Model sköter ingen logik den håller endast data. ViewModel är länken mellan View och Model. I View organiseras data som är formaterat och delegerar allt till Model [11].

Figur 7. MVVM arkitektur, https://www.tutorialspoint.com/mvvm/mvvm_introduction.htm

Med logik i Code-behind och i XAML kan orsaka att problem uppstår då applikationen växer. Med MVVM struktur används code-behind och XAML till ett minimum och istället används data binding för att binda View till Model vid arbete av objekt för

(17)

4 Metoder och verktyg

Detta kapitel beskriver vilka resurser som använts i projektet.  

4.1

Programmeringsspråk och programbibliotek

4.1.1

C# Programmering

Språket som använts för att utveckla projektet är med C# programmeringsspråk. C# är ett objektorienterat språk som utvecklats av Microsoft framställt av Anders Hjellberg och hans team .NET initiative [13]. C# härstammar från släktskapet C programmering. Språket C# inkluderar stöd för komponent orienterat programmering såsom paket och funktioner som beskriver systemet med egenskaper, metoder och events [14].

4.1.2

LiveCharts

LiveCharts är ett opensource programbibliotek med stöd av Windows Presentation Foundation. Biblioteket följer MV arkitektur och är flexibel att använda med MVVM arkitektur utan att förlora det starka skriva programmeringsspråket [15]. Ett paket från LiveCharts används i det utvecklade projektet för att visualisera data i ett linjediagram.

4.1.3

Prism Library

Prism library används i projektet för HiVision för att skapa loosely-coupled applikationer.  Prism bidrar till en enklare och strukturerad implementering då biblioteket erbjuder en  kollektion av designmönster och andra kommandon som förenklar implementeringen [16].    

4.2

Verktyg

4.2.1

Windows 8

Windows 8.1 är ett standard regular-purpose operativsystem utvecklat av Microsoft [17].

4.2.2

Windows Presentation Foundation

Windows presentation foundation är ett .NET ramverk utvecklat av Microsoft. WPF erbjuder en modell av programmering för utveckling av klient applikationer i windows operativsystem och egenskaper för utveckling av applikationer som Extensible Application Markup

Language (XAML), data binding och WPF kontroller [18].

WPF är ”resolution-independent” och använder vektor baserad rendering engine som

utnyttjar en modern grafikhårdvara [18]. I det framställda prototypen har skapats i Windows Presentation Foundation ramverk.

4.2.3

Microsoft Visual Studio 2017

Visual studio är ett integrerat utvecklingsmiljö som använts vid framställning av prototypen [19].

(18)

5 Genomförande

5.1

Förberedelser

5.1.1

Valkriterier

Ett första moment för implementeringen av prototypen var förberedelser för val av

programbibliotek för visualisering av data. Val av programbibliotek utgick från de krav och önskemål som ställts av uppdragsgivaren. De krav/önskemål som ställs var

● Stöd för ramverk i Windows Presentation Foundation ● Licens Oberoende/Licens Tillgängligt

Tre valda programbibliotek jämfördes av ett urval av olika bibliotek, SciChart, LiveCharts  och SyncFusion.

5.1.1.1

SciChart

SciChart är ett programbibliotek för realtidsvisualisering av data med snabb prestanda. Biblioteket stöds för WPF kontroller, Android, IOS, Xamarin som används främst för data av stora datamängder. SciChart WPF graf kontroller kan visualisera till 20.000 datapunker. Licens för SciChart köps med en engångskostnad per utvecklare [20].

5.1.1.2

LiveCharts

LiveCharts är ett opensource programbibliotek som stöds av Windows Presentation Foundation. Biblioteket följer MV arkitektur och är flexibel att använda med MVVM arkitektur utan att förlora det starka skriva programmeringsspråket [15].

5.1.1.3

SyncFusion

Syncfusion är ett bibliotek som stöds av flera ramverk bland annat WPF, WinForms och  UWP. Biblioteket stödjer MVVM arkitektur. Licens för SyncFusion köps med en  engångskostnad för att få tillgång till dess komponenter och olika kontroller [21].   

 

Tabell 1: Sammanställning av alternativ för HiVision 

  Stöd för WPF  Licens Oberoende/Licens  tillgänglig 

SciChart  Ja  Nej 

LiveCharts  Ja  Ja 

(19)

LiveCharts programbibliotek uppfyller de två krav som ställts av uppdragsgivaren därav valdes LiveCharts programbibliotek för implementering av HiVision i Windows Presentation Foundation.

5.1.2

Ramverk

Även informationssök om de ramverk som skulle utredas är ett andra moment i förberedelser.

5.1.2.1

Windows Forms

Windows forms är ett ramverk för utveckling av windows forms applikationer med en  variation utbud av olika kontroller för att skapa applikationer utifrån egna önskemål och  behov. Händelser och kod av kontroller finns tillgängligt att hanteras i Visual studio  utvecklingsmiljö där varje kontroll är en instans av en klass. Inställningar som underhåll,  skapande och lagring av information är även möjligt att skapa i windows forms applikationer  med windows forms ramverk. Återanvändning av kod och “abstract” är med hjälp av arv  möjligt då windows forms erbjuder arv för design av applikation. Detta gör det mer flexibelt  för utökning av windows forms applikationer. Windows forms fönster har en begränsad  storlek och bör därför vara kompakt med kontroller. Fönster i windows forms applikationer  kan delas upp i assemblyn för att att separera kontroller till separata ”chunks” för att ge  möjlighet för valbarhet för leverans av kontroller. Flexibilitet för underhåll och felsökning av  applikation är enkelt med design av applikation [26].

5.1.2.2

Windows Presentation Foundation

Windows presentation foundation är ett .NET ramverk utvecklat av Microsoft. WPF erbjuder en modell av programmering för utveckling av klient applikationer i windows operativsystem och egenskaper för utveckling av applikationer som Extensible Application Markup

Language (XAML), data binding och WPF kontroller [18]. UI element i WPF är designade i XAML medans beteende och events implementeras med ett programmeringsspråk. Detta gör det enklare för att jobba parallellt med design och beteende av applikationen [26].

WPF är ”resolution-independent” och använder vektor baserad “rendering engine” som nyttjar en modern grafikhårdvara [18].

5.1.2.2.1 Graf Bibliotek 5.1.2.2.1.1 Open source

Open Source innebär publik källkod som är tillgänglig för modifieringar och utformas efter  behov och begär utan villkor med begränsningar. Open source är tillgängligt för allmänheten  och förenklar användandet av källkoden. Användandet av open source kan sänka totala  kostnader och bidra till en mer flexibel användning då befintliga lösningar redan existerar för  grundliga problem som är tillgängliga för allmänheten [22]. 

 

Open source förenklar arbetet för användare då tidigare lösningar för grundliga problem  redan existerar. All typ av innehållshantering, dokumentation av källkod finns tillgängliga för  utvecklare. Detta underlättar för fler utvecklare att arbeta med samma system då 

dokumentationer och innehållshantering finns och tid för vidare utveckling av källkoden kan  prioriteras [22]. 

(20)

Open source innebär mer än bara frihet att använda publicerad kod utan begränsning, det kan  även innebära sänkta kostnader av totala kostnader för ägandet. Det är vanligt att licens för  open source inte har någon kostnad eller så kan den ha en avgift på en relativt låg kostnad och  är ett billigare alternativ jämfört med en closed source. Valbara tillägg som implementation,  underhållning och support är tillägg med avgifter som tillkommer med open source [22].  

5.1.2.2.2 Closed source

Closed source är privat källkod och är begränsad under villkor för användare med 

begränsning för modifikation, kopiering och reproduktion av källkod [23]. Oftast tillkommer  det en kostnad för closed source som inkluderar licens, implementation, underhåll och  support service. Kostnaden för closed source är oftast betydligt högre än för ett licens med  öppen källkod [24] 

 

Med closed source får man tillgång till bra service och support, samt säkerhet då det är  utvecklat i en kontrollerad miljö. God support och service är viktigt för användare med  mindre tekniskt kompetens. Då kan god service och support vara till god hjälp med  användardokumentation och personlig service för assistans [24].

5.1.2.2.3 Jämförelse av Closed source och open source

Tre graf bibliotek i WPF, varav en closed source och två bibliotek av open source 

sammanställdes och jämfördes för att bedöma skillnaderna mellan open source och closed  source projekt i WPF [25]. 

   

Tabell 2: Sammanställning av tre graf bibliotek med dess funktioner  Funktion  SciChart  OxyPlot  LiveCharts 

2D graf  Ja  Ja  Ja 

3D graf  Ja  Nej  Nej 

Aktiva och sök  forum 

Ja  Nej  Nej 

Snabb prestanda och  realtid 

Ja  Nej  Begränsad 

Zoom och Pan  Ja  Ja  Ja 

Teknisk support  Ja  Nej  Nej 

 

5.1.2.3

Jämförelse av WPF och Windows Forms

En sammanställning av WPF och Windows forms egenskaper ställdes upp och jämfördes mot varandra [26]

(21)

  Avancerad  Enkel  Utöka  Säkerhet  Design  Prestanda  Winforms  Windows  form är ett  gammal  koncept  för  utveckling  av  applikatio ner  Windows  forms är  enkelt för  användnin g   Utökning  av UI  element i  Windows  form är  mindre  utöknings bart  Mindre  säkerhet  Mindre  bra för  applikatio ner där  design är  ett krav  Prestanda  av lägre  rank  WPF  WPF är  avancerat  samt det  senaste  konceptet  för  utveckling  av  applikatio ner  WPF är ett  komplext  ramverk i  jämförelse  med  Windows  forms  WPF är  utöknings bart för UI  element   Har bra  egenskape r för  säkerhet  WPF är  främst  användbar t för  design av  UI  element i  applikatio ner  Prestanda  av snabb  rank   

Detta är några skillnader mellan ramverken [26]   

● Utökning av WPF applikation i senare skede av UI element är möjligt då WPF är ett  vektorbaserat UI ​som nyttjar en modern grafikhårdvara​. Eftersom Windows form inte  är vektorbaserat så tillåter det inte UI element att utökas utan att få problem med  utökning av applikationen.  

● Windows forms är mindre komplex vid utveckling av applikation i jämförelse med  WPF, då WPF kräver mer kunskap om hur kontroller fungerar. 

● Kapaciteten för applikationer i WPF är bättre då den använder ett tredje parti för  kontroller, medan i Windows forms implementeras kontroller för antalet krav som  behövs  

● Kunskap som krävs för att förstå helheten i en Windows forms application är  betydligt mindre då Windows forms har ett mindre kunskapskrav i jämförelse med  WPF ramverk. Eftersom Windows forms är mindre komplex är den dessutom mindre  tidskrävande. 

● WPF och Windows forms har bra support grupp av utvecklare, samt bibliotek för  hjälp med utveckling av applikationer för nybörjare. 

● Att utforma windows forms application utifrån egna önskemål och behov är inte fullt  anpassningsbar då den är begränsad, medan i WPF är det möjligt att anpassa 

applikationen utifrån det som önskas.  

● Windows forms kräver inte lika mycket tid för UI design jämfört med WPF.   

(22)

5.2

Implementation av HiVision i WPF

Implementation av HiVision delades upp i olika delkomponenter för att uppfylla ett komplett  användargränssnitt för HiVision. De delkomponenter som sattes upp är  

 

● Skapa en klass och ett fönster för en grafkontroll med hjälp av LiveCharts  programbibliotek, samt en combobox 

● Skriva om fönstret till prism application  ● Koppla kanaler till combobox 

● TextBlock för vald kanal 

● Visualisera data av vald kanal i realtid   

En första implementering gjordes med att skapa en klass “Graph” av typen user-control och  ett fönster med valda kontroller (graf och combobox) innan fönstret ombildas till en prism  application. Genom att titta på hur tidigare prism application implementerats i HiCore gick  detta utan några bekymmer. En modul till “Graph” skapades för att kunna registrera klassen i  en region. Utmaningen var hur multipla shells skapas då en tidigare shell redan är skapad i  applikationen för HiCore. En instans av vardera klass skapades och initieras av 

”IRegionManager” för att skapa region för respektive shell. Med ”ContentRegionControl”  går det att navigera regionmanager av respektive usercontrol till dess region.  

 

Då HiCore är “Connected” vid “OnConnectionStatusChanged” registreras kanalerna i  “ChannelBrowser”. För att kunna skicka de registrerade kanalerna som registreras i 

“ChannelBrowser” till HiVision skapades ett Pub-Sub event med en event aggregator för att  kommunicera mellan applikationerna.  

   

 

Figur 8: Illustrerar kommunikation mellan view modeller med event aggregator mönster

(23)

HiVision. Som test för försöket av kommunikation mellan de delvis självständiga 

applikationerna binds det samlade data kollektionen till en combox med databinding för att se  om överföringen gick rätt till. Vidare implementerades en TextBlock i View som ska 

visualisera namnet på den valda kanalen som valts bland kollektionen i comboboxen. 

Texblock kontrollen används för att testa huruvida en kanal kan väljas för att visualisera data  för den valda kanalen i vidare implementation. Select item implementerades genom att skapa  en get set metod “SelectedChannel” som tar det valda värdet från View genom databinding  och sätter propertyn “selectedChannel” i ViewModel till den valda kanalen. Med 

“INotifyPropertyChanged” notifieras klienten att värdet har ändrats när en ny kanal är vald  bland datainsamlingen av kanaler.  

 

För att visualisera data i grafen skapades en seriescollection i ViewModel som binds till  grafkontrollen i View genom databinding. Serie kollektionen innehåller en LineSeries som tar  datavärden av typen double då utdata från kanalerna är av double-precision floating-point  värden. En tråd skapades i “SelectedChannel” som startar en task som uppdaterar och lägger  till nuvärdet av den valda kanalen i seriekollektionen. Genom att använda ”Update” som  tidigare använts i HiCores ”ChannelBrowser” gick det att uppdatera nuvärde i grafen för  varje 100ms. Eftersom kollektionen växer för varje nuvärde som läggs till i linjeserien så  skapades en andra tråd som startar en task som tar bort nuvärde från serien i första position  för att inte serien ska bli för stor. 

5.3

Förbättra prestandan av HiVision

Ett försök för implementering av att förbättra prestandan av HiVision skapades en service som hanterar history data. I tidigare implementering visualiseras data i realtid och för att förbättra prestandan av HiVision visualiseras istället data som hanteras i historyservice. Data som i tidigare fall gått förlorat lagras i en “ConcurrentQueue<T>” i historyservice. Data visualiseras från kön i historyservice istället för i realtid som i tidigare implementering. Då data i historyservice kön inte visualiseras i realtid så lagras datavärden med en tidsstämpel då värdet inkom till kön. Varje kanal som registreras i historyservice lagras i en dictionary av typen “CocurrentDictionary<TKey,TValue>” med respektive “ConcurrentQueue<T>” som värde och kanal som nyckel för att kunna ta fram history för respektive kanal.

En instans av historyservice skapades i “Graph”-klassen som registrerar den valda kanalen i historyservice för att starta insamling av history data. Med “TryPeek” och “GetHistory” som returnerar första värdet i kön för den valda kanalen utan att radera det från kön. Likt den tidigare implementation för att visualisera data i grafen så skapas en ny linjeserie som ​lägger  till värdet av data från historyservice för den valda kanalen.

5.3.1

Test av försök

För att testa förbättringen av prototypen skapades två data kollektioner av typen

“ObservableCollection<T>” för att kontrollera mätvärden mot varandra. Mätvärden från första implementationen i avsnitt 5.2 som visualiseras i realtid lagras i en

“ObservableCollection” och mätvärden från “HistoryService” kön från avsnitt 5.3 lagras i en separat datasamling. För att kunna testa detta så har HiQ bidragit med en kanal för test med mätvärden som uppdateras periodvis.

(24)

6 Resultat

6.1

Prototyp HiVision

Det slutliga resultatet av prototypen av HiVision som presenteras i figurerna nedan.

Figur 9: Panel för HiVision

Prototypen av HiVision i WPF är uppbyggd i 3 delar. Varav den första delen är en

channelview browser där mätvärden tillsammans med dess kanaler presenteras samt ett fält för val av kanal som användaren kan välja bland de kopplade kanaler som ska visualiseras i grafen. Den sista delen av panelen är det område där mätvärden visualisera med hjälp av en graf.

(25)

Figur 10: Panel för HiVision vid vald kanal

Vid användandet av HiVision visualiseras mätvärden i grafen när en kanal är vald bland listan av kanaler i området längst till vänster om panelen. Resultatet av mätvärden för kontroll av förbättring av prestanda visas i figur 11. En kanal

Figur 11: Resultat på 23 mätvärden för vardera implementation. testSelectedCh är mätvärden för data i realtid som framställdes i avsnitt 5.2 och testTvVal mätvärden från “historyService” kön som

(26)

Resultatet för kanalen som användes för test av implementationerna i 5.2 samt 5.3 visar en förbättring av prestanda, då differensen mellan mätvärdena för implementationen i avsnitt 5.2 är cirka 1,4 mellan varje mätvärde och i avsnitt 5.3 som visualiserar värden från

“HistoryService” kön visar en differens på cirka 0,4 mellan varje mätpunkt.

6.2

Fördjupning - Visualisera data av multivariabler

 

HiVision visualiserar i nuläget tidsseriedata av en variabel. En utredning har genomförts inom ämnet om hur data av multi variabler kan visualiseras, specifikt fördjupat rörande användandet av PCA. Utredningen visade att PCA används oftast för att finna gruppering av datamängder för att känna igen mönster och används främst inom bildanalys för en mer analys än en visuell inspektion då en PCA plot transformerar mätvärden och visar endast variansen av datapunkterna.

Med anledning av att uppfölja trender och relationer av tidsseriedata för att upptäcka avvikande värden kommer användandet av PCA i tidsserie inte att visa detta och inte ge någon relativ information som är av intresse. Detta är om data av historisk tid är av intresse är användandet av PCA tillämpligt för att finna grupperingar för klusteranalys.

                                                       

(27)

7 Diskussion

 

7.1

Uppfyllande av projektets krav 

 

De krav som ställdes upp på projektet var :

● Ta fram användargränssnittet HiVision i ramverket Windows Presentation Foundation

● Visualisera mätvärden som representeras med graf ● Ta fram egna eller fria varianter av graf kontroller ● Licens oberoende/tillgängligt HiVision

Projektets krav förblev oförändrade under projektets gång. Kraven som sattes upp inför projektet har uppfyllts, en prototyp av HiVision har tagits fram i Windows Presentation Foundation ramverk som visualiserar mätvärden i en graf med LiveCharts programbibliotek. Prototypen som testade visar förbättrade värden av prestanda i figur 8 eftersom differensen blivit betydligt lägre mellan varje mätpunkt, men eftersom graf kontrollen från LiveCharts som används i prototypen är begränsad för data av snabb prestanda och HiMacs inhämtar 1000 mätningar/sekund mellan varje inhämtning av mätvärden så uppstod jitter vid visualisering av grafen ju fler mätvärden som visualiseras i grafen. Till följd av detta försämrades prestandan av grafen med tiden.

En utredning kring val av programbibliotek kunde ha gjorts utifrån flera aspekter för att dra en slutsats till ett mer tillämpligt programbibliotek för data av hög prestanda. Val av

programbibliotek togs med hänsyn till de krav som ställs av uppdragsgivaren. Kravet av framtagning av licens oberoende/tillgängligt prototyp av HiVision samt begränsning till ramverket WPF blev därför urvalet för programbibliotek begränsat till ett enstaka val av graf bibliotek med öppen källkod och som stöds av WPF.

Därför kan closed source graf kontroller vara ett tänkbart bättre alternativ för framtagning av HiVision för specifikt i ramverket Windows Presentation Foundation eftersom WPF saknar graf bibliotek av open source som stödjer data av snabb prestanda.

De mest omtalade skillnaderna mellan Windows Forms och WPF ramverk är ramverkets möjlighet att flexibilitet, prestanda, samt design. Eftersom prestanda för HiVision är en betydande faktor så är WPF mer tillämpligt bland de två ramverken då WPF har en snabbare prestanda i jämförelse med det tidigare ramverket som använts för HiVision.

7.2

Sociala och ekonomiska implikationer 

 

Prototypen som utvecklats av programmet HiVision underlättar för fler användare att jobba  med produktion testsystemet då programmet inte längre är bundet till ett paket som är  begränsat som kräver köp av licens för antalet användare. Alternativet av HiVision är  billigare och enklare att användas av fler användare. Resultatet av förbättrad prestanda av  grafen kan göra det enklare att upptäcka fel och defekter av motorer innan leverans till kund,  eftersom mindre mätvärden ignoreras vid visualisering av det insamlade datat. Fel av produkt  kan medföra till onödiga kostnader och tillföra förlust av tillit och förtroende hos kund. Tidig  upptäckt av defekter ökar möjligheten för återkommande nöjda kunder. 

(28)

 

Vid kontinuerligt växande data av grafen kan implikationer uppstå då jitter kan medföra till  paketförlust och missar viktig information. Detta kan påverka prototypens optimala lösning  till förbättrad prestanda. Det kan ge ett missvisande resultat av datat som ger implikationer i  huruvida fel och defekter går att upptäcka tidigt av motorer därför kan en vidareutveckling av  projektet behöva tas fram för att lösa bristerna med prototypen. 

7.3

Projektets utvecklingspotential 

 

För att använda projektet i produktion kan en potentiell vidareutveckling av projektet behöva  tas fram för hur grafen kan optimeras samt förbättras då implikationer med grafen uppstår vid  mycket datapunkter. En utredning om ett annat alternativ av grafkontroll för att implementera  HiVision kan vara en potentiell utredning för att få en mer optimal lösning för hur prestandan  av grafen kan förbättras. En utredning som inkluderar aspekter för graf kontrollens möjlighet  för visualisering av data med snabb prestanda. Samt förbättra designen av HiVision genom  att ​separera befintliga kontroller till en eller flera assemblers i syfte om att ge möjligheter för valbarhet vilka kontroller som levereras till respektive kunder i vidareutveckling av projektet. Ett annat tänkbart utvecklingspotential kan vara att ersätta C# med ett alternativ av

programmeringsspråk med frekvens snabbare än 1kHz då att C# inte stödjer en uppdateringsfrekvens snabbare än 1 kHz för att förbättra prestandan ytterligare.                                                    

(29)

       

8 Reflektion kring eget lärande

 

Projektet har innefattat implementation av nya metoder och tekniker såväl som metoder som  implementerats tidigare under utbildningen. Projektet har varit en bra övning för att lära sig  jobba med utveckling av programvara av ett större befintligt system, samt implementera  tidigare införskaffat kunskap från utbildningen. I utbildningen har vi sällan jobbat med redan  befintligt system, detta har varit en bra erfarenhet och övning för hur programmering ser ut i  arbetslivet. Utmaningen med det var analys av systemet för att bilda en uppfattning för hur  systemet är uppbyggt och hur det är sammankopplat. Eftersom MVVM arkitekturmönster  som systemet är uppbyggt av var tidigare obekant fick MVVM arkitekturmönster studeras för  att förstå helheten för hur systemet är uppbyggt. 

 

Kunskaper som har införskaffats från utbildningen har varit en god grund för genomförandet  av prototypen i realtids överföringen och utveckling med C# programmering som vi jobbat  med mycket under utbildningen.  

(30)

Referenser

 

[1] HiQ Mälardalen AB. ​Offentlig ramavtal​. Tillgängligt:  https://www.hiq.se/offentliga-ramavtal/  

 

[2] HiQ Mälardalen AB. ​Om Oss​. Tillgängligt: https://www.hiq.se/om-oss/    

[3] Beckhoff Automation. ​TwinCat System Manager​. Tillgängligt: 

https://infosys.beckhoff.com/english.php?content=../content/1033/tcsystemmanager/basics/tc sysmgr_common_intro.htm&id=  

 

[4] McGuire Kelly. The Analytic Hospitality Executive : Implementing Data Analytics in Hotels and Casinos. John Wiley & Sons, Incorporated, 2016-09-06

 

[5] Lidong Wang; Guanghui Wang; Cheryl Ann Alexander. ​Big Data and Visualization:

Methods, Challenges and Technology Progress. ​Science and Education Publishing, 2015

[6 ] De Mauro, Andrea, Marco Greco, and Michele Grimaldi. ​A formal definition of Big Data based on its essential features.​ Library Review (2016).

 

[7] M. Michalos; P. Tselenti; S. L. Nalmpantis. ​Visualization Techniques for Large Datasets​. J​ournal of Engineering Science and Technology Review 5 (2012) .

[8] Herv E. Abdi; Lynne J. ​Williams. Principal component anaslysis​. Wiley Interdisciplinary Computational Statistics 2 (4), 433-459 

 

[9] Kevin Dunn. learnche: ​Preprocessing the data before building a model. ​Tillgänglig:  https://learnche.org/pid/latent-variable-modelling/principal-component-analysis/preprocessin g-the-data-before-building-a-model#lvm-preprocessing  

[10] Lever, J., Krzywinski, M. & Altman, N. ​Principal component analysis​. Nat Methods 14, 641–642. 2017 doi:10.1038/nmeth.4346

 

[11] Tutorialspoint: ​MVVM-Introduction​. Tillgängligt: 

https://www.tutorialspoint.com/mvvm/mvvm_introduction.htm  

[12] Viktoria Färnefors. AIL inom informatik: ​MVVM : Model-view-viewmodel. ​Tillgängligt:  http://media.hv.se/kurser/informatik-ail/old-vri401-vru401/mvvm-model-view-viewmodel    

[13] GeeksForGeeks. ​C# Programming Language. ​Tillgängligt:  https://www.geeksforgeeks.org/csharp-programming-language/    

(31)

[14] Microsoft. Windows Documentation; 2018. ​A Tour of C# - C#. ​Tillgängligt:  https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/  

 

[15] Live Charts. Tillgängligt: https://lvcharts.net    

[16] Prism Library.​ Introduction to Prism​.Tillgängligt: https://prismlibrary.com/docs/    

[17] Microsoft, 2018. Tillgängligt: https://docs.microsoft.com/sv-se/    

[18] Microsoft. ​Introduction to WPF​. Tillgängligt: 

https://docs.microsoft.com/en-us/dotnet/framework/wpf/introduction-to-wpf    

[19] Microsoft, 2018. ​About Visuals Sudio.​ Tillgängligt: 

https://docs.microsoft.com/sv-se/visualstudio/get-started/visual-studio-ide?view=vs-201   

[20] SciChart. ​Why SciChart?​. Tillgängligt: 

https://www.scichart.com/why-scichart-high-performance-realtime-big-data-charts/    

[21] Syncfusion. Tillgängligt: https://www.syncfusion.com/    

[22] Redhat. ​What is open source. ​Tillgängligt: 

https://www.redhat.com/en/topics/open-source/what-is-open-source    

[23] Coredna. ​Comparing Open Source vs Closed Source Softwere. ​Tillgängligt:  https://www.coredna.com/blogs/comparing-open-closed-source-software    

[24] OpenSource. ​6 motivations for consuming or publishing open source software​.  Tillgängligt: https://opensource.com/life/15/12/why-open-source 

 

[25] SciChart. ​Comparison of SciChart vs. Open Source Chart controls. ​Tillgängligt: https://www.scichart.com/comparison-of-scichart-vs-open-source-chart-controls/  

[26] Educba. ​Winforms vs WPF​. Tillgängligt: https://www.educba.com/winforms-vs-wpf/

               

References

Related documents

Vi har däremot kommit till insikt att Big Data i hela dess omfattning inte nödvändigtvis behöver vara lämpligt för alla typer av organisationer då

Resultaten visar att ungdomarnas fl erspråkighet är dynamisk i det att de an- vänder sina språk i olika sociala sammanhang, med olika människor, om olika ämnen och för skilda

Om läraren B an- vände den tidigare tavlan till undervisning där ett stort utrymme gavs till kommunikationen mellan lärare och eleverna menar det sociokulturella

Informanterna berättar generellt att de har lite kunskap om sitt biologiska land och att det därför är svårt för dem att svara på hur ursprungskulturen har påverkat deras

Det är dock viktigt att i fallstudier generalisera det fallet som undersöks (Berndtsson mfl., 2008) och denna studie generaliserar därför företagets situation för att undersöka

Eftersom vi vill unders¨oka om m ¨ar mindre ¨an 1 skall vi g¨ora ett intervall som inneh˚aller de t¨ankbara sm˚a v¨ardena f¨or att kunna avg¨ora om det st¨orsta av de

Efter som subjunktion konkurrerade dock med konstruktioner där basala subjunktioner förstärkte den bisats- inledande funktionen, däribland efter som, som tidigare även

Andra typer av konstnärliga uttryck förekommer sporadiskt bland bilderna, och de kan även vara svåra att särskilja från exempelvis boktipsen när skolbibliotekarien inte tagit