github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/eepath.go (about) 1 package eeslism 2 3 type EqpType string 4 5 const ( 6 ROOM_TYPE EqpType = "ROOM" // 室 7 RDPANEL_TYPE EqpType = "RPNL" // 放射パネル 8 HCCOIL_TYPE EqpType = "HCC" // 冷温水コイル 9 BOILER_TYPE EqpType = "BOI" // ボイラ- 10 COLLECTOR_TYPE EqpType = "COL" // 太陽熱集熱器 11 ACOLLECTOR_TYPE EqpType = "ACOL" // 太陽熱集熱器 12 REFACOMP_TYPE EqpType = "REFA" // ヒートポンプ(圧縮式冷凍機) 13 STANK_TYPE EqpType = "STANK" // 蓄熱槽 14 HEXCHANGR_TYPE EqpType = "HEX" // 熱交換器 15 STHEAT_TYPE EqpType = "STHEAT" // 電気蓄熱暖房器 16 THEX_TYPE EqpType = "THEX" // 全熱交換器 17 DESI_TYPE EqpType = "DESICCANT" // デシカント槽 18 EVAC_TYPE EqpType = "EVPCOOLING" // 気化冷却器 19 VAV_TYPE EqpType = "VAV" 20 VWV_TYPE EqpType = "VWV" 21 ) 22 23 const ( 24 COLLECTOR_PDT = 'w' 25 ACOLLECTOR_PDT = 'a' 26 ) 27 28 type CATType string 29 type VAVType rune 30 type PathType rune 31 32 const ( 33 // ---- Satoh Debug VAV 2000/10/30 ---- 34 VAV_PDT VAVType = 'A' // 空気 35 VWV_PDT VAVType = 'W' // 温水 36 37 PIPEDUCT_TYPE EqpType = "PIPE" 38 DUCT_TYPE EqpType = "DUCT" 39 PIPE_PDT = 'P' 40 DUCT_PDT = 'D' 41 42 PUMP_TYPE EqpType = "PUMP" 43 44 FAN_TYPE EqpType = "FAN" 45 PUMP_PF = 'P' 46 FAN_PF = 'F' 47 48 PUMP_C = "C" 49 PUMP_Vv = "Vv" 50 PUMP_Vr = "Vr" 51 52 FAN_C = "C" 53 FAN_Vd = "Vd" 54 FAN_Vs = "Vs" 55 FAN_Vp = "Vp" 56 FAN_Vr = "Vr" 57 58 PV_TYPE = "PV" 59 60 DIVERG_TYPE = "B" // 通過流体が水の分岐要素 61 CONVRG_TYPE = "C" // 通過流体が水の合流要素 62 DIVGAIR_TYPE = "BA" // 通過流体が空気の分岐要素 63 CVRGAIR_TYPE = "CA" // 通過流体が空気の合流要素 64 DIVERGCA_TYPE = "_B" 65 CONVRGCA_TYPE = "_C" 66 67 FLIN_TYPE = "FLI" // 流入境界条件(システム経路への流入条件) 68 GLOAD_TYPE = "GLD" 69 70 HCLOAD_TYPE = "HCLD" // 仮想空調機コイル(直膨コイル) 71 HCLOADW_TYPE = "HCLDW" // 仮想空調機コイル(冷・温水コイル) 72 RMAC_TYPE = "RMAC" // ルームエアコン 73 RMACD_TYPE = "RMACD" 74 75 QMEAS_TYPE = "QMEAS" // カロリーメータ 76 VALV_TYPE = "V" // 弁およびダンパー 77 TVALV_TYPE = "VT" // 温調弁(水系統のみ) 78 79 OMVAV_TYPE = "OMVAV" 80 OAVAV_TYPE = "OAVAV" 81 82 OUTDRAIR_NAME = "_OA" 83 OUTDRAIR_PARM = "t=Ta x=xa *" 84 85 CITYWATER_NAME = "_CW" 86 CITYWATER_PARM = "t=Twsup *" 87 ) 88 89 type ControlSWType rune 90 91 // 通過する流体の種類(a:空気(温度)、x:空気(湿度)、W:水)) 92 type FliudType rune 93 94 const ( 95 AIR_FLD FliudType = 'A' // 空気?? 96 AIRt_FLD FliudType = 't' // 空気(温度) 97 AIRa_FLD FliudType = 'a' // 空気(温度) 98 AIRx_FLD FliudType = 'x' // 空気(湿度) 99 WATER_FLD FliudType = 'W' // 水 100 101 HEATING_SYS = 'a' 102 HVAC_SYS = 'A' 103 DHW_SYS = 'W' 104 105 THR_PTYP PathType = 'T' 106 CIR_PTYP PathType = 'C' 107 BRC_PTYP PathType = 'B' 108 109 DIVERG_LPTP PathType = 'b' // 水または空気の*分岐* 110 CONVRG_LPTP PathType = 'c' // 水または空気の*合流* 111 IN_LPTP PathType = 'i' // 経路の先頭が流入境界条件 112 OUT_LPTP PathType = 'o' // 最後尾要素が水または空気の分岐または合流である場合 113 114 OFF_SW ControlSWType = 'x' // 経路が停止中 115 ON_SW ControlSWType = '-' // 経路が動作中 116 LOAD_SW ControlSWType = 'F' 117 FLWIN_SW ControlSWType = 'I' 118 BATCH_SW ControlSWType = 'B' 119 120 COOLING_LOAD ControlSWType = 'C' 121 HEATING_LOAD ControlSWType = 'H' 122 HEATCOOL_LOAD ControlSWType = 'L' 123 124 COOLING_SW ControlSWType = 'C' 125 HEATING_SW ControlSWType = 'H' 126 127 TANK_FULL = 'F' 128 TANK_EMPTY = 'E' 129 TANK_EMPTMP = -777.0 130 BTFILL ControlSWType = 'F' 131 BTDRAW ControlSWType = 'D' 132 133 SYSV_EQV = 'v' 134 LOAD_EQV = 'L' 135 ) 136 137 type COMPNT struct { 138 Name string // 機器名称 139 Roomname string // 機器の設置室名称(-room) 140 Eqptype EqpType // 機器タイプ("PIPE"など) 141 Envname string // 配管等の周囲条件名称(-env) 142 Exsname string // 方位名称 143 Hccname string // VWV制御するときの制御対象熱交換器名称 144 Rdpnlname string // VWV制御するときの制御対象床暖房(未完成) 145 Idi []ELIOType // 入口の識別記号 (len(Idi) == Nin) 146 Ido []ELIOType // 出口の識別記号(熱交換器の'C'、'H'や全熱交換器の'E'、'O'など)(len(Ido) == Nout) 147 Tparm string // SYSCMPで定義された"-S"や"-V"以降の文字列を収録する 148 Wetparm string // 湿りコイルの除湿時出口相対湿度の文字列を収録 149 Omparm string // 集熱器が直列接続の場合に流れ方向に記載する 150 Airpathcpy bool // 空気経路の場合はtrue(湿度経路用にpathをコピーする) 151 Control ControlSWType 152 Eqp interface{} // 機器特有の構造体へのポインタ 153 Neqp int 154 Ncat int 155 Nout int // 出口の数 156 Nin int // 入口の数 157 Nivar int 158 Ac float64 // 集熱器面積[m2] 159 PVcap float64 // 太陽電池容量[W] 160 Area float64 // 太陽電池アレイ面積[m2] 161 Ivparm *float64 162 Eqpeff float64 // ボイラ室内置き時の室内供給熱量率 [-] 163 Elouts []*ELOUT // 機器出口の構造体へのポインタ(Nout個) 164 Elins []*ELIN // 機器入口の構造体へのポインタ(Nin個) 165 // valv *Valv 166 167 Valvcmp *COMPNT // 三方弁の対となるValvのComptへのポインタ 168 // x, /* バルブ開度 */ 169 // xinit ; 170 // char org ; /* CONTRLで指定されているとき'y' それ以外は'n' */ 171 // char *OMfanName ; // Valvが参照するファン風量 172 MonPlistName string // VALVで分岐などを流量比率で行う場合の観測対象のPlist名称 173 MPCM float64 // 電気蓄熱暖房器内臓PCMの容量[m3] 174 } 175 176 type ELOUT struct { 177 Id ELIOType // 出口の識別番号(熱交換器の'C'、'H'や全熱交換器の'E'、'O'など) 178 Pelmoid rune // 終端の割り当てが完了していれば '-', そうでなければ 'x' 179 Fluid FliudType // 通過する流体の種類(a:空気(温度)、x:空気(湿度)、W:水)) 180 Control ControlSWType // 経路の制御 181 Sysld rune // 負荷を計算する場合は'y'、成り行きの場合は'n' 182 G float64 // 流量 183 Q float64 // 熱量 184 Sysv float64 // 連立方程式の答え 185 Load float64 186 Co float64 // 連立方程式の定数 187 Coeffo float64 // 出口の係数 188 Coeffin []float64 // 入口の係数(入口複数の場合はそれぞれの係数) 189 Ni int // 入口の数 190 Sv int 191 Sld int 192 Cmp *COMPNT // 機器出口の構造体が属する機器(逆参照) 193 Elins []*ELIN // 機器出口の構造体が関連する機器入口 194 Lpath *PLIST // 機器出口が属する末端経路 195 Eldobj *ELOUT 196 Emonitr *ELOUT 197 } 198 199 // 経路識別子 200 type ELIOType rune 201 202 const ( 203 ELIO_None ELIOType = 0 204 ELIO_G ELIOType = 'G' 205 ELIO_C ELIOType = 'C' // 冷風? 206 ELIO_H ELIOType = 'H' // 温風? 207 ELIO_D ELIOType = 'D' // Tdry 208 ELIO_d ELIOType = 'd' // xdry 209 ELIO_V ELIOType = 'V' // Twet 210 ELIO_v ELIOType = 'v' // xwet 211 ELIO_e ELIOType = 'e' // 排気系統(エンタルピー) ? 212 ELIO_E ELIOType = 'E' // 排気系統(温度)? 213 ELIO_O ELIOType = 'O' // 給気系統(温度) ? 214 ELIO_o ELIOType = 'o' // 給気系統(エンタルピー) ? 215 ELIO_x ELIOType = 'x' // 空気湿度 216 ELIO_f ELIOType = 'f' 217 ELIO_r ELIOType = 'r' 218 ELIO_W ELIOType = 'W' // 温水温度 219 ELIO_w ELIOType = 'w' 220 ELIO_t ELIOType = 't' // 空気温度 221 ELIO_i ELIOType = 'i' 222 ELIO_ASTER ELIOType = '*' // 流入経路 223 ELIO_SPACE ELIOType = ' ' 224 ELIO_IN ELIOType = '>' 225 ) 226 227 type ELIN struct { 228 Id ELIOType // 入口の識別番号(熱交換器の'C'、'H'や全熱交換器の'E'、'O'など) 229 Sysvin float64 // 連立方程式の答え 230 Upo *ELOUT // 上流の機器の出口 231 Upv *ELOUT // 上流の機器の出口(停止している場合はnil) 232 Lpath *PLIST // 機器入口が属する末端経路 233 } 234 235 // SYSPTHに記載の機器 236 type PELM struct { 237 Co ELIOType // SYSPTHに記載の機器の出口の識別番号(熱交換器の'C'、'H'や全熱交換器の'E'、'O'など) 238 Ci ELIOType // SYSPTHに記載の機器の入口の識別番号(熱交換器の'C'、'H'や全熱交換器の'E'、'O'など) 239 Cmp *COMPNT // SYSPTH記載の機器の構造体 240 // Pelmx *PELM // PELM構造体へのポインタ(コメントアウトされているため、Goのコードでは除外) 241 Out *ELOUT // 機器の出口 242 In *ELIN // 機器の入口 243 } 244 245 // 末端経路(主経路・または部分経路) 246 type PLIST struct { 247 UnknownFlow int // 末端経路が流量未知なら1、既知なら0 248 Name string // 末端経路の名前 249 Type PathType // 貫流経路か循環経路かの判定 250 Control ControlSWType // 経路の制御情報 251 Batch bool // バッチ運転を行う蓄熱槽のあるときtrue 252 Org bool // 入力された経路のときtrue、複写された経路(空気系統の湿度経路)のとき false 253 Plistname string // 末端経路の名前 254 Lvc int 255 Nvalv int // 経路中のバルブ数 256 Nvav int // 経路中のVAVユニットの数 257 NOMVAV int // OM用変風量制御ユニット数 258 N int // 流量計算の時の番号 259 Go *float64 // 流量の計算に使用される係数 260 Gcalc float64 // 温調弁によって計算された流量を記憶する変数 261 G float64 // 流量 262 Rate *float64 // 流量分配比 263 Pelm []*PELM // 末端経路内の機器(バルブ、カロリーメータを除く) OMVAVも除くべき? 264 Plmvb *PELM // ?? 265 Lpair *PLIST 266 Plistt *PLIST // 空気系当時の温度系統 267 Plistx *PLIST // 空気系当時の湿度系統 268 Valv *VALV // 弁・ダンパーへの参照 (V,VT用) 269 Mpath *MPATH // システム経路 MPATH への逆参照 270 Upplist *PLIST 271 Dnplist *PLIST 272 OMvav *OMVAV // OMVAVへの参照 (OMVAV用) 273 } 274 275 // SYSPTHにおける';'で区切られる経路 276 // SYSPTH (1)--(N) MPATH (1)--(N) PLIST (1) -- (N) PELM 277 type MPATH struct { 278 Name string // 経路名称 279 Sys byte // 系統番号 280 Type PathType // 貫流経路か循環経路かの判定 281 Fluid FliudType // 流体種別 282 Control ControlSWType // 経路の制御情報 283 NGv int // ガス導管数 284 NGv2 int // 開口率が2%未満のガス導管数 285 Ncv int // 制御弁数 286 Lvcmx int // 制御弁の接続数の最大値 287 Plist []*PLIST // 末端経路 288 Pl []*PLIST // 末端経路を格納する配列へのポインタ 289 Rate bool // 流量比率(Plist[x].Rate)が入力されている経路ならtrue 290 G0 *float64 // 流量比率設定時の既知流量へのポインタ 291 Mpair *MPATH // 温度経路から湿度経路への参照 292 Cbcmp []*COMPNT // 流量連立方程式を解くときに使用する分岐・合流機器 293 } 294 295 type SYSEQ struct { 296 A byte 297 } 298 299 type VALV struct { 300 Name string 301 Count int 302 X float64 // バルブ開度 303 Xinit *float64 // バルブ開度の初期値 304 Org byte // CONTRLで指定されているとき'y' それ以外は'n' 305 Cmp *COMPNT 306 Cmb *COMPNT 307 Mon *COMPNT 308 Tin *float64 309 Tset *float64 310 Tout *float64 311 MGo *float64 312 Plist *PLIST // 接続している末端経路への参照 313 MonPlist *PLIST 314 }