среда, 1 августа 2012 г.

Thermomixer - Thermodroid для смесей

Калькулятор термодинамических и теплофизических функций. Этот калькулятор позволит вам рассчитать основные термодинамические и теплофизические свойства целого ряда чистых веществ: аргон, азот, кислород, метан, этан, пропан, н-бутан, R134a, R22, вода, изобутан, аммиак и их смесей произвольного состава.
Вычисляет по двум независимым параметрам:
- энтальпию, энтропию, температуру, давление, удельный объем, паросодержание
- равновесный состав пара и жидкости в двухфазной области
- плотность
- вязкость
- теплопроводность
- теплоемкость изобарную и изохорную
- скорость звука
- коэффициент адиабаты

Также вы можете рассчитать простейшие элементы термодинамических циклов, такие как: дроссель, компрессор, детандер и нагреватель/охладитель.

Скачать на Google Play

Thermomixer - Thermodroid for mixtures


The thermodynamic and thermophysical calculator.
Allows you to calculate the thermodynamic properties for the clean components or for mixtures of arbitrary composition:
-    Temperature, Pressure, Volume, Vapour Fraction, Enthalpy, Entropy by Peng-Robinson (1975) EOS
-    The equilibrium compositions of vapour and liquid phases
-    Liquid density by Yen-Woods eq.
-    Heat of evaporation (EOS)
-    Cp – heat capacity isobaric (EOS)
-    Cv – heat capacity isochoric (EOS)
-    sonic speed (EOS)
-    adiabatic coefficient (EOS)
Thermophysical properties:
-    Thermal conductivity (Stiel-Thodost eq. for gases, polynomial for liquid)
-    Viscosity (Jossi-Stiel-Thodost eq. for gases, polynomial for liquid)
You can calculate the thermodynamic characteristics of some apparatus:
-    Heat exchanger
-    Isoenthalpic  valve
-    Polytropic compressor
-    Polytropic expander

Extensive macro language (only for clear components now)

You can save the calculations on the disk and load them, export in html format.

The available elements for calculations:
Methane, ethane, propane, n-butane, i-butane, R22, R134a, ammonia, H2O, CO2, nitrogen, oxygen, argon.

Thermomixer at Google Play 

вторник, 6 марта 2012 г.

Thermodroid HD macro - calculation of the Linde cycle

About the Hampson-Linde cycle

This macros helps you to calculate the points of Hampson-Linde cycle.


Fig.1 Hampson-Linde cycle and T-S diagram with the points
Table of symbols
P1 - higher  pressure of the cycle [Pa]
P2 - lower  pressure  of the cycle [Pa]
Tamb - ambient temperature in the cycle [K]
dT - underheating at hot end of exchanger [K]
T1..T5 - temperatures of the cycle points [K]
h1..h5 - enthalpies of the points [kJ/kg]
v2,v3 - vapour fractions of the points
qex - specific heat of the exchanger [kJ/kg]
kL - liquefaction coefficient of the cycle




Macros (refrigerator)

P2=100000
P1=3000000
Tamb=303
dT=10
newfluid(0, methane)
mw=fluid0.molarweight()
fluid0.pvflash(P2,1)
h4=fluid0.massenthalpy()
T4=fluid0.t()
fluid0.ptflash(P2,Tamb-dT)
h5=fluid0.massenthalpy()
T5=fluid0.t()
fluid0.ptflash(P1,Tamb)
h1=fluid0.massenthalpy()
T1=fluid0.t() 
qex=h5-h4
fluid0.phflash(P1,(h1-qex)*mw)
h2=fluid0.massenthalpy()
T2=fluid0.t() 
V2=fluid0.v()
fluid0.phflash(P2,(h2)*mw)
h3=fluid0.massenthalpy()
T3=fluid0.t() 
V3=fluid0.v() 
kL=1-V3



Macros ( liquefier )

P2=100000
P1=20000000
Tamb=303
dT=10
newfluid(0methane)
mw=fluid0.molarweight()
fluid0.pvflash(P2,1)
h4=fluid0.massenthalpy()
T4=fluid0.t()
fluid0.ptflash(P2,Tamb-dT)
h5=fluid0.massenthalpy()
T5=fluid0.t()
qex=h5-h4
fluid0.ptflash(P1,Tamb)
h1=fluid0.massenthalpy()
T1=fluid0.t()
fluid0.pvflash(P2,0)
hL=fluid0.massenthalpy()
kL=abs((h1-h5)/(hL-h5))
V3=1-kL
fluid0.pvflash(P2,V3)
h3=fluid0.massenthalpy()
T3=fluid0.t() 
fluid0.phflash(P1,(h3)*mw)
h2=fluid0.massenthalpy()
T2=fluid0.t() 
V2=fluid0.v() 




how to use macros in Thermodroid HD
Step 1. Open notepad and copy the text above into the editor.
Step 2. Save this text file to your device sdcard at folder "thermodroid".
Step 3. Run Thermodroid HD

Step 4. Press button "Macro"

Step 5. Press button "Open"

Step 6. Choose at the list our text file.

Step 7. Press button "OK"
Step 8. Press button "Run"

Step 9. Analyze results

вторник, 28 февраля 2012 г.

Thermodroid HD - язык макросов

Переменные
Переменные объявляются автоматически при появлении в тексте макроса. Например:
v=10.2
автоматически объявляет переменную v, и присваивает ей значение 10.2
Имена переменных не чувствительны к регистру.
V то же, что и v

Операторы

Суммирование
-
Вычитание
/
Деление
*
Умножение
^
Возведение в степень: 2^3=8; 4^0.5=2

"." - точка, разделитель

Математические операции

cos(Arg)
вычисляет косинус аргумента Arg. Arg в радианах

sin(Arg)
вычисляет синус Arg. Arg в радианах

tan(Arg)
вычисляет тангенс Arg. Arg в радианах

acos(Arg)
возвращает арккосинус для Arg. Arg должен быть задан в пределах -1 и 1. Значение будет возвращено в пределах [0..Pi], в радианах

asin(Arg)
возвращает арксинус для Arg. Arg должен быть задан в пределах -1 и 1. Значение будет возвращено в пределах [-Pi/2..Pi/2], в радианах

exp(Arg)
возвращает значение возведения e в степеь Arg, где e - основание натурального логарифма

ln(Arg)
возвращает натуральных логарифм (ln(e) = 1) выражения Arg

abs(Arg)
возвращает модуль Arg

sqr(Arg)
возвращает квадрат Arg

sqrt(Arg) 
возвращает корень Arg

Операции с веществами (fluids)

инициализировать новое вещество
newfluid(#,fluid)
# - номер вещества во внутреннем массиве [0..9]
fluid - имя вещества на английском. например - methane, ethane, nitrogen и т.п.

вычислить состояние вещества при давлении P [Па] и температуре T [K]
fluid#.ptflash(P,T)
# - номер вещества

вычислить состояние вещества при давлении P [Па] и паросодержании V
fluid#.pvflash(P,V)
# - номер вещества

вычислить состояние вещества при температуре T [K] и паросодержании V
fluid#.tvflash(T,V)
# - номер вещества

вычислить состояние вещества при давлении P [Па] и молярной энтальпии H [кДж/кмоль]
fluid#.phflash(P,H)
# - номер вещества

чтобы получить свойство вещества используйте функции:
fluid#.massenthalpy() - получить значение удельной массовой энтальпии [кДж/кг]
fluid#.molarenthalpy() - мольной энтальпии [кДж/кмоль]
fluid#.massentropy() - массовой энтропии [кДж/кг/K]
fluid#.molarentropy() - мольной энтропии [кДж/кмоль/K]
fluid#.massdensity() - плотности [кг/m3]
fluid#.molardensity() - мольной плотности [кмоль/м3]
fluid#.massheatofvap() - удельная энергия парообразования при давлении вещества [кДж/кг]
fluid#.molarheatofvap() - удельная мольная энергия парообразования при давлении вещества [кДж/кмоль]
fluid#.molarweight() - молярная масса [кг/кмоль]
fluid#.t() - температура [K]
fluid#.p() - давление [Па]
fluid#.v() - паросодержание

Пример #1
Вычислить температуру насыщения метана при 2 барах

newfluid(0,methane)
fluid0.pvflash(200000,1)
res=fluid0.t()

объяснение примера:
newfluid(0,methane) 'эта операция инициализирует новое вещество в ячейке №0 и устанавливает, что новое вещество - метан (methane).
fluid0.pvflash(200000,1) 'вычисляет состояние вещества при давлении 2 бара и паросодержании 1
res=fluid0.t()'присваивает переменной res (стандартная переменная, куда записывается последний результат) значение температуры вещества номер 0. Это выражение равнозначно: fluid0.t() - нет необходимости в каком-либо присвоении


Пример #2
Вычислить количества тепла, необходимого для того, чтобы нагреть 1 кг азота от 150 K до 300 K при 1 баре

newfluid(0,nitrogen)
p=100000
fluid0.ptflash(p,150)
h1=fluid0.massenthalpy()
fluid0.ptflash(p,300)
h2=fluid0.massenthalpy()
q=h2-h1

Пример #3
Вычислить простой теплообменник. Вещество №1 - азот, давление 1 бар, входная температура 30 C, выходная температура -70 C, массовый поток 1 кг/с. Второе вещество - аргон, давление 10 бар, начальное состояние - насыщенная жидкоть, массовый поток 0.2 кг/с. Необходимо определить выходную температуру аргона.

p1=100000
p2=1000000
t1=273.15+30
t2=273.15-70
gn=1
ga=0.2
newfluid(0,nitrogen)
fluid0.ptflash(p1,t1)
hn1=fluid0.molarenthalpy()
fluid0.ptflash(p1,t2)
hn2=fluid0.molarenthalpy()
qn=hn1-hn2
newfluid(1,argon)
fluid1.pvflash(p2,0)
ha1=fluid1.molarenthalpy()
qa=qn*gn/fluid0.molarweight()/ga*fluid1.molarweight()
ha2=ha1+qa
fluid1.phflash(p2,ha2)
ta2=fluid1.t()


Пример #4
Вычислить простой теплообменник. Первое вещество - вода, давление 1 бар, температура на входе 50 C, температура на выходе 10 C. Второе вещество - метан, давлением 3 бара, состояние на входе - насыщенная жидкость, состояние на выходе - насыщенный пар, величина массового потока 0.2 кг/с. Необходимо определить расход воды.

p1=100000
p2=300000
t1=273.15+50
t2=273.15+10
gm=0.2
newfluid(0,h2o)
fluid0.ptflash(p1,t1)
hw1=fluid0.massenthalpy()
fluid0.ptflash(p1,t2)
hw2=fluid0.massenthalpy()
qw=hw1-hw2
newfluid(1,methane)
fluid1.pvflash(p2,0)
hm1=fluid1.massenthalpy()
fluid1.pvflash(p2,1)
hm2=fluid1.massenthalpy()
qm=hm2-hm1
gw=qm*gm/qw


вторник, 7 февраля 2012 г.

Thermodroid HD macro language

Variables
You can declare variables silenced. It means, that expression:
v=10.2
automatically declares the variable v, and assigns it the value 10.2
The variable name is not case sensitive.
V is the same as v

Operators

Addition
-
Subtraction
/
Division
*
Multiplication
^
Involution: 2^3=8; 4^0.5=2

"." - dot, the decimal separator

Math operations

cos(Arg)
calculate the cosine from Arg. Arg given in radians

sin(Arg)
calculate the sine from Arg. Arg given in radians

tan(Arg)
calculate the tangent from Arg. Arg given in radians

acos(Arg)
returns the inverse cosine of Arg. Arg must be between -1 and 1. The return value is in the range [0..Pi], in radians

asin(Arg)
returns the inverse sine of Arg. Arg must be between -1 and 1. The return value will be in the range [-Pi/2..Pi/2], in radians

exp(Arg)
returns the value of e raised to the power of Arg, where e is the base of the natural logarithms

ln(Arg)
returns the natural logarithm (ln(e) = 1) of the expression Arg

abs(Arg)
returns the absolute value of the argument Arg

sqr(Arg)
function returns the square of the argument Arg

sqrt(Arg) 
the result is the square root of Arg

Fluid operations

to initialize the new fluid
newfluid(#,fluid)
# - number of the fluid in the internal array [0..9]
fluid - the fluid name. for example - methane, ethane, nitrogen and so on.

to calculate the fluid at pressure P [Pa] and temperature T [K]
fluid#.ptflash(P,T)
# - number of the fluid

to calculate the fluid at pressure P [Pa] and vapour fraction V
fluid#.pvflash(P,V)
# - number of the fluid

to calculate the fluid at temperature T [K] and vapour fraction V
fluid#.tvflash(T,V)
# - number of the fluid

to calculate the fluid at pressure P [Pa] and molar enthalpy H [kJ/kmole]
fluid#.phflash(P,H)
# - number of the fluid

to get fluid properies use functions
fluid#.massenthalpy() - get the mass enthalpy value of calculated fluid [kJ/kg]
fluid#.molarenthalpy() - get the molar enthalpy [kJ/kmole]
fluid#.massentropy() - get the mass entropy [kJ/kg/K]
fluid#.molarentropy() - get the molar entropy [kJ/kmole/K]
fluid#.massdensity() - get the mass density [kg/m3]
fluid#.molardensity() - get the molar density [kmole/m3]
fluid#.massheatofvap() - get the heat of evaporation in mass basis [kJ/kg]
fluid#.molarheatofvap() - get the heat of evaporation in molar basis [kJ/kmole]
fluid#.molarweight() - get the molar weight [kg/kmole]
fluid#.t() - get the temperature [K]
fluid#.p() - get the pressure [Pa]
fluid#.v() - get the vapour fraction

Example #1
Calculate the saturation temperature of methane at 2 bar

newfluid(0,methane)
fluid0.pvflash(200000,1)
res=fluid0.t()

the explanation of example:
newfluid(0,methane) 'this operation initializes the new fluid number 0 and sets that the new fluid is methane.
fluid0.pvflash(200000,1) 'calculate the fluid state at pressure 2 bar and vapour fraction 1 (saturated valve)
res=fluid0.t()'assign to the variable res (the standard result holder) the temperature of fluid number 0. this expression equals: fluid0.t() - there is not any assignments to variables


Example #2
Calculate the heat value needed to heat 1 kg of nitrogen from 150 K to 300 K at 1 bar

newfluid(0,nitrogen)
p=100000
fluid0.ptflash(p,150)
h1=fluid0.massenthalpy()
fluid0.ptflash(p,300)
h2=fluid0.massenthalpy()
q=h2-h1

Example #3
Calculate the simple exchanger. First fluid - nitrogen, pressure 1 bar, inlet temperature 30 C, outlet temperature -70 C, massflow 1 kg/s. Second fluid - argon, pressure 10 bar, inlet state - saturated liquid, mass flow 0.2 kg/s. Need to calculate the outlet temperature for argon.

p1=100000
p2=1000000
t1=273.15+30
t2=273.15-70
gn=1
ga=0.2
newfluid(0,nitrogen)
fluid0.ptflash(p1,t1)
hn1=fluid0.molarenthalpy()
fluid0.ptflash(p1,t2)
hn2=fluid0.molarenthalpy()
qn=hn1-hn2
newfluid(1,argon)
fluid1.pvflash(p2,0)
ha1=fluid1.molarenthalpy()
qa=qn*gn/fluid0.molarweight()/ga*fluid1.molarweight()
ha2=ha1+qa
fluid1.phflash(p2,ha2)
ta2=fluid1.t()


Example #4
Calculate the simple exchanger. First fluid - H2O, pressure 1 bar, inlet temperature 50 C, outlet temperature 10 C. Second fluid - methane, pressure 3 bar, inlet state - saturated liquid, outlet state - saturated valve, mass flow 0.2 kg/s. Need to calculate the mass flow for water.

p1=100000
p2=300000
t1=273.15+50
t2=273.15+10
gm=0.2
newfluid(0,h2o)
fluid0.ptflash(p1,t1)
hw1=fluid0.massenthalpy()
fluid0.ptflash(p1,t2)
hw2=fluid0.massenthalpy()
qw=hw1-hw2
newfluid(1,methane)
fluid1.pvflash(p2,0)
hm1=fluid1.massenthalpy()
fluid1.pvflash(p2,1)
hm2=fluid1.massenthalpy()
qm=hm2-hm1
gw=qm*gm/qw