Utveckling av analyssystem för dynamiska signaler Olle Kalered LiU-ITN-TEK-A-13/046--SE
by user
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.