• CoolProp 물성 DB

CoolProp에서는 기본적으로 「PureFluid 122종류」, 「PredefinedMixture 105종류」의 물성 DB를 보유하고 있다.

해당 DB는 다음 링크를 통해 확인 가능하다.


1. PureFluid

http://www.coolprop.org/fluid_properties/PurePseudoPure.html

2. PredefinedMixture

http://www.coolprop.org/fluid_properties/Mixtures.html





  • CoolProp 함수 구조

개요에서 설명하였듯이 CoolProp은 다양한 프로그램에서 연동되어 사용된다.

이번 장에서는 Excel VBA와 Python에서 사용하는 함수 구조를 설명할 것이다.

기본적으로 냉매는 PropsSI, 습공기는 HAPropsSI 함수를 사용하여 상태량을 계산한다.


「PropsSI」의 경우 상태량 계산을 위해 두 가지 상태량을 입력값으로 줘야하며 함수 구조는 다음과 같다.

Property_ref = PropsSI("Parameter", "Par_input_1", input_1_value, "Par_input_2", input_2_value, "Fluid_name")

<표1: 냉매의 Parameter 종류 및 설명>

ParameterUnitsInput/OutputTrivialDescription
DELTADelta IOFalseReduced density (rho/rhoc)
DMOLARDmolarmol/m^3IOFalseMolar density
DDMASSDmasskg/m^3IOFalseMass density
HMOLARHmolarJ/molIOFalseMolar specific enthalpy
HHMASSHmassJ/kgIOFalseMass specific enthalpy
PPaIOFalsePressure
Qmol/molIOFalseMass vapor quality
SMOLARSmolarJ/mol/KIOFalseMolar specific entropy
SSMASSSmassJ/kg/KIOFalseMass specific entropy
TAUTau IOFalseReciprocal reduced temperature (Tc/T)
TKIOFalseTemperature
UMOLARUmolarJ/molIOFalseMolar specific internal energy
UUMASSUmassJ/kgIOFalseMass specific internal energy
ACENTRICacentric OTrueAcentric factor
ALPHA0alpha0 OFalseIdeal Helmholtz energy
ALPHARalphar OFalseResidual Helmholtz energy
ASPEED_OF_SOUNDspeed_of_soundm/sOFalseSpeed of sound
BVIRIALBvirial OFalseSecond virial coefficient
CONDUCTIVITYLconductivityW/m/KOFalseThermal conductivity
CP0MASSCp0massJ/kg/KOFalseIdeal gas mass specific constant pressure specific heat
CP0MOLARCp0molarJ/mol/KOFalseIdeal gas molar specific constant pressure specific heat
CPMOLARCpmolarJ/mol/KOFalseMolar specific constant pressure specific heat
CVIRIALCvirial OFalseThird virial coefficient
CVMASSCvmassOJ/kg/KOFalseMass specific constant volume specific heat
CVMOLARCvmolarJ/mol/KOFalseMolar specific constant volume specific heat
CCPMASSCpmassJ/kg/KOFalseMass specific constant pressure specific heat
DALPHA0_DDELTA_CONSTTAUdalpha0_ddelta_consttau OFalseDerivative of ideal Helmholtz energy with delta
DALPHA0_DTAU_CONSTDELTAdalpha0_dtau_constdelta OFalseDerivative of ideal Helmholtz energy with tau
DALPHAR_DDELTA_CONSTTAUdalphar_ddelta_consttau OFalseDerivative of residual Helmholtz energy with delta
DALPHAR_DTAU_CONSTDELTAdalphar_dtau_constdelta OFalseDerivative of residual Helmholtz energy with tau
DBVIRIAL_DTdBvirial_dT OFalseDerivative of second virial coefficient with respect to T
DCVIRIAL_DTdCvirial_dT OFalseDerivative of third virial coefficient with respect to T
DIPOLE_MOMENTdipole_momentC mOTrueDipole moment
FH OTrueFlammability hazard
FRACTION_MAXfraction_max OTrueFraction (mole, mass, volume) maximum value for incompressible solutions
FRACTION_MINfraction_min OTrueFraction (mole, mass, volume) minimum value for incompressible solutions
FUNDAMENTAL_DERIVATIVE_OF_GAS_DYNAMICSfundamental_derivative_of_gas_dynamics OFalseFundamental derivative of gas dynamics
GAS_CONSTANTgas_constantJ/mol/KOTrueMolar gas constant
GMOLAR_RESIDUALGmolar_residualJ/mol/KOFalseResidual molar Gibbs energy
GMOLARGmolarJ/molOFalseMolar specific Gibbs energy
GWP100 OTrue100-year global warming potential
GWP20 OTrue20-year global warming potential
GWP500 OTrue500-year global warming potential
GGMASSGmassJ/kgOFalseMass specific Gibbs energy
HELMHOLTZMASSHelmholtzmassJ/kgOFalseMass specific Helmholtz energy
HELMHOLTZMOLARHelmholtzmolarJ/molOFalseMolar specific Helmholtz energy
HH OTrueHealth hazard
HMOLAR_RESIDUALHmolar_residualJ/mol/KOFalseResidual molar enthalpy
ISENTROPIC_EXPANSION_COEFFICIENTisentropic_expansion_coefficient OFalseIsentropic expansion coefficient
ISOBARIC_EXPANSION_COEFFICIENTisobaric_expansion_coefficient1/KOFalseIsobaric expansion coefficient
ISOTHERMAL_COMPRESSIBILITYisothermal_compressibility1/PaOFalseIsothermal compressibility
ISURFACE_TENSIONsurface_tensionN/mOFalseSurface tension
MMOLARMASSMOLAR_MASSMOLEMASSmolar_massmolarmassmolemasskg/molOTrueMolar mass
ODP OTrueOzone depletion potential
PCRITP_CRITICALPcritp_criticalpcritPaOTruePressure at the critical point
PHASEPhase OFalsePhase index as a float
PH OTruePhysical hazard
PIP OFalsePhase identification parameter
PMAXP_MAXP_maxpmaxPaOTrueMaximum pressure limit
PMINP_MINP_minpminPaOTrueMinimum pressure limit
PRANDTLPrandtl OFalsePrandtl number
PTRIPLEP_TRIPLEp_tripleptriplePaOTruePressure at the triple point (pure only)
P_REDUCINGp_reducingPaOTruePressure at the reducing point
RHOCRITRHOMASS_CRITICALrhocritrhomass_criticalkg/m^3OTrueMass density at critical point
RHOMASS_REDUCINGrhomass_reducingkg/m^3OTrueMass density at reducing point
RHOMOLAR_CRITICALrhomolar_criticalmol/m^3OTrueMolar density at critical point
RHOMOLAR_REDUCINGrhomolar_reducingmol/m^3OTrueMolar density at reducing point
SMOLAR_RESIDUALSmolar_residualJ/mol/KOFalseResidual molar entropy (sr/R = s(T,rho) - s^0(T,rho))
TCRITT_CRITICALT_criticalTcritKOTrueTemperature at the critical point
TMAXT_MAXT_maxTmaxKOTrueMaximum temperature limit
TMINT_MINT_minTminKOTrueMinimum temperature limit
TTRIPLET_TRIPLET_tripleTtripleKOTrueTemperature at the triple point
T_FREEZET_freezeKOTrueFreezing temperature for incompressible solutions
T_REDUCINGT_reducingKOTrueTemperature at the reducing point
VVISCOSITYviscosityPa sOFalseViscosity
Z OFalseCompressibility factor

*출처: http://www.coolprop.org/coolprop/HighLevelAPI.html#propssi-function


「HAPropsSI」의 경우 세 가지 상태량을 입력값으로 줘야하며 함수 구조는 다음과 같다. (절대습도/상대습도 둘 중 하나는 반드시 들어가야 함.)

Property_air = HAPropsSI("Parameter", "Par_input_1", input_1_value, "Par_input_2", input_2_value, "Par_input_3", input_3_value)

<표2: 공기의 Parameter 종류 및 설명>

ParameterUnitsInput/OutputDescription
BTwbT_wbWetBulbKInput/OutputWet-Bulb Temperature
CcpJ/kg dry air/KOutputMixture specific heat per unit dry air
Chacp_haJ/kg humid air/KOutputMixture specific heat per unit humid air
CVJ/kg dry air/KOutputMixture specific heat at constant volume per unit dry air
CVhacv_haJ/kg humid air/KOutputMixture specific heat at constant volume per unit humid air
DTdpDewPointT_dpKInput/OutputDew-Point Temperature
HHdaEnthalpyJ/kg dry airInput/OutputMixture enthalpy per dry air
HhaJ/kg humid airInput/OutputMixture enthalpy per humid air
KkConductivityW/m/KOutputMixture thermal conductivity
MViscmuPa-sOutputMixture viscosity
psi_wYmol water/mol humid airInput/OutputWater mole fraction
PPaInputPressure
P_wPaInputPartial pressure of water vapor
RRHRelHum Input/OutputRelative humidity in [0, 1]
SSdaEntropyJ/kg dry air/KInput/OutputMixture entropy per unit dry air
ShaJ/kg humid air/KInput/OutputMixture entropy per unit humid air
TTdbT_dbKInput/OutputDry-Bulb Temperature
VVda3 /kg dry airInput/OutputMixture volume per unit dry air
Vha3 /kg humid airInput/OutputMixture volume per unit humid air
WOmegaHumRatkg water/kg dry airInput/OutputHumidity Ratio
Z

Output

Compressibility factor (Z = pv/(RT))

*출처: http://www.coolprop.org/fluid_properties/HumidAir.html


추가로 「Excel」에서는 냉매의 경우 PhaseSI 로 유체의 상(phase)을 구하거나 Props1SI 로 임계점(critical point)을 계산할 수 있으며,

「Python」에서는 PropsSI 에서 "Phase" 를 입력하여 유체의 상(phase)을 구하거나, "p_critical" 을 입력하여 임계점(critical point)을 계산할 수 있다.

해당 내용은 뒤에서 자세히 다루도록 하자.

반응형

'CoolProp' 카테고리의 다른 글

혼합냉매의 표면장력 계산 (1)  (0) 2020.07.26
혼합냉매의 상태량 계산법  (0) 2020.07.18
CoolProp 함수 목록 [Excel]  (0) 2020.07.12
CoolProp 설치  (0) 2020.07.10
CoolProp 개요  (0) 2020.07.10
  • Excel 사용자 설치 과정

CoolProp은 2020.07.10 기준 6.4.0 버전까지 업데이트 되어있다.

하단 링크를 통해 설치하도록 하자.


6.4.0 버전 링크: https://sourceforge.net/projects/coolprop/files/CoolProp/6.4.0/Installers/Windows/


설치 후 실행하면 다음과 같은 화면이 뜬다.

운영체제 맞게 선택하여 다음으로 넘어가자.

(wrapper는 프로그램 연동 개념으로 EES에서도 사용할 사람은 밑에도 체크하면 된다.)

설치 후 Excel을 실행하여 "파일>옵션>추가 기능>관리"에서 "이동"을 누르면 "사용 가능한 추가 기능"에 Coolprop이 추가된 것을 확인할 수 있다.

해당 기능을 체크하면 Excel에서 사용할 준비는 끝났다.

잘 적용되었는지 판단하기 위해 빈 셀에 =PropsSI 혹은 =HAPropsSI 를 써서 함수식이 완성되는지 확인하자.



  • Python 사용자 설치 과정

우선 가장 중요한 것은 본인이 얼마전에 컴퓨터를 구매한 후 Python을 3.8.x 버전을 설치하였는데 CoolProp을 사용할 수 없었다.

이것저것 다 찾아보고 내린 결론은 3.8버전에서는 아직 CoolProp을 지원하지 않는다는 것이었다.

따라서 추후 어떻게 될 진 모르겠지만 현재 20년 7월 10일자 기준으로는 안전하게 Python을 3.7.8 버전을 설치하도록 하자.


설치 링크: https://www.python.org/downloads/windows/

해당 링크에서 3.7.8 버전 Download Windows x86-64 executable installer 클릭


Python에서 CoolProp을 사용하기 위해서는 Python Wrapper를 설치해야 한다.

pip-package만 설치하였다면 pip install CoolProp 명령어로 간편하게 설치할 수 있다.

여담으로 본인은 VScode로 python code 작성 중이다. 

(VScode는 공짜에 한 줄 실행이 간편하고 프로그램이 가벼워서 좋다.)

잘 설치되었는지 확인하기 위해 Python code 창에 다음과 같이 입력하여 실행해보자.

from CoolProp.CoolProp import PropsSI

T = 100+273.15

P = 101325

h = PropsSI("H", "T", T, "P", P, "water")

print(h)

설치가 잘 되었다면 다음과 같은 값이 출력될 것이다.

2675582.786954203


반응형

'CoolProp' 카테고리의 다른 글

혼합냉매의 표면장력 계산 (1)  (0) 2020.07.26
혼합냉매의 상태량 계산법  (0) 2020.07.18
CoolProp 함수 목록 [Excel]  (0) 2020.07.12
CoolProp 물성 DB 및 함수 구조  (0) 2020.07.11
CoolProp 개요  (0) 2020.07.10

  • 개요

유체의 상태량을 계산할 때 대부분의 사람들이 습공기, , 냉매 로 분류하여 계산을 할 것이다.

Refprop이라는 유용한 Tool이 있으나 내가 필요하다고 바로 구매하여 사용할 사람은 많지 않다.

따라서 유체 종류에 따라 다음과 같은 방법을 이용해 상태량을 계산하는게 보통이다.


<표: 유체 종류에 따른 상태량 계산 방법 예>

  1. 습공기: 열역학/열전달 서적의 물성 Table을 이용한 회귀식, Psychart(SAREK), xtool(엑셀 기반) 등..

  2. 냉매: 열역학/열전달 서적의 물성 Table을 이용한 회귀식


습공기의 경우 기존 Tool은 어떤 한 포인트에서 상태량을 계산하기는 편하지만 보고자 하는 Data가 많을 경우 상당한 불편함이 존재한다.

회귀식을 만든다 하더라도 온도, 압력, 습도 3가지 영향을 모두 받기 때문에 조건을 벗어나면 정확도가 떨어지는 문제점이 있다.


냉매의 경우 다음과 같은 문제점이 존재한다.

(의 경우 전공 서적에서 구하고자 하는 물성치가 모두 존재하기 때문에 회귀식을 만들기 쉬움)

하지만 그 외 「단일 냉매의 경우, 1) 구하고자 하는 물성 Table이 존재하지 않거나, 2) 온도 범위가 한정적으로 정리되어 있는 경우가 많다.

또한, 혼합냉매의 경우 혼합비와 화학식을 이용하여 계산을 해야하기 때문에 실질적으로 회귀식을 만드는 것이 불가능하다.


위에서 언급한 문제점을 모두 해결해주는 공짜 프로그램이 바로 CoolProp이다. 

CoolProp은 습공기와 각종 냉매의 상태량을 모두 계산가능하며 처리해야 할 Data가 많을때 더욱 빛을 발한다.


CoolProp은 EES, Excel, MATLAB, Python, C++ 등의 프로그램에서 연동하여 사용할 수 있으며 각 프로그램마다 사용법이 조금씩 다르다.

본 블로그에서는 Excel VBA와 Python에서 CoolProp을 적용하는 방법에 대해 본인 마음대로 작성할 것이다.

앞으로 정리할 내용들은 실전에서 빠르게 적용하고자 하는 사람들에게 도움이 될 것으로 생각된다.

반응형

'CoolProp' 카테고리의 다른 글

혼합냉매의 표면장력 계산 (1)  (0) 2020.07.26
혼합냉매의 상태량 계산법  (0) 2020.07.18
CoolProp 함수 목록 [Excel]  (0) 2020.07.12
CoolProp 물성 DB 및 함수 구조  (0) 2020.07.11
CoolProp 설치  (0) 2020.07.10

+ Recent posts