ページ

エクセルによる気象関数 飽和相当温位 湿球温度 SSI


*****お知らせ*****
C++で気象関数を書きました
できる限り単位系を揃え
空気の平均分子量などはArまで含め計算し
水蒸気圧はできるだけ教科書の値に近づけました

「 C++による気象関数」
 
http://takanosunotama.blogspot.jp/2016/08/blog-post.html
**************


エクセルによる気象関数

汚いコードではずかしですが公開します。
個人的に作成したものですので計算結果や不具合について責任はもちません。
利用者の責任で使用願います。


1.VB気象関数
以下をまるごとコピーしても使えるはずです。


Public Function es(td)
'水蒸気圧 es(td)
'露点温度から水蒸気の分圧を求める。


a = 6.112
b = 17.67 * td / (243.5 + td)
c = Exp(b)
es = a * c
End Function



Public Function td(rh, t)
'露点温度 td(rh,t)
'相対湿度と温度から露点温度を求める。

x1 = rh / 100
d = Log(x1)
e = 17.67 * t / (243.5 + t)
c = d + e
td = c * 243.5 / (17.67 - c)
End Function


Public Function θ(p, t)
'温位 θ(P,t)
'気圧と温度から旧式の温位を求めます。上空ほど値は過大評価されます。

 Const p0 As Double = 1000#
 Const rd As Double = 287.05
 Const cpd As Double = 1005#

 θ = (t + 273.2) * (p0 / p) ^ (rd / cpd)
End Function




Public Function ssi(p1, t1, td, p2, tup)
'ショワルター安定指 ssi(p1, t1, td, p2, tup)
'下層の気圧、気温、露点温度
'上層の気圧、気温より
'2層間のSSIを求めます。

cp = 0.24: k = 0.2857: t0 = 273.2
tc = td + t0 - 0.216 * (t1 - td)
e = 6.112 * Exp(17.67 * td / (243.5 + td))
x = 0.622 * e / (p1 - e)
lc = 596.7 - 0.601 * (tc - t0)
ept85 = (t1 + t0) * (1000 / (p1 - e)) ^ k * Exp(lc * x / (cp * tc))

Delta = 0.001: t1 = -80: t2 = 50: a1 = Delta * 2
Do While Abs(a1) > Delta
   t = t1: td = t
   cp = 0.24: k = 0.2857: t0 = 273.2
   tc = td + t0 - 0.216 * (t - td)
   e = 6.112 * Exp(17.67 * td / (243.5 + td))
    x = 0.622 * e / (p2 - e)
    lc = 596.7 - 0.601 * (tc - t0)
    ept = (t + t0) * (1000 / (p2 - e)) ^ k * Exp(lc * x / (cp * tc))
    a1 = ept - ept85
    t = t2: td = t
    tc = td + t0 - 0.216 * (t - td)
    e = 6.112 * Exp(17.67 * td / (243.5 + td))
    x = 0.622 * e / (p2 - e)
    lc = 596.7 - 0.601 * (tc - t0)
    ept = (t + t0) * (1000 / (p2 - e)) ^ k * Exp(lc * x / (cp * tc))
    a2 = ept - ept85
    If a1 * a2 < 0 Then t2 = t2 - (t2 - t1) * 0.5 Else t3 = t1: t1 = t2: t2 = t2 + (t2 - t3) * 0.5
Loop

tr50 = t1
ssi = tup - tr50
End Function

Public Function θe(p, t, td)

'相当温位 θe(p, t, td)
'気圧、温度、露点温度から旧式の相当温位を求めます。上空ほど値は過大評価されます。

cp = 0.24
k = 0.2857
t0 = 273.2
tc = td + t0 - 0.216 * (t - td)
e = 6.112 * Exp(17.67 * td / (243.5 + td))
x = 0.622 * e / (p - e)

lc = 596.7 - 0.601 * (tc - t0)

p100 = 1000 / (p - e) ' a^b=A
p2 = Log(p100)        'ln A= b*ln a
c = p2 * k            'A= exp(b*in a)
Power = Exp(c)
θe = (t + t0) * Power * Exp(lc * x / (cp * tc))
End Function


Public Function tw(p, t, td)
'湿球温度 tw(p, t, td)
'気圧、気温、露点温度より湿球温度を求める

Const cp = 29108.82
Const l = 2.5 * 1000000 * 18
a1 = es(td)
p2 = p - a1
a2 = p2 / p
t0 = 273.2
a3 = a2 * cp * (t + t0)
a4 = (a1 / p) * l '水蒸気の潜熱
dall = a3 + a4

t1 = -130
t2 = 130
t3 = 130
Delta = 100
delta1 = -100
Do While Delta > 1#

If delta1 < 0 Then
   t2 = t3
   t3 = (t1 + t3) / 2

   Else
   t1 = t3
   t3 = (t2 + t3) / 2
   End If

b1 = es(t3)
p2 = p - b1
b2 = p2 / p
t0 = 273.2
b3 = b2 * cp * (t3 + t0)
b4 = (b1 / p) * l
ball = b3 + b4
delta1 = dall - ball
Delta = Abs(delta1)
Loop

tw = t3
End Function



Public Function pt(hight,  temp)
'温位 pt(hight,press,temp)
'エネルギー=位置エネルギー+エンタルピー
'から温位ptを求めます。
'地表基準の温位です

cp = 29.10005
m = 0.028964
g = 9.8
localpt = (m * g * hight + cp * (temp + 273.15)) / cp
pt = Int(localpt * 10) / 10
End Function

Public Function eqpt(hight, press, temp, td)

'相当温位 eqpt(hight,press,temp,td)
'エネルギー=位置エネルギー+エンタルピー+水蒸気の潜熱
'からeqptを求めます。

l = 51012
cp = 29.10882
m = 0.028964
g = 9.8
mypt = (m * g * hight + cp * (temp + 273.15)) / cp
myes = es(td)
eqpt = Int((mypt + (myes / press) * l / cp) * 10) / 10
End Function

***************************************************

使用例

メールアドレス




原発の燃料は廃棄核兵器からでるウランやプルトニュウムと考えるのが妥当だと思います。
燃料(核弾頭)はその複雑で危険な作業を考えれば安価に作ることはできません。
燃料は作ってしまうと絶えず水で冷やす必要がでてきます。
冷やしたからと言って、放射能を止められる訳ではありませんから、燃料を閉じ込める容器は絶えず強い放射能にさらされボロボロになってしまいます。
核兵器には寿命があるのです。
そうした核廃棄物も水で冷やす必要があり非常に厄介なものです。
放射能は人間の力で処理できるものではなく、拡散するのが一番の処理方法です。
そうして、核兵器は再処理され安い燃料として世界中にばらまいているのだろうと思います。

核廃棄物である燃料ウランの半減期は7億年ですから、原発を止めても数100億年単位で冷やし続けなければなりません。
原発は核廃棄物処理の軍事施設と考えるべきものです。
残念ながら日本は安全のために、あえて核燃料を燃さなければならない悲惨な状況なのです。

さらに悲惨なのは、原発を安全に運転する意志がないことがあげられます。
中間報告を読むと、地震で圧縮空気の配管が壊れベントができなくなったことが分かります。
圧力容器に穴が開くメルトスルーが起きて、ようやく消防車で海水注水して冷やせるようになったのです。(ベントとは何か? 原発水素爆発中間報告 参照)
日本の原発はおおきな地震がおこればベントもできないオンボロ原発なのです。
過去の地震でそうしたことは推測すべきだったのです。
それなのに、
原子力安全保安院や電力会社、専門家はそのことは十分に分かっているのに安全対策をせずに原発を再稼働させようとしています。
狂人としか思えません。




0 件のコメント:

コメントを投稿