Cooling and freezing time for stacionary liquid in pipes
Izračun časa ohlajanja in zmrzovanja stacionarnih tekočin
v ceveh po standardu ISO 12241
In first table you enter the temperatures, dimensions of pipe and characteristics for liquid as they are asked. In the second table you chose the material of pipe or you enter the heat capacity of your own material. The same you make for isolation in third table.
In fourth table you have button for calculation and cell for times. This program has also function to draw a diagram how temperature fall in cooling time.
Used symbols:
Symbol | Unit | Data |
---|---|---|
°C | Start internal temperature | |
°C | End internal temperature | |
°C | Temperature of ambient | |
qwp | W/m2 | Heat flow for cooling |
qfr | W/m2 | Heat flow for freezing |
l | m | Pipe lenght |
De | mm | External diameter of isolation |
Di | mm | External diameter of pipe |
Dip | mm | Internal diameter of pipe |
cpp | kJ/kgK | Heat capacity for pipe |
cpv | kJ/kgK | Heat capacity for liquid |
mw | kg | Mass of liquid |
mp | kg | Mass of pipe |
f | % | Part of ice |
hfr | kJ/kg | Specific entalpy for ice |
W/mK | Heat conductivity for isolation | |
Simbol | Enote | Podatek |
---|---|---|
°C | Začetna notranja temperatura | |
°C | Končna notranja temperatura | |
°C | Temperatura okolice | |
qwp | W/m2 | Toplotni tok ohlajanja |
qfr | W/m2 | Toplotni tok zmrzovanja |
l | m | Dolžina cevi |
De | mm | Zunanji premer cevi z izolacijo |
Di | mm | Zunanji premer cevi |
Dip | mm | Notranji premer cevi |
cpp | kJ/kgK | Specifična toplota cevi |
cpv | kJ/kgK | Specifična toplota tekočine |
mw | kg | Masa vode |
mp | kg | Masa cevi |
f | % | Delež ledu |
hfr | kJ/kg | Specifična entalpija ledu |
W/mK | Toplotna predvodnost izolacije | |
Ko program dobi vse podatke se postavi v funkcijo "izračun". Ta funkcija najprej deklarira spremenljivke in jim določi vrednosti. Ko so spremenljivke določene se izvede najprej if stavek ki preveri ali je slučajno vpisana masa tekočine prevelika. V sklopu tega if stavka pa sem uporabil najprej if stavke za izračun časov.
IZRAČUN ČASOV:
Najprej program preveri vrednost končne notranje temperature. Če je temperatura večja od nič se izračuna samo čas ohlajanja tekočine. Za vrednost nič pa nam program izračuna tudi čas zmrzovanja določenega deleža ledu. Torej lahko podamo delež ledu manjši od 100 procentov samo kadar je temperatura enaka nič, drugače nam program javi napako. če pa je temperatura manjša od nič se izpišejo vsi trije časi. Delež ledu mora biti v tem primeru enak 100 procentov, saj drugače ne moremo priti do negativne notranje temperature.
Izgled if stavka za izračun časov:
if (koncna>0) { casohl=((zacetna-okolica)*(masat*ctek+masac*spetop) *(Math.log((zacetna-okolica)/(koncna-okolica))))/(qohl*3.6*dolzina); form.casoh.value=Math.floor(casohl*100)/100; form.caszm.value=0; } else { casohl=((zacetna-okolica)*(masat*ctek+masac*spetop) *(Math.log((zacetna-okolica)/(-okolica))))/(qohl*3.6*dolzina); form.casoh.value=Math.floor(casohl*100)/100;} caszmrz=((procent/100)*920*Math.PI*Math.pow((notcev/1000),2)*334)/ (qzm*3.6*4); form.caszm.value=caszmrz; if (koncna>0) { form.caszm.value=0; form.casled.value=0; } else { caszmrz=((procent/100)*920*Math.PI*Math.pow((notcev/1000),2)*334)/ (qzm*3.6*4); form.caszm.value=Math.floor(caszmrz*100)/100; var qohled=(Math.PI*(-okolica))/(((1/(2*lambda))* (Math.log(zunizo/zuncev)))); casle=((-okolica)*(masat*1.93+masac*spetop)*(Math.log((-okolica)/ (koncna-okolica))))/(qohled*3.6*dolzina); form.casled.value=Math.floor(casle*100)/100; }
IZRIS DIAGRAMA:
Za izris diagrama sem ravno tako najprej s pomočjo if stavkov določil kakšna bo krivulja
ali bo samo nad osjo časa (za pozitivno končno temperaturo), ali bo tudi na osi (za
slučaj ko je temperatura nič in imamo tudi zmrzovanje), ali pa krivulja tudi pod osjo
(za negativne končne temperature).
Ko se program postavi v pravo vrstico se najprej izrišeta osi diagrama, ki sta za prvi
in drugi primer po zgoraj navedenih možnostih enaki, za tretjo možnost pa se abscisa
premakne za določeno vrednost, tako da so temperaturni skoki na obeh straneh osi enaki.
Nato sledi izris posamezne krivulje za vsak čas posebej(kar je razvidno tudi iz barv črte).
Pri izrisu razdelb na oseh sem uporabil funkcije, ki nam razdeli os na enake deleže.
Za sam izris pa sem zopet uporabil if stavek in glede na vrednost končne temperature
zagnal obe funkciji in sicer za abscisno in nato še za ordinatno os. V teh funkcijah
so tudi ukazi za tekst, ki nam pod oz. zraven razdelb vpišejo ustrezen tekst.
Sledi še izris puščic na osi, ki pa so ravno tako odvisne od končne temperature tekočine.
Za določitev vseh krivulj sem uporabil funkcijo for, ki je v enačbo vstavljala naraščajoče
vrednosti in s tem sem dobil posamezne točke za krivuljo. Vse te točke sem transformiral
s pomočjo koeficientov tako da je bila risalna ravnina med koordinatama nič in ena.
Primer funkcije za določitev točk in teksta razdelb:
function razdelbex() { var dx=p1/Math.ceil(p1)*p1; for(var i=0; i<=(Math.ceil(dx)); i=i+3) { var razx = new Array(); razx[0] = new Ppoint((((i*(0.85/dx))+0.05)), 0.045); razx[1] = new Ppoint((((i*(0.85/dx))+0.05)), 0.055); ptext(new Ppoint(((i*(0.85/dx))+0.042),(0.015)), i); var razdelitev_x = new Ppoint_list(2, razx); ppolyline(razdelitev_x); ptext(new Ppoint(0.005,0.97), "T[C]"); } }
Datum: 20.feb.2001