Validation of a simulator for an engine power plant
Lassus, Jens (2024)
Lassus, Jens
2024
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2024031210897
https://urn.fi/URN:NBN:fi-fe2024031210897
Tiivistelmä
Simulation software is used extensively in many industries today because it is usually faster and cheaper to develop and test new products this way, since there is no need for a physical prototype. In some cases, it is infeasible to build a physical version just for testing. This could be because it is prohibitively expensive, or because testing over a vast time span is required. Simulation software solves these issues, since it is relatively quick and cheap to reconfigure. Additionally, simulations can be run faster than real time. All these factors contribute to faster and cheaper prototyping.
One scenario in which simulation is very valuable is when building an engine power plant. It has become increasingly important to be able to accurately predict the performance of a power plant already during the sales process, as it can directly affect the revenue of the customer. As this is a very competitive market, a manufacturer can gain an advantage by committing to better performance guarantees than their competitors, but this is risky unless the performance can be accurately predicted. This risk can be mitigated if the manufacturer has access to reliable simulation software. Looking at existing installations is not a complete solution, because engine power plants are purpose-built for their application, and engines perform differently depending on ambient conditions, such as air temperature, air pressure, and humidity, as well as load, fuel methane number, and gas pressure.
One potential concern about simulating the real world is the accuracy of the simulator. If the results of the simulations are used to make important decisions, something about the accuracy of the simulator should be known. The purpose of this thesis is to develop software to speed up the process of evaluating the accuracy of a particular piece of simulation software used for simulating engine power plants. The accuracy can be evaluated by comparing the simulated values against values recorded at a real installation. This feedback from the real world back into the simulator can be thought of as a kind of digital twin, the concept of which is explained in section 3.3.
Because the dataset used in this thesis is limited to a single power plant, it is not possible to fully evaluate the simulator against the full range of power plants that it is capable of simulating. However, the software produced as a part of this thesis should make future validation against other datasets faster. Additionally, even with this limited dataset it is possible to simulate and compare those performance parameters that may vary within one installation, such as the ambient and fuel conditions mentioned above. Over a longer period of time, it is also possible to study the effects aging has on performance.
The process of manually entering each sensor reading into the simulator would be very tedious and prone to human error. For this reason, the practical part of this thesis consists of developing a piece of software that automates the process of feeding input parameters into the simulator, running the simulation, then extracting the results and comparing them to the corresponding real readings from the sensors. The benefit of this is that it makes it easy to test the simulator against datasets from other power plants, as well as comparing different versions of the simulator against each other using the same dataset. Without this piece of software, this process would be very tedious, which would prevent large datasets from being assessed. Another benefit is that it enables plant operators to see if their power plant is behaving as expected. Anomalous readings can be detected by comparing them to their simulated counterparts. The challenge with developing the software is that the simulator was built in Microsoft Excel, with some core parts written in C++, and it was never intended for this use case. Although the causes of inaccuracies in the simulator are discussed briefly, this is not the focus of this thesis. Mjukvara för simulering används i stor utsträckning inom många industrier idag. Orsaken är att det ofta är snabbare och billigare att utveckla och testa nya produkter på det här sättet, eftersom man inte behöver tillverka fysiska prototyper. I vissa fall är det orimligt att bygga fysiska versioner endast för att testa, antingen för att det är orimligt dyrt, eller för att man har behov av att testa produkten över en lång tidsperiod. Simuleringsmjukvara löser dessa problem eftersom den är relativt snabb och billig att konfigurera om. Dessutom kan simulatorer köras snabbare än realtid. Alla dessa faktorer bidrar till snabbare och billigare utveckling.
Ett exempel på ett fall där simulering är väldigt värdefullt är då ett motorkraftverk ska byggas. Det har blivit allt viktigare att kunna förutsäga prestandan hos ett kraftverk redan under försäljningsprocessen, eftersom den kan ha direkt inverkan på kundens intäkter. Eftersom det förekommer hård konkurrens på den här marknaden kan en tillverkare uppnå ett övertag genom att ge bättre prestandagarantier än konkurrenterna, men det här är riskfyllt om man inte kan förutsäga prestandan med tillräcklig noggrannhet. Den här risken kan hanteras om tillverkaren har tillgång till en pålitlig simulator. Att titta på existerande kraftverk är ingen fullständig lösning, eftersom kraftverken specialbyggs för deras ändamål. Dessutom påverkas prestandan hos motorerna av yttre faktorer som luftens temperatur, fuktighet och tryck, samt kraftverkets belastning och bränslets metantal och gastryck.
En nackdel med simulatorer är att de inte stämmer helt överens med verkligheten. Ifall resultaten från simulatorn används för att ta viktiga beslut borde man veta något om dess noggrannhet. Avsikten med denna avhandling är att utveckla mjukvara för att snabba upp processen att utvärdera precisionen hos en viss mjukvara som används för att simulera motorkraftverk. Detta görs genom att jämföra de simulerade värdena mot värden som uppmätts i ett riktigt kraftverk. Att mata in återkoppling från ett verkligt kraftverk tillbaka in i simulatorn kan liknas vid en digital tvilling (digital twin), som är en sorts digital representation av ett system genom hela dess livscykel.
I denna avhandling är det inte möjligt att utvärdera simulatorn mot alla sorters kraftverk som den kan simulera, eftersom sensordatan är begränsad till ett kraftverk. Mjukvaran som utvecklas inom ramarna för denna avhandling borde ändå snabba upp framtida utvärderingar av simulatorn mot data från andra kraftverk. Dessutom kan man även med detta begränsade dataset jämföra de variabler som kan variera inom ett kraftverk, exempelvis väder och bränsleparametrar som nämndes tidigare. Över längre tidsperioder kunde man också studera hur kraftverkets åldrande påverkar dess prestanda.
Att manuellt skriva in alla sensorvärden i simulatorn för hundratals eller tusentals fall skulle ta alltför länge och risken för mänskliga misstag är stor. Därför består den praktiska delen av denna avhandling av att utveckla mjukvara som automatiserar processen att mata in parametrar i simulatorn, köra den, och sedan läsa resultatet och jämföra det med verkliga mätvärden från kraftverket. Detta gör det dessutom lättare att göra om undersökningen med andra kraftverk, samt att jämföra olika versioner av simulatorn med samma dataset. Utan denna mjukvara skulle det här vara extremt tidskrävande, vilket skulle förhindra utvärdering av större dataset. En annan fördel är att det blir lättare att upptäcka om ett kraftverk inte beter sig som förväntat. Avvikande värden kan upptäckas genom att jämföra dessa mot motsvarande värde från simulatorn. Källor till eventuella fel i simulatorn diskuteras kort, men detta är inte fokus för denna avhandling.
Simulatorn baserar sig på ISO 3046-standarden. Standarden beskriver hur värden som effekt och bränsleförbrukning, som bestäms vid ett visst lufttryck, lufttemperatur och luftfuktighet, kan räknas om så att de gäller vid andra förhållanden. Standarden kan också användas för att beräkna en så kallad derating-faktor, som berättar hur mycket man måste sänka maxeffekten på motorn under vissa förhållanden. Omgivningsfaktorer som sänker maxeffekten är exempelvis hög temperatur, hög luftfuktighet eller hög höjd (lågt lufttryck).
Förutom ISO 3046 används också interna prestandamanualer som baserar sig på simuleringar i GT-POWER, samt laboratorietest av motorer. Problemet med detta är att GT-POWER är designat för att simulera förbränningsmotorer av mindre skala, exempelvis de som finns i vanliga personbilar. Motorerna som testas i laboratorier har ofta mindre antal cylindrar än de som levereras till kraftverk, vilket också kan ge upphov till fel.
Simulatorn består av ett Microsoft Excel-dokument, där en stor del av koden består av VBA-kod, samt några kärnmoduler skrivna i C++. De två Excel-arken av intresse kan för detta ändamål ses som inmatningsarket och utmatningsarket. I båda dessa ark finns en rad för varje mätpunkt. Sensordatan från kraftverket består av en CSV-fil, där varje rad motsvarar en tidpunkt, och varje kolumn motsvarar en mätpunkt. Automatiseringen som byggts inom ramen för detta arbete tar datan från kraftverket, en rad åt gången, och matar in sensorvärdena på motsvarande rad i inmatningsarket. Svårigheten i detta steg är att para ihop rätt kolumn i sensordatan med rätt rad i inmatningsarket, eftersom dessa har olika namngivningssystem. För en del mätpunkter måste också en enhetskonvertering göras. Därefter körs simulatorn. Sedan måste mätpunkterna från utmatningsarket konverteras tillbaka på motsvarande sätt, eftersom målet är att rapporten som skapas ska använda samma format som datan från kraftverket.
Resultaten av utvärderingen visar att simulatorn stämmer hyfsat bra överens med de uppmätta värdena, men eftersom exempelvis verkningsgraden har ett fel på upp till 2,5 procent så är den inte tillräckligt exakt för kommersiell användning. Avgastemperaturerna verkar också ha ett systematiskt fel som gör att de simulerade temperaturerna är ca 25 °C lägre än de verkliga temperaturerna. Dessa fel behöver dock inte bero på fel i simulatorn. En möjlig förklaring är att kraftverket är konfigurerat annorlunda än simulatorn. Dessutom gavs några parametrar statiska värden eftersom några motsvarande mätdata inte hittades. Om dessa gavs felaktiga värden kunde det ge upphov till fel i de simulerade värdena. Inexakta sensorvärden för exempelvis gasflödet eller gasens energiinnehåll (LHV) kunde också påverka resultatet. Det viktigaste är ändå att mjukvaran som utvecklades som en del av denna avhandling gör att det är lättare att undersöka vad dessa fel kan bero på.
One scenario in which simulation is very valuable is when building an engine power plant. It has become increasingly important to be able to accurately predict the performance of a power plant already during the sales process, as it can directly affect the revenue of the customer. As this is a very competitive market, a manufacturer can gain an advantage by committing to better performance guarantees than their competitors, but this is risky unless the performance can be accurately predicted. This risk can be mitigated if the manufacturer has access to reliable simulation software. Looking at existing installations is not a complete solution, because engine power plants are purpose-built for their application, and engines perform differently depending on ambient conditions, such as air temperature, air pressure, and humidity, as well as load, fuel methane number, and gas pressure.
One potential concern about simulating the real world is the accuracy of the simulator. If the results of the simulations are used to make important decisions, something about the accuracy of the simulator should be known. The purpose of this thesis is to develop software to speed up the process of evaluating the accuracy of a particular piece of simulation software used for simulating engine power plants. The accuracy can be evaluated by comparing the simulated values against values recorded at a real installation. This feedback from the real world back into the simulator can be thought of as a kind of digital twin, the concept of which is explained in section 3.3.
Because the dataset used in this thesis is limited to a single power plant, it is not possible to fully evaluate the simulator against the full range of power plants that it is capable of simulating. However, the software produced as a part of this thesis should make future validation against other datasets faster. Additionally, even with this limited dataset it is possible to simulate and compare those performance parameters that may vary within one installation, such as the ambient and fuel conditions mentioned above. Over a longer period of time, it is also possible to study the effects aging has on performance.
The process of manually entering each sensor reading into the simulator would be very tedious and prone to human error. For this reason, the practical part of this thesis consists of developing a piece of software that automates the process of feeding input parameters into the simulator, running the simulation, then extracting the results and comparing them to the corresponding real readings from the sensors. The benefit of this is that it makes it easy to test the simulator against datasets from other power plants, as well as comparing different versions of the simulator against each other using the same dataset. Without this piece of software, this process would be very tedious, which would prevent large datasets from being assessed. Another benefit is that it enables plant operators to see if their power plant is behaving as expected. Anomalous readings can be detected by comparing them to their simulated counterparts. The challenge with developing the software is that the simulator was built in Microsoft Excel, with some core parts written in C++, and it was never intended for this use case. Although the causes of inaccuracies in the simulator are discussed briefly, this is not the focus of this thesis.
Ett exempel på ett fall där simulering är väldigt värdefullt är då ett motorkraftverk ska byggas. Det har blivit allt viktigare att kunna förutsäga prestandan hos ett kraftverk redan under försäljningsprocessen, eftersom den kan ha direkt inverkan på kundens intäkter. Eftersom det förekommer hård konkurrens på den här marknaden kan en tillverkare uppnå ett övertag genom att ge bättre prestandagarantier än konkurrenterna, men det här är riskfyllt om man inte kan förutsäga prestandan med tillräcklig noggrannhet. Den här risken kan hanteras om tillverkaren har tillgång till en pålitlig simulator. Att titta på existerande kraftverk är ingen fullständig lösning, eftersom kraftverken specialbyggs för deras ändamål. Dessutom påverkas prestandan hos motorerna av yttre faktorer som luftens temperatur, fuktighet och tryck, samt kraftverkets belastning och bränslets metantal och gastryck.
En nackdel med simulatorer är att de inte stämmer helt överens med verkligheten. Ifall resultaten från simulatorn används för att ta viktiga beslut borde man veta något om dess noggrannhet. Avsikten med denna avhandling är att utveckla mjukvara för att snabba upp processen att utvärdera precisionen hos en viss mjukvara som används för att simulera motorkraftverk. Detta görs genom att jämföra de simulerade värdena mot värden som uppmätts i ett riktigt kraftverk. Att mata in återkoppling från ett verkligt kraftverk tillbaka in i simulatorn kan liknas vid en digital tvilling (digital twin), som är en sorts digital representation av ett system genom hela dess livscykel.
I denna avhandling är det inte möjligt att utvärdera simulatorn mot alla sorters kraftverk som den kan simulera, eftersom sensordatan är begränsad till ett kraftverk. Mjukvaran som utvecklas inom ramarna för denna avhandling borde ändå snabba upp framtida utvärderingar av simulatorn mot data från andra kraftverk. Dessutom kan man även med detta begränsade dataset jämföra de variabler som kan variera inom ett kraftverk, exempelvis väder och bränsleparametrar som nämndes tidigare. Över längre tidsperioder kunde man också studera hur kraftverkets åldrande påverkar dess prestanda.
Att manuellt skriva in alla sensorvärden i simulatorn för hundratals eller tusentals fall skulle ta alltför länge och risken för mänskliga misstag är stor. Därför består den praktiska delen av denna avhandling av att utveckla mjukvara som automatiserar processen att mata in parametrar i simulatorn, köra den, och sedan läsa resultatet och jämföra det med verkliga mätvärden från kraftverket. Detta gör det dessutom lättare att göra om undersökningen med andra kraftverk, samt att jämföra olika versioner av simulatorn med samma dataset. Utan denna mjukvara skulle det här vara extremt tidskrävande, vilket skulle förhindra utvärdering av större dataset. En annan fördel är att det blir lättare att upptäcka om ett kraftverk inte beter sig som förväntat. Avvikande värden kan upptäckas genom att jämföra dessa mot motsvarande värde från simulatorn. Källor till eventuella fel i simulatorn diskuteras kort, men detta är inte fokus för denna avhandling.
Simulatorn baserar sig på ISO 3046-standarden. Standarden beskriver hur värden som effekt och bränsleförbrukning, som bestäms vid ett visst lufttryck, lufttemperatur och luftfuktighet, kan räknas om så att de gäller vid andra förhållanden. Standarden kan också användas för att beräkna en så kallad derating-faktor, som berättar hur mycket man måste sänka maxeffekten på motorn under vissa förhållanden. Omgivningsfaktorer som sänker maxeffekten är exempelvis hög temperatur, hög luftfuktighet eller hög höjd (lågt lufttryck).
Förutom ISO 3046 används också interna prestandamanualer som baserar sig på simuleringar i GT-POWER, samt laboratorietest av motorer. Problemet med detta är att GT-POWER är designat för att simulera förbränningsmotorer av mindre skala, exempelvis de som finns i vanliga personbilar. Motorerna som testas i laboratorier har ofta mindre antal cylindrar än de som levereras till kraftverk, vilket också kan ge upphov till fel.
Simulatorn består av ett Microsoft Excel-dokument, där en stor del av koden består av VBA-kod, samt några kärnmoduler skrivna i C++. De två Excel-arken av intresse kan för detta ändamål ses som inmatningsarket och utmatningsarket. I båda dessa ark finns en rad för varje mätpunkt. Sensordatan från kraftverket består av en CSV-fil, där varje rad motsvarar en tidpunkt, och varje kolumn motsvarar en mätpunkt. Automatiseringen som byggts inom ramen för detta arbete tar datan från kraftverket, en rad åt gången, och matar in sensorvärdena på motsvarande rad i inmatningsarket. Svårigheten i detta steg är att para ihop rätt kolumn i sensordatan med rätt rad i inmatningsarket, eftersom dessa har olika namngivningssystem. För en del mätpunkter måste också en enhetskonvertering göras. Därefter körs simulatorn. Sedan måste mätpunkterna från utmatningsarket konverteras tillbaka på motsvarande sätt, eftersom målet är att rapporten som skapas ska använda samma format som datan från kraftverket.
Resultaten av utvärderingen visar att simulatorn stämmer hyfsat bra överens med de uppmätta värdena, men eftersom exempelvis verkningsgraden har ett fel på upp till 2,5 procent så är den inte tillräckligt exakt för kommersiell användning. Avgastemperaturerna verkar också ha ett systematiskt fel som gör att de simulerade temperaturerna är ca 25 °C lägre än de verkliga temperaturerna. Dessa fel behöver dock inte bero på fel i simulatorn. En möjlig förklaring är att kraftverket är konfigurerat annorlunda än simulatorn. Dessutom gavs några parametrar statiska värden eftersom några motsvarande mätdata inte hittades. Om dessa gavs felaktiga värden kunde det ge upphov till fel i de simulerade värdena. Inexakta sensorvärden för exempelvis gasflödet eller gasens energiinnehåll (LHV) kunde också påverka resultatet. Det viktigaste är ändå att mjukvaran som utvecklades som en del av denna avhandling gör att det är lättare att undersöka vad dessa fel kan bero på.