python實現空氣焓值,溼球溫度的計算

2021-10-05 06:12:12 字數 2488 閱讀 7908

因為對熱力學概念公式完全不懂,本文參考自以下blog,感謝其貢獻

原部落格c++語言編寫,由於需要,本文將其改寫為python版本

# 已知室外溫度、濕度,計算溼焓值

defcalculatehz_s

(tw)

: mm0 = tw /

234.5

mm1 = tw *

(18.678

- mm0)

/(tw +

257.14

) mm2 = np.exp(mm1)

hw =

1.01

* tw +

0.6219*(

2500

+1.84

* tw)

*611.2

* mm2 /

(101326

-611.2

* mm2)

return hw

# 計算空氣焓值,輸入引數:series,list(矩陣運算)或者 單個值,輸入溫度、濕度

defcalculatehz

(temper, humidity)

: t1 =

(18.678

- temper /

234.5

)* temper /

(temper +

257.14

) pv =

611.2

* np.exp(t1)

d =0.6219*(

0.01

* humidity * pv /

(101326

-0.01

* humidity * pv)

) h =

1.01

* temper +

(2500

+1.84

* temper)

* d return h

# 輸入溫度、濕度

defcalwbt

(temper, humidity)

: nums =

0# 迭代次數

val =0.

# 溼球溫度迭代初值

ii =

0 e = e_1 = e_2 = ee_1 = ee_2 =0if

0<= temper <60:

e = np.

abs(calculatehz_s(val)

- calculatehz(temper, humidity)

)while e >

0.02

: e = calculatehz_s(val)

- calculatehz(temper, humidity)

e_2, e_1 = e_1, e

ii += e

ee_2, ee_1 = ee_1,

(e_1 - e_2)

# 微分

if e >0:

val -=

0.1*

abs(e)

+0.001

* ii +

0.01

* ee_1

else

: val +=

0.1*

abs(e)

if e_1 - e_2 <0:

val +=

0.005

else

: val -=

0.005

e = np.

abs(calculatehz_s(val)

- calculatehz(temper, humidity)

) nums +=

1if nums >

2000

:if e >3:

e = calculatehz_s(val)

- calculatehz(temper, humidity)

if e <0:

val +=

-0.1

* e if val > temper:

val = temper *

0.99

return val

return val

# 計算溼球溫度,溼球溫度需要用到空氣焓值,輸入溫度、濕度

defcalculatewbt

(temper, humidity):if

len(temper)

!=len

(humidity)

: logger.info(

'溼球溫度計算 - 輸入資料有誤!'

)return

none

res_val =

for i in

range

(len

(temper)):

, humidity[i]))

return res_val

計算pi的近似值公式法 利用python計算圓周率

圓周率沒有精確的計算公式,所以只能用近似的方式計算它的近似值。我們運用蒙特卡羅方法,思路很簡單,在下面圖形中隨機拋置大量的點,計算落在1 4圓內的點的數量。為了得到pi值,由思路,我們知道需要引用random math以及time資料庫,具體 如下 pi.py from random import ...

用Python實現徑向分布函式(RDF)的計算

首先,因為我需要讀lammps的輸出的dump檔案,所以readxyzufile 所實現的是讀入dump檔案的功能。然後進入正題,說白了,計算rdf就是計算粒子與粒子之間的距離,並按照距離的遠近進行統計。在這裡說明一下,為了能夠使 可以計算包含兩種粒子的體系,在一些細節方面會有些小的變動。wrap ...

交換兩變數的值(python)實現

以下總結了交換兩變數的三種方法,分別為 臨時變數法,求和做差法和按位異或法。臨時變數法 deffunc1 i,j print 臨時變數法 n交換前 a s,b s i,j end temp i i j j temp print 交換後 a s,nb s i,j 求和做差法 deffunc2 i,j ...