...

Utveckling av analyssystem för dynamiska signaler Olle Kalered LiU-ITN-TEK-A-13/046--SE

by user

on
Category: Documents
3

views

Report

Comments

Transcript

Utveckling av analyssystem för dynamiska signaler Olle Kalered LiU-ITN-TEK-A-13/046--SE
LiU-ITN-TEK-A-13/046--SE
Utveckling av analyssystem för
dynamiska signaler
Olle Kalered
2013-09-24
Department of Science and Technology
Linköping University
SE- 6 0 1 7 4 No r r köping , Sw ed en
Institutionen för teknik och naturvetenskap
Linköpings universitet
6 0 1 7 4 No r r köping
LiU-ITN-TEK-A-13/046--SE
Utveckling av analyssystem för
dynamiska signaler
Examensarbete utfört i Elektroteknik
vid Tekniska högskolan vid
Linköpings universitet
Olle Kalered
Handledare Ole Pedersen
Examinator Magnus Karlsson
Norrköping 2013-09-24
Upphovsrätt
Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –
under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår.
Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner,
skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för
ickekommersiell forskning och för undervisning. Överföring av upphovsrätten
vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av
dokumentet kräver upphovsmannens medgivande. För att garantera äktheten,
säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ
art.
Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i
den omfattning som god sed kräver vid användning av dokumentet på ovan
beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan
form eller i sådant sammanhang som är kränkande för upphovsmannens litterära
eller konstnärliga anseende eller egenart.
För ytterligare information om Linköping University Electronic Press se
förlagets hemsida http://www.ep.liu.se/
Copyright
The publishers will keep this document online on the Internet - or its possible
replacement - for a considerable time from the date of publication barring
exceptional circumstances.
The online availability of the document implies a permanent permission for
anyone to read, to download, to print out single copies for your own use and to
use it unchanged for any non-commercial research and educational purpose.
Subsequent transfers of copyright cannot revoke this permission. All other uses
of the document are conditional on the consent of the copyright owner. The
publisher has taken technical and administrative measures to assure authenticity,
security and accessibility.
According to intellectual property law the author has the right to be
mentioned when his/her work is accessed as described above and to be protected
against infringement.
For additional information about the Linköping University Electronic Press
and its procedures for publication and for assurance of document integrity,
please refer to its WWW home page: http://www.ep.liu.se/
© Olle Kalered
Utveckling av analyssystem för dynamiska signaler
Examensarbete utfört i Elektroteknik
vid Tekniska högskolan vid Linköpings universitet
av
Olle Kalered
2013
Handledare:
Universitetsadjunkt Ole Pedersen
ITN ,
Linköpings universitet
Teknologie doktor Björn Karlsson
Siemens Industrial Turbomachinery AB
Examinator:
Universitetslektor Magnus Karlsson
ITN ,
Linköpings universitet
Norrköping, 10 september 2013
Sammanfattning
Den här rapporten presenterar ett examensarbete där ett mätdatainsamlingssystem för dynamiska signaler har skapats. Arbetet har utförts på Siemens Industrial Turbomachinery
AB.
Problemet är av sådan natur att tre olika typer av signaler analyseras. Dessa signaler är
dels dynamiska signaler med ett intressant frekvensinnehåll mellan 10 och 10 000 Hz, dels
likspänningssignaler och dels varvtalssignaler. Dessa signaler datasamplas och analyseras
med avseende på både tids- och frekvensinnehåll. Resultatet skickas vidare till en server
med en uppdateringsfrekvens kring 1 Hz.
Arbetet har inneburit att en kravanalys av systemet har tagits fram utifrån ett redan existerande system och från intervjuer med tänkta användare av systemet. Utifrån den skapade
kravprofilen valdes lämplig hårdvara och mjukvara implementerades med hjälp av LabVIEW.
Resultatet blev ett system som lever väl upp till förväntningarna.
iii
Innehåll
Notation
vii
1 Introduktion
1.1 Problemställning . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Metod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Avgränsning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Teori
2.1 Datasampling . . . . . . . . .
2.2 Σ∆-omvandling . . . . . . . .
2.3 Filter . . . . . . . . . . . . . .
2.3.1 Digitala Filter . . . . .
2.4 Fouriertransformation . . . . .
2.4.1 Fönsterfunktioner . . .
2.4.2 Fast Fourier Transform
2.4.3 Parsevals teorem . . .
2.5 LabVIEW . . . . . . . . . . .
1
1
2
2
.
.
.
.
.
.
.
.
.
3
3
3
5
6
6
7
10
11
11
3 Siemens befintliga system
3.1 Hårdvara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Funktionalitet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Användargränssnitt och inställningar . . . . . . . . . . . . . . . . . . .
13
13
13
14
4 Krav
4.1 Kravlista för systemet . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
5 Hårdvara
5.1 Vimba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Simon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Diskussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
23
23
6 Implementering
6.1 Översikt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
25
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
vi
INNEHÅLL
6.2
6.3
6.4
Detaljer . . . . . . . . . . .
6.2.1 Datainsamling . . .
6.2.2 Beräkningar . . . . .
6.2.3 Dataöverföring . . .
6.2.4 Visualisering av data
Användargränssnitt . . . . .
Diskussion . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
29
33
33
33
34
7 Resultat
37
8 Diskussion
8.1 Framtiden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
42
A Användarhandledning
A.1 Menyalternativ . . .
A.1.1 File . . . . .
A.1.2 Configuration
A.1.3 View . . . .
45
46
46
47
50
Litteraturförteckning
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
Notation
F ÖRKORTNINGAR
Förkortning
AC
AD
CPU
DC
DFT
DSP
ENBW
FFT
FIR
IIR
NI
OPC
PXI
REI
RMS
VI
VXI
Σ∆
Betydelse
Växelström
Analog till Digital
Processor
Likström
Diskret Fouriertransformation
Digital signalprocessor
Equivalent Noise Bandwidth
Fast Fourier Transform
Finite Impulse Response
Infinite Impulse Response
National Instruments
Object Linking and Embedding (OLE) for Process Control
PCI eXtensions for Instrumentation
Research and development, Engineering support, Instrumentation and measurement
Likriktat medelvärde
Virtual Instrument
VME eXtensions for Instrumentation
Sigma Delta
vii
1
Introduktion
Det här examensarbetet har utförts på Siemens Industrial Turbomachinery AB som är en
av de världsledande tillverkarna av gas- och ångturbiner. Arbetet har utförts på avdelningen för mätteknik och instrumentering, REI. Avdelningens ansvarar för framtagning och
genomförande av instrumenteringsunderlag, mätdatainsamlingsutrustning, mätdatainsamling, instrumentering och projektledning vid provningsuppdrag.
1.1 Problemställning
Siemens har ett befintligt system som mäter dynamiska signaler som används för att analysera vibrationerna på skovlarna och trycket i brännkamrarna på en gasturbin. Detta befintliga system börjar dock bli ålderstiget och behöver uppgraderas. Det här examensarbetet
syfte är att ta fram ett nytt system som kan användas som en direkt ersättare av det befintliga systemet. Detta innebär att det utvecklade systemet klarar av allt som det befintliga
systemet klarar på ett minst lika bra sätt, samtidigt som viss ny funktionalitet infogas för
att uppfylla nya krav och önskemål från systemets användare.
Det nyutvecklade systemet kan mäta och analysera tre olika sorters signaler. För det första dynamiska signaler med ett intressant frekvensinnehåll mellan 10 och 10 000 Hz där
analyser kan göras i både tids- och frekvensdomänen. För det andra rena likspänningssignaler och för det tredje så kan varvtalssignaler från turbinens varvräknare analyseras av
systemet.
Med jämna mellanrum så skickas beräknade värden som till exempel den dominerande
frekvensen eller signalens medelvärde till en server för vidare analys. Uppdateringsfrekvensen till servern är omkring 1 Hz.
I arbetet ingår en analys av det gamla systemet, undersökning av önskad funktionalitet,
1
2
1
Introduktion
utvärdering av aktuell hårdvara, utveckling av mjukvara samt att dokumentera arbetet.
Mjukvaran skapas med hjälp av LabVIEW.
1.2 Metod
För att få ett bra grepp om vilka krav som ställs på det nya systemet så undersöktes det
befintliga systemets funktionalitet. Undersökningen genomfördes genom att dels prova
systemet och dels genom studier av hårdvaran och mjukvaran. Även intervjuer med användare av systemet genomfördes för att få reda på vilka funktioner som används, vilka
funktioner som är överflödiga, vilken ny funktionalitet som är önskvärd samt för att skapa
en förståelse för hur systemet används i praktiken. Dessa intervjuer dokumenterades inte
då de mestadels genomfördes som kortare samtal. Intervjuerna och undersökningen av det
gamla systemet ledde fram till en kravlista för systemet.
Lämplig hårdvara för systemet utvärderades utifrån den skapade kravlistan.
Implementationen av mjukvaran genomfördes i två steg. Först skapades det en version
där all nödvändig funktionalitet plus viss ytterligare funktionalitet fanns med. Denna version användes och utvärderades vid ett riktigt turbinprov. Efter den utvärderingen och
med den nya kunskapen som erhölls vid skapandet av första versionen så skapades en ny
version. Den nya versionen är i många delar helt omgjord jämfört med den gamla för att
minska antalet buggar och för att underlätta modifieringar av programmet vid nya behov
i framtiden.
I den här rapporten så är endast implementationen av den andra versionen beskriven. De
största skillnaderna mellan version 1 och 2 samt motiveringar till varför ändringen görs
finns beskriven i diskussionsdelen av implementeringskapitlet.
1.3 Avgränsning
Det förutsätts att alla signaler förutom varvtalssignaler in till systemet har omvandlats från
sin fysikaliska storhet t.ex. tryck, till spänning med hjälp av lämplig givare. Varvtalssignalerna förutsätts istället komma i form av pulser med samma, eller multiplar av samma,
frekvens som det fysiska varvtalet.
Vidare så förutsätts det att det finns en server dit beräknade värden kan skickas.
Systemet som utvecklats är i sig självt väldefinierat då det är tydligt avgränsat från andra system. Det finns dock en risk att funktionalitet önskas till systemet på ett sådant sätt
att det aldrig kommer anses som färdigt. För att undvika detta så implementeras funktionalitet utifrån en prioriterad lista där enbart den funktionalitet som hinns med under
examensarbetstiden implementeras. För att möjliggöra framtida implementeringar av ny
funktionalitet så förutsätts det att programmet är uppbyggd så modulärt som möjligt.
2
Teori
I det här kapitlet presenteras bakomliggande teori som används i systemet. Detta omfattar datasampling genom, enligt Kester (2008, s.1), en av de mest använda samplingsteknikerna Σ∆-omvandling (Sigma-Delta). Om hur Nyquist teorem ger upphov till att ett
lågpassfilter behövs, samt teori om transformationen mellan tids- och frekvensdomänen.
Vidare så presenteras viss utvald teori om LabVIEW.
2.1 Datasampling
Datasampling är en operation som gör om en tidskontinuerlig signal till en tidsdiskret
signal. Datasamplingen görs för att kunna behandla signalen med en dator.
För att säkerställa att frekvensinnehållet i den samplade signalen inte blir förstört så
måste en tillräcklig samplingsfrekvens användas. Enligt Nyquist teorem, beskriven av
R.J.Beerends m.fl. (2003, s.347–350), så måste samplingsfrekvensen, Fs , vara minst dubbelt så hög som den högsta frekvensen i signalen. Uppfylls inte detta så uppstår ett fenomen som kallas för vikningsdistorsion där en frekvens över Nyquistfrekvensen, Fs /2,
speglas i Nyquistfrekvensen och upplevs som en lägre frekvens. Detta kan ses i figur 2.1.
2.2
Σ∆-omvandling
En av de mest använda samplingsteknikerna är Σ∆-omvandling. En enbits Σ∆-omvandlare
av första ordningen kan enligt Jarman (1995, s.1) skapas utifrån schemat i figur 2.2, innehållande endast en summator, en integrator, en komparator, en 1-bits digital till analog
omvandlare och ett digitalt filter.
Figur 2.3 visar en simulering av Σ∆-omvandlaren i figur 2.2 med dels 2 bitars upplösning
3
4
2
Teori
1
Korrekt samplad signal
Otillräcklig samplingsfrekvens
Amplitud
0.5
0
−0.5
−1
0
0.1
0.2
0.3
0.4
0.5
Tid
0.6
0.7
0.8
0.9
1
Figur 2.1: En korrekt samplad signal och en undersamplad signal. Den undersamplade signalen upplevs som en signal med lägre frekvens än vad den egentligen har.
Vin
+
+
Utdata
Digitalt
Filter
Vref/2
Vref
1-bit
DAC
Figur 2.2: En första ordningens enbits Σ∆-omvandlare.
5
2.3 Filter
Σ∆−omvandling med 2 bitars upplösning
Amplitud
3
2
1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
Tid
Σ∆−omvandling med 3 bitars upplösning
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.7
0.8
0.9
1
Amplitud
3
2
1
0
0.5
Tid
0.6
Figur 2.3: Σ∆-simulering med 2 och 3 bitars upplösning.
och dels 3 bitars upplösning. Simuleringen visar att om utsignalen medelvärdesbildas över
några sampel så erhålls en utsignal som liknar insignalen. Antalet sampel som medelvärdet beräknas på avgör vilken upplösning som erhålls. Kester (2008, s.5–7) skriver att
medelvärdet av 4 sampel ger 2 bitars upplösning medan medelvärdet av 8 sampel ger 3
bitars upplösning. Detta kan uttryckas med ekvation (2.1) där Q är upplösningen och M
är antalet sampel som medelvärdet beräknas över.
Q=
log M
log 2
(2.1)
Kester skriver även att för att erhålla önskad bandbredd för den samplade signalen så
måste samplingsfrekvensen höjas, med en faktor 2Q när Σ∆-omvandling används jämfört
med vad som hade krävts vid en traditionell AD-omvandling där ingen översampling
genomförs.
Till sist skriver Kester att Σ∆-omvandlaren, utöver den simpla konstruktionen, även har
den fördelen att kvantiseringsfelet reduceras jämfört med en jämförbar traditionell ADomvandlare.
2.3 Filter
För att undvika problemet med vikningsdistorsion så används ett lågpassfilter. Lågpassfiltreringen utförs innan samplingen för att eliminera, eller i alla fall reducera, frekvenser
över Nyquistfrekvensen. Detta filter måste enligt Bengtsson (2001, s.531) vara analogt
eftersom ett digitalt filter samplar signalen och självt riskerar att råka ut för vikningsdistorsion. Cerna och Harvey (2000, s.8) skriver att för att helt eliminera påverkan av
vikningdistorsion så måste lågpassfiltret dämpa de höga frekvenserna till en nivå under
det dynamiska området för AD-omvandlaren. De skriver vidare att den icke ideala karaktäristiken för ett lågpassfilter gör att filtret måste börja dämpa frekvenser vid någon punkt
under Nyquistfrekvensen för att kunna eliminera effekterna av vikningsdistorsion. Detta
leder i sin tur till att den verkliga bandbredden blir lägre än halva samplingsfrekvensen.
6
2.3.1
2
Teori
Digitala Filter
Bengtsson (2001, s.549–550) skriver att när signalen är samplad så är det möjligt att filtrera den ytterliggare med hjälp av digitala filter. Digital filtrering sker genom matematiska
beräkningar. En fördel med ett digitalt filter är att det på ett enkelt sätt, genom att endast
byta värden på några konstanter i den matematiska formeln för filtret, går att ändra filtrets
karaktäristik.
Det finns huvudsakligen två typer av digitala filter. FIR-filter (finite impulse response)
och dels IIR-filter (infinite impulse response). Skillnaden mellan dessa typer av filter är
att IIR-filter är återkopplade vilket FIR-filter inte är. Detta gör att ett IIR-filter är mer
beräkningseffektivt samtidigt som det finns risk för att det blir instabilt. Förutom att ett
FIR-filter alltid är stabilt så har det den stora fördelen att fasvridningen är helt linjär om
filterkoefficienterna väljs rätt (Bengtsson, 2001, s.549–550).
Bengtsson (2001, s.539–541) förklarar också att fördelen med linjär fasvridning är att
alla frekvenser i den ingående signalen fördröjs lika mycket vilket gör att deras faser
sinsemellan blir oförändrad. Han understryker att beroende på vad som undersöks så kan
detta vara helt avgörande för resultatet vid signalanalysen.
Ett FIR-filter använder sig av signalens föregående sampel för att filtrera signalen medan
IIR-filter även använder sig av de senaste utsignalerna från filtret för att filtrera signalen.
Att digitala filter använder sig av tidigare värden i insignalen gör att de första värdena i
en mätserie som lågpassfiltreras blir felaktigt filtrerade.
2.4 Fouriertransformation
För att kunna analysera frekvensinnehållet i en signal så måste signalen transformeras från
tidsdomänen till frekvensdomänen. Detta kan göras med hjälp av den diskreta Fouriertransformationen DFT. Den diskreta Fouriertransformationen definieras av R.J.Beerends
m.fl. (2003, s.360) som
F [k] =
N
−1
X
f [n] e−2πink/N
(2.2)
n=0
där f [n] är en samplad signal med N antal sampel och F [k] oftast består av komplexa
tal.
Carlsson och Johansson (1997, s.443) skriver att DFT:n ger som resultat ett frekvensspektrum med diskreta steg, där det första steget k = 0 motsvarar likspänningsnivån och steget
i mitten, k = N/2, motsvarar frekvensinnehållet vid Nyquistfrekvensen. Den andra halvan av frekvensspektrumet är en speglad kopia av första halvan och representerar negativa
frekvenser. Upplösningen mellan två steg är FS /N , där FS är samplingsfrekvensen och
N antalet punkter i spektrumet. Antalet punkter är lika med det antal sampel som fanns i
datan som transformen utfördes på. Den verkliga frekvensen, f , relateras till de diskreta
stegen k enligt följande:
f =k
FS
,
N
(k = 0, 1, . . . ,
N
)
2
(2.3)
7
2.4 Fouriertransformation
3.5
y=2sin(2π*50t+π)+sin(2π*300t+0,5π)+3sin(2π*120t)
3
Amplitud
2.5
2
1.5
1
0.5
0
0
50
100
150
200
250
Frekvens
300
350
400
450
500
(a) Amplitudspektrum
5
Fas
y=2sin(2π*50t+π)+sin(2π*300t+0,5π)+3sin(2π*120t)
0
−5
0
50
100
150
200
250
Frekvens
300
350
400
450
500
(b) Fasspektrum, de fyllda cirklarna tillhör de frekvenserna med hög amplitud
Figur 2.4: Amplitud och fasspektrum från en fouriertransformation.
Carlsson och Johansson (1997, s.442) presenterar ett sätt att utifrån ett frekvensspektrum
ta fram ett amplitudspektrum och ett fasspektrum. Amplitudspektrumet av signalen skapas
med hjälp av ekvation (2.4) där de negativa frekvenserna tas bort. Medan ett fasspektrum
skapas med ekvation (2.5).
q
N
2
2
U0 = F [0] , Uk = 2 · Re (F [k]) + Im (F [k]) , (k = 1, 2, . . . , )
(2.4)
2
Re (F [k])
N
φk = arctan −
,
(k = 1, 2, . . . , )
(2.5)
Im (F [k])
2
Figur 2.4 visar ett exempel på ett amplitudspektrum och ett fasspektrum från en signal
innehållandes olika sinuskurvor. 2.4a visar amplitudspektrum och 2.4b visar fasspektrum.
Notera att fasförskjutningen är den fasförskjutning som de olika frekvenskomponenterna
har vid tidpunkten noll.
2.4.1
Fönsterfunktioner
Fouriertransformationen utgår ifrån att signalen som transformeras är repeterande i all
oändlighet. Detta leder enligt Carlsson och Johansson (1997, s.445) till att frekvensspektrumet, ifall periodtiden för signalen inte är en multipel av tiden som signalen är samplad
8
2
Teori
3
Repetering av samplad signal
Riktig signal
2.5
Amplitud
2
1.5
1
0.5
0
0
0.1
0.2
0.3
0.4
0.5
Tid
0.6
0.7
0.8
0.9
1
Figur 2.5: Om periodtiden för signalen inte matchar samplingsperioden så utförs
Fouriertransformen på en felaktig signal.
Hann fönster
Fouriertransform
1
0
−20
0.8
dB
Amplitud
−40
0.6
0.4
−60
−80
−100
0.2
−120
0
0
200
400
600
Sampel
800
1000
−40
−20
0
Frekvenslinjer
20
40
Figur 2.6: Hannfönster i tidsdomänen och i frekvensdomän
under, smetas ut mellan flera olika frekvenser. Detta förklaras genom figur 2.5 som visar
den signal som kan uppstå då den samplade delen av en sinussignal repeteras. Bengtsson
(2001, s.247) skriver att de abrupta ändringarna som uppstår när den samplade datasignalen repeteras leder till ett brett frekvensspektrum. Vidare skriver Bengtsson (2001, s.252)
att för att minska utsmetningen så kan en fönsterfunktion användas. Där förklaras att idén
med fönsterfunktionen är att minska diskontinuiteten som uppstår vid antagandet att signalen är periodisk utanför samplingsfönstret. Detta görs genom att multiplicera insignalen
med en fönsterfunktion som går mot noll vid fönsterändarna. Ett sådant fönster är Hannfönstret som kan ses i figur 2.6.
En multiplikation i tidsdomänen mellan två signaler är ekvivalent med en faltning mellan
signalerna i frekvensdomänen enligt (R.J.Beerends m.fl., 2003, s.160). Detta har utnyttjats i figur 2.7, där en faltning är gjord mellan en signals frekvensspektrum och frekvensspektrumet för ett rektangulärt fönster1 , för att visa hur signalspektrumet blir utsmetat när
frekvensinnehållet inte matchar samplingsperioden.
Att signaler med periodtider som stämmer överrens med periodtiden för mätserien inte blir
utsmetade förklaras av Bengtsson (2001, s.248) av att de olika nollställena som uppstår i
1 Ett
rektangulärt fönster är 1 över hela samplingsperioden och 0 utanför.
9
2.4 Fouriertransformation
decibel
Amplitud
0
1
0.5
−40
0
0
200
400
600
Frekvens
0
decibel
−20
800
1000
−30
−20
−10
0
10
Frekvenslinjer
20
30
−20
−40
0
100
200
300
400
500
Frekvens
600
700
800
900
1000
Figur 2.7: Faltning mellan ett signalspektrum och en rektangulär fönsterfunktion.
Tabell 2.1: Fönsterparametrar (Cerna och Harvey, 2000, s.14)
Fönster
Rektangulärt
Hann
Flat Top
−3 dB bredd
[frekvenslinjer]
0, 88
1, 44
2, 94
−6 dB bredd
[frekvenslinjer]
1, 21
2, 00
3, 56
Högsta sidlob
[dB]
−13
−32
−44
Sidlobernas
fallhastighet
[dB/dekad]
20
60
20
ett fönsters frekvensspektrum , se till exempel figur 2.6 och 2.7, då exakt överensstämmer
med de övriga frekvenskanalerna i frekvensspektrumet och därför inte påverkar några
andra frekvenskanaler.
Harris (1978) specificerar fyra vanligt använda parametrar som beskriver fönstrets funktion. Dessa är huvudlobens −3 dB och −6 dB bredd, högsta sidlobens nivå och sidolobernas fallhastighet. Huvudlobens −3 dB och −6 dB bredd uttrycks i frekvenslinjer
och anger bredden där fönstrets förstärkning är −3 respektive −6 dB av huvudlobens
maximala förstärkning. Högsta sidlobens nivå uttrycks vanligen i decibel och sidlobernas
fallhastighet i dB/oktav eller i dB/dekad.
Vid valet av fönsterfunktion så måste alltid en kompromiss göras mellan frekvensupplösning och amplitudupplösning beroende på vilka av signalens egenskaper som ska analyseras (Bengtsson, 2001, s.256). I figur 2.8 ses frekvensspektrumet för två olika signaler som
har analyserats med tre olika fönsterfunktioner. De olika fönsterfunktionernas parametrar
är listade i tabell 2.1. Signalen som är använd i 2.8a är samplad med en samplingsperiod
som matchar frekvenserna i signalen. Tack vare det så ger det rektangulära fönstret ingen
utsmetning. Värdet −6 dB ±1 Hz från 50 Hz toppen för Hannfönstret kan härledas från
−6 dB bredden i tabell 2.1 som är 2, 00 frekvenslinjer, vilket betyder att frekvenslinjen
bredvid huvudloben påverkas med −6 dB av dess värde. Flat Top-fönstret har en bred
huvudlob vilket ger för mycket utsmetning för att kunna identifiera 54 Hz frekvensen.
Skillnaden mellan figur 2.8a och 2.8b är att i 2.8b så är båda frekvenserna 0, 5 Hz högre
vilket leder till att samplingsperioden inte matchar frekvenserna i signalen. Detta leder
10
2
Teori
0
Rektangulärt
Flat Top
Hann
−10
−20
−30
decibel
−40
−50
−60
−70
−80
−90
−100
44
46
48
50
52
54
56
58
Frekvens
(a) Samplingstiden stämmer överrens med insignalen – Lite utsmetning.
0
Rektangulärt
Flat Top
Hann
−10
−20
−30
decibel
−40
−50
−60
−70
−80
−90
−100
44
46
48
50
52
54
56
58
Frekvens
(b) Samplingstiden stämmer inte överrens med insignalen – Mycket utsmetning.
Figur 2.8: Fouriertransformation genomförd med olika fönsterfunktioner.
till mer utsmetning i frekvensspektrumet samt till att amplituden för 50, 5 Hz blir lägre
än vad den egentligen är för alla fönster förutom Flat Top-fönstret. Enligt Cerna och Harvey (2000, s.15) så är Flat Top-fönstret designat för att aldrig ge en amplitudnoggrannhet
sämre än 0, 01 dB. Kompromissen är den sämre frekvensupplösningen.
Harris (1978) skriver att skalningen som uppstår vid användandet av en fönsterfunktion
ger upphov till att amplituden av signalen påverkas. Storleken av förvrängningen av signalen kallas för den följdriktiga förstärkningen (eng. coherent gain). Denna förstärkning
har använts för att producera graferna i 2.8.
Harris skriver även om den ekvivalenta brusbandbredden (eng. equivalent noise bandwidth, ENBW). Som uppstår eftersom uppskattningen av en frekvens får bidrag från hela
bandbredden. Den ekvivalenta brusbandbredden definieras som bredden av det rektangulära filter, med samma toppeffektsförstärkning som fönsterfunktionen, som skulle ge upphov till samma medeleffekt.
2.4.2
Fast Fourier Transform
Om den diskreta Fourier transformen beräknas direkt utifrån definitionen i ekvation (2.2)
så är antalet beräkningar som behöver göras i storleksordningen N 2 där N är antalet
sampel i signalen. Duhamel och Vetterli (1990) skriver att det finns ett antal algoritmer
för att snabba på beräkningen. Dessa algoritmer benämns Fast Fourier transforms (FFT)
Antalet beräkningar som behöver göras om FFT används minskar till N log2 N . Resultatet
som fås av FFT är identiskt med det som fås vid direkt beräkning av DFT den enda
11
2.5 LabVIEW
skillnaden är beräkningshastigheten.
2.4.3
Parsevals teorem
Parsevals teorem definierad av R.J.Beerends m.fl. (2003, s.371) som
N
−1
X
n=0
2
|f [n]| =
N −1
1 X
|F [k]|2
N
(2.6)
k=0
där f [n] är en diskret tidssignal och F [k] är dess fouriertransformation, ger ett användbart
sätt att beräkna effekten av en signal utifrån frekvensspektrumet.
2.5 LabVIEW
I detta avsnitt kommer några av LabVIEWs speciella egenskaper att beskrivas.
National Instruments (b) skriver att LabVIEW är en mjukvaruutvecklingsmiljö som bygger på programmeringsspråket G. G är ett grafiskt programmeringsspråk som bygger på
dataflöde. Att det bygger på dataflöde innebär att funktionerna utförs så fort som data
finns tillgänglig. Detta kan jämföras med det vanligare sekventiella beteende där de olika
programraderna läses i tur och ordning oberoende av om data finns tillgänglig eller ej.
Ett LabVIEWprogram kallas för ett Virtual Instrument (VI) och byggs upp som ett blockdiagram där varje block är en subrutin. Dessa subrutiner kallade subVI:s är i normalfallet
inställda så att de bara har en datarymd och därför bara kan köras på ett ställe samtidigt
(National Instruments, a).
LabVIEW har en mängd färdiga subrutiner för att utföra vanligt förekommande uppgifter som beräkningar och olika transformeringar. Det finns även välutvecklade subrutiner
innehållande drivrutiner för olika typer av hårdvara.
Bengtsson (2004, s.81) skriver att för att spara ett värde mellan två iterationer av samma
VI så använder sig LabVIEW av skiftregister. Dessa skiftregister sparar det senaste värdet
även om andra VI:s körs.
I National Instruments (2010) går det att läsa om köer och notifiers (sv:meddelare) som är
två olika möjligheter som finns i LabVIEW för att synkronisera data. Dessa båda bygger
på att det finns en eller flera mottagare och en eller flera sändare som utbyter data med
varandra. En kö fungerar som ett först in, först ut minne, där den data som lades till först
av sändaren också är den data som läses först av mottagaren. De två största skillnaderna
mellan köer och notifiers är att i en kö så kan flera värden sparas och därmed plockas ut i
tur och ordning när mottagaren är redo. Om däremot ett nytt värde skickas med en notifier
innan det gamla värdet har blivit läst så går det gamla värdet förlorat. Dessa skillnader
gör att det för data som absolut inte får skrivas över lämpar sig en kö bäst, medan en
notifier lämpar sig bäst om flera mottagare skall läsa samma meddelande, samtidigt som
meddelandet inte byts ut så fort att det inte hinner avläsas av alla mottagare.
3
Siemens befintliga system
Siemens befintliga system är uppbyggt av hårdvara som inte längre produceras. Denna
hårdvara består av två datainsamlingskort från Hewlett-Packard och ett datakommunikationskort från Agilent. Till denna hårdvara så finns egenutvecklad mjukvara.
3.1 Hårdvara
Siemens befintliga system är uppbyggt på en VXI -plattform (VME eXtensions for Instrumentation) med två olika rack monterade, dels ett datainsamlingskort och dels ett
datakommunikationskort.
Datainsamlingskortet är ett HP E1432A vilket enligt databladet1 innehåller 16 kanaler
med den maximala samplingsfrekvensen 51,2 kS/s. Analog till digital omvandlaren kan
ställas in för mätning av spänning i området mellan ±100 mV och ±20 V med en upplösning på 16 bitar och 0,7% noggrannhet. Frekvensnoggrannheten är 0,012%. Varje kanal
kan ställas in att mäta antingen DC eller AC spänning. Datainsamlingskortet innehåller
även en DSP (Digital Signal Processor).
Datakommunikationskortet är ett Agilent E8491B vilket använder sig av FireWire för att
kommunicera med PC:n.
3.2 Funktionalitet
Mjukvaran för det befintliga systemet har stöd för användandet av två mätkort samtidigt
vilket ger totalt 32 kanaler. För var och en av dessa kanaler så kan RMS-värde (eng:
Root Mean Square, sv: Likriktat medelvärde) både med och utan likspänningskomponent,
1 Se
litteraturförteckning.
13
14
3
Siemens befintliga system
likspänningskomponenten samt toppvärdet beräknas. Vidare så är det även möjligt att dela
in signalens bandbredd i upp till fyra olika passband där den mest dominanta frekvensens
amplitud för varje passband beräknas.
Frekvensspektrumet som behövs för dessa analyser beräknas direkt av mätkortens inbyggda DSP med hjälp av FFT. Att FFT:n görs direkt i mätkortets hårdvara begränsar möjligheten att konfigurera hur den skall genomföras. Till exempel så finns det bara fyra olika
fönsterfunktioner att välja mellan till att filtrera signalen innan transformationen. Användandet av mätkortens inbyggda DSP:er har samtidigt fördelen att CPU-kraften som krävs
av datorn, som kör systemet, minskar.
För varje beräknat värde är det möjligt att sätta gränser som indikerar statusen för signalen
så att användaren av systemet enkelt skall kunna övervaka alla signaler.
All konfiguration kan sparas och laddas ifrån datorns hårddisk så den inte behöver göras
om varje gång systemet används.
De beräknade datavärdena kan dels bli sparade till datorns hårddisk och dels bli sända till
Scadapro2 med en uppdateringsfrekvens runt 1 Hz.
3.3 Användargränssnitt och inställningar
Eftersom mjukvaran körs på en vanlig dator så har användaren möjlighet att använda mus,
tangentbord och dataskärm för att styra systemet. Insamlad data kan visas på skärmen på
följande sätt:
• Via en panel som visar en symbol för varje kanal där ett av kanalens beräknade
värde visas. Även statusen för signalen visas.
• Som en graf där insamlad data plottas som funktion av tiden.
• Som ett frekvensspektrum för varje kanal.
• Som en graf där två olika beräknade värden jämförs.
• Som en graf där olika statistiska värden plottas som funktion av tiden.
• Som en alarmmatris som visar alla kanalers samtliga beräknade värdens status.
• Som en tabell med alla beräknade värden listade.
• Som en graf där alla beräknade värden är plottade som funktion av tiden.
• Som ett histogram över något av de beräknade värdena.
Varje kanal kan ställas in med hjälp av olika menyer. Följande inställningar kan ställas in:
• Inspänningsområde (100 mV - 20 V).
• Beskrivning av kanalen.
• Enhet.
2 Scadapro
är ett övergripande datainsamlingssystem som används av företaget.
3.3 Användargränssnitt och inställningar
15
• Skala (enhet/V).
• Kopplingstyp (AC/DC).
• Passband (Upp till 4 st).
• Fönsterfunktion.
• Data som ska beräknas (RMS, RMS-AC, DC och toppvärde).
Det går även att ställa in samplingsfrekvensen och mätseriestorleken för mätdatainsamlingen. Samplingsfrekvensen kan ställas mellan 100 Hz och 51,2 kHz och mätseriestorleken kan ställas mellan 512 sampels och 4096 sampels.
Till sist så går det att välja var mätdata ska sparas, till vilken eventuell Scadapro-kanal
data ska skickas, samt hur ofta dessa sparningar och dataöverföringar skall göras.
Om inställningarna görs så att data ska sparas eller överföras till Scadapro med längre
mellanrum än den tid det tar att samla in en ny mätserie, så sparas och/eller överförs bara
beräkningarna från den senaste mätserien.
4
Krav
I det här kapitlet kommer kraven som ställs på systemet att tas upp. Eftersom det grundläggande kravet är att det nya systemet skall kunna ersätta Siemens befintliga system så
måste det nya systemet uppfylla de krav som det befintliga systemet uppfyller. Informationen om det befintliga systemet ihop med intervjuer av användare till systemet ger en
kravbild för det nya systemet.
4.1 Kravlista för systemet
Ett av de viktigaste kraven för systemet är att det enkelt skall gå att skala upp det till
fler kanaler och utökad funktionalitet. Från början var det meningen att all funktionalitet
från det befintliga systemet skulle implementeras i det nya. Men efter diskussioner med
användare till det systemet så beslutades det att det inte fanns något behov att visualisera
mätdata på så många olika sätt som det fanns möjlighet till med det befintliga systemet.
Det enda som de olika visualiseringarna används till är att kolla så att data verkar samlas
in på ett rimligt sätt på alla kanaler. All övrig analys av datan utförs med andra verktyg. I
övrigt så ska all funktionalitet som finns i det befintliga systemet implementeras i det nya.
De intervjuer som har genomförts med användare av systemet gav många synpunkter på
saker som kunde förbättras gentemot det befintliga systemet, även en mängd önskemål
om ny funktionalitet kom fram. Ett av de önskemål som kom fram var en önskan om att
kunna mäta turbinens varvtal eftersom många av de analyser som genomförs till stor del
beror på varvtalet. Vidare så önskas det att:
• införa en funktion som möjliggör skapandet av ett passband för en signal som följer
någon annans signals värde som till exempel turbinens varvtal.
• kunna beräkna RMS-värde i olika passband.
17
18
4
Krav
• ha möjlighet till individuellt ställbar samplingsfrekvens och mätseriestorlek för varje kanal.
• införa möjligheten att ha överlappande mätserier. Med överlappande serier så menas att det skall gå att sammanfoga den sista delen av en mätserie med den kommande mätserien. Detta önskas för att möjliggöra analyser av data som annars skulle ha
delats upp i två olika mätserier.
• kunna beräkna Envelope, vilket är en beräkning där signalens högsta toppvärde,
sedan den senaste dataöverföringen, beräknas.
• införa en beräkningsmetod som kan identifiera de fem mest dominanta frekvenserna
i en signal. Dessa toppars fas, amplitud och frekvens skall redovisas.
• kunna överföra data till en OPC-server (Object Linking and Embedding (OLE) for
Process Control). Data behöver inte kunna skickas till både en OPC-server och till
Scadapro under samma körning.
Ett av de största problemen med det befintliga systemet är det ineffektiva sätt som det konfigureras på, där en mängd olika menyer måste gås igenom för att ändra inställningarna.
Det nya systemet kommer att användas vid tillfällen där hundratals olika mätningar skall
konfigureras under en körning. För att effektivisera arbetet så finns det önskemål om att
kunna importera och exportera inställningar från/till kalkylblad.
Kraven från det befintliga systemet och kraven som uppkommit efter önskemål från användare finns sammanställda i tabell 4.1. Där kraven med prioritet A är sådana krav som
bör uppfyllas, medan de med prioritet B uppfylls om det är möjligt.
4.1 Kravlista för systemet
19
Tabell 4.1: Kravlista över systemet. Prioritet A är sådana krav som måste uppfyllas
medan prioritet B är krav som är önskade och uppfylls vid mån av tid.
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Krav
Prioritet
Minst 32 inkanaler, Antalet inkanaler skall gå att utöka.
A
Maximal samplingsfrekvens minst 51,2 kHz.
A
Inspänningsområde minst 100 mV - 20 V.
A
Upplösning minst 16 bitar.
A
Amplitudfel max 0,7 %.
A
Frekvensfel max 0,012 %.
A
Möjlighet till både AC och DC koppling.
A
Beräkna RMS-värde.
A
Beräkna DC-värde.
A
Beräkna toppvärde.
A
Få den dominerande frekvensens amplitud, fas och frekvens i olika
A
passband.
Minst fyra olika fönsterfunktioner för frekvensanalys.
A
Överföra data till Scadapro.
A
Överföra data till OPC-server.
A
Systemet skall vara modifierbart med ny funktionalitet.
A
Visa data på datorskärmen på något sätt.
A
Spara och ladda inställningar från hårddisk.
A
Mäta turbinens varvtal.
B
Möjlighet till individuella samplingsfrekvenser för de olika kanalerB
na.
Möjlighet till olika mätseriestorlek för olika kanaler.
B
Beräkna RMS-värde i specifika passband.
B
Passband med gränser som anpassar sig efter något annat mätvärde.
B
Mätning som returnerar signalens fem mest dominanta toppar.
B
Envelope, mätning som ger det högsta värdet signalen har haft sedan
B
förra mätningen.
Trigger signal för att starta mätningen.
B
Importera och exportera inställningar från/till kalkylblad.
B
Överlappande mätserier.
B
5
Hårdvara
I det här kapitlet kommer hårdvaran som var valts till det nyutvecklade systemet att beskrivas. För närvarande finns det två olika uppsättningar av hårdvara. De båda kallas för
Vimba och Simon och presenteras var för sig i början av kapitlet. Kapitlet avslutas med
en diskussionsdel där bland annat anledningen till att två olika hårdvarukonfigurationer
används tas upp och vilken alternativ hårdvara som fanns men valdes bort. Datablad för
den diskuterade hårdvaran finns samlad i litteraturförteckningen.
5.1 Vimba
Vimba består av ett PXI-chassi (PCI eXtensions for Instrumentation) med fyra olika moduler vilket kan ses i figur 5.1. De fyra olika modulerna är dels 2 stycken mätdatakort, dels ett
räknarkort och dels en inbyggd dator, alla tillverkade av NI (National Instuments). Chassit
innehåller också vissa specialbyggda delar. I tillämpningen av systemet, beskriven i den
här rapporten, så används bara den specialbyggda del som sammankopplar räknarkortets
ingångar med ett kontaktdon på baksidan av chassit vilket medför enklare inkoppling av
varvtalssignaler.
Mätdatakorten som används är två stycken PXI-4472 vilka har 8 kanaler var med 24 bitars upplösning och inspänningsområde mellan ±10 V. Den maximala samplingsfrekvensen är 102,4 kS/s. Korten har ett inbyggt lågpassfilter för att filtrera bort frekvenser över
Nyquistfrekvensen. I tabell 5.1 finns mer detaljerad information om korten.
Räknarkorten är ett PXI-6602 vilket innehåller 8 räknare på 32 bitar som klarar av frekvenser upp till 80 MHz.
Den inbyggda datorn är en PXI-8106 med Intel Core 2 Duo processor T7400 (2,16 GHz
dubbelkärnig) processor.
21
22
5
Hårdvara
Figur 5.1: Vimba-hårdvaran
Tabell 5.1: Specifikationer för PXI-4472 och PXI-4497 (Källa:datablad)
Egenskap
Antal kanaler
Upplösning
Maximal samplingsfrekvens
Dynamiskt område
Inspänningsområde
Koppling
AD-omvandlare
Amplitudnoggrannhet
Frekvensnoggrannhet
AC −3 dB brytfrekvens
PXI-4472
8 st
24 bitar
102,4 kS/s
110 dB
±10 V
AC/DC
Σ∆
0,1 dB
25 ppm
3,4 Hz
PXI-4497
16 st
24 bitar
204,8 kS/s
114 dB
±0, 316 1, 3,16, 10 V
AC/DC
Σ∆
0,1 dB
12 ppm
0,5 Hz
23
5.2 Simon
Figur 5.2: Simon-hårdvaran
5.2 Simon
Simon består av ett PXI-chassi med tre olika moduler, dels 2 st mätdatakort och dels en
inbyggd dator, tillverkade av NI. Hårdvaran kan ses i figur 5.2. Till hårdvaran så finns
även ett 19 tums rack för enklare inkoppling av signaler till systemet.
Mätdatakorten är två stycken PXI-4497 med 16 st 24-bitars kanaler var. Den högsta samplingsfrekvensen är 204,8 kS/s. Korten har ett inbyggt lågpassfilter för att filtrera bort frekvenser över Nyquistfrekvensen. Systemets totala antal kanaler ökas enkelt genom att
införskaffa fler mätdatakort. I tabell 5.1 finns mer detaljerad information om korten.
Den inbyggda datorn är en PXIe-8135 med en 2,3 GHz fyrkärnig Intel Core i7-3610QE
processor.
5.3 Diskussion
Företaget hade sedan tidigare redan ett antal Vimba system som används för vibrationsmätningar. Därför beslöts det att den hårdvaran skulle användas i inledningsfasen av arbetet
för att möjliggöra att arbetet med mjukvaran kunde påbörjas utan att först behöva vänta
in leveransen av den nya hårdvaran.
Valet att börja arbeta med Vimba-hårdvaran gjorde att alternativen till den hårdvara som
skulle köpas in minskade. Då det var lämpligt att köpa ett system med samma drivrutiner
för att inte behöva göra två olika versioner av programmet, beroende på vilken hårdvarubas som används. Detta gjorde att endast hårdvara från NI levde upp till kraven. Efter en
utforskning av lämplig hårdvara från NI så stod valet mellan mätkorten PXI-4497 som
köptes in (beskrivet ovan) och mätkortet PXI-4462. Det finns i huvudsak två olika skillna-
24
5
Hårdvara
der mellan dessa båda kort, dels inspänningsområdet och dels antalet kanaler per kort. För
det förstnämnda så är högsta tillåtna inspänningen ±10 V och antalet kanaler 16 medan
den högsta tillåtna inspänningen för PXI-4462 är ±42,4 V och antalet kanaler är 4. Enligt
kraven som sattes upp för systemet (se avsnitt 4.1 på sidan 17) så skall högsta tillåtna
inspänning vara minst ±20 V. Detta borde betyda att PXI-4462 köptes in. Men då nackdelarna med detta system ansågs större än fördelen att kunna mäta spänningar högre än ±10
V så valdes ändå PXI-4497. Mycket tack vare att det ytterst sällan krävs att utrustningen
kan mäta så höga spänningar att det ansågs försvarbart att köpa in ett så pass mycket dyrare och mer otympligt system som ett system med PXI-4462 hade blivit tack vare dess
låga kapacitet i antal kanaler per kort.
6
Implementering
I det här kapitlet presenteras den implementerade mjukvaran. Först ges en övergripande
bild av hur systemet är uppbyggt följt av mer detaljerad information om systemets olika
delar. Till sist kommer en diskussionsdel där fördelar och nackdelar med de valda lösningarna diskuteras.
6.1 Översikt
Programmet är uppdelat i flera olika block. Dessa block kan ses i figur 6.1. Varje block
består av en evighetsloop där blocket kontinuerligt utför sin uppgift. Mer information om
varje block ges i avsnitt 6.2 på sida 26.
Kommunikationen mellan de olika blocken sker på två olika sätt, detta beroende på om
det är data eller meddelanden som skall skickas mellan dem. Meddelanden innehåller dels
Datainsamling
Beräkningar
Dataöverföring
Visualisering av data
Användargränssnitt
Figur 6.1: Översiktligt blockdiagram av det implementerade programmet.
25
26
6
Implementering
ett fält med adresser till de mottagande blocken och dels ett fält med själva meddelandet
dessa meddelanden skickas med hjälp av en notifier (notifier se avsnitt 2.5). När blocket
med användargränssnittet avslutas av användaren så kommer notifiern stängas ner vilket
leder till att de andra blocken, som i varje loop kollar om de fått något nytt meddelande,
kommer att generera ett felmeddelande. Det här felmeddelandet utnyttjas till att avsluta
även dessa block. För att alla block skall ha rensat upp efter sig ordentligt, så är det
endast möjligt för användaren att stänga av programmet då det är inaktiverat, alltså då
ingen mätning utförs. I detta läget så är nämligen de övriga blocken i vänteläge, där alla
resurser de använder är frisläppta.
Datakommunikationen sker på ett mer direkt sätt mellan de block som skapar data och
de som använder den genom att använda köer mellan datainsamlingsblocket och beräkningsblocket samt mellan beräkningsblocket och dataöverföringsblocket. Data till visualiseringsblocket skickas med notifiers. Skillnaden mellan köer och notifiers är beskrivna i
avsnitt 2.5 på sidan 11 och kan kortfattat sägas innebära att för en kö så tas alla värden i
turordning medan för en notifier så tas bara det senaste värdet i beaktning.
För att alla blocken skall ha tillgång till de inställningar som anger hur mätdatainsamling,
beräkningar och dataöverföring skall göras så är dessa inställningar sparade i en subrutin
innehållande ett skiftregister. Som beskrivet på sidan 11 i avsnitt 2.5 så kan en subrutin
endast köras på ett ställe samtidigt. Fördelen med att spara inställningarna i ett skiftregistret är att endast ett block åt gången kan komma åt informationen, vilket gör att inte
informationen kan ändras av ett annat block under pågående läsning.
Programmet är uppdelat i tre olika faser som utförs efter varandra. Först så initieras programmet, sedan körs huvuddelen av programmet och till sist så avslutas programmet.
Under initieringsfasen så läses den senaste konfigurationsfilen in i skiftregistret. Om inte
konfigurationsfilen hittas så skapas en ny, tom, konfiguration och ett varningsmeddelande
visas för användaren. Under initieringsfasen skickas även ett meddelande till alla block
som används i programmet så att dessa initieras till rätt läge.
Programmet körs sedan kontinuerligt tills användaren väljer att avsluta det.
När användaren avslutar programmet så sparas sökvägen till den använda konfigurationsfilen undan så programmet hittar den nästa gång det startas. Vid avslutningen så ses det
även till att alla använda resurser frigörs.
6.2 Detaljer
Här beskrivs de olika blocken i figur 6.1 på sidan 25 i mer detalj.
6.2.1
Datainsamling
Datainsamlingen består av två olika evighetsloopar, en för att mäta varvtal och en för
analog mätdata. Dessa båda samarbetar genom att varvtalsloopen hela tiden skickar sitt
senaste mätvärde till den analoga loopen via en kö. När den analoga loopen har samlat in
en hel mätserie så sammanfogas den analoga mätdatan med alla varvtalsvärden som har
mätts under insamlingen av den analoga mätserien. Denna data skickas sedan vidare till
27
6.2 Detaljer
Utdata
Analog
mätdata
Sammanfoga
Varvtal
Figur 6.2: Datainsamlingen innehåller två stycken evighetsloopar, en för varvtalsmätning och en för mätning av analoga signaler. Evighetsloopen som utför den analoga mätningen sammanfogar även varvtalsdatan med den analoga datan.
de övriga blocken. Om varvtalet är så lågt att inget nytt varvtal har mätts under insamlingen av den analoga mätserien så kommer det senaste mätta varvtalet att användas. En
schematisk figur för datainsamlingen visas i figur 6.2.
Varvtal
För att kunna genomföra varvtalsmätningar så krävs det att det finns en räknare tillgänglig
för det. Enligt avsnitt 5 så finns det endast för Vimbasystemet vilket innebär att det endast
är med den hårdvaran det är möjligt att mäta varvtal.
Mätningen av varvtal är implementerat som en tillståndsmaskin med 4 olika tillstånd,
initiering, mätning, stängning och ett vänteläge. I figur 6.3 visas tillståndsmaskinens olika
tillstånd. När användaren aktiverar mätningen så ändras tillståndet till initieringsläget. Vid
initieringen så läses skiftregistret med den nuvarande konfigurationen av och mätkortet
ställs in så att det mäts på rätt kanal. Om initieringen inte ger något felmeddelande så
påbörjas mätningen.
Varvtalet mäts med hjälp av räknarkortets inbyggda klocka. Klockan i Vimbas räknarkort
PXI-6602 är på 80 MHz. Mätningen görs på sådant sätt att antalet klockcykler mellan två
positiva flanker i insignalen räknas och multipliceras med klockans periodtid för att få
periodtiden för insignalen. Denna mätning utförs kontinuerligt tills användaren avaktiverar mätningen eller det uppstår något fel. Efter varje mätning så skickas datan via en kö
till den analoga loopen. Om systemet avaktiveras eller om det uppstår något fel så byter
tillståndsmaskinen läge till stängningssteget där den virtuella kanal som skapas vid initieringen tas bort. Till sist återgår tillståndsmaskinen till vänteläget där den väntar på att
användaren åter skall aktivera systemet.
För tillfället kan endast varvtalet från en signal mätas.
Analog mätdata
Evighetsloopen för den analoga mätdatan består precis som varvtalsloopen av tillståndsmaskin i figur 6.3.
28
6
Implementering
Systemet avaktiverat
Vänteläge
Systemet
aktiverat
Fel
Stäng
Systemet
avaktiverat
/Fel
Initiering
Kör
Inget
fel
Systemet aktiverat
/ Inget fel
Figur 6.3: Tillståndsmaskinen som används av datainsamlings-, beräknings- och dataöverföringsblocket som kan ses i figur 6.1.
6.2 Detaljer
29
Under initieringen så känner systemet av vilka kanaler som finns för den aktuella hårdvaran och jämför sedan med konfigurationen i skiftregistret vilka kanaler som skall aktiveras. Även samplingsfrekvens och storlek på varje mätserie sätts. Storleken på de samplade
mätserierna bestäms av hur många sampel en mätserie skall innehålla samt hur mycket
mätserierna skall överlappa varandra. Tack vare överlappningen så behöver bara den nya
delen av varje mätserie samlas in, vilket gör att det insamlade mätserien kan vara mindre
än den önskade storleken på en mätserie. Rätt storlek på mätserien fås i beräkningsdelen
där överlappningen med den föregående mätserien ser till att den mätserie som beräkningarna utförs på är så stor som användaren önskar.
Mätningen går till som så att en mätserie samlas in för varje aktiv kanal. Sedan kalibreras
mätvärdena och kompenseras för eventuella nivåfel i givarna. Om samplingsfrekvensen
skall decimeras så utförs det genom att först lågpassfiltrera signalen och sedan radera
överflödiga sampel. Lågpassfiltreringen utförs på en signal som är sammansatt av den
föregående mätserien och den nuvarande för att filtret skall hinna svänga in sig enligt
teorin i avsnitt 2.3 på sidan 5. Lågpassfiltret som används är ett Butterworthfilter av 8:e
ordningen där brytfrekvensen är satt till den nya samplingsfrekvensen delad med 2,56.
När en datainsamling är genomförd så sammanfogas analog data med varvtalsdata och
skickas vidare. Under tiden så har redan insamlingen av nästa mätserie startats automatiskt
av den i LabVIEW inbyggda drivrutinen för att inga mätvärden skall missas mellan två
mätserier. Om ingen analog datainsamling görs så skickas varvtalsdata vidare varje 0,5 s.
6.2.2
Beräkningar
De beräkningar som för närvarande är implementerade i systemet är beräkning av likvärde, RMS-värde, envelope, fem toppar, toppfrekvens, toppfas, toppamplitud och varvtal.
De olika toppvärdena innebär att den mest dominanta frekvensen i signalen bestäms och
analyseras. Envelope beräknar det högsta enskilda värdet som har förekommit i signalen
sedan senaste beräkningen och fem toppar-beräkningen tar fram alla frekvenstoppar som
förekommer i signalen. Namnet fem toppar kommer ifrån att önskemålet från början var
att hitta just de fem mest dominanta topparna vilket nu är utvecklat till ett fritt antal toppar.
Beräkningarna utföres med hjälp av tillståndsmaskinen i figur 6.3 inuti en evighetsloop.
Innan första beräkningen görs så initieras beräkningarna genom att skiftregistret med konfigurationsfilen läses in. Från konfigurationsfilen fås en lista med alla beräkningsparametrar som användaren vill beräkna. Även den första uppsättningen med mätdata läses in.
Att mätdatan läses av beror på att mätserierna från de olika kanalerna innehåller namnet
på kanalen vilket gör att ett fält med kanalernas fönsterfunktioner, sorterat i samma ordning som kanalerna, kan skapas. Detta gör att fältet med mätserierna enklare kan kopplas
ihop med respektive fönsterfunktion under beräkningarna. Mätdatan används även till att
koppla ihop varje beräkningsparameter med rätt kanalindex.
De beräkningsparametrar som har ett passbandfilter som skall följa värdet av någon annan
beräkningsparameter söker igenom hela listan med beräkningsparametrar för att hitta rätt
parameterindex. Om en beräkningsparameters filter ställs in för att följa värdet av en
beräkningsparameter som kommer senare i listan så kommer det värde som beräknades
vid den föregående beräkningen att ange gränserna för filtret.
30
6
Implementering
De två beräkningarna, fem toppar och envelope, utförs på lite speciella sätt vilket kräver
vissa förberedelser under initieringsfasen. Detta är presenterat under respektive rubrik
nedan.
Som framgår i figur 6.4 är det första som händer vid varje beräkning att för alla kanaler
där envelope-värdet skall beräknas så uppdateras detta värde om kanalens nya mätserie
innehåller ett högre värde. Ifall mätserier skall överlappas så sparas den sista delen av
mätserien undan till nästa beräkning.
Vad som sker härnäst beror på om en beräkning skall genomföras vilket avgörs av uppdateringshastigheten som användaren har satt. Om ingen beräkning skall göras för den
nuvarande mätserien så inväntar beräkningsloopen nästa uppsättning av mätvärden. Om
beräkningarna däremot skall genomföras så påbörjas dessa med att överlappa den senaste
mätserien med den föregående, sparade, mätserien.
Efter det så utförs Fouriertransformation av, den eventuellt överlappade, mätserien med
LabVIEWs funktion fft mag-phase.vi. Denna funktion utför en FFT av mätserien med den
av användaren valda fönsterfunktionen. Ett amplitudspektrum och ett fasspektrum skapas
enligt avsnitt 2.4 på sidan 6. Eftersom fönsterfunktioner används så är amplitudspektrumet
multiplicerat med den följdriktiga förstärkningen. Amplitudspektrumet som skapas visar
RMS-värdet
av frekvenserna. Om toppvärdet önskas så måste spektrumet multipliceras
√
med 2.
När frekvensspektrumen har skapats så genomförs beräkningen av fem toppar innan hela
beräkningsparameterlistan gås igenom. För varje punkt i listan så beräknas det värde som
beräkningsparametern anger. Hur de olika beräkningarna sker beskrivs under respektive
underrubrik nedan. Alla resultaten läggs i tur och ordning i ett resultatfält. När alla beräkningar är klara så skickas resultatet iväg med en kö. Hela beräkningstillståndet kan ses i
figur 6.4.
När användaren avaktiverar systemet så byter tillståndsmaskinen tillstånd till stäng-läge.
I detta läge så nollställs alla fält som sattes under initieringsfasen.
Till sist så försätts tillståndsmaskinen i vänteläget där den stannar tills användaren återigen
aktiverar systemet.
RMS
RMS-beräkningen utföres på två olika sätt beroende på om filter skall användas eller ej.
Om filter inte används så beräknas RMS-värdet utifrån ekvation (6.1)
v
u N −1
u1 X
2
RMS = t
|f [n]|
(6.1)
N n=0
Om beräkningsparametern är inställd på att använda ett passbandsfilter så utnyttjas istället
Parsevals teorem beskrivet i avsnitt 2.4.3 på sida 11. Kombineras Parsevals teorem (ekvation (2.6) med formeln ovan för RMS så kan RMS värdet beräknas i frekvensdomänen.
Eftersom Fouriertransformationen utförs med en fönsterfunktion så måste den ekvivalenta brusbandbredden, förklarad på sida 10, tas med i beräkningen. Detta ger upphov till
6.2 Detaljer
Beräkna
Samplade
mätserier
Körs var n:te gång
Körs varje gång
Beräknad
data
Del av
föregående
mätserie
Spara del av mätserie
för att överlappa med
31
Figur 6.4: Tillståndsmaskinens beräkningssteg, Beräkningarna utförs i två huvudsteg. Dels ett steg som körs för varje mätserie och dels ett steg som genomförs så
ofta som användaren vill.
FFT
Fem
Toppar
Överlappa
mätserier
Envelopeberäkning
32
6
Implementering
följande formel för bestämning av RMS i frekvensdomänen.
v
u
−1
2
u 1 NX
|F [n]|
RMS = t 2
N n=0 ENBW
(6.2)
För att få RMS-värdet för det passbandet som är intressant så nollställs alla frekvenser
utanför passbandet. Noterbart är att den valda lösningen, där RMS-värdet beräknas i frekvensdomänen, i teorin endast fungerar på periodiska signaler.
Likspänningsvärde
Likspänningsvärdet beräknas genom att ta medelvärdet av data från en hel mätserie.
Envelope
Som tidigare nämnts så måste envelope-mätningen initieras innan den kan utföras. Detta
beror på att uträkningen måste göras för varje mätserie oavsett vad användaren har angivit
för beräkningsintervall. Vid initieringen så kollas alla beräkningsparametrar igenom och
kanalindexet för alla kanaler som skall utvärderas sparas i ett fält. Samtidigt skapas även
ett fält där resultatet från varje kanal kan sparas.
För varje ny mätdata så tas det högsta mätvärdet för varje kanal, är detta värde större
än de tidigare värdena för kanalen så sparas detta värde undan i resultatfältet. Sedan när
beräkningsintervallet anger att en beräkning skall genomföras så innehåller resultatfältet
envelope-värdet för varje kanal vilket då anges som resultat för hela perioden. Efter beräkningen så nollställs envelope-värdet så att en ny period kan utvärderas.
Beräkning av fem toppar
Beräkningen av fem toppar beräknar de frekvenser med högst amplitud inom ett, av användaren givet, passband. En beräkningsparameter kan endast ställas in för att returnera
amplituden, frekvensen eller fasen som resultat för någon av de frekvenserna med högst
amplitud. Därför kopplas flera beräkningsparametrar samman för att kunna returnera mer
än en frekvenstopps amplitud, fas eller frekvens. Denna sammankoppling av beräkningsparametrar sker vid initieringen av fem toppar-beräkningen där alla de beräkningsparametrarna som användaren har angett tillhör samma kanal och filter sammankopplas med
varandra. Detta gör att när beräkningen väl genomförs så beräknas de högsta topparna för
varje kanal och varje filter bara en gång. Sedan när listan med alla beräkningsparametrar
gås igenom så behöver endast det värdet för just den specifika toppen som beräkningsparametern anger läsas in.
Beräkningsalgoritmen för att bestämma topparnas värden använder sig av den aktuella
datans frekvensspektrum. Detta frekvensspektrum passbandsfiltreras genom att nollställa
amplituden för alla frekvenser utanför passbandet. För att få fram alla frekvenstoppar i
signalen så söks amplitudspektrumet igenom och alla frekvenser med en amplitud som är
större än alla omkringliggande frekvenser, inom en spännvidd definierad av användaren,
anses som en topp. För alla toppar som fås fram efter denna sökning sparas information
om amplitud, frekvens och fas undan sorterad efter amplituden. Amplituden är omvandlad från RMS-värde till toppvärde genom att √
alla frekvenslinjer i amplitudspektrumet,
förutom likspänningen, har multiplicerats med 2.
6.3 Användargränssnitt
33
Toppfrekvens
Den mest dominanta frekvensen fås genom att i amplitudspektrumet nollställa alla frekvenser utanför passbandet och sedan söka upp den frekvensen med högst amplitud.
Toppfas
För att finna vilken frekvens som har högst amplitud så genomförs samma operationer
som vid sökning av toppfrekvens. När frekvensen är känd så söks den motsvarande fasvinkeln upp i fasspektrumet och returneras som svar uttryckt i radianer.
Toppamplitud
Den mest dominanta frekvensens amplitud fås genom att i amplitudspektrumet nollställa
alla frekvenser utanför passbandet och sedan söka upp den högsta amplituden. Amplituden ges som RMS-värde.
Varvtal
Varvtalet beräknas genom att beräkna medelvärdet för alla varvtalsmätningar som gjorts
under insamlingen av den senaste mätserien utan eventuell överlappande del.
6.2.3
Dataöverföring
Dataöverföringen genomförs precis som i beräkningsblocket ovan i en evighetsloop innehållande tillståndsmaskin i figur 6.3. Tillståndsmaskinen har som förut de fyra olika
tillstånden, initiering, överföring, stängning, och väntan.
Beroende på om data ska skickas till Scadapro eller en OPC-server så blir beteendet i
alla lägen utom vänteläget lite olika. I initieringsläget så behöver endast ett fält med alla
beräkningsparametrars Scadaprokanaler, sorterat i samma ordning som beräkningsparametrarna är listade, iordningställas. För OPC-server så måste även varje kanal öppnas
vilket i sin tur även ger upphov till att id för just den kanalen måste sparas.
I överföringstillståndet så läses resultaten från beräkningarna av från en kö och skickas i
tur och ordning vidare till kanalerna listade under initieringen. Om någon beräkningsparameter har ett tomt fält där adressen skulle ha stått så innebär det att det beräknade värdet
inte skickas någonstans utan endast kan visualiseras inne i programmet.
Vid avslut av överföringen så stängs kanalerna till OPC-servern ned, om överföringen
istället har skett till Scadapro så behöver inget göras under avslutningsfasen.
6.2.4
Visualisering av data
Visualiseringen av data sker med hjälp av en evighetsloop som så fort ny data i form av
antingen ren mätdata eller beräknade värden finns tillgänglig.
6.3 Användargränssnitt
Användargränssnittet är uppbyggt utifrån en händelsestruktur där programmet väntar på
en inmatning av användaren. När användaren utför någon handling så utförs den specifika
funktionen.
34
6
Implementering
Systemet visar felmeddelanden genom att alla funktioner skriver eventuella fel till ett
skiftregister. Om detta skiftregister innehåller något felmeddelande så skrivs detta felmeddelande ut på skärmen.
6.4 Diskussion
I första versionen så utgjordes den interna kommunikationen enbart av lokala booliska
variabler. Detta gav upphov till två problem, dels att det blev svårare att använda variablerna inne i subVI :s1 vilket gjorde det svårare att skapa lättöverskådlig kod. Det andra
problemet var att alla loopar fick samma meddelanden. Det var inte möjligt att bara starta
eller stänga av någon av looparna. Om ett nytt meddelande skulle skickas så krävdes det
också att en ny lokal variabel skapades. För att komma runt det här problemet så byggdes
ett nytt meddelandesystem i den nya versionen där varje meddelande består av en adress
och ett meddelande. På detta sätt så kan alla loopar som berörs av meddelandet adresseras. Om en ny form av meddelande skulle behöva skapas i framtiden så finns redan en väl
fungerande kommunikationskanal, där endast meddelandets innehåll behöver skapas.
Att insamlingen av data sker på två olika sätt, dels genom mätning av analoga signaler, där
varje mätning tar en förutbestämd tid att genomföra, och dels genom mätningen av varvtal,
där tiden för en mätning beror på varvtalet, skapar ett problem i hur dessa skall synkroniseras med varandra. I den första versionen så samlades dessa in helt separat och skickades
vidare till ett beräkningsblock där vidare beräkningar skedde. I beräkningsblocket så togs
det senaste varvtalet och kopplades samman med den senaste serien av analog mätdata.
Eftersom mätningen av de analoga signalerna ofta ställs in så att den tar ca 1 s att genomföra och mätningen av varvtal bara tar en periodtid av varvtalet att genomföra (1000 rpm
[varv per minut] → 0,06 s) så kan data bli väl osynkroniserad vid detta förfarande. Det
egentliga varvtalet under insamlingen av den analoga mätserien skulle till exempel kunna
ändras från 100 rpm till 120 rpm om turbinen rampas upp. Detta skulle resultera i att endast det senare värdet skulle anges vilket inte ger en korrekt bild av varvtalet. Vid sådana
förändringar av varvtalet skulle ett medelvärde av varvtalet under hela tidsperioden ge en
bättre bild av det verkliga varvtalet. Ett problem som kan uppstå med den valda lösningen
i den nya versionen där varvtalet synkroniseras med analog mätdata är att periodtiden för
varvtalet kan vara längre än tiden det tar att sampla den analoga mätserien. Detta gör att
varvtalsmätning inte hinner utföras under insamlingen av den analoga datan. Lösningen
på det problemet är att i dessa fall återanvända det senast insamlade varvtalet. Även denna
lösning har nackdelar, till exempel att det kan vara svårt att upptäcka om varvtalssignalen
försvinner eftersom mätningen ändå kommer att ge ett resultat.
Att sammankoppla de båda typerna av mätdatainsamling löste även ett annat problem med
den tidigare versionen. Nämligen att beräkningsblocket fick sin data från flera olika block
vilket gav ett rörigt program där för många delar var beroende av varandra. I den nya versionen så är de olika blocken betydligt mer avgränsade med ett tydligt gränssnitt utåt vilket
gör det betydligt lättare att återanvända blocken i andra applikationer. Av främst denna anledning så valdes envelope-beräkningen att utföras i beräkningsblocket. Rent logiskt sätt
så passar beräkningen in bättre i just beräkningsblocket. Att det ändå fanns funderingar
1 En
subVI är ett programblock inuti ett annat programblock i LabVIEW.
6.4 Diskussion
35
på att implementera den direkt i mätdatainsamlingsblocket beror på det speciella förfarandet vid beräkningen där alla mätserier måste utvärderas. Vid de andra mätningarna så kan
användaren själv bestämma med vilket intervall mätserierna skall analyseras. Om envelope-mätningen skulle ha utförts i mätdatainsamlingsblocket så skulle endast data behöva
skickas till beräkningsloppet så ofta som användaren väljer att beräkningarna skall göras.
En av de saker som har vållat störst problem är hur beräkningen av fem toppar skall
konfigureras och genomföras. I den tidigare versionen så konfigurerades beräkningen så
att alla fem toppars fas, frekvens och amplitud beräknades med en beräkningsparameter.
Detta gjorde att en speciell meny behövde skapas för att kunna ställa in den speciella
beräkningsparametern. Ytterliggare ett problem med den lösningen var att beräkningsparametrarna skiljde sig beroende på vilken typ av mätning det var, vilket inte kändes helt
logiskt. Detta gjorde att målsättningen för den nya versionen var att alla beräkningsparametrar skulle ställas in och bete sig på samma sätt oberoende av vilken typ av beräkning
som skulle genomföras. Lösningen på detta problem blev att lägga till ett nytt fält för alla beräkningsparametrar där information om den specifika mätningen kan sparas. I varje
beräkningsparameter, där beräkningen av fem toppar skall genomföras, finns det sparat
vilken mätning den tillhör, vilken topp i mätningen och om fas, amplitud eller frekvens
ska sparas. Detta fält kan i framtiden även tänkas användas för andra beräkningar än beräkningen av fem toppar.
För att inte iterationen efter den specifika toppen som eftersöks vid beräkningen av fem
toppar skall behöva göras för varje beräkningsparameter så beräknas alla toppar innan beräkningsparameterlistan gås igenom. Vilket sparar på datorns resurser. Den nya metoden
att ange vilka toppar som skall beräknas medför även att användaren kan bestämma helt
själv hur många toppar som skall beräknas, vilket inte begränsar funktionen till att bara
beräkna precis fem toppar.
Hur ofta de olika beräkningarna skall utföras och därmed skickas till Scadapro eller OPCservern anges i antal analoga mätserier mellan beräkningarna. Detta betyder att om endast
varvtal mäts så kan inte uppdateringsfrekvensen bestämmas utan är då alltid 0,5 s. Att
uppdateringsfrekvensen anges i hela mätserier och inte i tid beror på att det vore meningslöst att ställa in till exempel 1,5 s om varje mätserie tar 1 s att mäta eftersom resultatet
skickas först när en hel mätserie är färdig.
Under provkörning av den tidigare versionen så visade det sig att när antalet beräkningsparametrar uppgick till ett hundratal så var det inte möjligt att utföra en ny Fouriertransformation för varje beräkningsparameter utan att programmet förbrukade för mycket CPU-kraft.
För att lösa det så bestämdes det att Fouriertransformationen bara skulle genomföras en
gång för varje inkanal. Detta medför i sin tur att fönsterfunktionen måste vara densamma
för alla beräkningsparametrar med samma insignal. Denna kompromiss går bra att göra
eftersom att fönsterfunktion ändå, i de flesta fall, väljs mer efter insignalens karaktäristik
än efter vilken parameter som skall beräknas.
För att öka prestandan på programmet så förbereds så mycket som möjligt under initieringen av de olika blocken.
7
Resultat
Arbetet har resulterat i att det finns två olika hårdvaror som båda kör samma mjukvara.
Beroende på vilken hårdvara som används så är systemets funktionalitet lite olika. Systemet känner självt av vilken hårdvara som används och avgör vilka inställningar som
är möjliga. Används Vimba-hårdvaran så går det att mäta varvtal vilket inte är möjligt
med Simon-hårdvaran, om inte ytterligare hårdvara införskaffas. Samtidigt så har Vimbahårdvaran bara hälften så många kanaler för analog mätning som Simon-hårdvaran. För
mer information om hårdvaran se kapitel 5.
Tabell 7.1 sammanfattar systemets prestanda. Jämfört med kraven i tabell 4.1 så uppfyller
det utvecklade systemet alla krav förutom införandet av en trigger för att starta mätningarna. Hur pass bra noggrannhet systemet har är inte undersökt. Utan i tabell 7.1 där resultatet
jämförs med kraven refererar detta endast till databladen för de olika mätkorten och dess
respektive specifikation.
Systemet har testats med simulerade signaler från en signalgenerator för att validera att
de olika funktionerna fungerar som de ska, vidare så har även vissa stresstester gjorts
där alla kanaler har använts för att se om CPU-kraften är tillräcklig för systemet. Testerna som har gjorts visar att CPU-kraften är fullt tillräcklig när Simon-hårdvaran används.
Med den hårdvaran kan alla 32 kanaler mätas samtidigt och hundratals parametrar beräknas löpande utan att vara nära att använda all CPU-kraft. Däremot är prestandan för
Vimba-hårdvaran på gränsen till vad som krävs då det vid hög samplingsfrekvens (runt
32 kHz) och med alla 16 kanaler igång finns risk att CPU-kraften inte är tillräcklig. Detta
ger uttryck i att systemet blir långsamt och att systemets olika köer fylls på snabbare än
de hinner tömmas vilket till sist leder till att datorns internminne blir fullt. Vid kortare
perioder är det inget problem om CPU-användandet uppgår till 100 % eftersom datorn då
har möjlighet att jobba ifatt och tömma köerna när CPU-användningen minskas. Tester
har även visat att kommunikationen med OPC-servern begränsar hur ofta resultaten kan
37
38
7
Resultat
uppdateras då det, i längsta fall, kan ta flera sekunder att skriva ett hundratal värden till
servern.Det här gör att vid skrift till OPC-server så måste användaren göre en avvägning
mellan antalet värden som skicas till servern och uppdateringsfrekvensen.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Simon
32 kanaler, möjligt att
utöka
Maximal samplingsfrekvens minst 51,2 kHz.
204,8 kHz
Inspänningsområde minst 100 mV - 20 V.
± 0,316; 1; 3,16; 10 V
Upplösning minst 16 bitar.
24 bitar
Amplitudfel max 0,7 %.
±1 dB (ca 1 %)
Frekvensfel max 0,012 %.
0,0025 %
Möjlighet till både AC och DC koppling.
Ja
Beräkna RMS-värde.
Ja
Beräkna DC-värde.
Ja
Beräkna toppvärde.
Ja
Få den dominerande frekvensens amplitud, fas och frekvens i olika passband.
Ja
Minst fyra olika fönsterfunktioner för frekvensanalys.
Ja (14 st)
Överföra data till Scadapro.
Ja
Överföra data till OPC-server.
Ja
Systemet skall vara modifierbart med ny funktionalitet.
Ja
Visa data på datorskärmen på något sätt.
Ja
Spara och ladda inställningar från hårddisk.
Ja
Mäta turbinens varvtal.
Nej
Möjlighet till individuella samplingsfrekvenser för de olika kanalerna.
Delvis
Möjlighet till olika mätseriestorlek för olika kanaler.
Delvis
Beräkna RMS-värde i specifika passband.
Ja
Passband med gränser som anpassar sig efter något annat mätvärde.
Ja
Mätning som returnerar signalens fem mest dominanta toppar.
Ja
Envelope, mätning som ger det högsta värdet signalen har haft sedan förra mät- Ja
ningen.
Trigger signal för att starta mätningen.
Nej
Importera och exportera inställningar från/till kalkylblad.
Ja
Överlappande mätserier.
Ja
Vimba
16 kanaler, möjligt att
utöka
102,4 kHz
±10 V
24 bitar
±1 dB (ca 1 %)
0,0030 %
Ja
Ja
Ja
Ja
Ja
Ja (14 st)
Ja
Ja
Ja
Ja
Ja
Ja
Delvis
Delvis
Ja
Ja
Ja
Ja
Nej
Ja
Ja
39
25
26
27
Krav
Minst 32 inkanaler, Antalet inkanaler skall gå att utöka.
Tabell 7.1: Resultat jämfört med kraven på systemet presenterade i tabell 4.1.
#
1
8
Diskussion
Det framtagna systemet lever upp till förväntningarna som fanns på systemet. Även då
kommunikationen med OPC-servern inte fungerar helt tillfredsställande då kommunikationen är långsam. Detta problem har undersökts och försökt lösas utan större framgång.
Viss förbättring erhölls om servern flyttades till den dator som körde mätsystemet.
Hårdvaran som systemet använder sig av klarar inte av kravet på inspänningsområde, vilket har diskuterats i avsnitt 5.3. Att inspänningsområdet bara är ±10 V istället för ±20 V
innebär i sin tur att kravet på noggrannheten för de mätta signalernas amplitud kan anses
som uppfyllt. Eftersom 1 % fel med inspänningsområdet ±10 V motsvarar ett fel på 0,5
% vid ±20 V.
Ett stort fokus under arbetet har legat på att skapa implementeringar som enkelt går att
modifiera i framtiden utan att det uppstår problem med andra delar av programmet. Till
detta har den tydliga blockstrukturen i LabVIEW varit till stor hjälp då varje block automatiskt blir avgränsat med tydliga in- och utsignaler. Målsättningen har varit att varje
del i programmet skall vara så väl dokumenterat så det genom att endast studera in och
utsignaler samt dokumentation om blocket, skall gå att skapa ett ersättningsblock. Detta
anses som uppnått vilket borde innebära en enkel hantering av programmet i framtiden.
Mer prestandatester över systemet skulle vara önskvärt för att se var gränsen för systemet
går. Detta är något som inte har hunnits med under arbetets gång. Systemet har bara
testats i sådan grad att det fungerar för nuvarande nivå av mätpunkter (32 kanaler och 300
beräkningar). För Simon-hårdvaran så är denna belastning inget problem utan mätningen
använder maximalt runt 30 % av CPU-kraften. Däremot Vimba-hårdvaran kräver en viss
kontroll av CPU-användningen när dess alla 16 kanaler används. För att prova Simonhårdvaran med fler kanaler så skulle fler mätkort behöva köpas in.
En avancerad algoritm för bestämning av frekvenstoppar utvärderades under arbetets
41
42
8
Diskussion
gång. Denna algoritm finns inte beskriven i rapporten. Algoritmen kan kortfattat sammanfattas med att den byggde på uppskattningar där det togs hänsyn till de närliggande
frekvensstaplarna och även av utsmetningen från dessa staplar. Tyvärr visade det sig att
algoritmen var alldeles för resurskrävande vilket gjorde att den enklare lösningen med
Fouriertransformation implementerades. En fördel med denna enklare lösning är att det
är lättare för användaren att ta till sig metoden och kontrollera så den beräknar rätt.
Längst tid under arbetets gång, förutom teoristudier och dokumentation, har utvecklingen
av ett lättöverskådligt användargränssnitt tagit. Problemet har till stor del bestått i att skapa
ett intuitivt gränssnitt som samtidigt ger användaren full kontroll över systemet.
Användandet av det grafiska programsspråket G och LabVIEW, istället för ett textbaserat
språk som Java eller C++ har inneburit både för och nackdelar. En av de största fördelarna är den relativt enkla implementationen av ett grafiskt användargränssnitt där det mesta
ordnas automatiskt. En annan fördel är det välutvecklade biblioteket med funktioner för
datainsamling och signalanalys som finns i LabVIEW. Den största nackdelen är svårigheten att skapa ren och tydlig kod med det grafiska språket. För varje liten förändring av
koden så behöver ofta alla trådar som binder samman de olika blocken dras om för att
hålla koden snygg.
8.1 Framtiden
De framtida förbättringar som kan ses nu är att införa den triggerfunktionalitet som efterfrågats av användarna och implementera så att varvtal går att mäta på fler ingångar. Vidare
så vore en algoritm som möjliggör mätning av varvtalssignaler via de analoga ingångarna
önskvärd. Detta skulle innebära att Simon-hårdvaran skulle kunna mäta varvtal utan att
någon mer hårdvara behöver införskaffas.
Vidare så skulle även mer tester av systemet vara önskvärt för att kunna fastställa precisionen på mätningar och beräkningar och för att få klarhet i hur många kanaler och beräkningsparametrar systemet klarar av. Det vore även bra att se över om det finns någon
lösning på problemet med den långsamma överföringen till OPC-servern.
Appendix
A
Användarhandledning
Säkerställ innan start av programmet att Simon.ini filen ligger i samma mapp som det
exekverbara programmet Simon.exe. När programmet har startats så syns fönstret i figur
A.1. Detta fönster är programmets huvudfönster, det är härifrån som alla programmets
funktioner kan nås. I ovankant av menyn finns följande alternativ.
• File
– New, skapar en ny konfiguration.
– Load, laddar en sparad konfiguration.
– Save, sparar den nuvarande konfigurationen.
– Save as.., sparar den nuvarande konfigurationen med möjligheten att välja
sökväg och namn.
– Import settings, importerar inställningar från ett kalkylblad.
– Export settings, exporterar inställningar till ett kalkylblad.
– Exit, stänger av programmet.
• Config
– Config parameters, ändrar inställningarna om vilka parametrar som skall beräknas.
– Config channels, ändrar inställningarna om vilka hårdvarukanaler som används.
• View
– Graph, visar en graf över de samplade signalerna.
45
46
A
Användarhandledning
Figur A.1: Programmets huvudfönster
– FFT, visar ett amplitudspektrum över en valbar samplad signal.
– Display data, visar en tabell med alla beräknade värden.
Huvudfönstret har även en knapp för att aktivera hela systemet och en knapp för att rensa
rutan med felmeddelanden.
A.1 Menyalternativ
I det här avsnittet så kommer alla menyns alternativ att beskrivas.
A.1.1 File
File-alternativet är otillgängligt när systemet är aktiverat.
New
Skapar en ny tom standard konfiguration.
Load
Öppnar datorns utforskare där en existerande konfiguration kan väljas och laddas in i
programmet.
Save
Sparar den nuvarande konfigurationen utan att ända namn och sökväg.
Save As. . .
Öppnar datorns utforskare där namn och sökväg kan väljas innan konfigurationen sparas.
A.1 Menyalternativ
47
Import settings
Importerar inställningar från ett kalkylblad. Kalkylbladet skall vara i xls-format och skall
vara konfigurerat på samma sätt som kalkylbladet i figur A.2. Ett tips är att konfigurera en
kanal och en beräkningsparameter i programmet och sedan exportera inställningarna till
ett kalkylblad för att få rätt layout i kalkylbladet.
Export settings
Öppnar datorns utforskare där sökväg och namn kan väljas för det kalkylblad dit inställningarna exporters.
Exit
Stänger av programmet.
A.1.2 Configuration
Configuration-alternativet är otillgängligt när systemet är aktiverat.
Channel configuration
Fönstret som ses i figur A.3 används för att ställa in hårdvarukanalerna. Till höger i fönstret så är alla konfigurerade analoga signaler listade. Inställningarna kan delas in i tre olika
delar, dels i de övergripande inställningarna som är gemensamma för alla kanaler, dels i
varvtalsinställningar och dels i de specifika inställningarna för varje kanal. Utöver detta
så finns det i det nedre högra hörnet knappar för att lägga till, ta bort, kopiera och klistra
in hårdvarukanaler. De övergripande inställningarna ställer in antalet sampel i varje mätserie hur mycket mätserierna skall överlappas samt vilken samplingsfrekvens som skall
användas.
Om hårdvaran har möjlighet att mäta varvtal så är varvtalsinställningarna tillgängliga.
Namnet som skrivs in som tag är det namn som kanalen kommer att dyka upp som vid
beräkningsparameterinställningarna. Scale, anger hur många pulser som varvtalsgivaren
ger per varv.
De kanalspecifika inställningarna ställs in på följande sätt: Channel in use, aktiverar och
avaktiverar kanalen. Divider, vid annat värde än 1 så kommer samplingsfrekvensen och
mätseriestorleken att divideras med det specificerade värdet. Physical channels, bestämmer till vilken hårdvarukanal som kanalen tillhör. Hårdvarukanalerna är sorterade från
vänster till höger på hårdvaran till exempel så betyder PXI 1/Slot2/ai0 kanal 0 på det kort
som sitter i chassits andra fack.
• Coupling, avgör om AC eller DC koppling skall användas.
• Tag, anger namnet på mjukvarukanalen.
• Unit, enhet på mätningen.
• Offset, lägger till offset på den samplade signalen.
• Description, beskrivning av kanalen.
• Scale, konverterar från den mäta spänningen till önskad enhet.
48
A
Användarhandledning
Figur A.2: Ett exempel på inställningar gjorde på ett kalkylblad som kan importeras
in i programmet.
A.1 Menyalternativ
Figur A.3: Fönster för att ställa in hårdvarukanaler.
49
50
A
Användarhandledning
• Maximum/minimum input voltage, sätter inspänningsområdet.
• Window function, avgör vilken fönsterfunktion som används för kanalen.
• Window parameter, specificerar betaparametern för Kaisefönstret, standardavvikelsen för ett Gaussianfönster, och förhållandet, s, mellan huvudloben och sidoloben
för ett Dolph-Chebyshev fönster. Om något annat fönster är valt så ignoreras den
här parametern.
Parameter configuration
Fönstret som ses i figur A.4 används för att ställa in beräkningsparametrarna. Till höger
i fönstret så är alla konfigurerade beräkningsparametrar listade. Inställningarna kan delas
in i två olika delar, dels i de övergripande inställningarna som är gemensamma för alla
beräkningsparametrar och dels i de specifika inställningarna för varje beräkningsparameter. Utöver detta så finns det i det nedre högra hörnet knappar för att lägga till, ta bort,
kopiera och klistra in hårdvarukanaler. De övergripande inställningarna ställer in hur ofta
beräkningarna skall göras samt var resultatet skall skickas. Beräkningsfrekvensen ställs
in i tidsenheter som är heltal av samplingsperioden. Anges värdet 1 mätserie så kommer
varje mätserie att analyseras och anges 2 mätserie så kommer varannan mätserie att analyseras och så vidare. Väljs Scadapro som mottagare av data så anges även vilken dator som
skall ta emot informationen. De beräkningsspecifika inställningarna ställs in på följande
sätt:
• In use, aktiverar och avaktiverar beräkningsparametern.
• Physical Channel, anger vilken signal beräkningen skall göras på.
• Tag, namn på beräkningsparametern.
• OPC/Scadapro path, adress dit resultatet skall skickas.
• Five peak index, kopplar ihop de parametrarna som tillhör samma fem topparberäkning.
• Peak number, anger vilken topp som skall analyseras (1 för högsta toppen, 2 för
näst högsta osv.).
• Peak spacing, anger minsta avståndet för att två toppar skall räknas som olika toppar.
• Property, anger om amplitud, frekvens eller fas önskas.
• Filterfunction, anger vilken typ av filter som skall användas.
• Filter low /high, anger bandpassfiltrets övre respektive undre gräns antingen uttryckt i Hertz eller uttryck i procent av det värdet som beräkningsparametern det
följer har.
• Follow parameter, anger vilken beräkningsparameters resultat som filtret skall följa.
A.1.3 View
Under detta menyval så kan tre olika sätt att visualisera data visas.
A.1 Menyalternativ
Figur A.4: Fönster för att ställa in beräkningsparametrar.
51
52
A
Användarhandledning
FFT
Visar ett amplitudspektrum över en av användaren vald inkanal. Användaren kan bestämma om amplituden skall anges i decibel eller ej samt vilken fönsterfunktion som skall
användas.
Graph
Visar en graf med alla inkanalers senast samplade datablock
Display data
Visar en tabell med beräkningsparametrarnas namn samt värde.
Litteraturförteckning
HP E1432A Technical specifications, 1997. URL http://literature.agilent.
com/litweb/pdf/5965-7193E.pdf. Besökt: 2013-08-29. Inte citerad.
NI 446x Specifications, 2008.
URL http://www.ni.com/pdf/manuals/
373770j.pdf. Besökt: 2013-08-29. Inte citerad.
NI 447x Specifications, 2009a.
URL http://www.ni.com/pdf/manuals/
373861d.pdf. Besökt: 2013-08-29. Inte citerad.
NI 660x Specifications, 2009b. URL http://www.ni.com/pdf/manuals/
372141b.pdf. Besökt: 2013-08-29. Inte citerad.
NI 449x Specifications, 2012.
URL http://www.ni.com/pdf/manuals/
372125f.pdf,note={Besökt:2013-08-29}. Inte citerad.
Bengtsson, Lars. Elektriska mätsystem och mätmetoder. Studentlitteratur, 2001. ISBN
91-44-01411-2. Citerad på sidorna 5, 6, 8, and 9.
Bengtsson, Lars. LabVIEW från början. Studentlitteratur, 2004. ISBN 91-44-03798-8.
Citerad på sida 11.
Carlsson, Per och Johansson, Staffan. Modern elektronisk mätteknik. Liber, 1997. ISBN
91-47-01098-3. Citerad på sidorna 6 and 7.
Cerna, Michael och Harvey, Audrey F. The fundamentals of fft based signal analysis and measurement.
Application note 041, National Instruments, 2000.
URL
http://www.lumerink.com/courses/ece697/docs/Papers/
The%20Fundamentals%20of%20FFT-Based%20Signal%20Analysis%
20and%20Measurements.pdf. Besökt: 2013-08-29. Citerad på sidorna 5, 9,
and 10.
Duhamel, P. och Vetterli, M. Fast fourier transforms: A tutorial review and a state of the
art. Signal Processing, 19:259–299, 1990. Citerad på sida 10.
Harris, F.J. On the use of windows for harmonic analysis with the discrete fourier transform. Proceedings of the IEEE, 66:51–83, 1978. Citerad på sidorna 9 and 10.
53
54
Litteraturförteckning
Instruments, National.
Differences between reentrant vis (preallocate), reentrant vis (share clones), vi templates, and dynamic vis - national instruments, a.
URL http://digital.ni.com/public.nsf/allkb/
98847B4E4C715E6D86256C59006B57CC. Citerad på sida 11.
Instruments, National. What is labview? - developer zone - national instruments, b. URL
http://zone.ni.com/devzone/cda/pub/p/id/1141. Citerad på sida 11.
Instruments, National. Labview core 2 course manual, August 2010. Part Number
325292B-01. Citerad på sida 11.
Jarman, David. A brief introduction to sigma delta conversion. Application note, intersil, 1995. URL http://www.intersil.com/content/dam/Intersil/
documents/an95/an9504.pdf. Besökt: 2013-08-29. Citerad på sida 3.
Kester, Walt. Adc architectures iii: Sigma-delta adc basics. Mt-022 tutorial, Analog Devices, 2008. URL http://www.analog.com/static/imported-files/
tutorials/MT-022.pdf. Besökt: 2013-08-29. Citerad på sidorna 3 and 5.
R.J.Beerends, Morsche, H.G.ter, den Berg, J.C.van, och de Vrie, E.M.van. Fourier and
Laplace Transforms. Cambridge University Press, first utgåvan, 2003. ISBN 0-52153441-0. Citerad på sidorna 3, 6, 8, and 11.
Fly UP