• No results found

Development of analysis system for dynamic signals

N/A
N/A
Protected

Academic year: 2021

Share "Development of analysis system for dynamic signals"

Copied!
65
0
0

Loading.... (view fulltext now)

Full text

(1)

Department of Science and Technology

Institutionen för teknik och naturvetenskap

Linköping University

Linköpings universitet

g

n

i

p

ö

k

r

r

o

N

4

7

1

0

6

n

e

d

e

w

S

,

g

n

i

p

ö

k

r

r

o

N

4

7

1

0

6

-E

S

Utveckling av analyssystem för

dynamiska signaler

Olle Kalered

2013-09-24

(2)

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

(3)

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

extra-ordinä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/

(4)

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

(5)
(6)

Sammanfattning

Den här rapporten presenterar ett examensarbete där ett mätdatainsamlingssystem för dy-namiska 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 existe-rande 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 LabVI-EW.

Resultatet blev ett system som lever väl upp till förväntningarna.

(7)
(8)

Innehåll

Notation vii 1 Introduktion 1 1.1 Problemställning . . . 1 1.2 Metod . . . 2 1.3 Avgränsning . . . 2 2 Teori 3 2.1 Datasampling . . . 3 2.2 Σ∆-omvandling . . . 3 2.3 Filter . . . 5 2.3.1 Digitala Filter . . . 6 2.4 Fouriertransformation . . . 6 2.4.1 Fönsterfunktioner . . . 7

2.4.2 Fast Fourier Transform . . . 10

2.4.3 Parsevals teorem . . . 11

2.5 LabVIEW . . . 11

3 Siemens befintliga system 13 3.1 Hårdvara . . . 13

3.2 Funktionalitet . . . 13

3.3 Användargränssnitt och inställningar . . . 14

4 Krav 17 4.1 Kravlista för systemet . . . 17 5 Hårdvara 21 5.1 Vimba . . . 21 5.2 Simon . . . 23 5.3 Diskussion . . . 23 6 Implementering 25 6.1 Översikt . . . 25 v

(9)

6.2 Detaljer . . . 26 6.2.1 Datainsamling . . . 26 6.2.2 Beräkningar . . . 29 6.2.3 Dataöverföring . . . 33 6.2.4 Visualisering av data . . . 33 6.3 Användargränssnitt . . . 33 6.4 Diskussion . . . 34 7 Resultat 37 8 Diskussion 41 8.1 Framtiden . . . 42 A Användarhandledning 45 A.1 Menyalternativ . . . 46 A.1.1 File . . . 46 A.1.2 Configuration . . . 47 A.1.3 View . . . 50 Litteraturförteckning 53

(10)

Notation

FÖRKORTNINGAR

Förkortning Betydelse AC Växelström AD Analog till Digital CPU Processor

DC Likström

DFT Diskret Fouriertransformation DSP Digital signalprocessor ENBW Equivalent Noise Bandwidth

FFT Fast Fourier Transform FIR Finite Impulse Response IIR Infinite Impulse Response

NI National Instruments

OPC Object Linking and Embedding (OLE) for Process Control PXI PCI eXtensions for Instrumentation

REI Research and development, Engineering support, Instrumen-tation and measurement

RMS Likriktat medelvärde VI Virtual Instrument

VXI VME eXtensions for Instrumentation Σ∆ Sigma Delta

(11)
(12)

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å avdelning-en för mätteknik och instrumavdelning-entering, REI. Avdelningavdelning-ens ansvarar för framtagning och genomförande av instrumenteringsunderlag, mätdatainsamlingsutrustning, mätdatainsam-ling, 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 analy-sera vibrationerna på skovlarna och trycket i brännkamrarna på en gasturbin. Detta befint-liga 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 befint-liga systemet. Detta innebär att det utvecklade systemet klarar av allt som det befintbefint-liga 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örs-ta 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änningssig-naler och för det tredje så kan varvtalssiglikspänningssig-naler 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. Uppdateringsfre-kvensen till servern är omkring 1 Hz.

I arbetet ingår en analys av det gamla systemet, undersökning av önskad funktionalitet, 1

(13)

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 an-vä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 ver-sion 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. Varvtalssig-nalerna 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 and-ra 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 funk-tionalitet utifrån en prioriterad lista där enbart den funkfunk-tionalitet 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.

(14)

2

Teori

I det här kapitlet presenteras bakomliggande teori som används i systemet. Detta omfat-tar datasampling genom, enligt Kester (2008, s.1), en av de mest använda samplingstek-nikerna Σ∆-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

dub-belt så hög som den högsta frekvensen i signalen. Uppfylls inte detta så uppstår ett fe-nomen 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, in-nehå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

(15)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 −1 −0.5 0 0.5 1 Tid Amplitud

Korrekt samplad signal Otillräcklig samplingsfrekvens

Figur 2.1:En korrekt samplad signal och en undersamplad signal. Den undersamp-lade signalen upplevs som en signal med lägre frekvens än vad den egentligen har.

+ Digitalt Filter 1-bit DAC Vref Vref/2 -+ Vin Utdata

(16)

2.3 Filter 5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 Tid Amplitud

Σ∆−omvandling med 2 bitars upplösning

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 1 2 3 Tid Amplitud

Σ∆−omvandling med 3 bitars upplösning

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är-det 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 2Qnä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 AD-omvandlare.

2.3 Filter

För att undvika problemet med vikningsdistorsion så används ett lågpassfilter. Lågpass-filtreringen 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 viknings-distorsion. 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 karak-tä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.

(17)

2.3.1 Digitala Filter

Bengtsson (2001, s.549–550) skriver att när signalen är samplad så är det möjligt att filtre-ra 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 Fourier-transformationen DFT. Den diskreta FourierFourier-transformationen definieras av R.J.Beerends m.fl. (2003, s.360) som F [k] = N −1 X n=0 f [n] e−2πink/N (2.2)

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 frekvensspekt-rum 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 hal-van av frekvensspektrumet är en speglad kopia av första halhal-van 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 = kFS

N , (k = 0, 1, . . . , N

(18)

2.4 Fouriertransformation 7 0 50 100 150 200 250 300 350 400 450 500 0 0.5 1 1.5 2 2.5 3 3.5 Frekvens Amplitud

y=2sin(2π*50t+π)+sin(2π*300t+0,5π)+3sin(2π*120t)

(a)Amplitudspektrum 0 50 100 150 200 250 300 350 400 450 500 −5 0 5 Frekvens Fas

y=2sin(2π*50t+π)+sin(2π*300t+0,5π)+3sin(2π*120t)

(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).

U0= F [0] , Uk= 2 · q Re (F [k])2+ Im (F [k])2, (k = 1, 2, . . . ,N 2) (2.4) φk= arctan  −Im (F [k])Re (F [k])  , (k = 1, 2, . . . ,N 2 ) (2.5) 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 frekvensspektru-met, ifall periodtiden för signalen inte är en multipel av tiden som signalen är samplad

(19)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.5 1 1.5 2 2.5 3 Tid Amplitud

Repetering av samplad signal Riktig signal

Figur 2.5:Om periodtiden för signalen inte matchar samplingsperioden så utförs Fouriertransformen på en felaktig signal.

−40 −20 0 20 40 −120 −100 −80 −60 −40 −20 0 Frekvenslinjer dB Fouriertransform 0 200 400 600 800 1000 0 0.2 0.4 0.6 0.8 1 Sampel Amplitud Hann fönster

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 datasigna-len 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 sig-nalen är periodisk utanför samplingsfönstret. Detta görs genom att multiplicera insigsig-nalen med en fönsterfunktion som går mot noll vid fönsterändarna. Ett sådant fönster är Hann-fö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 utnytt-jats i figur 2.7, där en faltning är gjord mellan en signals frekvensspektrum och frekvens-spektrumet 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

(20)

2.4 Fouriertransformation 9 −30 −20 −10 0 10 20 30 −40 −20 0 Frekvenslinjer decibel 0 200 400 600 800 1000 0 0.5 1 Frekvens Amplitud 0 100 200 300 400 500 600 700 800 900 1000 −40 −20 0 Frekvens decibel

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 −3 dB bredd

[frekvenslin-jer] −6 dB bredd [frekvenslin-jer] Högsta sidlob [dB] Sidlobernas fallhastighet [dB/dekad] Rektangulärt 0, 88 1, 21 −13 20 Hann 1, 44 2, 00 −32 60 Flat Top 2, 94 3, 56 −44 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 funk-tion. Dessa är huvudlobens −3 dB och −6 dB bredd, högsta sidlobens nivå och sido-lobernas 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ös-ning och amplitudupplösfrekvensupplös-ning beroende på vilka av signalens egenskaper som ska analyse-ras (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

(21)

44 46 48 50 52 54 56 58 −100 −90 −80 −70 −60 −50 −40 −30 −20 −10 0 Frekvens decibel Rektangulärt Flat Top Hann

(a)Samplingstiden stämmer överrens med insignalen – Lite utsmetning.

44 46 48 50 52 54 56 58 −100 −90 −80 −70 −60 −50 −40 −30 −20 −10 0 Frekvens decibel Rektangulärt Flat Top Hann

(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 Har-vey (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 sig-nalen 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 bandwid-th, ENBW). Som uppstår eftersom uppskattningen av en frekvens får bidrag från hela bandbredden. Den ekvivalenta brusbandbredden definieras som bredden av det rektangu-lära filter, med samma toppeffektsförstärkning som fönsterfunktionen, som skulle ge upp-hov 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 N2 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 Nlog2N . Resultatet

(22)

2.5 LabVIEW 11 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 |f[n]|2= 1 N N −1 X k=0 |F [k]|2 (2.6) 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 byg-ger på programmeringsspråket G. G är ett grafiskt programmeringsspråk som bygbyg-ger 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 block-diagram 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 uppgif-ter 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.

(23)
(24)

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 datakommunika-tionskort 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 In-strumentation) 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ös-ning 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,

1Se litteraturförteckning.

(25)

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 inbygg-da DSP med hjälp av FFT. Att FFT:n görs direkt i mätkortets hårdvara begränsar möjlig-heten 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än-dandet 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 Scadapro2med 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.

(26)

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ätdatainsam-lingen. Samplingsfrekvensen kan ställas mellan 100 Hz och 51,2 kHz och mätseriestorle-ken 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.

(27)
(28)

4

Krav

I det här kapitlet kommer kraven som ställs på systemet att tas upp. Eftersom det grund-lä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. Informa-tionen 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

(29)

• ha möjlighet till individuellt ställbar samplingsfrekvens och mätseriestorlek för var-je kanal.

• införa möjligheten att ha överlappande mätserier. Med överlappande serier så me-nas att det skall gå att sammanfoga den sista delen av en mätserie med den komman-de 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 kon-figureras 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 an-vä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.

(30)

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.

# Krav Prioritet

1 Minst 32 inkanaler, Antalet inkanaler skall gå att utöka. A 2 Maximal samplingsfrekvens minst 51,2 kHz. A 3 Inspänningsområde minst 100 mV - 20 V. A

4 Upplösning minst 16 bitar. A

5 Amplitudfel max 0,7 %. A

6 Frekvensfel max 0,012 %. A

7 Möjlighet till både AC och DC koppling. A

8 Beräkna RMS-värde. A

9 Beräkna DC-värde. A

10 Beräkna toppvärde. A

11 Få den dominerande frekvensens amplitud, fas och frekvens i olika passband.

A 12 Minst fyra olika fönsterfunktioner för frekvensanalys. A

13 Överföra data till Scadapro. A

14 Överföra data till OPC-server. A

15 Systemet skall vara modifierbart med ny funktionalitet. A 16 Visa data på datorskärmen på något sätt. A 17 Spara och ladda inställningar från hårddisk. A

18 Mäta turbinens varvtal. B

19 Möjlighet till individuella samplingsfrekvenser för de olika kanaler-na.

B 20 Möjlighet till olika mätseriestorlek för olika kanaler. B 21 Beräkna RMS-värde i specifika passband. B 22 Passband med gränser som anpassar sig efter något annat mätvärde. B 23 Mätning som returnerar signalens fem mest dominanta toppar. B 24 Envelope, mätning som ger det högsta värdet signalen har haft sedan

förra mätningen.

B 25 Trigger signal för att starta mätningen. B 26 Importera och exportera inställningar från/till kalkylblad. B

(31)
(32)

5

Hårdvara

I det här kapitlet kommer hårdvaran som var valts till det nyutvecklade systemet att be-skrivas. 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 modu-ler vilket kan ses i figur 5.1. De fyra olika modumodu-lerna ä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 bi-tars upplösning och inspänningsområde mellan ±10 V. Den maximala samplingsfrekven-sen ä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 fre-kvenser upp till 80 MHz.

Den inbyggda datorn är en PXI-8106 med Intel Core 2 Duo processor T7400 (2,16 GHz dubbelkärnig) processor.

(33)

Figur 5.1:Vimba-hårdvaran

Tabell 5.1:Specifikationer för PXI-4472 och PXI-4497 (Källa:datablad)

Egenskap PXI-4472 PXI-4497

Antal kanaler 8 st 16 st

Upplösning 24 bitar 24 bitar

Maximal samplingsfrekvens 102,4 kS/s 204,8 kS/s

Dynamiskt område 110 dB 114 dB

Inspänningsområde ±10 V ±0, 316 1, 3,16, 10 V

Koppling AC/DC AC/DC

AD-omvandlare Σ∆ Σ∆

Amplitudnoggrannhet 0,1 dB 0,1 dB Frekvensnoggrannhet 25 ppm 12 ppm AC −3 dB brytfrekvens 3,4 Hz 0,5 Hz

(34)

5.2 Simon 23

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 samp-lingsfrekvensen är 204,8 kS/s. Korten har ett inbyggt lågpassfilter för att filtrera bort fre-kvenser ö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ät-ningar. 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årdvaru-bas 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

(35)

skillna-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å nackde-larna 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 dy-rare och mer otympligt system som ett system med PXI-4462 hade blivit tack vare dess låga kapacitet i antal kanaler per kort.

(36)

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ösning-arna 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

(37)

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äk-ningsblocket samt mellan beräkberäk-ningsblocket och dataöverföringsblocket. Data till visuali-seringsblocket 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 skiftre-gistret ä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 pro-grammet, 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 konfigurations-filen 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

(38)

6.2 Detaljer 27

Varvtal Analog

mätdata Sammanfoga

Utdata

Figur 6.2:Datainsamlingen innehåller två stycken evighetsloopar, en för varvtals-mätning och en för varvtals-mätning av analoga signaler. Evighetsloopen som utför den ana-loga mätningen sammanfogar även varvtalsdatan med den anaana-loga datan.

de övriga blocken. Om varvtalet är så lågt att inget nytt varvtal har mätts under insam-lingen 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 avaktive-rar 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 initi-eringen 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ånds-maskin i figur 6.3.

(39)

Stäng Kör Vänteläge Initiering Inget fel Fel Systemet aktiverat Systemet aktiverat / Inget fel Systemet avaktiverat /Fel Systemet avaktiverat

Figur 6.3:Tillståndsmaskinen som används av datainsamlings-, beräknings- och da-taöverföringsblocket som kan ses i figur 6.1.

(40)

6.2 Detaljer 29 Under initieringen så känner systemet av vilka kanaler som finns för den aktuella hårdva-ran och jämför sedan med konfigurationen i skiftregistret vilka kanaler som skall aktive-ras. Ä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äkning-arna 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är-de, RMS-värlikvär-de, 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 kon-figurationsfilen läses in. Från konkon-figurationsfilen fås en lista med alla beräkningsparamet-rar 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 ord-ning 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.

(41)

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 upp-dateringshastigheten 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äk-ningar ä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)

RMS = v u u t1 N N −1 X n=0 |f[n]|2 (6.1)

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 (ekva-tion (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 ekvivalen-ta brusbandbredden, förklarad på sida 10, ekvivalen-tas med i beräkningen. Detekvivalen-ta ger upphov till

(42)

6.2

Detaljer

31

Samplade mätserier

Spara del av mätserie för att överlappa med

Envelopeberäkning Överlappa mätserier FFT Fem Toppar Beräkna Del av föregående mätserie Körs var n:te gång Körs varje gång Beräknad data Figur 6.4: T illståndsmaskinens beräkningsste g, Beräkning arna utförs i två huvud-ste g. Dels ett ste g som körs för varje mätserie och dels ett ste g som genomförs så ofta som an vändaren vill.

(43)

följande formel för bestämning av RMS i frekvensdomänen. RMS = v u u t 1 N2 N −1 X n=0 |F [n]|2 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 fre-kvensdomä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 be-rä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 an-vä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äknings-parametrar sker vid initieringen av fem toppar-beräkningen där alla de beräkningspara-metrarna 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äkningspa-rametern 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 omvand-lad från RMS-värde till toppvärde genom att alla frekvenslinjer i amplitudspektrumet, förutom likspänningen, har multiplicerats med√2.

(44)

6.3 Användargränssnitt 33

Toppfrekvens

Den mest dominanta frekvensen fås genom att i amplitudspektrumet nollställa alla fre-kvenser 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 fas-vinkeln 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. Amplitu-den 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 in-nehå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äkningspara-metrarna ä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äkningspara-meter 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.

(45)

Systemet visar felmeddelanden genom att alla funktioner skriver eventuella fel till ett skiftregister. Om detta skiftregister innehåller något felmeddelande så skrivs detta felmed-delande 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 variab-lerna 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 adresse-ras. 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 synkroni-seras 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 genom-föra och mätningen av varvtal bara tar en periodtid av varvtalet att genomgenom-fö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 en-dast 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 ver-sionen 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 an-ledning 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

(46)

6.4 Diskussion 35 på att implementera den direkt i mätdatainsamlingsblocket beror på det speciella förfaran-det 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 envelo-pe-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äkningspa-rametrarna 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äkningspara-metrar 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 al-la 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 be-rä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 be-rä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 OPC-servern 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 menings-lö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äkningspa-rametrar uppgick till ett hundratal så var det inte möjligt att utföra en ny Fouriertransforma-tion 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 initie-ringen av de olika blocken.

(47)

References

Outline

Related documents

Att konstruera ett system för mätning av linjeprofil på objekt upp till 50 mm dia- meter som ska besitta 0,1 mm noggrannhet går att utföra med de komponenter och den metod som använts

To build and visualize a 3D model of the tumor, the tumor first needs to be segmented on the MR slices using the active contour segmentation method.. This segmentation extracts

Men som jag tidigare har nämnt under avsnittet 4.2.1 om ”syremätning på lagertankar” samt 4.2.2 ”syremätning under processflödet från tömning av lagertank till fyllning av

Examensarbeten gjorda vid Högskolan i Kalmar, Naturvetenskapliga institutionen, och lista över dessa kan beställas via; www.hik.se/student. eller: Högskolan i Kalmar

Intensitetsvekto- rerna i figuren indikerar också att det inte är frågan om ett nettoflöde från aggregatet utan om ett flöde med den riktning som indikeras i figur 4.10. De

Det här är bara jag är det första av tre experiment inom ramen för forsknings- projektet Praktiska metoder för konstnärlig forskning inom teater som bedrivs vid Högskolan för

Könsmönstren inom idrotten ses således inte som ett uttryck för ”naturliga” skillnader mellan tjejer och killar, kvinnor och män. De ses som ett uttryck för att vissa

I Johanna Österling-Brunströms (2010) text Musik i rörelse: Fyra lärares uppfattning om och användande av rörelse vid lärande av musik på estetiska programmet, inriktning musik