github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/mcaclib.go (about) 1 package eeslism 2 3 // 冷温水コイルの処理熱量計算用係数 4 func wcoil(Air_SW ControlSWType, Water_SW ControlSWType, wet rune, Gaet float64, Gaeh float64, 5 xai float64, Twi float64) (ACS, ACS, ACS) { 6 7 var Et, Ex, Ew ACS 8 9 if wet == 'd' || Water_SW == OFF_SW || Air_SW == OFF_SW { 10 // 片側系統が停止していたときに対応するように修正 11 // Satoh Debug 2009/1/9 12 if Water_SW != OFF_SW { 13 Et = ACS{ 14 W: Ca * Gaet, 15 T: Ca * Gaet, 16 X: 0.0, 17 C: 0.0, 18 } 19 } else { 20 Et = ACS{ 21 W: 0.0, 22 T: 0.0, 23 X: 0.0, 24 C: 0.0, 25 } 26 } 27 28 Ex = ACS{ 29 W: 0.0, 30 T: 0.0, 31 X: 0.0, 32 C: 0.0, 33 } 34 35 if Air_SW != OFF_SW { 36 Ew = ACS{ 37 W: Ca * Gaet, 38 T: Ca * Gaet, 39 X: 0.0, 40 C: 0.0, 41 } 42 } else { 43 Ew = ACS{ 44 W: 0.0, 45 T: 0.0, 46 X: 0.0, 47 C: 0.0, 48 } 49 } 50 } else { 51 aw, bw := hstaircf(Twi, Twi+5.0) 52 cs := Ca + Cv*xai 53 54 Et = ACS{ 55 W: Ca * Gaet, 56 T: Ca * Gaet, 57 X: 0.0, 58 C: 0.0, 59 } 60 61 Ex = ACS{ 62 W: (Gaeh*bw - Gaet*Ca) / Ro, 63 T: (Gaeh*cs - Gaet*Ca) / Ro, 64 X: Gaeh, 65 C: -Gaeh * aw / Ro, 66 } 67 68 Ew = ACS{ 69 W: Gaeh * bw, 70 T: Gaeh * cs, 71 X: Gaeh * Ro, 72 C: -Gaeh * aw, 73 } 74 } 75 76 return Et, Ex, Ew 77 } 78 79 func Qcoils(Et ACS, Tai float64, xai float64, Twi float64) float64 { 80 return Et.W*Twi - Et.T*Tai - Et.X*xai - Et.C 81 } 82 83 func Qcoill(Ex ACS, Tai float64, xai float64, Twi float64) float64 { 84 return Ro * (Ex.W*Twi - Ex.T*Tai - Ex.X*xai - Ex.C) 85 } 86 87 func hstaircf(Tw1 float64, Tw2 float64) (float64, float64) { 88 h1 := FNH(Tw1, FNXtr(Tw1, 100.0)) 89 h2 := FNH(Tw2, FNXtr(Tw2, 100.0)) 90 b := (h2 - h1) / (Tw2 - Tw1) 91 a := h1 - b*Tw1 92 // fmt.Printf("== hstaircf Tw1,Tw2=%f %f a=%f b=%f\n",Tw1,Tw2,*a,*b) 93 return a, b 94 }