|
下記のプログラムは、周囲温度が年間を通じて変動する条件下での変圧器の熱寿命を計算するものです。
意図したロジックでは、寿命到達時間rtは30年以下になる筈だったのですが、rtの計算結果は
[計算結果]
1)寿命到達まで使用可能な実年数[年]= 30.0728310502283
同上の時間数[h]= 263438
となり、僅かですが30年を超えてしまいます。
For-Next間のプログラムロジックの何処に誤りが有るのかを知りたいのですが、お分かりになる方居られましたらご教示お願い致します。
なお、For-Next間の下式
LET dsumrt= drt/Life(rt) !drtを寿命消耗時間[h]に換算
は誤っておりません。
LET Hangendo=8 !寿命半減則温度[deg]
LET Lifeyear=30 !95℃設計寿命[年]
LET b=LOG(2)/Hangendo
PRINT "巻線最高温度θmが95[℃]の設計寿命Y0[年]=";Lifeyear
PRINT "期待寿命Yの計算は『";Hangendo;"℃半減則』を適用"
PRINT "技術報告の基本式 Y=Y0×EXP{-b(θm-95)}"
PRINT "上式の係数b=";b
print
PRINT "[周囲温度変動条件]"
LET Ondoave=20
PRINT "年間平均温度θave[度]=";Ondoave
LET Am=15
PRINT "年間変動温度振幅A[deg]=";Am
LET Bm=5
PRINT "日間変動温度振幅B[deg]=";Bm
print
LET wyear=2*PI/365/24
LET wday=2*PI/24
DEF Ondo(t)=Ondoave+Am*SIN(wyear*t)+Bm*SIN(wday*t)
DEF Life(t)=EXP(-b*(Ondo(t)+55+15-95)) !実使用時間を寿命消耗時間に換算する関数
LET Lifehour=Lifeyear*365*24 !設計寿命年数[年]を時間[h]に換算
LET sumrt=0
LET drt=1 !微分実時間[h]
FOR i=1 TO 50*365*24/drt
LET rt=i*drt !運転実時刻
LET dsumrt= drt/Life(rt) !drtを寿命消耗時間[h]に換算
LET sumrt=sumrt+dsumrt !累積
IF sumrt>Lifehour THEN !Lifetimeに達したらrtの進行を停止
LET rt=rt-drt
EXIT FOR
END IF
NEXT i
PRINT "[計算結果]"
PRINT "1)寿命到達まで使用可能な実年数[年]=";rt/365/24
PRINT " 同上の時間数[h]=";rt
!*** 等価周囲温度の計算 ****
LET ToukaOndo=LOG(Lifehour/rt)/b+95-55-15
PRINT "2)等価周囲温度[℃]=";ToukaOndo
END
|
|