TurboMon: Turbocharge Monitoring
een programma voor conditiebeaking van
een drukvulgroepsysteem
W.A. Buwono
Technische Universiteit Delft
Faculteit der Werktuigkunde en Maritieme Techniek
Vakgroep Maritieme Techniek
Sectie OEMO
Van Ommeren Shipping B.V.
Rotterdam
INHOUDSOPGAVE
1
Inleiding
12
lnleiding over Visual Basic
1.1
De opbouw van Visual Basic
7.7
Het scherrnontwerp met Visual Basic
32.3
Het programmeren
3
TurboMon, het Turbocharge Monitoringprogramma
9
3.1
De opbouw van het program ma
9
3.1.1
Het monitor] form
113.1.2
Het monitor2 form
113.1.3
Het frrnGraph form
133.1.4
De AboutBox en het HelpForm
143.2
De program macode
164
Werken met TurboMon
184. 1
Het starten
194.2
Het invoeren en bewerken van data
194.3
De grafiek
5
Conclusies
6
Referenties
Bijlagen:
Belangrijke termen in Visual Basic
II
Varia belen I ijstIll
De program macode van TurboMon
.. . a 4 4 U 2
...
... .
....
2,...
. . . ... . . .. . 5 9.. . . . . . 221.
[Welding
Dit afstudeerverslag borduurt voort op het
verslag OEMO 95/14
'Condit lebewaking van een
drukvulgroep
bit
een tweetula clieselmotorUit het verslag, waarin een aantal
bewakingsmetho-den aan de orde kwamen, wordt een geschikte methode gekozen: de
Componentbewakings-methode. Vervolgens wordt deze methode in het
verslag uitgebreid beschreven en getuned.
De afstudeeropdracht omvat:
Het ontwikkelen van een programma dat geschikt is om op een personal computer
off-line een diagnose van het drukvulgroepsysteem uit te voeren.
Dit programma dient bij voorkeur onder het Windows-besturingssysteem te kunnen
werken.
Tot dit doe wordt Visual Basic Professional Edition versie 3.0 van Microsoft als
program-meertaal gekozen. De reden daarvan is dat Visual Basic een
vrij eenvoudige programmeertaal
is, terwijl het toch veel mogelijkheden biedt. De Professional Edition kent een g,root aantal tools
(hulpmiddelen) waarmee men met weinig programmeer-ervaring op eenvoudige wijze grote
applicaties kan ontwikkelen.
De opbouw van dit verslag is als volgt:
Hoofdstuk 2 bevat een korte inleiding over Visual Basic; een aantal termen die in Visual Basic
worden gebruikt, worden uitgelegd en de werkwijze bij het programmeren
wordt beschreven.
Degenen die nog nooit met Visual Basic hebben gewerkt, wordt aangeraden om eerst dit
hoofd-stuk en bijlage 1 te lezen.
In hoofdstuk 3 wordt de opbouw van het ontwikkelde computerprogramma TurboMon
beschre-ven, dat in staat is om
off-line een diagnose van de drukvulgroep uit te voeren. In dit hoofdstuk
worden ook voorbeelden van de programmacode gegeven.
De complete programmacode van
TurboMon is in bijlage 3 te vinden.
Vervolgens wordt in hoofdstuk 4 beschreven hoe men met TurboMon kan werken.
Tot slot volgen in hoofdstuk 5 de conclusies en aanbevelingen van dit verslag.
2.
!aiding over Visual Basic
Visual Basic
is een programmeertaal van Microsoft waarmee
onder het besturingsprogrammaWindows programma's kunnen worden geschreven. Het is een zogenoemde object-georienteerde programmeertaal. Onder een object verstaan we in dit verband alle onderdelen die op het scherm binnen een venster te zien zijn. Dit is de
eenvoudigste opvatting van de term object. Zo kan een
OK-knop, die met behulp van de muis `ingedruke kan worden, worden opgevat als object.
Een object bezit properties oftewel eigenschappen.
Deze eigenschappen lopen uiteen van de,kleur en de vorm van het object tot de naamgeving.
De naam die we aan een object geven, deName, wordt in het programma dat we schrijven gebruikt als referentie naar het object.
De programmacode wordt pas uitgevoerd als op het scherm een handeling met het object
uitgevoerd wordt. Onder een handeling verstaan we bijvoorbeeldbet aankliklcen met de muis,
het indrukken van een toets of het verslepen.
In bijlage 1 worden een, paar belangrijke objectenc, opdrachtenc, events en properties gegevern
2.1
De opbouw van Visual Basic
Visual] Basic wordt opgestart in de Windows-orngeving. Na het opstarten laat Visual Basic
een
aantaa vensters zien (figuur 1).
rWHur1rrr 01111111111013
a
th
rued Tads Of anhc s ;everTurboMon : Turbocharge Monitoring
Microsoft VisilaBasirrerisignr
Vest Run Oebug Options Window help
Figuur 1
De interface van Visual Basic Profrssional Edition.
ftl.
clq9.1-100 nnakmilloVim Foos Yaw Cot
1111
Pro eel cte AMIBUT011.VBX 41,171dDIAL06.VOX
et
cmTs TN VIC< .fttIAUGE vex GFIAPH.VBX Ian G 1110.VBX KEYS TAT .VEXProperties
AuloR **at. Fate 13 acIEColo; te180001)005/ GotdetStyle 2. Svabie
er
Ji
- I6101:0r1I1014 Trim,
Cortoillox 'flue
DeenoMode 13 Cow Pe"
D awS - Sold DravAddidth 1 EnVied T we U1000000006 IASI* 1 Iran:patent Fn. m/ Fm IFO.rwt ,1
TurboMon : Turbocharge Monitoring.
In bet midden van bet scherm is eenibrm, genaamd 'Form V, aangegeven. DR is de Visual
Basic-imam voor een venster. Het is een soon formulier waarop tijdens het prog,ramma-ontwerp een
Windows-venster gedefinieerd wordt.
Links in beeld is de toolbox zichtbaar. Hierin staan 'knoppen weergegeven waarmee allerlei
controls op de form geplaatst kunnen worden.
Voorbeelden van controls zijn knoppen, plaatjes,
teksten, etc.De forms en de controls zijn beide objecten.
Dat wil zeggen dat zij beschouwd kunnen worden
,als zelfstandige, manipuleerbare entiteiten die bepaalde eigenschappenhebben en
naar bepaaldecommando's luisteren.
kechts van de form zijn nog twee vensters zichtbaar, bet project- en het properties-
(eigenschap-pen) venster. In het projectvenster komen alle bestanden te staan die deel uitmaken van een
programma. leder form dat men maakt voor een bepaald programma komt er in te staan. Tevens
staan hierin enkele bestanden met ciefinities van schermobjecten en, soms, bestanden met
verzamelingen van procedures.
In het propertiesvenster, itenslotte, worth een
overzicht gegeven van ark objecten ,en bun
eigenschappen.
In hetkort is de werkwijze van het programmeren in Visual Basic
als111. Project:
Maakt een nieuw project met ,daarin de benodigde iobjeeten, venSters
(forms) en
venstersobjecten (controls).
Properties:
Geeft de objecten de gewenste.eigenschappen
(properties).
Programming:
Creder de gewenste functionalkiteit met behulp 'van edit programmacode in
event-procedures en eventuele modules.
2.2'
Het schermontwerp met Visual Basic
De grootste eenheid in Visual Basic is het 'project. Een project bevat aille vensters
programmeercodes die bij een applicatie horen. Naast de forms bevat een project soms ook een
of meerdere code-modules. Dit zijn verzamelingen van programmeercodes die niet in een form
thuishoren, bijvoorbeeld omdat ze voor meerdere vensters gebruikt kunnen worden. Met name
declaraties van globale constanten en variabelen komen in aanmerking voor opname in een
module. Hiervoor is de extensie '.BAS' gereserveerd.
volgt:
De form is het eigenlijk ontwerp-blad waarop alle elennenten van de interface geplaatst worden. Een form heeft, net als al le objecten, bepaalde
eigenschappen, zoals BackColor
(achtergrond-kleur) en Caption (Titel van het venster).
Per project lumen meerdere forms worden ontworpen.
Deze kunnen elkaar aanroepen ofzich-zelf onzichtbaar maken en de volgende zichtbaar maken, etc. In figuur 2 wordt een voorbeeld
gegeven van een project, in design time, met een aantal forms waarvan er twee zichtbaar zijn.
In de bovenste form zijn er enkele labels te zien, een viertal text boxes, een combo box, twee
check boxes, twee command buttons en een frame waarop acht option buttons worden getekend.
Alle onderdelen die in een venster aanwezig kunnen zijn,
worden in het Form-venster getekend
met behulp van gereedschap dat in detoolbox te vinden is.
Elk object, dus alle controls en het form, heeft
eigenschappen of properties. De eigenschappendie aan een object toegekend kunnen worden, hangen
af van het type object. Bijvoorbeeld een
commandbutton heeft een Caption-eigenschap, terwij1 een object as eenscrollbar geen
Caption-eigenschap kent. Editapt
ciro
P4131rta
MEI
nCxna Ovi F:;131, Manage.TurboMon : Turbochurge Monitoring
Microsoft Visual Basic [design]
Void Bun Debug pinions Window help
r% Attachment Mum Databaso . COWL CloraSourOa: Coronae Sasso: Table to Artach:. L
...
.. ..0
Saws Password 1....
Been Eaalarsilra Canoed 13 Data Type 0 MS Access 0 'Maze /II 0 Maser IV o Fold.ro Z 0 o FoxPro 2.5 Patatkat 3.X Bereave °DOCAbout Visual Data
Microsoft Visual Basra Pro Visual Dote Semple Apple:eh...
Version 100
Figuur 2
Een project, met hoar twee liirms, in design; ime.
Pro trues tAttach Form
Tr
HeIpC0ntes110 0 Icon ..eyPreaaa False Lea 1200 Linklaocle 0 NoneLinkT opc Foal
Mao:04ton
IvID$Chal Fake
lain0ullon DUG ousePoInter 0 Dean
VISDATA.MAK Visa Fees View Cade I
ADDFIF.1.0 F lAddE roll
tnABDO DOX AtoulBox
EaATTACH F Ft CPYST HU FI tcpystru DA IABOX El 'Unlearn;
r, DA T AFOH14 rOalaFoim DYNAGRID.1 fGnccqn DYNASE IF' 1Dynasta
FIND URN End
b
Elie
Due
0
urboMon :
Turbocharge
Monitoring
Er zijn twee manieren om properties toe te
kennen aan een object:
Tijdens het ontwerp van een form (design time).
Hiervoor vebruikt men het properties window waarin alle properties van een object onder
elkaar worden weergegeven.
Tijdens de uitvoeriniz van de applicatie (run time).
lliervoor schrijft men code die tijdens de run time
de gewenste waarde toekent aan de
properties van een object. Deze code ziet er als volgt
<ControlName>.<property> = value
Bijvoorbeeld:
form 1.Caption
= "Turbo Monitoring"
(forrnulierl zal een title Turbo Monitoring hebben)
of
Graphl.visible = False
(Graph I zal niet zichtbaar zijn)
2:.3
Het programmeren
Programmeren in Visual Basic is in principe simpel: men schrijft
(kleine) stukjes code om de
acties van de gebruiker (de events) af te handelen.
Events zijn acties die een gebruiker uitvoert met een object. Het
belanuijkste event is de click
met een muispointer op het object. Dit start een event procedure met de naam: <Name>_Click_
Bijvoorbeeld:
button click, of form3
click. Ook Dbiclick (dubbelklik) is een event: twee keer
klikken op de muisknop.
De event procedure is een g,ewone subroutine die er bijvoorbeeld zo uitziet:
Sub btnGraph_cliek()
frmMonitor2.visible = False
frmGraph.visible = True
End Sub
In dit voorbeeld zal eon keer de command button genaamd btnGraph aanklikken een
form
genaamd frmMonitor2 onzichtbaar maken en frmGraph zichtbaar: het ene window wordt voor
het andere verwisselt.
De eerste regel bestaat uit het keyword Sub gevolgd door de procedurenaam en de parameters
( tussen haakjes). Hieronder komt de code voor deze event. Vervolgens wordt de procedure
afi2esloten met End Sub.
leder object heeft een vaste aantal
events die dat object 'kunnenoverkomen. Voor een object
form is bijvoorbeeld het load event
belangrijk: hierin kan men code specificeren die moet
worden uitgevoerd als een form wordt geladen. Bijvoorbeeld: de grootte en
de plaats van de
form, de properties van de ,objecten
die op het form worden geplaatst, etc.
De event code 'kan op een aantal manieren ingetikt worden. De imakkelijkste
manier is een
dubbelklik op het gewenste object: dan
verschijnt automatisch het codevenster met
de gewenste event procedure waarin de eerste en laatste regel al gegeven zijn. Figuur 3 laat eenvoorbeeld van
ihet codevenster zien. In de figuur is tevens. het venster met procedures (Proc)
geopend.:t1 1440.1203 676, MCP
111
.'
103G1 C719ED
MITI 4
OEM
MINIM
Rai=
EGQ1
MEE
PIMA
MID
EEC
a
El I
IICa
441Ede Edit View Bun Debug
!ea
InConnol 1o4, GtaphicsSevef
Figu u r 3, Het iicodevenster
Naast de events en de hierdoor opgestarte procedures
zijn er Methods. Methods iijn mogelijke
gedragingen van een object die niet door de gebruiker, via een event, worden geroepen, maar die door programmacode moeten worden gestart. Zekunnen ook niet in design time worden
gedeft-nieerd, maar uitsluitend in run time gebruikt worden. De syntax luidt:
<object>.<methotl>
fin
ra ratters
T urboMon Turbocharge Monitoring
Microsoft Visual Basic idtsignj
Options Window Help
'RID VBX LeSTAT.VBX. Properties Form in g nail
ti
ea C False sHeoococest.o
.tSlyle 2 Sizable il roi 'Artois irolBmoodex dhToli 7Plas.Cops, Pen 1
I
oil,.
E true FilCot AHODOCOX0 8. la FNSiyb I Pompeian e.LiObrect I Form tJ Pint Load orm/ mai
nit Foresead r( LosiFoaa
MouseDown
IBUTON.VBX wDiALOG.V/DC
End Sub MouseMove
1,1 ousel; d HYSTAL vBX Pnt QuereUnleed 11AUGE.VBX RAPH VEX Reitz° Forint
CICI View Cada
imbed
3
Proicctl
urhoMon :
urbocharge Monitoring
Bijvoorbeeld:
(.3; rid LAddltem nieuw_row, nieuw_col
Deze code voegt aan de grid (een soon
kieine spreadsheet) een nieuwe rij en koiom toe.
in de programmacode gebruikt men ook vaak variabeien. Visual Basic kent vele soorten
datatypen van variabelen. De belangrijkste
datatypen zijn de String en de Integer.
hen String
is een reeks letters en cijfers (maximaal
64.000). ledere tekstuele invoer wordt in
een stringvariabele bewaard.
Een Integer bevat een geheel getal tussen -32768 en +32768. Een speciaal gebruik van Integers
is als Boolean variabelen, dat wii zeggen variabeien die de waarde True of False bevatten.
Variabeien die men opneemt in een event procedure zijn alleen geidig
&Mien
die procedure: het
zijn lokale variabelen. Een declaratie in een
procedure ziet er zo uit:
Dim username As String, Password As
String
heist
wordt het codewoord Dim (van dimensie) vermeld, vervolgens een vanabele, dan het
codewoord As en clan het datatype.
Men kan ook variabeien op form ntveau deciareren. ledere form heeft een ruimte voor
decia-raties in het 'general' gebied: kies general in de objectlijst van het codevenster. De vorm van de
declaratie is identiek aan de zojuist genoemde. Deze declaraties hebben nu gelditzheid voor alle
events van de form, en de variabeien kunnen in aile procedures in de form gebruikt worden.
,Men ikan
ook variabelen declareren op 'global' nivo. Olobale vanabelen
hebben geldigheid
groter dan een procedure en ook groter dan een form, dat wil zeggen geldig voor alle forms in
het project. De variabelen kan men in een code module declareren. De definitie van de
variabe-len vindt op andere wijze piaats dan op form niveau:
Globate username As String
Zoais in iedere prog-rammeertaai, konnen er ook in Visual Basic conditioneie expressies en
herhaalopdrachten voor die dienen als hulpmiddelen om het programma te sturen.
De belangrijkste conditionele expressie is het ft-statement. De meest
algemene vorm hiervan
is:if <conditie> Then <opdracht>
Ms er meer opdrachten moeten worden uitgevoerd:
if
conciitie> Then
of
If <conditie> Then
<opdrachten als conditie waar is>.
Else
<opdrachten als conditie Met waar is>
End If
Tijdens het ontwerp van een programma zal men vaak stukjes programma wil len testen door het
programma te laten uitvoeren. Dit
is binnen de omgeving (environment) van Visual
Basicmogelijk. Het voordeel hiervan is dat men steeds opmerkzaam gemaalct wordt op eventuele
fouten in het programma. Ook kan men een programma op deze manier debuggen of ondutzen. Na het volledig testen van een programma is
het mogelijk om een onafhankelijk programma te
maken. Visual Basic voegt clan bij de programmacode verwijzingen naar een run time module
die alle noodzakefijke programmaonderdelen bevat. Hierdoor vangt Visual Basic zo makkelijk
vensterwisselingenc, muishandelingen en udwisselingen met
de schijf op.
TurboMon Turboduirge Monitoring
TurboMon : turbocharge Monituring
3
TurboMon, het Turbocharge Mon itoringprogramma
TurboMon is een in Visual Basic geschreven computerprogramma voor het bewaken van een
drukvulgroepsvsteem. Dit programma kan worden gebaseerd op de gegeven inputwaarden en kan
de conditie-parameters van elke component van
het drukvulgroepsysteem berekenen. De
methode van de berekening is reeds uitgebreid
beschreven in het verslag 'Condniehewaking van
een drukvulgroep bij een
tweeiakt dieselmolor
'[rapport OEMO 95/14].
3.1
De opbouw van het program ma
Het programma TurboMon bestaat uit 5 forms (vensters).
Elk form en de daar bijbehorende
pro-grammacode wordt bewaard in files met een frm-extentie (*.frm). Daarnaast heeft dit
programma een module die wordt opgeslagen in een file textedit.bas. In tabel
1is een lust
opgenomen van de belangrijkste files binnen TurboMon.
Tabel 1
De helangrijkste files van het progamma TurboMon.
Twee forms worden automatisch na het starten van het programma
opgeladen. Eerst verschijnt
het eerste form (monitor] . fl-m) met de naam van het programma en daarna
verschijnt het tweede
form (monitor2.frm) dat het hoofdforrn van het programma is. De andere forms kunnen vanuit
her hoofdform worden opgeroepen. Het form HelpForm kan ook wt het t'rmGraph form worden
opgeroepen.
Figuur 4 beschrijft het structuur van de forms binnen het TurboMon-programma.
Filenaam Objectnaam
MONITOR I .FRM
Monitor I (een form)
MONITOR2.FRM
Momtor2 (een form)
FR.MGRAPH.FRM
IrmGraph (een form)
ABOUTBOX. FRM
AboutBox (een form)
HELPFORM FRM
HelpForrn (een form)
Figuur 4
Het struktuur varrhet programma TurboMoo..
4ifittri
;;Fat4L;...
; : . ....
. :tt 1'; :';": I;...
.urboMon: Turbocharge Monitoring
start titel'
venster
c;ct3;t7
1 ,...:gserike tie
:...
... . : .StrinirP,Oirge
'h '...
...
-"-I , ,V1
one
!t f .Fat:albeit Werktnigkurido chi Margit-es Ttisiggihbk
1
-it
Teceiniseine tinniersiantDawn "Vat' OrnmereinShipping O.W.
....
RotterdamFiguur 5
De moriliorl Jbrm in designame
t. r' .' . help
venster
hoofd
venster aboutvenster
graph
venster
V A3.1
Het monitor' form
Dit form verschijnt direct na het starten van het programma. Op het form staan eenaantal labels waarop de titel van het programma en andere informatie staat vet-meld. Daamaast is er ook een
timer control, die in design time
zichtbaar is, maar onzichtbaar wordt in run time. Door de
interval-property van de timer control in te stellen, kan de tijd van het opladen van
monitor2
worden geregeld. De interval-property is 2500. De eenheid is milliseconden, dat
wil zeggen na
2.5 seconden verschijnt het
monitor2-form Figuur 5 geeft het monitorl form
grafisch weer.3.4.2
/let monitor2 form
Het monitor2-form is het meest belangrijke form, het hoofdform.'Figuur 6 geeft het monitor2
form grafisch weer. Op het form istaan onder
andere de volgende objecten:29 labels. De tekst hiervan verduidelijIct het programma voorde gebruiker.
Bijvoorbeeld:
Het label met een itekst "RPM main engine" geeft aan dat de gebruiker in de
naast het label gelegen text box de waarde van
het motortoerental moet
24
text boxes.
Deze kunnen functioneren als een invoer- of uitvoerruimte.
Bijvoorbeeld:
De text box naast het label 'Delta P inlet
filter functioneert-als een invoerruimte
voor de variabele `drukval over
het filter'.
De text box naast het label 'Heat Transfer' functioneert als een ultvoerruimte van
de conditieparameter van de luchtkoeier, gebaseerd op
de warmteoverdracht.3 command buttons (knoppen). Door het met een muis indrukken van eenodergelijke
knop, kan de gebruiker een ihandeling in gang zetten., Bijvoorbee Id:
Door de 'Compute' knop un te dnikken, geeft de gebruiker ten opdracht am-1.W
programma om alle conditieparameters te
berekenen.Door het indrukken van de 'Store Data' knop verplaatst
het programma _able invoervariabelen en de berekende conditieparameters naar de tabel.Door het drukken van de 'Graph' knop verschijnt de
grafiekvenster.grid Dit is een tabel die functioneen als een mini-spreadsheed De grid worth
in dit
programma gebruikt als een database.
Alle in- en' uitvoerdata worden door het indrukken
van 'Store Data' in de grid
opgeslagen.Aan dc bovenkant van het monitor2-form bevindt zich ook een
menubalk waarop een aantallmenu's verschijnen. Een menu kan worden geopend door
het aan te klikken of door de Alt-toets
vast te houden terwijI de onderstreepteletter van het menu ingedrukt wordt op het toetsenbord.
In dit form zijn er 4 menu's. Elk menu bevat nog ten aantal items. In tabel 2 wordt een lijst van
menu's opeesomd met de bijbehorende items.
TurboMon : Turbocharge Monitoring
invullen.
FIPe lobo Duds sew anthou. variabals Dar Furl/ mellow WV loam es.gpow tusboalgo
RIR PRESSURE PM OAR
rain row OMR P MIR Mot
P ardor ilseme. burl .
...
. &MI TEMPERATURE c &pm mom 0111.0 cooler :410s molar PRESSURE RI BAR .41RIRP NibsTurhoAlmi : Turhochurge Monitoring
ar..1
Lft
MS TEMPERATUREalC { Defeo* mt. An= raw . . . .Figuur 6
De monitor2 form in designiime
Tabel 2
De menu
op he!
monitor2 form
-COOLMOWATER TOWERATURE
Mom wan. mar Atm sew, cads
Menu's
Items Omschrijving_
File New
!mak een nieuw file
Open open een file
Save As bewaar een tile als
Close
sluit de invoer van teksten af
Exit verlaat een file
Tabel Delete wis een1.,,esclecteerde lijn in de tabel
Insert voeg eenlijn in de tube!tussen
druk de tabel af
Tools Compute bereken de conditieparameters van de mgevoerde geuevens Store sla de gegevens uit de tabel op
Graph open het u,raph-venster
Help Help open het help-venster
About... open het about-venster
1
OUNDITIEUI P METERS
Compels AI I asbesc
fiako
loom.= I I
Slurs Daft Al Row
T.
RaoConspresser Al liter
Gnsph
Pure. RAO. Al Flow
3,1.3
net
frmGraph form
Door de 'Graph' knop in te drukken,
verschijnt het frmGraph form. Op frmGraph staan een
grafiek, twee command buttons en een aantal option buttons. Bovenaan het
form is er ook eerEimenubalk. Figuur 7 geeft de frrnGraph
grafisch weer.Er zijni zeven soorten condideparameterS:
1, De condideparameter van de luchtkoeler, gebaseerd - de
warmteoverdracht (Heat Transfer)
- deluchtstroming (Air Flow)
De conditieparameter van de compressor,
gebaseerd ow- de
drukverhouding (Press. Ratio)
de temperatuurverhouding (Temp. Ratio)
De conditieparameter van de turbine,
gebaseerd 'op:- de
drukverhouding (Press. Ratio)
de temperatuurverhouding (Temp. Ratio)
4 De condifieparaiiieter van het
Ituchtfiliter, gebaseerd op de hiehtsftoming.:ph
Help!.,.,.ertnl0
ral we Ir
CP caloalaked meth GbAA0 Yet 4/ Na
Graphics of Condition Parameter r0 Ilea Fronde, in AnCoreer
0 AA Pew 6. Air Cooks.
Olio... Rae of Com1xutiii4
0 compressal
0
Peas flare, of twine0
leap R aho alTubers0 AlF1, Ae Faun
furboMon : furhocharge Monitoring
Print Graph I
' Close
FigOur 7
De lrmUraph.fortmin designinime
46It'
to -Yaus Proven Y Y ereerbe S ticks op: -1 99 M.TurboMon :
Turbocharge Monitoring
Afhankelijk van de gekozen optie, zal de grafiek het verloop laten zien van de
conditieparame-ters die zijn opgeslagen in de tabel op het monitor2 form. De gebruiker kan ook kiezen hoe het
verloop van de conditieparameters wordt berekend, met of zonder de GMA-methode. In totaal
kunnen er dus 14 gratieken worden getekend.
In tabel 3 wordt een aantal properties van de grafiek gegeven.
Tabel 3
Enkele belangrijke properties van de grafiek.
De eigenschappen van de y-as kunnen via text boxes in de frame 'Y-axis Properties'worden
ingesteld. 'Y Min' en 'Y Max' zijn respectievelijk de minimum en de maximum waarde van de
y-as. 'Number of ticks' geeft een aantal ticks in de y-as aan.
De x-as geeft het aantal meetdata aan dat in de grafiek wordt getekend. De x-as begint met 0,
dat wil zeggen de eerste meetdata (data in de eerste rij van de grid) als de 0-de meetdata in de
grafiek wordt getekend.
De gebruiker kan yang het frmGraph form teruggaan naar het monitor2 form door de 'Close'
knop in te drukken. Wanneer de 'Print Graph' knop wordt ingedrukt, wordt de grafiek afgedrukt.
De onder windows ingestelde printer wordt automatisch gekozen.
3.1.4
De AboutBox en het HelpForm
De AboutBox kan vanuit het monitor2 form worden aangeroepen, terwijI het HelpForm form
zowel vanuit het monitor2 form als vanuit het IrmGraph form kan worden aangeroepen.
De AboutBox bevat informatie over het programma TurboMon, terwijl het HelpForm form
informatie bevat over de wijze waarop men met dit program ma kan werken.
In titzuur 8 en 9 worden respectievelijk het AboutBox tbrrn en het HelpForm form weergegeven.
Object
Property
Setting
Graph
Name
Graph IBackground
White
Foreground
Auto Black/White
GridStyle
Horizontal
Figuur 8
De AboutBox form in runtime
TurboMon :
Turbocharge
Monitoring
About 1 orbobA on
1-14
rbo M on
Vet. ti ern
Piot-pain Ion Condition Monitcning of Tiorbochante
Wollen by WitnoAn.o Burvono
OK 1
CI Close
To compute the condition parameters you must followthe next steps Fill all text boxes with measurement data
Pros the 'Compute' button
To store the computed condition parameters press the 'Store Data' button
To Show Graphs, press the 'Graph' button
In the healty condition de condition parameters have een value as next: Heat Transfer in Air Cooler between 0.98 and1.02
Air Flow in Air Cooler between 0 85 and 1.1
Pressure Ratio of Compressor between 0 98 and1 02
Temperature Ratio of Compressor between 0.99 and 1.01 Pressure Ratio of Turbine between 0 96 and 1.04 Temperature Ratio of Turbine between 0.99 and 1 01 AI( Flow in Air Filter between 0.96 and 1./
I Close
Figuur 9
Helpl'Orm tortn in c/e.lgnhlrni'
1.
,3.2
De programmacode
Om alle objecten met elkaar te kunnen verbinden of een bepaalde lhandeling tekurtnen uitvoeren,
moeten de objecten worden geprogrammeerd. Men kan dit doen door
bepaalde codes aan devenstercode toe te voegen.
In het programma TurboMon kan men
de conditieparameters, die gebaseerd
zijn op de
ingevoerde gegevens, laten berekenen door
de 'Compute' button in te drukken. Urn de handeling
te kunnen uitvoeren, moet de'Compute' button geprogrammeerd worden ten
opzichte deevent. De programma ziet als volgt emit:
Sub cmdCompute_Click 0
CP_Cooler
CP_Compressor
CP_Turbine
CP_Filter
End Sub
De teksten achter (4) is een commentaar ter
verduidetijking
van de
programmacode.Na het aanIclikken van de 'Compute' button zal het programma achtereenvolgens de conditiepa-rameters van de luchtkoeler, de compressor,
de turbine en het luchtfilter berekenen. De
bereke-ningsmethoden zijn beschreven in respectievelijk de procedures CP_Cooler,
CP Compressor,
CP_Turbine en CP_Fi ker. Ms een voorbeeld words de procedure 'CP_Filter hieronder gegeven.. Deze procedure is gelijk aan het datallow-diagram in
hoofdstuk 5.4 van
'Conditiebewalang van
een drukvulgroep bij een
tweetaktdiesel motor
'[rapport OEMO 95/14]L
Sub CF Filter 0
'AIR NITER
ronstanten
Cl= 10.390346
C2 = -37383275.184379
C3 = 3.4311387039267 * WA ,3
'Bereken de referentie weerstandcoefficient
Re = ReynoldAir_Filter()
'Reynoldsgetal wordt door de subroutine
ReynoldAir Filter berekend
PsiFiltref = .21
"De rejerenciewaarde van weerstandcoefficient
'Bereken de vartabelen van de input waarden
Tern p1 n =
Val( txtTem pAirRoom.Text)
'Temperatuur voor het luchtfilter:
PresAirRoom = Val(txtPresAirRoom.Text)* 100000
'Druk in tie machine kamerPresAirFilt = Val(txtPresAirFilt.Text)* 100000
'Druk voor het luchtfiher
"Bereken de uctuele weerstandscoefficient
PsiFiltact = 2 * PresAirFilt * PresAirRoom /(287 * (273 + Ternp1n);* AirFlow() A 2)
TurboMon : Turbocharge Monitoring
'Na click op de 'Compute knop words subroutine gestart
Were ken de conditieparameters van de luchtkoeler
'Bereken de conditieparameters van de compressor
'Bereken de conditieparameters van de turbine,
'Bereken de conditieparameter van het luchtfilter
klik-'Bereken de condtteparameter van het luchtfilter
CoParFilt
= PsiFiltact / PsiFiltref
Display de coruhtteparameter op het
scherm
txtCP Flow Filter.Text = CoParFilt(&
End Sub
Na het berekenen van de conditieparameters kunnen de invoervariabelen en de
conditiepara-meters in het grid bewaard worden door de 'Store Data' command button aan te
klikken. In
figgur I I wordt het grid met bewaarde data weergegeven.
De programmacode ziet er als volgt
uit:
Sub Store_Data
0
73ewaar data in
de label
gridl.Col = 0
grid 1.Text = txtday
txtday = ""
gridl.Col = 1
grid 1.Text = CoPa r_H eat*
txtCP_ Heat_ Cooler
= ""
grid 1.Col = 2
grid 1.Text = CoPar_Flow*
txtCP_Flow_Cooler =
End Sub
Door het aanklikken van de 'Graph' command button verschijnt het frmGraph form. Op dit form
zijn twee frames met een aantal 'option' buttons te zien. De optic buttons bepalen welke
condi-tieparameters er in de grafiek zullen worden getekend. Hieronder is een voorbeeld van de
proerammacode van de optic button.
Sub
Flow_Firter 'Graph
0
'Procedure voor het tekenen van de conditieparameters van het I
uchtfi lter in de irsafiek
'zet de eigenschappen van de grafiek
Graphl.DrawMode = 1
'Hits de eerder getekende grafiek
Graph 1.Data Reset = 9
'Reset ulle data van de grufiek
Graph l.SymbolData = 3 'Bepaul de symbol voor data
Graphl.NumSets = 1
'Het cranial data set is I
TurhoMon :
Turbocharge
Monitoring
'Bewaar data van de 'txtDay' text box in de nulde
kolom
'Muakt de 'txtDay' text box leeg
'Bewaar CoPar Heat@ in de eerste kolom
'Maakt de `txtCP Heat _Cooler 'text box leeg
'Bewaar CoPur Flow@ in de eerste kolom
'Maakt de 'txtCP Flow _Cooler' text box leeg
Graphl.NumPoints = monitor2.Gridl.Row
'Het auntul data is gehjk aan het uuntal
rijen in grid
monitor2.Gridl.Col = 7
'Verwys 'war kolom 7, de conditiepurameter van het luchtjiher
TurhoMon : Turbochurge Monitoring
'Teken de conditieparameters in de grafiek
For a = 1 To monitor2.Gridl.Row
monitor2.Gridl.Row = a
'Verwijs naur rij a
Graph 1 .G raphData = Val( mon itor2.Grid 1 .Text)
Next
Neem de waarde van de verwijsde
eel van de grid (rij u, kolom7) als
de a-de data voor de grafiek
'Geef de grafiek tales
Graphl.GraphTitle = "Air Flow in Air Filter"
`Geef de grafiek
een tile!
Graphl.BottomTitle = "Number of Data"
'Gee/. de gruliek een Mel
vow.de x-as
Graph 1.DrawMode = 2
'Teken de grafiek
Graphl.Visible = True
'Maak de grafiek :ichibaar
End Sub
De complete programmacode van TurboMon wordt weergegeven in bijlage 3.
4
Werken met TurboMon
TurboMon is een bewakingsprogramma dat alleen kan worden gebruikt voor het onderzochte
drukvulgroepsysteem. Na het uitvoeren van enkele aanpassingen kan het echter ook op andere drukvulgr, oepsystemen worden toegepast. In dit verband wordt verwezen naar het rapport OEMO 95/14.
TurboMon is een programma dat werkt in een Windows-omgeving. Het bestaat uit een aantal
files, waaronder:
- textedit.bas
- gswdll.d11*
- vbrun300.d11* ver. dl 1 * - ctsw.exe *mon i tor4 exe
aboutbox.frrn
- frmgraph.frm
helpforrn frm
monitor I.
frm
mon itor2. frm
mon i tor4. mak
cmdialog. vbx*
- graph.vbx *
- grid.vbx *
threed.vbx *
-Om het programma soepel te laten draaien, wordt aanbevolen om de files zonder s' in een
subdirectory (by. TURBOMON) onder te brengen en de files met * te bewaren in een
subdi-rectory WINDOWS\SYSTEM. Hiema kunnen
door middel van standaard Windows-handelingenvoor het programma een nieuwe groep
worden gemaakt. Voor de -command line' wordt
moni-font exe gebruikt.
4. I
Bet starten
Het starten van het programma kan gebeuren
door het aankl'ikken van het icoon van TurboMon
of door het aanklikken van het file monitor4.exe in de File Manager van Windows.!
Direct na het starten verschijnt er een venster met de titel van het programma (figuur [10). Na 2.5
seconden verdwijnt dit venster en verschijnt er een
nieuw venster, de hoofdvenster.I nolmlAmp. jLliqmpu M.7111. ,,,,, 'Our lip;'.,,, 1:11,4C.A..44.:41/10
trIge4,34;;P.V57;"
r
1..;. 14:24:1.,..ly-5st."CO'CrYS'el.>..
nAtfty kel> lb 4
i.6:421-11";rdAti,.
%.fett,,W .94
..
WI 1.11:4ti:;/* %(.fAtX....e '7,4e tee., Nig.111.Figuur 10
Dc ritlevenster (monitor! limn) (nide runt tme
42
Bet invoeren, en bewerken van data
het hoofdvenster (figuur II) bevinden zich een paar text boxes waarin de gebruiker de
gemeten variabelen kan invoeren. Alle temperaturen worden aangegeven in graden Celsius,
terwijI de druk uitgedrukt wordt in bar. Alle variabelen dienen correct te worden ingevuld,
aangezien het programma anders een foutmelding geeft.
TurboMon : Turbocharge Monitoring
e :46Abriiiiik:4,;.H4Sri-
thif.1.0Mit
netiniscwa's.i.t.ttheaeato'101n,:ommecen Stalinine
Condition
VakgrooP
Factined
B.V.
In[lie babel jools deIg
All as these relabels _ . .. ... . . ... .
TurboMon : rurbocharge Monitoring
Als alle invoervariabelen zijn, ingevoerd kunnen de conditieparameters van de componenten
worden berekend. Dit gebeurt door het indrukken van
de 'Compute' knop of via het Tools-menu,
optic
Compute. De berekende conditieparameters
verschijnen in de text boxes van het
Conditionparametee frame.
muinivnipu: r7.1
Figuur ii
De hoofdvenster (monitor2 form)
de runiimer
Wanneer de 'Store Data' knop wordt ingedrukt, verplaatst het programma
alle invoervariabelen,
en de berekende conditieparameters naar de tabel. Op het scherm zijn ableen 8 kolommen en 91rijen van de tabel te zien. Om alle bewaarde data it kunnen bekijken, gebruikt men de
horizontale en verticale scrollbars. Ms men alleen den rij data wit bekijken, kan men Mk data
van de rij in de text boxes terugzetten door de gewenste rij dubbeli aan it klikken.
Om alle data in de tabel te bewaren, is
de optic
Save As in het File-menu beschikbaar. De data
worden dan in een ASCII-file met de extensie *.TXT bewaard. Later ,kan dit file weer geopend
worden via de optic Open van het File-menu. Voor het maken van een nieuwe file, kiest men
de optie Nieuw in het File-menu.
De optic
Close dient voor het leegmaken van de text boxes endc optic Exit voor het verlaten van het TurboMomprogramma..
Wil men de tabel bewerken, dan wordt Table-menu gebruilct.
De optic
Delete is voor het vvissent van een geselecteerde rij en de opticInsert is voor het tussenvoegen van een rij. De optic Print
worth gebruikt voor het afdrukken van de iinhoud van de label
P t. (kap Compate: Al Al FlowiVas
ca
I012Ileenscm Ins& Poem.
Tows Rat aMie odk Data t 9995 fimom] r II 9 TEMPERATURE NI Ens! I CD. Cad
Heal CP CatFlow
CP Cassia"
Tow
ail
Taw. CP FilmUpon teen 130 liss 149 9925 8494 1.0157 1.0013 1.0329 I 0035 9911 1.0403 1,0143 1.0051 1.0114 .9981
nfl
1.0011 18201 1.0456 1 0495 1 0226 1 0098 1.0418 1 0029 1.0099 100 9166 9252 MAll I 0037 liggiPRESSUREJIMr, Ritmo Nebo (102
MIN
1.0021 1.0402 99196 9967 1 01481
'Mire Mean jam 100251.002 1,04361 0482 .1971.01815 .9912.9982
T 0097 OMNI 1 017 t7 C , CUOUNGWATER TEMINFIATURE IN CTh GAS TEMPERATURE IN C :-Ilay ITAs mom 1 II Belem babe IQ° 1
Rabe ma. ;mew 131 1
1 6 2 MIA gumbo I 2E8 1 IAles maw. cook/ 1
I flP114 suit tosts 190 19703 CONDITIOMPARAMETERS Canis: campU MIN PRESSURE IN Oa Steno Date RAM Tinier AIR.. Press Rads Tem, Pahl. kmenot RPM
l8
fi 01 1 g9i4 110473I 19943 1RAM. P Wet Alter
I clon C in CP. CP. 2613 4022 1/4 9964 001 .9935 9991 9934 9962 6/4
4.3
De gratiek
Door op de 'Graph knop te drukken verschijnt er een nieuwe venster, het grafiekvenster
(figuur
12). In dit venster staat een graph, waarbij men kan kiezen uit een aantal opties. Zodoende kan
men selecteren welke conditieparameters er getekend worden en op welke wijze dit dient te
geschieden. Als wordt de conditieparameter getekend van de luchtkoeler, gebaseerd op de warmteoverdracht.
TurhoMon : Turhocharge
Monitoring
,.1114111. I 0111100,
Edit Kelp
0 TOWS Reba of Tunes o Ay Floor Aft [am
rYamo Plopalues Y Min Y Nay Ilikmolbor al Ticks [P.m! Grew*/ I Close
Figuur 12
De grufiekvenster
mOraph
Petra
in de runtime
De eigenschappen van de v-as kunnen via de text boxes in de frame 'Y-axis Properties' worden
ingesteld De default waarde voor 'Y Min' is 0.8, voor 'Y Max' is 1.2 en voor Number of
Ticks' is 8.
Het verloop van de conditieparameters, berekend door middel van de GMA-rnethode, kan
vvorden getekend door de optic 'Yes' te kiezen in het frame 'CP calculated with GMA's Alvorens
de gewenste conditieparameter aan te klikken, diem eerst de 'Yes' optie te worden eekozen.
Door het Help-menu' op te roepen, verschijnt het helpvenster, waarin men inforrnatie
ndtvoor de beoordeline van de conditieparameters.
De opdracht om de grafiek af te drukken met een printer wordt geeeven door de 'Print Graph'
knop in te drukken. Be 'Close' knop maakt het mogelijk om terug te keren naar het
hoofd-,enster.
CP calta.haled Au& GINA --i
*Y..
Quo[
Air Flow in Air Cooler with GIVIA
1 10
-Graphics ofCondition Parameter
OS
0
Nem trends ANCOOMII- loos in A. Look.
o MIMI nano of Comprento
1 00
limp Rano of COMpframi 0 95
Pm,. Hobo of I orb..., 0 90
I-
I 1 O 85 0 80 4 4 0 2 3 4 5 6 7 Number of DataDefault
0-05
Conclusies
TurboMon is een gebruikersvriendelijk prommma voor het conditiebel,vakingssysteem van een
drukvulgroepsysteem.
Dat wit
zeggen dat men met weinig computerkennis moeiteloos met dit
programma
kan werken en eenvoudig een diagnose kan stellen met betrekking tot het
drukvul-groepsysteem.
TurboMon geldt alleen voor het onderzochte drukvulgoepsysteem,
dat wit
zeggen het
drukvul-groepsvteem aan boord van M.V. Monterey van Van Ommeren
Shipping
B.V. Men kan
wetdit
programma evenwel op andere drukvulg,roepsystemen toepassen, maar dan dient eerst een aantal
parameters worden aangepast door middel van het tunen van meetdata. De methode die hierbij
gebruikt kan worden is reeds beschreven in
'onditiebewaking van een drukvulgroepsysteem
by een tweetakt these/motor
'(Rapport OEMO 95/14).
Belangijke aanbevelingen die hier kunnen worden ilenoemd om het programma in de toekomst
te verbeteren o.a.:
Het automatisch uitrekenen van de referentieswaarden via by. een referentie form
waarmee de gebruiker eenvoudig met gebruik van nauwkeurige nieuwe data een beter
model kan maken of het programma aan een andere drukvuluoepsysteem kan toepassen.
Het toevoegen van trendanalyse/predictie om te voorspellen
wanneer een
conditiepara-meter ontoelaatbaar wordt.
6
Referenties
Buwono, 1996W.A. Buwono: "Conditiebewaking van een drukvulgroepsysteem bij een twee-takt dieselmotor",
Rapport OEMO 95/14; Technische Universiteit Delft.
Gerrit Bruijnes, 1995
G. Bruijnes: "Basiscursus Visual Basic 3 voor Windows", Academic Service, Schoonhoven,
Gerrit Bruijnes, 1995
G. Bruijnes: "Visual Basic 3 voor Windows voor gevorderden"Academic Service. Schoonhoven.
BIJLAGE I: BELANGRIJKE TERMEN IN VISUAL BASIC
1.1
Controls
De toolbox van de Professional Edition van Visual Basic telt 39 gereedschappen, een aanwijzer
en 38 tekengereedschappen, de
controls.
Hieronder worden een paar belangrijke controls beschreven:
Command button
Command 3D
Common dialog
control
De pointer
Frame
Frame 3D
Graph
control
Grid
control
Label
l'urboition
Turbocharge
Monitoring
Een command button is een knop die in een venster afgebeeld
!kaliworden en waar tekst (caption) in geplaatst kan worden. Door
met de muis de knop in te drukken, kan een gebruiker van het
programma een handeling in gang zetten.
De driedimensionale versie van een commmand
button(
knop).
Met common dialog control wordt voorzien in een aantal
stan-daard dialoog,vensters die gebruikt kunnen worden
voor
handelin-gen zoals het openen, het bewaren of het afdrukken van
be-staanden of voor het instellen van het lettertype of kleuren.
Voor het aanvvijzen van het form ulier of een object in het
formu-lier om het te kunnen manipuleren.
Een frame is een omkadering waarbinnen een aantal andere
knoppen, buttons, zou kunnen worden geplaatst.
De driedimensionale versie van een frame
Met behulp van de Graph control koppelt men in een ommezien
een grafiek aan een programma. Er zijn ruim tien verschillende
typen gsafieken in allerlei stijlen beschikbaar.
Met grid control kan een soon mini-spreadsheet in
een
form tiller
geplaatst worden. Men kan zelf bepalen hoeveel rijen en
kolom-men dit raster moet hebben. Waar een rij en eenkolom elkaar
snijden, is sprake van een eel. Dc inhoud van een eel kan door het
programma bepaald worden. Dit gereedschap wordt gebruikt om
groepen gegevens onder elkaar te plaatsen.
Dit gereedschap heeft een functie als een label
van een koffer.
Binnen een labelruimte kan tekst worden
aangegeven. De tekst
diem als verduidelijking voor de gebruiker van een programma.
TurhoNfon
Turbocharge
Monitoring
Option box
Keuzerondjes worden binnen Windows-applicaties gebruikt om
bijvoorbeeld uit een rijtje een onderdeel te kiezen.
Option 3D
De driedimensionale versie van een keuzerondje.
Panel 3D
In een panel kan men een heel regelpaneel onderbrengen.Text box
Een tekst box is een ruimte waarin de gebruiker van hetprogram-ma dat worth geprogram-maakt, tekst kan typen. Een text box wordt dus
gebruikt voor invoer vanaf het toetsenbord. Ook kan tekst,
bij-voorbeeld uitkomsten van berekeningen, in een text box
afge-drukt.
Timer control
1.2
Opdrachten
Visual Basic kent verschillende opdrachten. In het volgende overzicht wordten de opdrachten
kort beschreven:
Addltem,
Het beheren van de inhoud van een lust of een combo box.
RemoveItem
ChrS,Chr
Geeft de ASCII-waarde van een teken of van het eerste teken uit een tekenreeks.Close, Reset Voor bet afsluiten van een bestand.
Dim, Global
Voor het declareren van variabelen,
Do...Loop, For...Next
Voor het herhalen van bewerkingen.
End, Unload
Voor het verlaten van een programma.EOF, FreeFile
Geven nadere informatie over een bestand.Exit Function, Exit Sub
Om voortijdiv, een functie of procedure te verlaten.
,Fu nction...End Function
\Thor het definieren van een functie of procedure.
Sub...End Sub
De timer kan wet getekend worden, maar is in
runtime-omstan-diOeden, dus als het program ma werkt, onzichtbaar. Via proper-ties-venster bar kan ervoor gezorgd worden dat na een bepaalde tijdsduur de timer afloopt en dat er dan een stuk programmacode
uitgevoerd wordt.
TurhoMon
Turbocharge Monitoring
Voor het nemen van beslissinp,
Select Case
Input, InputS,
Urn gegevens uit een bestand te lezen.
Input, Line Input#
Load, Unload
1-Jet in het geheugen laden of verwijderen van objecten.
Move
Voor het verplaatsen van een object.
MsgBox
Voor het
toner(van dialog boxes.
OnError
Afvangen van een foutmelding.
Open
Voor het benaderen of creeren van een bestand.
Voor het afdrukken naar de printer.
Print#
Om naar een bestand te schrijven.
Refresh
Inhoud bijhouden van een lijst binnen een object.
Show,
'Tom!
van objecten.
1.3
Events
De objecten in Visual Basic kennen verschillende events (gebeurtenissen). Elke event kan
aanleiding geven tot een tak die door het program ma moet worden uitgevoerd. Niet elk object
heeft dezelfde events, omdat alle objecten verschillende, specifieke eigenschappen hebben.
De volgende lijst geeft enkele events:
Activate
Activate komt voor als een formulier het actieve formulier
worth.
Change
De inhoud van een object is veranderd.
Click
Het
object wordyaangeklikt.
DbIClick
Op het object wordt dubbelgeklikt.
Key Press
Er wordt een toets ingedrukt I.,,ehouden terwijl het betreffende
object in focus is.
Paint
Een 'dee!
van de form of de picture box wordt zichtbaar
teni4evolge van een sleepactie.
Resize
Timer
Unload
1.4
Properties
De verschillende objecten bezitten een diversiteit aan eigenschappen ( properties). Welke
eigen-schappen een
object heat,
wordt bepaald door het type object. Niet alle eigenschappen gelden
dus voor elk object.
Daar komt nog bij, dat bepaalde eigenschappen alleen onder runtime-omstandigheden
voorhan-den zijn.
Hieronder wordt een verklaring van een paar eigenschappen, die in TURBOMON
worden
gebruikt, gegeven:
ActiveControl
Het in focus zijn van een object.
ActiveForm
Het in focus zijn van een form.
Align nent
Het aanlijnen of centeren van tekst binnen een label.
BackColor
De achtergrondkleur van een form
BorderStyle
De begrenzing rond een form, label, picture box of text box.
Cancel
Toekennen van de annuleereigenschap aan een command button.
Cancel Error
Het indrukken van de
Annul eer-knop
geeft een foutmelding.
Caption
Het opschrift van een object.
Col
Bepaalt met Row de active cel in een Grid.
Cols
Geeft aantal kolommen in een Grid.
ColWidth
Bepaalt de kolombreedte (in twips).
Default
Standaardeigenschap van een commmand button.
Turbo Mon : Turbochurge A4enttaring
De grootte van een form wordt veranderd. Deze event komt ook
voor wanneer een form voor het eerst zichtbaar wordt gemaakt.
Het ingestelde tijdsinterval is bereikt. Deze event komt alleen
voor bij het object Timer.
Filter
Izirholion : Turbochurge Monitoring
Geeft een tekenreeks die in een titlebalk van een dialogvenster
getoond wordt.
Bepaalt de verschijning van de uitvoer van de grail
opdracht
of de verschijning van een form of lijn.
Geeft de lijnstijI voor grafische uitvoer.
Beschikbaar zijn van toets- en muis-event aan een object.
Selectie van een bestand binnen de filr list box.
Geeft de naam van het bestand dat geopend of opgeslagen mod
worden.
Een Filter bepaalt het type bestanden dat in een bestandlijst van
een dialoogvenster zichtbaar moet zijn worden, bijvoorbeeld
*.TXT.
Filterindex
Geeft een standaard Filter aan.
FixedCols
Bepaalt samen met FixedRows het totaal aantal kolommen en
rijen dat Qebruikt wordt voor titles.
FixeRows
Zie FixedCols
FontName
Kiezen van een lettertype
FontSize
Lettergrootte
ForeColor
Voorgrondkleur van een object.
GridLines
Geeft aan of de lijnen tussen cellen in een Grid zichtbaar zijn.
Height
Hoogte van een object.
Interval
Tijdsinterval van het object Timer.
Left
Horizontale plaats, vanaf links gerekend, van een object.
MultiLine
Weergeven van tekst over meer dan een regel binnen een text
box.
Name
Unieke naam van een object, een groep objecten of een forrnulier.
DialogTitle
DrawMode
DrawStyle
Enabled
FileName
FileTitle
TurboMon : Turbocharge Monitoring
Row
Zie Col.
Row Height
Bepaalt de hoogte van een rij cel len in een Grid.
Rows
Zie Cols.
ScaleHeight
Bepaalt samen met scaleWidth de eenheid voor horizontale en
verticale meting van objecten.
ScaleWidth
Zie ScaleHeight.
Tablndex
De tab-volgorde van objecten.
Text
Toekennen van tekst aan een combo box, list box of text box.
Value
Toekennen van een waarde aan een object.
BIJLAGE II:
VARIABELENLIJST
Hieronder is een lijst van variabelen die in de programmacode van TurboMon worden
gebruikt en de benaming daarvan in het vierdejaarverslag.
CoPar_Heat
CoPar Flow
CoParCP
Turbo Mon
Tiirhochurge Monitoring
Luchtdichtheid in luchtkoeler
Luchtdichtheid in luchtfilter
Luchtdichtheid in luchtreceiver
Massastroom lucht
Warmtegeleidingscoeff. van lucht in
luchtkoeler
Soortelijke warmte van lucht
Gemiddelde luchttemperatuur in de
I uchtkoeler
Dynamische viscositeit van lucht in
de IIuchtkoeler
Dynamische viscositeit van lucht in
luchtfilter
Warmtedoorgangsgetal van lucht *
warmteoverdragendoppevlak in de
luchtzijde van koeler
Warmtedoorgangsgetal van water *
warmteoverdragendoppevlak in de
waterzijde van koeler
Conditieparameter van luchtkoeler,
gebaseerd op warmteoverdracht
Conditieparameter van luchtkoeler_
gebaseerd op stroming
Conditieparameter van compressor.
gebaseerd op drukverhoudirw
In de programmacode van
In het
Omschrijving
TurboMon
ierdejaarverslag
AirDensity_Cooler
Pl.kAirDensity_Filter
PISAirDensity Receiver
pinAirFlow
niLlAirHeatCond_Cooler
Al.kAirSpecHeat_Cooler
CptAirTempi Cooler
TI.kAirVisco Cooler
Air ViscoJil ter
TbrAlphaA Air
k*A,khirhoMon : Turbocharge Monitoring
Conditieparameter van compressor,
gebaseerd op temperatuurverhouding
Conditieparameter van turbine,
gebaseerd op drukverhouding
Conditieparameter van turbine,
gebaseerd op temperatuurverhouding
Conditieparameter van luchtfilter,
De actuele drukverhouding van
compressor
De referentie drukverhouding van
compressor
De actuele temperatuurverhouchng van
compressor
De referentie temperatuurverhouding
van compressor
De actuele drukverhouding van turbine
De referentie drukverhouding van
turbine
De actuele temperatuurverhoudint; van
turbine
De referentie temperatuurverhoudint;
van turbine
De drukval van lucht over luchtfilter
Luchtdruk in de machinekamer
De actuele gemodificeerde
weerstand-coefficient van luchtfilter
De referentie tlemodificeerde
weer-standcoefficiC:nt van luchtfilter
Revnoldseetal van
I uc htReynoldsgetal van water
De actuele temperatuur lucht na koeler
CoParCT
CoParTP
CoParTT
CoParFi It
PiCPact
TCc.p. actueelPiCPref
rte.'''. relen.-nhePiCTact
nc.T. actuedPiCTref
Ttc.T. relerennePiTPact
nt.p. aciumlPiTPref
nt.p. refercnnePiTTact
actucelPiTTref
I relerentiePressAirFilter
6,131.!PressAirRoom
PhnkPsiFiltact
Cr.:wooledPsi Fl ltref 41'f. relcrentie
Re _Air
Re
Re Water
Re
Temp_ ACooler _ref
WaterDensity_Cooler
WaterFlow
WaterHeatCond_Cooler
TurboMon : Turhochurge Monitoring
De referentie temperatuur lucht na
koeler
Warmtegeleidingscoeff van water in
luchtkoeler
Massastroom water
Warmtegeleidingscoeff van water in
luchtkoeler
WaterSpecHeat_Cooler
Cp,
Soortelijke warmte van water
WaterTemp_Cooler
c
kGemiddelde watertemperatuur in de
luchtkoeler
Dynamische viscositeit van water in de
luchtkoeler
De actuele gemodificeerde
weerstand-coefficient van luchtkoeler
De referentie gemodificeerde
weer-standcoefficient van luchtkoeler
WaterVisco Cooler
1.1% kweerstand_act
L.ActucelTurboMon : Turhocharge Monitoring
BIJLAGE ELM
DE PROGRAMMACODE VAN TURBOMON
MONtTOR1.FRM
Sub Timerl_Timer H
If Monitorl.Visible = True Then If Timerl.Interval = 2500 Then Monitorl.Visible = False Monitor2.Show Modal End If End If End Sub 440NITOR2.FRM 'Defineer de variabelen
Dim CoPar_Heat@ 'Conditieparameter van de luchtkoeler gebaseerd op de warmetoverdracht
Dim CoPar_Flow@ 'Conditieparameter van de luchtkoeler gebaseerd op de stroming
Dim CoParCP@ 'Conditieparameter van de compressor gebaseerd op de
drukverhouding
Dim CoParCT@ 'Conditieparameter vary de compressor gebaseerd op de
temperatuurverhouding
Dim CoParTP@ 'Conditieparameter van de turbine gebaseerd op de.
drukverhouding
Dim CoParTT@ 'Conditieparameter van de turbine gebaseerd op de
tempera tuurverhouding
Dim CoParFilt@ 'Conditieparameter van de luchtfilter gebaseerd op de
stroming
Function AirDensity_Cooler (4
'Bereken de luchtdichtheid in de luchtkoeler
PresIn = (Val(txtPresAirTrun.Text) + Val(txtPresAirCool.Text4 + Val(txtPresAirRoom.Text)) * 10 5
TempIn = Val(txtTempAirBCool.Text)
AirDensity_Cooler = PresIn / (287 * 1273 + TempInfi
End Function
Function AirDensity_Filter (4
"Bereken de luchtdichtheid in de iuchtfilter
DrukIn = (Val(txtPresAirRoom.Text) - Val(txtPresAirFilW * nm000
TempIn Val(txtTempAirRoom.Text)
AirDensity_Filter = DrukIn / (287 ' (273 -- TempIn))
End Function
Function AirDensity_Receiver ()
'Bereken de luchtdichtheid in de luchtreceiver
= OialitxtPresAirirun.Text) + Val(tXtPresAirRoom.Text)/ * 101 5
T - Val(txtTempAirACool.Text)
AirDensity Receiver = P / (267 + 273H
.End Function
EurboAlon : Turbochurge Monitoring
Function AirFlow () 'Massastroomlucht schatter 'Constanten Cl - -180.3909881277 C2 = 3.3248567926177E-03 C3 = -4.7085346560598 10 A =9'Bereken de druk in de receiver
Pr = (Val(txtPresAirRoom.Text) + ValCtxtPresAirTrun.Text)) * 100000 'Bereken de massastroomlucht Li - AirDensity_Receiver0 12 = Cl + C2 * Pr + 0 * Pr A 2 L3 - Li * 12 Airflow = Sqr(L3) End Function Function AirHeatCond_Cooler
"Bereken de warmtegeleidingscoefficient an de lucht in de luchtkoeler
T AirTemp_Cooler0
AirHeatCond Cooler = 2.423 * 10 A -2 + C7.637 * 10 A -5 * TA - (14583 *Z
TO A -7 * TA 2) + (1.115 * 10 A * T 3)7
End Function
Function AirSpecHeat_Cooler 0
"Bereken de soortelijke warmte van de lucht in de luchtkoeler
T = AirTemp_Cooler()
AirSpecHeat_Cooler = 1005 + 6.106 10 A -3 * T + 5.073 * 10 A -4
4: TA
22.213 10 A -7 * T A 3
End Function
Function AirTemp_Cooler ()
"Bereken de gemiddelde 1uchttemperatuur in de luchtkoeler
AirTemp_Cooler = (Val(txtTempAirBCool.Text) + Val(txtTempAirAfool_Textil
/2
End Function
Function AirVisco_Cooler
'Bereken de viscositeit van de lucht in de luchtkoeler T = AirTemp_Cooler()
AirVisco_Cooler = + 4_41 * 101 A -2 * T) 10. A -6
End Function
Function AirVisco_Filter 41
'Bereken de viscositeit van de lucht in de luchtfilter TempIn = Val(txtTempAirRoom.Text)
AirVisco_Filter = (17.42 + 4.41 10 A -2 * Temp/n4 * 10 A =6 End Function
Sub cmdCompute_Click ()
'Bereken de conditieparameters
On Error GoTo errhand1r3 'Als er een tout optreedt go near errhand1r3
CF Cooler 'Doe procedure C? Cooler
CP_Compressor 'Doe procedure CP_Compressor CP_Turbine 'Doe procedure C? Turbine CP_Filter "Doe procedure C? Filter
errhand1r3:
Exit Sub "Als er een fout optreedt worth niks gedaan End Sub * () = -9 * - * (17.42 *
Sub cmdGraph_click ()
INaakt de frmgraph form verschijnen
frmgraph. Show
End Sub
Sub cmdStore_Click ()
'Bewaar de gegeven in de tabel menFileItem(3).Enabled = True gridl.Row = 1 gridl.Col = 1 For a = 1 To 50 If gridl.Text = "'" Then Store Data Exit Sub Else gridl.Row = gridl.Row + I End If Next End Sub Sub C? Compressor 'COMPRESSOR
'Conditieparameter van Compressor gebaseerd op de drukverhouding
'"Calculate variables from the input values
TempIn = Val(txtTempAirRoom.Text) 4 273 Temperatuur voor de Compressor
TempOut = Val(txtTempAir8Cool.Text) + 273 "Temperatuur na de Compressor
nTurbo = Val(txtRpmTurbo.Text / 60) 'Turbo
rotatie per second
PresIn = Val(txtPresAirRoom.Text) - Val(txtPreSAirFilt.Text1 "*Druk voor
de Compressor
PresOut = Val(txtPresAirTrun.Text) + Val(txtPresAirRoom.Text1 + Val(txtPresAirCool.Text) 'Druk na de Compressor
IGemodificeerde toerental van de turbocharge
4 n300 = nTurbo * (300 / TempIn) A (1 / 24
'Contanten
Cl = 8.2000262 C2 = -.107247 C3 = .0004605
\Bereken de actuele en de referentie drukverhouding
PiCPref = Cl
t
C2 ' n300 + C3 w n300, A 2 'the reference pressure ratio, PiCPacc. = PresOut / PresIn 'the actual pressure ratio "Conditieparameter, gebaseerd op de drukverhoudingCoParCP@ = PiCPact / PiCPref
"CondiLieparameter van de Compressor gebaseerd op de temperatuurverhouding
Cons tans
'TurboMon
Turbocharge Monitoring
"Bereken de actuele en de referentie temperatuurverhouding
PiCTref = C4 + Ch * n300 + C6 * n300 * n300 PiCTact = TempOut / TempIn
C4 C5 C6 = = = .96638 -.00011 1.956 ' 10 ' =5 ()
'Conditieparameter, gebaseerd op de temperatuurverhouding CoParCT@ = PiCTact / PiCTref
'Display Conditieparameters op de scherm txtCP_Press_Comp.Text = CoParCP@ txtCP_Temp_Comp.Text = CoParCT@ End Sub Sub CP_Cooler IN 'AIR COOLER 'Constants D = 02 'Koelwaterpijpdiameter = 1 'Koelwaterpijplengte n = 500 'aantal koelwaterpijpen a = 2 laantal koelwaterpijpdoorgangen 'Bereken de referentie warmtedoorgangsgetal
re water = WaterFlow() / WaterVisco_Cooler0 * 4 * a / )(3.14 * D n)
Pr = WaterVisco_Cooler() * WaterSpecHeat_Cooler1) / WaterHeatCond_Cooler0
AlphaA_Water = WaterHeatCond)Cooler01 / D * _012 * (re water .187 - 2801
* Pr ' .4 * (3.14 * D * L * n)
re Air = AirFlow() / AirVisco_Cooler()
AlphaA_Air = AirHeatCond_Cooler() * (-209806.13182073 + 1.5448997846664 *
re_Air - 6.1729197752124 * 10 ' -9 * re Air ' 2) IC_ref = 1 / (1 / AlphaA_Water + 1 / AlphaA_Air)
'tees de temperaturen uit de invoer ti = Val(txtTempAirBCool.Text)
t2 Val(txtTempAirACool.Text) t3 = Val(txtTempWaterBCool.Text)
t4 = Val(txtTempWaterACool.Text)
'Bereken de referentie luchttempetuur na de koeler
Temp_ACooler_ref = ti + (2 * (t3 - ti)) / (1 + (AirFlow() *
AirSpecHeat_Cooler()) / (WaterFlow() * WaterSpecHeat_Cooler()) + (2 4,
AirFlow() * AirSpecHeat_Cooler()) / K_ref)
'Conditleparameter van de luchtkoeler gebaseerd op de warmteoverdracht CoPar_Heat@ = t2 / Temp ACooler_ref
'Air Flow
Lees de variabelen uit de invoer delta = Val(txtPresAirCool.Text)
P air = (Val(txtPresAirRoom.Text) + vali(txtPresAirCool_Text) + Val (txtPresAirTrun) ) * 10 ^ 5
weerstand ref - 5
'13ereken de referentke weerstandcoefficient
weerstand_act = 4 * delta * 10 ' 5 * Pair ; / (287 * 046. +)tc:1 t2,1 *
(AirFlow()) ' 2)
CoPar_Flow@ = weerstand act / weerstand_ref "Display Ccnditieparameters op de sonerm
txtCP_Heat Cooler.Text = CoPar Heat@
tztCP_Flow_nr)r1Pr.Te:ct CoPar_Flow@ End Sub
ThrboMon : Turhochurattlonitorin
L * = + =Sub CP_Filter i() 'AIR FILTER 'Constanten Cl = 10.390346 C2 = -37383275.184379 Ca = 3.4311387039267 * 10 A 13
"Bereken de referentie weerstandcoeffcient
Re = ReynoldAir_Filter() 'Reynoldsgetal of air PsiFiltref = .21
'Bereken de variabelen uit de invoer
TempIn Val(txtTempAirRoom.Text) *the temperature before the air
filter
PresAirRoom = Val(txtPresAirRoom.Text@ * 100000 "the pressure
before the air filter
PresAirFilt = Val(txtPresAirFilt.Text4 * 10000.0
*Bereken de actuele weerstandcoefficient
PsiFiltact = 2 * PresAirFilt " PresAirRoom / (287 ,t (273 , empIn)( 4
AirFlow() " 2)
Bereken de conditieparameter van de luchtfil er CoParFilt@ = PsiFiltact / PsiFiltref
'Display de conditionparameter
txtCP_Flow_Filter.Text = CoParFilt@ End Sub
Sub CP_Turbine
'TURBINE
"Conditieparameter van de Turbine gebaseerd op de drukverhouding "Bereken de variabelen uit de invoer
TempIn = Val(txtTempGas8Turb.Text) + 273 'Temperatuur voor de turbine'
TempOut = Val(txtTempGasATurb.Text) + 273 'Temperatuur na de turbine nTurbo = Val(txtRpmTurbo.Text / 60) 'Drukvulgroeptoerental
PresIn = (Val(txtPresGas8Turb.Text) + Val(txtPresAirRoom.Text)) 'Druk
voor de turbine
PresOut = (Vall(txtPresGasATurb.Text) + Val(txtPresAirRoom.Texrn 'Druk
na de turbine 'Gemodificeerde drukvulgroeptoerental ndvg = nTurbo / Sgr(TempIn 'Content en Cl = 19.596861830107 C2 = -6.8009025329041 C3 = .65713422556165
"Bereken de referentie en de actuele drukverhouding
PiTPref - Cl + C2 ndvg + C3 * ndvg " 2 'de referentie
drukverhouding
PiTPact = PresIn / PresOut 'de actuele druverhouding Bereken de conditieparameter van de Turbine gebaseerd op de drukverhouding
CoParTP@ = PiTPact / PiTPref
TurboMon : Turhocharge Monitoring
=
'Conditiepardmeter van de turbine gebaseerd op de temperatuur
'Constanten
C4 = 1.2283592017627 C5 = -.096116030058397 C6 = .016491807644444
'Bereken de referentie en actuele temperatuurverhouding
PiTTref = C4 + C5 * ndvg + C6 * ndvg " 2 'de referentie
temperatuurverhouding
PiTTact = Tenpin / TempOut 'de actuele
temperatuurverhouding
'Bereken de conditieparameter van de Turbine gebaseerd op de temperatuurverhouding
CoParTT@ PiTTact / PiTTref
'Display de conditieparameters op de scherm txtCP_Press_Turb.Text = CoParTP@
txtCP_Temp_Turb.Text = CoParTT@
End Sub
Sub Form Load ()
'Definieerd de eigenschappen van de tabel
gridl.Cols = 24 'bepaal het aantal kolommen gridl.Rows = 50 'bepaal het aantal rijen
gridl.RowHeight(0) = 500 'bepaal de hoogte van de eerste rij
number = 0
For number = 0 To 23
gridl.ColWidth(number) = 850 'bepaal de kolombreedte
Next
'Schrijf een koptekst in de eerste rij gridl.Row = 0
gridl.Col = 0
gridl.Text = "Date" gridl.Col = 1
gridl.Text - "CP. Cool. Heat" gridl.Col = 2
gridl.Text = "CP. Cool. Flow" gridl.Col - 3
gridl.Text = "CP. Corn. Press"
gridl.Col - 4
gridl.Text = "CP. Corn. Temp"
gridl.Col = 5
gridl.Text = "CP. Tur. Press" gridl.Col = 6
grial.Text = "CP. Tur. Temp" gridl.Col = 7
gridl.Text = "CP. Filter"
grid1.1 =
gridl.Text = "Fuel index"