github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/build.go (about) 1 package eeslism 2 3 import ( 4 "io" 5 ) 6 7 // 壁体の材料定義 8 // wbmlist.efl から読み取った材料定義リストの要素 9 type BMLST struct { 10 Mcode string // 材料名 11 Cond float64 // 熱伝導率 [W/mK] 12 Cro float64 // 容積比熱 [kJ/m3K] 13 } 14 15 type PVWALLCAT struct { 16 // PVcap float64 // 太陽電池容量[W] 17 KHD float64 // 日射量年変動補正係数(安全率) [-] 18 KPD float64 // 経時変化補正係数[-] 19 KPM float64 // アレイ負荷整合補正係数[-] 20 KPA float64 // アレイ回路補正係数[-] 21 KConst float64 // 温度補正係数以外の補正係数の積(温度補正係数以外は時々刻々変化しない) 22 EffINO float64 // インバータ実行効率[-] 23 Apmax float64 // 最大出力温度係数[-] 24 Ap float64 // 太陽電池裏面の熱伝達率[W/m2K] 25 Type byte // 結晶系:'C' アモルファス系:'A' 26 Rcoloff float64 // 集熱ファン停止時の太陽電池から集熱器裏面までの熱抵抗[m2K/W] 27 Kcoloff float64 28 } 29 30 type PVWALL struct { 31 KTotal float64 // 太陽電池の総合設計係数[-] 32 KPT float64 // 温度補正係数[-] 33 TPV float64 // 太陽電池温度[℃] 34 Power float64 // 発電量[W] 35 Eff float64 // 発電効率[-] 36 PVcap float64 // 太陽電池設置容量[W] 37 } 38 39 type PCMSTATE struct { 40 Name *string // name 41 TempPCMNodeL float64 // PCM温度(左側節点) 42 TempPCMNodeR float64 // 同(右) 43 TempPCMave float64 // PCM温度(平均温度) 44 //capm float64 // PCM比熱[J/kgK] 45 //lamda float64 // PCM熱伝導率[W/mK] 46 CapmL float64 // PCM見かけの比熱(左側)[J/kgK] 47 CapmR float64 // PCM見かけの比熱(右側)[J/kgK] 48 LamdaL float64 // PCM熱伝導率(左側)[W/mK] 49 LamdaR float64 // PCM熱伝導率(右側)[W/mK] 50 OldCapmL float64 // 前時刻PCM見かけの比熱(左側) 51 OldCapmR float64 // 前時刻PCM見かけの比熱(右側) 52 OldLamdaL float64 // 前時刻PCM熱伝導率(左側) 53 OldLamdaR float64 // 前時刻PCM熱伝導率(右側) 54 } 55 56 type RMSRFType rune 57 58 const ( 59 RMSRFType_None RMSRFType = 0 60 RMSRFType_H RMSRFType = 'H' // 壁 61 RMSRFType_E RMSRFType = 'E' // 地中壁 62 RMSRFType_W RMSRFType = 'W' // 窓 63 RMSRFType_e RMSRFType = 'e' // 地表面境界 64 ) 65 66 type RMSRFMwType rune 67 68 const ( 69 RMSRFMwType_None RMSRFMwType = 0 70 RMSRFMwType_I RMSRFMwType = 'I' // 専用壁 71 RMSRFMwType_C RMSRFMwType = 'C' // 共同壁 72 ) 73 74 type RMSRFMwSideType rune 75 76 const ( 77 RMSRFMwSideType_None RMSRFMwSideType = 0 78 RMSRFMwSideType_i RMSRFMwSideType = 'i' // 壁体0側 79 RMSRFMwSideType_M RMSRFMwSideType = 'M' // 壁体M側 80 ) 81 82 // 壁体 固定デ-タ 83 type RMSRF struct { 84 Name string // 壁体名 85 Sname string //RMP名 higuchi 070918 86 87 // ---- 出力指定 ---- // 88 89 wlpri bool // 壁体内部温度出力指定 (ROOM *p) 90 shdpri bool // 日よけの影面積の出力指定 (ROOM *shd) 91 sfepri bool // 要素別壁体表面温度出力指定 (ROOM *sfe) 92 93 // 部位コ-ド 94 // 'B' | 'W' | 'E'(外壁) | 'R'(屋根) | 'F'床(外気、地中に接する) | 95 // 'i'(内壁) | 'f'(床(隣室に接する)) | 'c'(天井) |'d' 96 ble BLEType 97 typ RMSRFType // 壁のとき'H', 地中壁のとき'E', 窓のとき'W', 地表面境界の時'e' 98 mwtype RMSRFMwType // 専用壁のとき'I',共用壁のとき'C' 99 mwside RMSRFMwSideType // 壁体 0 側のとき'i', M 側のとき'M' 100 mrk rune // '*' or '!' 101 ffix_flg rune // 表面への短波長放射基本吸収比率が定義されている場合'*' 未定義の場合'!' 102 PCMflg bool // PCMの有無の判定フラグ 毎時係数行列を計算するかどうかを決める 103 pcmpri bool // PCMの状態値出力フラグ 104 fnmrk [10]rune // 窓変更設定用窓コ-ド 105 106 room *ROOM 107 nextroom *ROOM 108 nxsd *RMSRF 109 110 mw *MWALL // 重量壁(差分による非定常計算) 111 rpnl *RDPNL // 輻射パネル用 112 window *WINDOW // 窓 113 dynamicwin int // 動的に窓を切り替える場合'Y' 114 ifwin *WINDOW // Trueの時の窓 115 //falsewin *WINDOW // Falseの時の窓 116 Ctlif *CTLIF // 動的窓の制御 117 DynamicCode string // 動的窓 ex) "A > B" のような評価式 118 119 rm int // 室番号 120 n int // 室壁体番号 121 exs int // 方位番号 122 nxrmname string //隣室名 123 nxrm int // 隣室番号 124 nxn int // 隣室室壁体番号 125 wd int // 壁体定義番号 126 rmw int // 重量壁体番号 127 lwd int 128 dr int // ドア定義番号 129 // drd [4]int 130 fn int // 選択窓定義番号 131 Nfn int // 窓種類数 132 fnd [10]int // 窓定義番号 133 direct_heat_gain [10]int // 日射熱取得、窓部材熱抵抗を直接指定する場合の番号 134 fnsw int // 窓変更設定番号 135 136 sb int // 日除け定義番号 137 138 A float64 // 面積 [m2] 139 Eo float64 // 外表面輻射率 [-] 140 as float64 // 外表面日射吸収率 [-] 141 c float64 // 隣室温度係数 [-] 142 tgtn float64 // 日射総合透過率 [-] 143 Bn float64 // 吸収日射取得率 [-] 144 145 // ---- 壁体、窓熱抵抗 ---- 146 147 fsol *float64 // 部位室内表面の日射吸収比率 [-] 148 149 /*窓透過日射の吸収比率 */ 150 srg float64 // 1次入射比率(隣接室への透過やガラスから屋外への放熱は無視) 151 srg2 float64 // 最終的に室の日射熱取得の内の吸収比率 152 srh float64 // 人体よりの輻射の吸収比率 153 srl float64 // 照明よりの輻射の吸収比率 154 sra float64 // 機器よりの輻射の吸収比率 155 alo float64 // 外表面熱伝達率 [W/m2K] 156 ali float64 // 内表面熱伝達率 [W/m2K] 157 alic float64 158 alir float64 159 Qc float64 // 対流による熱取得 [W] 160 Qr float64 // 放射による熱取得 [W] 161 Qi float64 // 壁体貫流熱取得 [W] 162 Qgt float64 // 透過日射熱取得 [W] 163 Qga float64 // 吸収日射熱取得 [W] 164 Qrn float64 // 夜間放射熱取得 [W] 165 K float64 // 熱伝達率 [W/m2K] K = 1/(1/alo + Rwall + 1/ali) 166 Rwall float64 // 熱抵抗 [m2K/W] 表面熱伝達抵抗(1/alo+1/ali)は除く 167 CAPwall float64 // 単位面積当たり熱容量[J/m2K] 168 alicsch *float64 169 alirsch *float64 170 FI float64 171 FO float64 172 FP float64 173 CF float64 174 WSR float64 175 WSRN []float64 176 WSPL []float64 177 WSC float64 178 Fsdworg float64 // SUNBRKで定義した日よけの影面積率 179 Fsdw float64 /* 影面積 higuchi 070918 */ // KAGE-SUN用 180 Ihor float64 /*higuchi 070918 */ 181 Idre float64 /*higuchi 070918 */ 182 Idf float64 /*higuchi 070918 */ 183 Iw float64 /*higuchi 070918 */ 184 rn float64 /*higuchi 070918 */ 185 186 // ---- 室内表面に吸収される日射と内部発熱 ---- 187 188 RS float64 // 室内表面に吸収される短波長輻射 [W/m2] 189 RSsol float64 // 室内表面に吸収される日射(短波長)[W/m2] 190 RSsold float64 // 室内表面に入射する日射(短波長)(隣接室への透過を考慮する前) 191 RSli float64 // 室内表面に吸収される照明(短波長)[W/m2] 192 RSin float64 // 室内表面に吸収される人体・照明・設備・設備機器(短波長) [W/m2] 193 194 TeEsol float64 195 TeErn float64 196 Te float64 // 外表面の相当外気温 [C] 197 Tmrt float64 // 室内表面の平均輻射温度 [C] 198 Ei float64 199 Ts float64 // 室内表面の温度 ???? 200 201 /*設備機器発熱*/ 202 eqrd float64 203 end int 204 //ColTe float64 // 建材一体型空気集熱器の相当外気温度[℃] 205 Tcole float64 // 建材一体型空気集熱器の相当外気温度[℃] 記号変更 206 Tcoleu, Tcoled float64 207 Tf float64 // 建材一体型空気集熱器の熱媒平均温度[℃] 208 SQi QDAY // 日積算壁体貫流熱取得 209 Tsdy SVDAY 210 PVwall PVWALL // 太陽電池一体型壁体 211 mSQi QDAY 212 mTsdy SVDAY 213 214 // ---- 集熱器一体型壁体用計算結果 ---- 215 216 Ndiv int // 空気式集熱器のときの流れ方向(入口から出口)の分割数 217 ColCoeff float64 218 // 建材一体型集熱器計算時の後退差分要素URM 219 Tc []float64 220 //Scol float64 // 放射熱取得量[W/m2] 221 oldTx float64 // 前時刻の集熱器と躯体の境界温度(集熱器相当外気温度計算用) 222 // 太陽電池一体型 223 Iwall float64 224 PVwallFlg bool // 太陽電池一体型の場合はtrue 225 dblWsu float64 // <入力値> 屋根一体型空気集熱器(集熱屋根)の通気層上側の幅 [m] 226 dblWsd float64 // <入力値> 屋根一体型空気集熱器(集熱屋根)の通気層下側の幅 [m] 227 dblKsu, dblKsd, dblKc, dblfcu, dblfcd, dblKcu, dblKcd float64 228 dblb11, dblb12, dblb21, dblb22 float64 229 dblacr, dblacc, dblao float64 230 dblTsu, dblTsd, dblTf float64 231 dblSG float64 232 ku, kd float64 233 ras, Tg float64 234 235 pcmstate []*PCMSTATE // PCM状態値収録構造体 236 Npcm int // PCM設置レイヤー数 237 238 tnxt float64 // 当該部位への入射日射の隣接空間への日射分配(連続空間の隣室への日射分配) 239 RStrans bool // 室内透過日射が窓室内側への入射日射を屋外に透過する場合はtrue 240 } 241 242 // 壁体各層の熱抵抗と熱容量 243 type WELM struct { 244 Code string // <入力値> 材料コード 245 L float64 // <入力値> 各層の材料厚さ[m](分割前) 246 ND int // <入力値> 各層の内部分割数 247 Cond float64 // <材料定義リストから読み取り> 熱伝導率 [W/mK] 248 Cro float64 // <材料定義リストから読み取り> 容積比熱 [J/m3K] 249 } 250 251 func NewWelm() *WELM { 252 return &WELM{ 253 Code: "", 254 L: -999.0, 255 ND: 0, 256 Cond: -999.0, 257 Cro: -999.0, 258 } 259 } 260 261 type CHARTABLE struct { 262 filename string // テーブル形式ファイルのファイル名 263 fp io.ReadCloser // `filename`の読み込みファイルポインタ 264 PCMchar rune // E:エンタルピー、C:熱伝導率 265 T []float64 // PCM温度[℃] 266 Chara []float64 // 特性値(エンタルピー、熱伝導率) 267 tabletype rune // h:見かけの比熱、e:エンタルピー 268 minTemp, maxTemp float64 // テーブルの下限温度、上限温度 269 itablerow int // テーブル形式の入力行数 270 lowA, lowB, upA, upB float64 // 上下限温度範囲外の特性値計算用線形回帰式の傾きと切片 271 minTempChng float64 // 最低温度変動幅 前時刻からの温度変化がminTempChng以下の場合はminTempChngとして特性値を計算 272 } 273 274 // 潜熱蓄熱材 275 type PCM struct { 276 Name string // PCM名称 277 Spctype rune // 見かけの比熱 m:モデルで設定、t:テーブル形式 278 Condtype rune // 熱伝導率 m:モデルで設定、t:テーブル形式 279 Ql float64 // 潜熱量[J/m3] 280 Condl float64 // 液相の熱伝導率[W/mK] 281 Conds float64 // 固相の熱伝導率[W/mK] 282 Crol float64 // 液相の容積比熱[J/m3K] 283 Cros float64 // 固相の容積比熱[J/m3K] 284 Ts float64 // 固体から融解が始まる温度[℃] 285 Tl float64 // 液体から凝固が始まる温度[℃] 286 Tp float64 // 見かけの比熱のピーク温度 287 Iterate bool // PCM状態値を収束計算させるかどうか 288 IterateTemp bool // 収束条件に温度も加えるかどうか(通常は比熱のみ) 289 DivTemp int // 比熱の数値積分時の温度分割数 290 Ctype int // 比熱 291 PCMp PCMPARAM // 見かけの比熱計算用パラメータ 292 AveTemp rune // PCM温度を両側の節点温度の平均で計算する場合は'y'(デフォルト) 293 NWeight float64 // 収束計算時の現在ステップの重み係数 294 IterateJudge float64 // 収束計算時の前ステップ見かけの比熱の収束判定[%] 295 Chartable [2]CHARTABLE // 0:見かけの比熱またはエンタルピー、1:熱伝導率 296 } 297 298 // PCM見かけの比熱計算用パラメータ 299 type PCMPARAM struct { 300 T float64 301 B float64 302 bs float64 303 bl float64 304 skew float64 305 omega float64 306 a float64 307 b float64 308 c float64 309 d float64 310 e float64 311 f float64 312 } 313 314 type BLEType rune 315 316 const ( 317 BLE_None BLEType = 0 318 BLE_ExternalWall BLEType = 'E' // 外壁 319 BLE_Roof BLEType = 'R' // 屋根 320 BLE_Floor BLEType = 'F' // 外部に接する床 321 BLE_InnerWall BLEType = 'i' // 内壁 322 BLE_Ceil BLEType = 'c' // 天井(内部) 323 BLE_InnerFloor BLEType = 'f' // 床(内部) 324 BLE_d BLEType = 'd' 325 BLE_Window BLEType = 'W' // 窓 326 ) 327 328 type WALLType rune 329 330 const ( 331 WallType_None WALLType = 0 332 WallType_C WALLType = 'C' // 建材一体型空気集熱器 333 WallType_P WALLType = 'P' // 床暖房等放射パネル(通常の床暖房パネル) 334 WallType_N WALLType = 'N' // 一般壁体 335 ) 336 337 // 壁体 定義デ-タ 338 type WALL struct { 339 ble BLEType // <入力値> 部位コ-ド = E,R,F,i,c,f,R 340 name string // <入力値> 壁体名 最初の1文字は英字 省略時は既定値とみなす 341 PCMflg bool // 部材構成にPCMが含まれる場合は毎時係数行列を作成するので 342 // PCMが含まれるかどうかのフラグ 343 344 N int /*材料層数≠節点数 */ 345 Ip int /*発熱面のある層の番号 */ 346 // code [12][5]rune; /*各層の材料コ-ド */ 347 L []float64 /*節点間の材料厚さ */ 348 // ND []int; /*各層の内部分割数 */ 349 Ei float64 // <入力値> 室内表面放射率 350 Eo float64 // <入力値> 外表面輻射率 351 as float64 // <入力値> 外表面日射吸収率 352 Rwall float64 // <内部計算値> 壁体熱抵抗(表面熱伝達抵抗(1/alo+1/ali)は除く) [m2K/W] 353 CAPwall float64 // <内部計算値> 単位面積当たりの熱容量[J/m2K] 354 CAP, R []float64 // <入力値> 登録された材料(≠節点)ごとの熱容量、熱抵抗 355 effpnl float64 // <入力値> 放射暖冷房パネルのパネル効率 356 tnxt float64 // <入力値> 当該部位への入射日射の隣接空間への日射分配(連続空間の隣室への日射分配) 357 M int // 節点数 358 mp int // <入力値> 放射暖冷房パネルの発熱面のある節点番号 359 res []float64 // 節点間の熱抵抗 [m2K/W] 360 cap []float64 // 節点間の熱容量 [J/m2K] 361 welm []WELM // <入力値> 層構成(layer) 362 tra float64 // <入力値> τα 363 Ko float64 // <内部計算値> Ksu + Ksd 364 Ksu float64 // <入力値> 通気層上部から屋外までの熱貫流率[W/m2K] 365 Ksd float64 // <入力値> 通気層下部から集熱器裏面までの熱貫流率[W/m2K] 366 fcu float64 // <入力値> Kcu / Ksu 367 fcd float64 // <入力値> Kcd / Ksd 368 ku float64 // <内部計算値> Kcu / Kc 369 kd float64 // <内部計算値> Ksu / Ko 370 Ru float64 // <入力値> 通気層上部から屋外までの熱抵抗 [m2K/W] 371 Rd float64 // <入力値> 通気層下部から集熱器裏面までの熱抵抗 [m2K/W] 372 Kc float64 // <入力値> Kcu + Kcd 373 Kcu float64 // <入力値> 通気層内上側から屋外までの熱貫流率 [W/m2K] 374 Kcd float64 // <入力値> 通気層内下側から裏面までの熱貫流率 [W/m2K] 375 air_layer_t float64 376 dblEsu float64 // 通気層の厚さ[m] 377 dblEsd float64 // 通気層の厚さ[m] 378 ta float64 // <入力値> 中空層の厚さ [mm] 379 Eg float64 // <入力値> 透過体の中空層側表面の放射率 380 Eb float64 // <入力値> 集熱版の中空層側表面の放射率 381 ag float64 // <入力値> 透過体の日射吸収率 382 383 chrRinput bool // 熱抵抗が入力されている場合は'Y', 熱貫流率が入力されている場合は'N' 384 WallType WALLType // <内部判定値> 建材一体型空気集熱器の場合:'C', 床暖房等放射パネルの場合:'P', 一般壁体の場合:'N' 385 386 //char PVwall ; 387 // 太陽電池一体型建材(裏面通気):'Y' 388 ColType string // <入力値> 集熱器のタイプ: 'A1'=ガラス付集熱器, 'A2'=ガラス無し集熱器 or 'A2P'=太陽電池一体型集熱器 389 390 // 集熱器タイプ JSES2009大会論文(宇田川先生発表)のタイプ 391 PVwallcat PVWALLCAT 392 PCM []*PCM 393 PCMLyr []*PCM // 潜熱蓄熱材 394 PCMrate []float64 // PCM含有率(Vol) 395 PCMrateLyr []float64 // PCM体積含有率 396 } 397 398 func NewWall() *WALL { 399 Wa := new(WALL) 400 401 Wa.name = "" 402 Wa.ble = ' ' 403 Wa.N = 0 404 Wa.M = 0 405 Wa.mp = 0 406 Wa.Ip = -1 407 Wa.Ei = 0.9 408 Wa.Eo = 0.9 409 Wa.as = 0.7 410 Wa.Rwall = -999.0 411 Wa.effpnl = -999.0 412 Wa.CAPwall = -999. 413 Wa.res = nil 414 Wa.cap = nil 415 // Wa.welm = nil ; 416 Wa.tra = -999.0 417 Wa.Ksu = -999. 418 Wa.Ksd = -999. 419 Wa.Kc = -999. 420 Wa.fcu = -999. 421 Wa.fcd = -999. 422 Wa.ku = -999. 423 Wa.kd = -999. 424 Wa.Ko = -999. 425 Wa.Rd = -999. 426 Wa.Ru = -999. 427 Wa.Kcu = -999. 428 Wa.Kcd = -999. 429 Wa.air_layer_t = -999.0 430 Wa.dblEsd = 0.9 431 Wa.dblEsu = 0.9 432 Wa.chrRinput = false 433 Wa.ColType = "" 434 Wa.WallType = WallType_N //一般壁体 435 //Wa.PVwall = 'N' ; 436 437 // 太陽電池一体型空気集熱器のパラメータ初期化 438 PVwallcatinit(&Wa.PVwallcat) 439 440 Wa.ta = -999. 441 Wa.ag = -999.0 442 Wa.Eg = 0.9 443 Wa.Eb = 0.9 444 445 Wa.PCMLyr = nil 446 Wa.PCMrateLyr = nil 447 Wa.L = nil 448 449 Wa.PCMflg = false 450 451 Wa.tnxt = -999.0 452 453 return Wa 454 } 455 456 // 壁体定義番号既定値 457 type DFWL struct { 458 E int // 外壁(壁体定義番号既定値) 459 R int // 屋根(壁体定義番号既定値) 460 F int // 外部に接する床(壁体定義番号既定値) 461 i int // 内壁(壁体定義番号既定値) 462 c int // 天井(壁体定義番号既定値) 463 f int // 隣室に接する床(壁体定義番号既定値) 464 } 465 466 // 重量壁体デ-タ 467 type MWALL struct { 468 sd *RMSRF 469 nxsd *RMSRF 470 wall *WALL 471 ns int // 壁体通し番号 472 rm int // 室番号 473 n int // 室壁体番号 474 nxrm int // 隣室番号 475 nxn int // 隣室室壁体番号 476 UX []float64 // [UX]の先頭位置 477 478 M int 479 mp int 480 res []float64 481 cap []float64 482 uo float64 // 室内表面のuo 483 um float64 // 外表面のum 484 Pc float64 // 床パネル用係数 485 Tw []float64 // 壁体温度 486 Told []float64 // 以前の壁体温度 487 Twd []float64 // 現ステップの壁体内部温度 488 Toldd []float64 // PCM温度に関する収束計算過程における前ステップの壁体内温度 489 } 490 491 // 窓およびドア定義デ-タ 492 type WINDOW struct { 493 Name string // 名称 494 Cidtype string // 入射角特性のタイプ。 'N':一般ガラス 495 K float64 // !入力されてる?! 496 Rwall float64 // 窓部材熱抵抗 [m2K/W] 497 Ei float64 // 室内表面放射率(0.9) [-] 498 Eo float64 // 外表面放射率(0.9)(ドアのみ) [-] 499 tgtn float64 // 日射透過率 [-] 500 Bn float64 // 吸収日射取得率 [-] 501 As float64 // 日射吸収率(ドアのみ)[-] 502 Ag float64 // 窓ガラス面積 !入力されてる?! 503 Ao float64 // 開口面積 !入力されてる?! 504 W float64 // 巾 !入力されてる?! 505 H float64 // 高さ !入力されてる?! 506 RStrans bool // 室内透過日射が窓室内側への入射日射を屋外に透過する場合はtrue 507 } 508 509 func NewWINDOW() *WINDOW { 510 W := new(WINDOW) 511 W.Name = "" 512 W.Cidtype = "N" // 入射角特性のタイプは一般ガラスとする 513 W.K = 0.0 514 W.Rwall = 0.0 515 W.Ei = 0.9 // 室内表面放射率 デフォルト値 516 W.Eo = 0.9 // 外表面放射率 デフォルト値 517 W.tgtn = 0.0 518 W.Bn = 0.0 519 W.As = 0.0 520 W.Ag = 0.0 521 W.Ao = 0.0 522 W.W = 0.0 523 W.H = 0.0 524 W.RStrans = false // 室内透過日射が窓室内側への入射日射を屋外に透過しない 525 return W 526 } 527 528 // 日除け 529 type SNBK struct { 530 Name string // 名称 531 Type int // 日除けタイプ 1: 一般の庇(H), 2: 袖壁(HL), 5: 長い庇(S), 6: 長い袖壁(SL), 9: 格子ルーバー(K) 532 Ksi int // 日影部分と日照部分の反転 0: 反転なし, 1: 反転あり 533 W float64 // 開口部の高さ (W=Width) 534 H float64 // 開口部の幅 (H=Height) 535 D float64 // 庇の付け根から先端までの長さ (D=Depth) 536 W1 float64 // 開口部の左端から壁の左端までの距離 (L=Left) 537 W2 float64 // 開口部の右端から壁の右端までの距離 (R=Right) 538 H1 float64 // 開口部の上端から壁の上端までの距離 (T=Top) 539 H2 float64 // 地面から開口部の下端までの高さ (B=Bottom) 540 } 541 542 // 日射、室内発熱熱取得 543 type QRM struct { 544 Tsol float64 // 透過日射 [W] 545 Asol float64 // 外表面吸収日射室内熱取得 [W] 546 Arn float64 // 外表面吸収長波長輻射熱損失 [W] 547 548 // --- 人体・照明・機器の顕熱 [W] --- 549 550 Hums float64 // 人体顕熱 [W] 551 Light float64 // 照明 [W] 552 Apls float64 // 機器顕熱 [W] 553 Hgins float64 // 室内発熱(顕熱)の合計 [W] 554 555 // --- 人体・機器の潜熱 [W] --- 556 557 Huml float64 // 人体潜熱 [W] 558 Apll float64 // 機器潜熱 [W] 559 560 // --- 熱負荷 --- 561 562 Qinfs float64 // 換気顕熱負荷[W] 563 Qinfl float64 // 換気潜熱負荷[W] 564 565 Qsto float64 // 室内の顕熱蓄熱量[W] 566 Qstol float64 // 室内の潜熱蓄熱量[W] 567 568 Qeqp float64 // 室内設置の配管、ボイラからの熱取得[W] 569 570 Solo float64 // 外壁面入射日射量[W] 571 Solw float64 // 窓面入射日射量[W] 572 Asl float64 // 外表面吸収日射[W] 573 574 AE float64 // 消費電力[W] 575 AG float64 // 消費ガス[W] 576 } 577 578 // 室間相互換気 579 type ACHIR struct { 580 rm int 581 sch int 582 room *ROOM 583 Gvr float64 // 室間相互換気量 584 } 585 586 // 隣室 587 type TRNX struct { 588 nextroom *ROOM 589 sd *RMSRF // room側からみたnextroomと接する表面の壁体への参照 590 } 591 592 // 室についての輻射パネル 593 type RPANEL struct { 594 pnl *RDPNL 595 sd *RMSRF 596 elinpnl int // 放射パネルの入力要素の先頭位置 597 } 598 599 // 輻射パネル 600 type RDPNL struct { 601 Name string 602 Loadt *ControlSWType 603 Type rune // 建材一体型空気集熱器の場合:'C', それ以外:'P' 604 rm [2]*ROOM 605 sd [2]*RMSRF 606 cmp *COMPNT 607 MC int // 専用壁のとき MC=1, 共用壁のとき MC=2 608 Ntrm [2]int 609 Nrp [2]int 610 elinpnl [2]int 611 eprmnx int // 隣室EPRN[]の位置 612 epwtw int // EPWの当該パネル入口水温の位置 613 control rune 614 615 effpnl float64 616 Toset float64 617 Wp float64 618 Wpold float64 619 Tpi float64 620 Tpo float64 621 FIp [2]float64 622 FOp [2]float64 623 FPp float64 624 Epw float64 625 EPt [2]float64 626 EPR [2][]float64 627 EPW [2][]float64 628 EPC float64 629 Q float64 630 // 2009/01/26 Satoh Debug 631 cG float64 // 比熱×流量 632 Ec, FI, FO, FP float64 633 Ew float64 634 635 /* 日集計 */ 636 Tpody SVDAY 637 Tpidy SVDAY 638 Qdy QDAY 639 Scoldy QDAY 640 PVdy QDAY 641 TPVdy SVDAY 642 643 // 月集計 644 mTpody, mTpidy, mTPVdy SVDAY 645 mQdy, mScoldy, mPVdy QDAY 646 mtPVdy [12][24]EDAY 647 648 OMvav *OMVAV // 吹出を制御する変風量ユニット 649 650 } 651 652 // 室への冷温風供給熱量 653 type AIRSUP struct { 654 Qs float64 655 Ql float64 656 Qt float64 657 G float64 658 Tin float64 659 Xin float64 660 Qdys QDAY // 日積算暖冷房 661 Qdyl QDAY 662 Qdyt QDAY 663 mQdys, mQdyl, mQdyt QDAY 664 } 665 666 // 室負荷 667 type RMLOAD struct { 668 loadt *ControlSWType 669 loadx *ControlSWType 670 tropt rune /* 室温制御方法 'o': OT制御、'a': 空気温度制御 */ 671 hmopt rune /* 湿度制御設定値 'x': 絶対湿度、'r': 相対湿度、 'd': 露点温度 */ 672 Tset float64 673 Xset float64 674 Qs float64 675 Ql float64 676 Qt float64 677 678 FOTr float64 679 FOTN []float64 680 FOPL []float64 681 FOC float64 682 683 Qdys QDAY /* 日積算暖冷房 */ 684 Qdyl QDAY 685 Qdyt QDAY 686 mQdys, mQdyl, mQdyt QDAY 687 } 688 689 // ゾーン集計 690 type RZONE struct { 691 name string // ゾーン名 692 Nroom int // ゾーンに属する室の数 693 rm []*ROOM //ゾーンに属する室のポインター 694 Afloor float64 695 Tr float64 696 xr float64 697 RH float64 698 Tsav float64 699 Qhs float64 700 Qhl float64 701 Qht float64 702 Qcs float64 703 Qcl float64 704 Qct float64 705 Trdy SVDAY 706 xrdy SVDAY 707 RHdy SVDAY 708 Tsavdy SVDAY 709 Qsdy QDAY 710 Qldy QDAY 711 Qtdy QDAY 712 } 713 714 /* ---------------------------------------------------------- */ 715 /* 要素別熱損失・熱取得計算用 */ 716 717 type BHELM struct { 718 trs float64 // 貫流 719 so float64 // 外壁入射日射 720 sg float64 // 窓入射日射 721 rn float64 // 大気放射 722 in float64 // 室内発熱 723 pnl float64 // 放射暖・冷房パネル 724 } 725 726 type QHELM struct { 727 qe BHELM 728 slo float64 // 外壁面入射日射量 [W] 729 slw float64 // 窓面入射日射量 [W] 730 asl float64 // 外壁面吸収日射量 [W] 731 tsol float64 // 窓透過日射量 [W] 732 hins float64 // 室内発熱(顕熱) [W] 733 hinl float64 // 室内発熱(潜熱) [W] 734 735 nx float64 // 隣室熱損失 736 gd float64 // 窓熱損失 737 ew float64 // 外壁熱損失 738 wn float64 // 窓熱損失 739 i float64 // 内壁熱損失 740 c float64 // 天井、屋根 741 f float64 // 床(内・外) 742 vo float64 // 換気 743 vol float64 // 換気(潜熱) 744 vr float64 // 室間換気 745 vrl float64 // 室間換気(潜熱) 746 sto float64 // 室内空気蓄熱 747 stol float64 // 室内空気蓄熱(潜熱) 748 loadh float64 749 loadhl float64 750 loadc float64 751 loadcl float64 752 } 753 754 type RMQELM struct { 755 rmsb []*RMSB 756 WSCwk []*BHELM 757 qelm QHELM 758 qelmdy QHELM 759 } 760 761 type RMSBType rune 762 763 const ( 764 RMSBType_None RMSBType = 0 765 RMSBType_E RMSBType = 'E' // 外気に接する面 766 RMSBType_G RMSBType = 'G' // 地面に接する面 767 RMSBType_i RMSBType = 'i' // 内壁 768 ) 769 770 type RMSB struct { 771 Type RMSBType // 'E':外気に接する面、'G':地面に接する面、'i':内壁 772 Ts BHELM 773 Tw []*BHELM 774 Told []*BHELM 775 } 776 777 // 合計空調負荷 778 type QETOTAL struct { 779 Name string 780 Qelm QHELM // 空調負荷 781 Qelmdy QHELM // 空調負荷 782 } 783 784 // 室デ-タ 785 type ROOM struct { 786 Name string //室名 787 N int //周壁数 788 Brs int //Sd[],S[]の先頭位置 789 MCAP *float64 790 CM *float64 791 TM float64 792 oldTM float64 793 HM float64 794 QM float64 795 fsolm *float64 // 家具の日射吸収割合 796 Srgm2 float64 // 家具の最終的な日射吸収割合 797 Qsolm float64 // 家具の日射吸収量[W] 798 PCMfurnname string // PCM内臓家具の部材名称 799 PCM *PCM // PCM内臓家具の場合 800 mPCM float64 // PCM内臓家具の容積[m3] 801 PCMQl float64 // PCM内臓家具の見かけの比熱[J/m3K] 802 FunHcap float64 // 家具の熱容量(顕熱とPCM内臓家具の合計) 803 // 室空気に加算したものは除く 804 FMT, FMC float64 805 806 // --- 家具の計算用パラメータ ---- 807 808 Qgt float64 // 透過日射熱取得 [W] 809 Nachr int //`achr`の数 810 Ntr int //内壁を共有する隣室数 811 Nrp int //輻射パネル数 812 Nflr int //床の部位数 813 Nfsolfix int //短波長放射吸収比率が定義されている面数 814 Nisidermpnl int 815 Nasup int 816 817 rsrf []*RMSRF // 壁体 818 achr []*ACHIR // 室間相互換気 819 trnx []*TRNX // 隣室 820 rmpnl []*RPANEL // 室についての輻射パネル 821 //rairflow []RAIRFLOW 822 Arsp []*AIRSUP // 室への冷温風供給熱量 823 cmp *COMPNT // 逆参照 824 elinasup []*ELIN // 流入経路(空気温度用) サイズは Nasup に等しい 825 elinasupx []*ELIN // 流入経路(空気湿度用) サイズは Nasup に等しい 826 rmld *RMLOAD // 室負荷 827 rmqe *RMQELM 828 829 F []float64 830 alr []float64 831 XA []float64 832 Wradx []float64 833 834 rsrnx bool //隣室裏面の短波長放射考慮のとき true (床、天井のみ) 835 fij rune //形態係数 'F':外部入力、'A':面積率 836 sfpri bool //表面温度出力指定 837 eqpri bool //日射、室内発熱取得出力指定 838 mrk rune // '*', 'C', '!' 839 840 VRM float64 //室容積 [m3] 841 GRM float64 //室内空気質量 842 MRM float64 //室空気熱容量 843 Area float64 //室内表面総面積 844 FArea float64 //床面積 845 flrsr *float64 //床に直接吸収される短波長放射の比率 846 tfsol float64 //部位に直接吸収される短波長放射比率の既定値合計(Sd->fsol、Rm->flrsr、Rm->fsolmの合計) 847 alrbold float64 // 848 849 Hcap float64 // 室内熱容量 J/K 850 Mxcap float64 // 室内湿気容量 kg/(kg/kg) 851 852 Ltyp rune // 照明器具形式 853 Nhm float64 // 人数 854 Light float64 // 照明器具容量 855 Apsc float64 // 機器対流放熱容量 856 Apsr float64 // 機器輻射放熱容量 857 Apl float64 // 機器潜熱放熱容量 858 Gve float64 // 換気量 859 Gvi float64 // 隙間風量 860 AE float64 // 消費電力容量[W] 861 AG float64 // 消費ガス容量[W] 862 AEsch *float64 // 消費電力スケジュール (未設定時はnil) 863 AGsch *float64 // 消費ガススケジュール (未設定時はnil) 864 Lightsch *float64 // 照明スケジュール (未設定時はnil) 865 Assch *float64 // 機器顕熱スケジュール (未設定時はnil) 866 Alsch *float64 // 機器潜熱スケジュール (未設定時はnil) 867 Hmsch *float64 // 在室人数スケジュール (未設定時はnil) 868 Metsch *float64 // Met値スケジュール (未設定時はnil) 869 Closch *float64 // Clo値スケジュール (未設定時はnil) 870 Wvsch *float64 // 室内風速設定値名 (未設定時はnil) 871 Hmwksch *float64 // 作業強度設定値名 (未設定時はnil) 872 Vesc *float64 // 換気スケジュール (未設定時はnil) 873 Visc *float64 // 隙間風スケジュール (未設定時はnil) 874 alc *float64 // 室内側対流熱伝達率のスケジュール設定値 (未設定時はnil) 875 876 // --- 室内発熱 --- 877 878 Hc float64 //人体よりの対流 [W] 879 Hr float64 //人体よりの輻射 [W] 880 HL float64 //人体よりの潜熱 [W] 881 Lc float64 //照明よりの対流 [W] 882 Lr float64 //照明よりの輻射 [W] 883 Ac float64 //機器よりの対流 [W] 884 Ar float64 //機器よりの輻射 [W] 885 AL float64 //機器よりの潜熱 [W] 886 887 /*設備機器発熱*/ 888 eqcv float64 //設備機器発熱の対流成分比率 889 Qeqp float64 //設備機器からの発熱[W] 890 Gvent float64 891 892 RMt float64 893 ARN []float64 894 RMP []float64 895 RMC float64 896 RMx float64 897 RMXC float64 898 899 Tr float64 //室内温度 900 Trold float64 //室内温度 901 xr float64 //室内絶対湿度 [kg/kg] 902 xrold float64 //室内絶対湿度 903 RH float64 904 Tsav float64 // 平均表面温度 905 Tot float64 // 作用温度 906 hr float64 // エンタルピー 907 PMV float64 908 SET float64 // SET(体感温度) 909 setpri bool // SET(体感温度)の出力フラグ 910 911 Trdy SVDAY 912 xrdy SVDAY 913 RHdy SVDAY 914 Tsavdy SVDAY 915 916 mTrdy, mxrdy, mRHdy, mTsavdy SVDAY 917 VAVcontrl *VAV 918 OTsetCwgt *float64 // 作用温度設定時の対流成分重み係数 919 // デフォルトは0.5 920 HGc, CA, AR float64 921 Qsab float64 // 吸収日射熱取得 [W] 922 Qrnab float64 // 夜間放射による熱損失 [W] 923 } 924 925 /* -------------------------------- 926 室計算用データ 927 --------------------------------*/ 928 929 type RMVLS struct { 930 Twallinit float64 // 初期温度 (GDAT.RUN.Tinit) 931 Emrk []rune // '!' or '*' ???? 932 Wall []*WALL // 壁 933 Window []*WINDOW // 窓 934 Snbk []*SNBK // 日よけ 935 PCM []*PCM // 潜熱蓄熱材 936 Sd []*RMSRF // 壁体 937 Mw []*MWALL // 重量壁体 938 Room []*ROOM // 室 939 Rdpnl []*RDPNL // 輻射パネル 940 Qrm, Qrmd []*QRM // 日射、室内発熱熱取得 941 Qetotal QETOTAL // 合計空調負荷 942 Trdav []float64 943 Pcmiterate rune // PCM建材を使用し、かつ収束計算を行う場合は'y' 944 }