Public Class CAirHandling
'''
''' 최대냉/난반후하 계산식인거 같다.
'''
'''
'''
Public Overridable Sub Calc_Max_Power(ByVal i_HeatCool As Integer)
pLog.Add(String.Format(">>Calc_Max_Power 진입"))
'Dim i_count_zone As Integer, i_count_AHU As Integer, i_count_profile As Integer
Dim c_p_L As Decimal, rho_L As Decimal
Dim theta_i_c As Decimal, theta_ABL_wi As Decimal, theta_ABL_so As Decimal, theta_AUL_wi As Decimal, theta_AUL_so As Decimal, theta_ZUL_wi As Decimal, theta_ZUL_so As Decimal
Dim x_ABL_wi As Decimal, x_ABL_so As Decimal, x_AUL_wi As Decimal, x_AUL_so As Decimal, x_ZUL_so As Decimal
Dim h_ABL_wi As Decimal, h_ABL_so As Decimal, h_AUL_wi As Decimal, h_AUL_so As Decimal, h_ZUL_wi As Decimal, h_ZUL_so As Decimal
Dim Delta_h_WRG As Decimal, V_dot_mech_m As Decimal, V_dot_star As Decimal, theta_c_mech_min As Decimal, ps_theta_ZUL_so As Decimal
Dim Q_dot_h_star As Decimal, Q_dot_c_star As Decimal, Q_dot_st_star As Decimal
Dim Q_dot_h_max As Decimal, Q_dot_c_max As Decimal
Dim theta_e_min As Decimal, theta_e_max As Decimal, V_A As Decimal, theta_i_h As Decimal, theta_i_c_soll As Decimal
Dim A_B As Decimal, c_p_Lrho_L As Decimal
pLog.Add("Calc", String.Format("Calc_max_power i_HeatCool={0}", i_HeatCool))
theta_i_c = 24
theta_i_c_soll = 26
theta_i_h = 20
c_p_L = 1.006 'kJ/kg K
rho_L = 1.204 'kg/m3 (20도 1기압상태)
c_p_Lrho_L = 0.34 'Wh/m3 K
theta_ABL_wi = 22
x_ABL_wi = 0.008 '편차가 없는 습도요구 적용
h_ABL_wi = 42.6 '편차가 없는 습도요구 적용
theta_ABL_so = 26
x_ABL_so = 0.008 '편차가 없는 습도요구 적용
h_ABL_so = 46.7 '편차가 없는 습도요구 적용
theta_AUL_wi = -12
x_AUL_wi = 0.001
h_AUL_wi = -9.6
theta_AUL_so = 32
x_AUL_so = 0.012
h_AUL_so = 63
theta_e_min = -11.3
theta_e_max = 31.5
'Dim dr공조처리 As DS.tbl_kongjoRow
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim dr최대냉난방부하 As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Dr존.code & "'")(0), DSR.최대냉난방부하Row)
If Dr존.냉난방공조 = "냉방" Or Dr존.냉난방공조 = "냉난방" Then
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
Dim dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
V_A = TOSG(dr프로필.최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
For Each dr공조처리 As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <>'0'", "code")
'//아래두코드는 상단코드로 변경
'If Dr존.냉난방공조처리시스템 <> "" Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) <> "" Then
'If Dr존.냉난방공조처리시스템 = dr공조처리.code Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) = Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
' 공조기 최대 가열성능
If i_HeatCool = 1 Then
If Dr존.냉난방공조 = "냉난방" Then ' Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉난방" Then
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '"열회수불가"
Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
Case "현열교환" '현열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율) * c_p_L * (theta_ABL_wi - theta_AUL_wi) '(3.2.5-55) 순수 현열 회수기 '================2010.03.22 수정
Case "전열교환" '전열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율) * c_p_L * (h_ABL_wi - h_AUL_wi) '(3.2.5-56) 현열 및 습기 회수기 '================2010.03.22 수정
End Select
theta_ZUL_wi = TOSG(dr공조처리.설정치난방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(1, i_count_AHU - 1) 'theta_h_mech_min '(도표 3-3)
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.001 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-38) 습도요구 없음
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.006 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-42) 편차가 있는 습도요구
h_ZUL_wi = TOSG(1.01 * theta_ZUL_wi + 0.008 * (2501 + 1.86 * theta_ZUL_wi)) '(3.2.5-48) 편차가 없는 습도요구만 우선 적용
Q_dot_h_max = TOSG(dr최대냉난방부하.최대난방기기부하) ' Worksheets("0").Range("최대난방부하1").Offset(0, i_count_zone - 1)
'--------------------------------------------------------------------------------------------------2010.02.22 수정
If (TOSG(dr공조처리.설정치난방) - theta_i_h) > 0 Then
V_dot_mech_m = 1000 * Q_dot_h_max / (c_p_Lrho_L * (TOSG(dr공조처리.설정치난방) - theta_i_h))
Else
V_dot_mech_m = 0
End If
'--------------------------------------------------------------------------------------------------2010.02.22 수정
V_dot_star = V_dot_mech_m
If dr공조처리.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
Q_dot_h_star = V_dot_star * rho_L * (h_ZUL_wi - h_AUL_wi - Delta_h_WRG) / 3600 '(3.2.5-57) 증기가습 있음 - 열교환방식으로 수정 추후 검토
Else
Q_dot_h_star = V_dot_star * rho_L * (c_p_L * (theta_ZUL_wi - theta_AUL_wi) - Delta_h_WRG) / 3600 '(3.2.5-58) 증기가습 없음 - 열교환방식으로 수정 추후 검토
End If
dr최대냉난방부하.최대가열성능 = Q_dot_h_star
'Worksheets("0").Range("최대난방부하1").Offset(3, i_count_zone - 1) = Q_dot_h_star
If Q_dot_h_max > (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000 Then
dr최대냉난방부하.최대난방실내부하 = (Q_dot_h_max - (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000)
'Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) = Q_dot_h_max - (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000
Else
dr최대냉난방부하.최대난방실내부하 = 0
'Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) = 0
End If
End If
'공조기 최대 가습성능
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.001 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-38) 습도요구 없음
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.006 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-42) 편차가 있는 습도요구
h_ZUL_wi = TOSG(1.01 * theta_ZUL_wi + 0.008 * (2501 + 1.86 * theta_ZUL_wi)) '(3.2.5-48) 편차가 없는 습도 요구
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Delta_h_WRG = 0 '(3.2.5-63) 열 회수기 없음
Case "현열교환'" '현열교환"
Delta_h_WRG = 2501 * TOSG(dr공조처리.열회수율) * (x_ABL_wi - x_AUL_wi) '(3.2.5-64) 현열 및 습기 회수기 '================2010.03.22 수정
Case "전열교환" '전열교환"
Delta_h_WRG = 2501 * TOSG(dr공조처리.열회수율) * (x_ABL_wi - x_AUL_wi) '(3.2.5-64) 현열 및 습기 회수기 '================2010.03.22 수정
End Select
Q_dot_st_star = V_dot_star * rho_L * (h_ZUL_wi - h_AUL_wi - Delta_h_WRG) / 3600 '(3.2.5-65)
dr최대냉난방부하.최대가습성능 = Q_dot_st_star
dr최대냉난방부하.공조풍량 = V_dot_star
'Worksheets("0").Range("최대가습성능1").Offset(0, i_count_zone - 1) = Q_dot_st_star
'Worksheets("0").Range("최대가습성능1").Offset(1, i_count_zone - 1) = V_dot_star '공조풍량
Else
' 공조기 최대 냉각성능
theta_c_mech_min = TOSG(dr공조처리.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
theta_ZUL_so = theta_c_mech_min '(도표 3.3)
ps_theta_ZUL_so = TOSG(Math.Exp(23.621 - 4065 / (theta_ZUL_so + 236.2506))) '(3.2.5-37) 0.01C<=theta<=80C
x_ZUL_so = TOSG(0.5911 / (100000 / ps_theta_ZUL_so - 0.95)) '(3.2.5-41)
'h_ZUL_so = 1.01 * theta_ZUL_so + 0.012 * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-39) 습도요구 없음 ps_theta_ZUL_so>1892Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-40) 습도요구 없음 ps_theta_ZUL_so<=1892Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + 0.011 * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-43) 편차가 있는 습도요구 ps_theta_ZUL_so>1737Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-44) 편차가 있는 습도요구 ps_theta_ZUL_so<=1737Pa
If ps_theta_ZUL_so > 1269 Then
h_ZUL_so = TOSG(1.01 * theta_ZUL_so + 0.008 * (2501 + 1.86 * theta_ZUL_so)) '(3.2.5-43) 편차가 없는 습도요구 ps_theta_ZUL_so>1269Pa
Else
h_ZUL_so = TOSG(1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so)) '(3.2.5-44) 편차가 없는 습도요구 ps_theta_ZUL_so<=1269Pa
End If
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Delta_h_WRG = 0 '(3.2.5-59) 열 회수기 없음
Case "현열교환" '현열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율냉) * c_p_L * (theta_AUL_so - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기 '================2010.03.22 수정, =============2010.04.14 수정
Case "전열교환" '전열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율냉) * c_p_L * (h_AUL_so - h_ABL_so) '(3.2.5-56) 현열 및 습기 회수기 '================2010.03.22 수정, =============2010.04.14 수정
End Select
Q_dot_c_max = TOSG(dr최대냉난방부하.최대냉방기기부하) ' Worksheets("0").Range("최대냉방부하1").Offset(0, i_count_zone - 1)
'--------------------------------------------------------------------------------------------------2010.02.22 수정
If (theta_i_c - TOSG(dr공조처리.설정치냉방)) > 0 Then
V_dot_star = 1000 * Q_dot_c_max / (c_p_Lrho_L * (theta_i_c - TOSG(dr공조처리.설정치냉방)))
Else
V_dot_star = 0
End If
'--------------------------------------------------------------------------------------------------2010.02.22 수정
Q_dot_c_star = V_dot_star * rho_L * (h_AUL_so - h_ZUL_so - Delta_h_WRG) / 3600 '(3.2.5-62)
dr최대냉난방부하.최대냉각성능 = Q_dot_c_star
dr최대냉난방부하.최대냉방실내부하 = Q_dot_c_max - (c_p_Lrho_L * (theta_e_max - theta_i_c_soll) * V_A) / 1000
'Worksheets("0").Range("최대냉방부하1").Offset(3, i_count_zone - 1) = Q_dot_c_star
'Worksheets("0").Range("최대냉방부하1").Offset(1, i_count_zone - 1) = Q_dot_c_max - (c_p_Lrho_L * (theta_e_max - theta_i_c_soll) * V_A) / 1000
End If
'End If
'End If
Next
Else
dr최대냉난방부하.최대난방실내부하 = 0
dr최대냉난방부하.최대냉방실내부하 = 0
dr최대냉난방부하.최대가열성능 = 0
dr최대냉난방부하.최대냉각성능 = 0
dr최대냉난방부하.최대가습성능 = 0
dr최대냉난방부하.공조풍량 = 0
End If
Next
pLog.Add(String.Format(">>Calc_Max_Power 완료"))
End Sub
Public Overridable Sub Calc_AirHandling(ByVal i_count_month As Integer, ByVal theta_e As Decimal, Optional p_난방온도 As Decimal = 20, Optional p_냉방온도 As Decimal = 26) ' ByVal d_mth As Integer,
pLog.Add(String.Format(">>Calc_AirHandling 진입 : i_count_month={0},theta_e={1},p_난방온도={2},p_냉방온도={3}", i_count_month, theta_e, p_난방온도, p_냉방온도))
Dim A_B As Decimal
Dim x_ABL_wi As Decimal, h_ABL_wi As Decimal, x_ABL_so As Decimal, h_ABL_so As Decimal, x_AUL_wi As Decimal, h_AUL_wi As Decimal, x_AUL_so As Decimal, h_AUL_so As Decimal
Dim c_p_L As Decimal, rho_L As Decimal, f_p As Decimal
Dim q_st_18_12h_m As Decimal
Dim eta_ZUL As Decimal, eta_ABL As Decimal
Dim Delta_p_star_ZUL As Decimal, Delta_p_star_ABL As Decimal
Dim Q_V_E_ZUL_m As Decimal, Q_V_E_ABL_m As Decimal, Q_c_b As Decimal, Q_h_b As Decimal, Q_vh_b As Decimal, Q_vc_b As Decimal, Q_vm_b As Decimal
Dim t_V_mech_m As Decimal, theta_V_mech_m As Decimal
Dim V_dot_mech_m As Decimal, V_dot_mech_max As Decimal, V_dot_A As Decimal, P_V_ZUL_m As Decimal, P_V_ABL_m As Decimal
Dim Sigma_V_dot As Decimal, Sigma_V_dot_3 As Decimal
Dim theta_h_mech_m As Decimal, theta_c_mech_m As Decimal
' Dim i_count_zone As Integer, i_count_profile As Integer, i_count_AHU As Integer
Dim theta_i_c_soll As Integer, theta_i_c As Integer, theta_i_h_soll As Integer, d_V_mech_m As Integer, theta_ABL_wi As Integer, theta_ABL_so As Integer
Dim theta_e_min As Decimal, theta_e_max As Decimal
Dim x_ZUL_wi As Decimal, theta_ZUL_wi As Decimal, theta_AUL As Decimal, h_AUL As Decimal, x_AUL As Decimal, theta_AUL_j As Decimal, x_AUL_j As Decimal, psi_AUL_j As Decimal
Dim h_B As Decimal, r_0 As Decimal, m_dot_1_L As Decimal, u As Decimal, Phi_h As Decimal, Phi_c As Decimal '===============================2010.04.14 수정
Dim Q_VE_B As Decimal, Q_VE_ZU As Decimal
Dim c_p_Lrho_L As Decimal, theta_ZUL_so As Decimal, p_S_theta_ZUL_so As Decimal, p_95_theta_ZUL_so As Decimal, x_95_ZUL_so As Decimal
Dim h_95_ZUL_so As Decimal, i_count_air As Integer, i_count_start_time As Integer, i_count_end_time As Integer ', i_profile As Integer
Dim P_D_j_theta_AUL_j As Decimal
' 공조처리
theta_i_h_soll = p_난방온도
theta_i_c_soll = p_냉방온도
theta_i_c = 24 'theta_i_c_soll - 2 '(2-36)
c_p_L = 1.006 'kJ/kg K
rho_L = 1.204 'kg/m3 (20도 1기압상태)
c_p_Lrho_L = 0.34 'Wh/m3 K
f_p = 0.4 '= Delta_p_konst / Delta_p_star = 0.4 '(3.2.5-13, 7-1)
'================================================2010.2.21 수정
'd_V_mech_m = d_mth
'================================================2010.2.21 수정
theta_ABL_wi = 20
x_ABL_wi = 0.008 '편차가 없는 습도요구 적용
h_ABL_wi = 42.6 '편차가 없는 습도요구 적용
theta_ABL_so = 26
x_ABL_so = 0.008 'kg/kg 편차가 없는 습도요구 적용
h_ABL_so = 46.7 'kJ/kg 편차가 없는 습도요구 적용
x_AUL_wi = 0.001
h_AUL_wi = -9.6
x_AUL_so = 0.012
h_AUL_so = 63
q_st_18_12h_m = 0 '우선 0으로 적용 추후 검토
theta_e_min = -11.3
theta_e_max = 31.5
r_0 = 2500 'kJ/kg
x_ZUL_wi = 0.00699
'Dim Dr프로필 As DS.tbl_profileRow '//아래에서 할당되도록되어있다.
'//location 은 거의 서울(0번줄)이된다.
Dim Drow평균온도 As DS.weather_tempRow = CType(DSET.weather_temp.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(i_count_month, "0000") & "'")(0), DS.weather_tempRow)
Dim Drow평균습도 As DS.weather_supdoRow = CType(DSET.weather_supdo.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(i_count_month, "0000") & "'")(0), DS.weather_supdoRow)
Dim Mon As String = "M" & Format(i_count_month, "00")
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim Drow분석() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & Dr존.code & "'"), DSR.월별에너지분석Row())
'If Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉방" Or Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉난방" Then
If Dr존.냉난방공조 = "냉방" OrElse Dr존.냉난방공조 = "냉난방" Then
'//존의 프로필과 일치하는 프로필검색후 적용
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "'")(0), DS.tbl_profileRow)
t_V_mech_m = TOSG(Dr프로필.운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
V_dot_A = TOSG(Dr프로필.최소도입외기량) ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile)
'i_profile = i_count_profile '//아래 루프종료문은 없어서 추가했다.
'===================================================================================2010.2.21 추가
If i_count_month = 0 Then
d_V_mech_m = 0
Else
d_V_mech_m = CInt(Dr프로필("day" & Format(i_count_month, "00")))
End If
'===================================================================================2010.2.21 추가
For Each Dr공조 As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <> '0'", "code")
'If Dr존.냉난방공조처리시스템 <> "" Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) <> "" Then
'If Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) = Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
'If Dr존.냉난방공조처리시스템 = Dr공조.code Then ' Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
Q_vh_b = 0
Q_vc_b = 0
Q_vm_b = 0
eta_ZUL = TOSG(Dr공조.총효율급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(2, i_count_AHU - 1)
eta_ABL = TOSG(Dr공조.총효율배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(3, i_count_AHU - 1)
Delta_p_star_ZUL = TOSG(Dr공조.총압력손실급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(0, i_count_AHU - 1)
Delta_p_star_ABL = TOSG(Dr공조.총압력손실배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(1, i_count_AHU - 1)
theta_V_mech_m = TOSG(Dr공조.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
theta_h_mech_m = TOSG(Dr공조.설정치난방) 'Worksheets("공조처리시스템").Range("공조방식1").Offset(1, i_count_AHU - 1)
theta_c_mech_m = TOSG(Dr공조.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
theta_AUL = 0
x_AUL = 0
i_count_start_time = CInt(Dr프로필.운전시작시간.Substring(0, Dr프로필.운전시작시간.IndexOf(":"))) ' Worksheets("설정조건").Range("사용시작시간1").Offset(3, i_profile)
i_count_end_time = CInt(Dr프로필.운전종료시간.Substring(0, Dr프로필.운전종료시간.IndexOf(":"))) ' Worksheets("설정조건").Range("사용시작시간1").Offset(4, i_profile)
If i_count_start_time - i_count_end_time < 0 Then
For i_count_air = 0 To CInt(t_V_mech_m - 1) '자정 전까지 운전 조건
'//Dr기상데이터의 2번째 인덱스부터 시간이다.
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) ' Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) / 100 ' Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
Else
For i_count_air = 0 To 23 - i_count_start_time '자정 넘어까지 운전 조건
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) 'Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) / 100 'Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
For i_count_air = 0 To i_count_end_time - 1 '자정 넘어까지 운전 조건
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_air + 1, "00"))) 'Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_air + 1, "00"))) / 100 'Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
End If
theta_AUL = theta_AUL / t_V_mech_m
x_AUL = x_AUL / t_V_mech_m
h_AUL = c_p_L * theta_AUL + x_AUL * (r_0 + c_p_L * theta_AUL)
''V_dot_mech_h_max = Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) * 1000 / (c_p_Lrho_L * (theta_h_mech_m - theta_i_h_soll)) '(3.2.4-86)
'//현재존과일치하는 데이터수집
If (theta_i_c_soll - theta_c_mech_m) <> 0 Then
V_dot_mech_max = TOSG(Result.최대부하.Item(Dr존.code).최대냉방실내부하) * 1000 / (c_p_Lrho_L * (theta_i_c_soll - theta_c_mech_m)) '(3.2.4-86)
Else
V_dot_mech_max = 0
End If
' Worksheets("0").Range("최대냉방부하1").Offset(1, i_count_zone - 1)
''If V_dot_mech_h_max < V_dot_mech_c_max Then
'' V_dot_mech_max = V_dot_mech_c_max
''Else
'' V_dot_mech_max = V_dot_mech_h_max
''End If
If V_dot_mech_max < V_dot_A * A_B Then V_dot_mech_max = V_dot_A * A_B
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
V_dot_mech_m = V_dot_mech_max
Case "변풍량" '변풍량"
'//계산결과가들엉잇는 12개월용시트(1~12)에ㅓ 해당값을 찾는 엑셀루틴이다. 이건좀 교환하기가 그러네;;ㅠ
'//해당12개시트의 데이터는 DSR월별에너지분석에 존재한다 이곳에는 월/존두개의 기본키가존재하며 해당rOW를 가져와야한다.
If Drow분석.GetUpperBound(0) = -1 Then
MsgBox("월별에너지분석에 " & i_count_month & "데이터가 없습니다", MsgBoxStyle.Critical, "계산실패")
Return
End If
'Q_c_b = Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) - (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000
Q_c_b = TOSG(Drow분석(0).냉방요구량공조) - (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000
If Q_c_b < 0 Then Q_c_b = 0
If (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_c_mech_m)) = 0 Then
V_dot_mech_m = 0
Else
V_dot_mech_m = (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000 + Q_c_b / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_c_mech_m) / 1000)
End If
'(3.2.5-4) 공조풍량(변풍량)
'If V_dot_mech_m < 0 Then
'V_dot_mech_m = 0
'End If
If V_dot_mech_m < V_dot_A * A_B Then V_dot_mech_m = V_dot_A * A_B
End Select
'If V_dot_mech_m = 0 Then
' theta_hc_m = theta_V_mech_m
'Else
' theta_hc_m = theta_V_mech_m - Q_V_E_ZUL_m * 1000 / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * V_dot_mech_m) + 1.4 '(3.2.5-22) Q_V_E_ZUL_m에 1000 을 곱해야하는지 확인요망
'End If
'==========================================================================================================================================
'월별 풍량당 공조에너지 요구량은 추후 적용
'If theta_hc_m <= 22 And theta_hc_m > 18 Then
'q_h_12h_m = q_h_18_12h_m + g_h_o_m * (theta_hc_m - 18) '(3.2.5-23) 18C 14 Then
'q_h_12h_m = q_h_18_12h_m + g_h_u_m * (theta_hc_m - 18) '(3.2.5-24) 14C 0 Then 'Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
'난방공조처리(가열,가열+가습(분무 또는 증기),리턴공기혼합유무(리턴공기혼합율 입력),열회수유무(현열 또는 전열, 열회수율 입력)
'Q_h_b = Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) - (theta_i_h_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Q_h_b = TOSG(Drow분석(0).난방요구량공조) - (theta_i_h_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량"
theta_ZUL_wi = 1000 * Q_h_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) + theta_i_h_soll 'd_Nutz=d_V_mech_m 으로 적용
Case "변풍량"
If V_dot_mech_m > V_dot_A * A_B Then
theta_ZUL_wi = theta_h_mech_m
Else
If V_dot_mech_m = 0 Then
theta_ZUL_wi = theta_i_h_soll
Else
theta_ZUL_wi = 1000 * Q_h_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) + theta_i_h_soll
End If
End If
End Select
m_dot_1_L = V_dot_mech_m * rho_L
'외기모드 경우와 에너지
'theta_ZUL_wi "가습불가" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) <> "가습불가" Then
h_B = c_p_L * theta_ZUL_wi + x_ZUL_wi * (r_0 + c_p_L * theta_ZUL_wi)
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * h_AUL) / 3600)
Case "현열교환" '현열교환"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * (h_AUL + c_p_L * Phi_h * (theta_ABL_wi - theta_AUL))) / 3600) '==============2010.04.14 수정
Case "전열교환" '전열교환"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * (h_AUL + Phi_h * (h_ABL_wi - h_AUL))) / 3600) '==============2010.04.14 수정
End Select
Q_vh_b = Q_VE_B
End If
If Dr공조.가습기유형 <> "분무가습" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) <> "분무가습" Then
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * theta_AUL) / 3600)
Case "현열교환" '현열교환"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * (theta_AUL + Phi_h * (theta_ABL_wi - theta_AUL))) / 3600) '==============2010.04.14 수정
Case "전열교환" '전열교환"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * (theta_AUL + Phi_h * (h_ABL_wi - h_AUL) / c_p_L)) / 3600) '==============2010.04.14 수정
End Select
If Dr공조.가습기유형 = "가습불가" Then 'Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) = "가습불가" Then
Q_vh_b = Q_VE_ZU
Else
Q_vh_b = Q_VE_ZU
Q_vm_b = Q_VE_B - Q_VE_ZU
End If
End If
Else
Q_vh_b = 0
Q_vm_b = 0
End If
'------------------------------------------------------------------------------------------------------------------------------------------
If TOSG(Drow분석(0).냉방요구량공조) > 0 Then ' Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) > 0 Then
'냉방공조처리에너지(냉각,리턴공기혼합유무(리턴공기혼합율 계산, 열회수유무(현열 또는 전열, 열회수율 입력)
Q_c_b = TOSG(Drow분석(0).냉방요구량공조) 'Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone)
Select Case Dr공조.공조방식.Trim 'Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
If Dr공조.외기냉방제어유무 = "유" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "유" Then
If theta_AUL - theta_i_c_soll > 0 Then
Q_c_b = Q_c_b - (theta_AUL - theta_i_c_soll) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Else
Q_c_b = Q_c_b - (theta_i_c_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
End If
End If
If Q_c_b < 0 Then Q_c_b = 0
theta_ZUL_so = theta_i_c - 1000 * Q_c_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) 'd_Nutz=d_V_mech_m 으로 적용
Case "변풍량" '변풍량"
If V_dot_mech_m > V_dot_A * A_B OrElse V_dot_mech_m = 0 Then
theta_ZUL_so = theta_c_mech_m
Else
theta_ZUL_so = theta_i_c - 1000 * Q_c_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m)
End If
End Select
p_S_theta_ZUL_so = TOSG(Math.Exp(23.621 - 4065 / (theta_ZUL_so + 236.2506)))
p_95_theta_ZUL_so = TOSG(0.95 * p_S_theta_ZUL_so)
x_95_ZUL_so = TOSG(0.5911 / (100000 / p_95_theta_ZUL_so - 0.95))
m_dot_1_L = V_dot_mech_m * rho_L
h_95_ZUL_so = c_p_L * theta_ZUL_so + x_95_ZUL_so * (r_0 + c_p_L * theta_ZUL_so)
'If theta_ZUL_so > theta_AUL Then
'냉방의 경우 가열에너지
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (theta_AUL - theta_ABL_so) Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * theta_AUL) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'Case "현열교환"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (1 - Phi) * (theta_AUL - theta_ABL_so) Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi * (theta_ABL_so - theta_AUL))) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'Case "전열교환"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (1 - Phi) * (h_AUL - h_ABL_so) / c_p_L Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi * (h_ABL_so - h_AUL) / c_p_L)) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'End Select
'End If
If theta_ZUL_so > theta_AUL And Dr공조.외기냉방제어유무 = "유" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "유" Then
Q_vc_b = 0
V_dot_mech_m = (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_c_mech_m - theta_AUL) * V_dot_A * A_B) / 1000 + Q_c_b / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_AUL) / 1000)
If V_dot_mech_m < V_dot_A * A_B Then V_dot_mech_m = V_dot_A * A_B
Else
If 0.5911 / (100000 / p_95_theta_ZUL_so - 0.95) > (1 - u) * x_AUL + u * x_ABL_so Then
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * theta_AUL) / 3600
Case "현열교환" '현열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi_c * (theta_ABL_so - theta_AUL))) / 3600 '==================2010.04.14 수정
Case "전열교환" '전열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi_c * (h_ABL_so - h_AUL) / c_p_L)) / 3600 '==================2010.04.14 수정
End Select
Else
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * h_AUL) / 3600
Case "현열교환" '현열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * (h_AUL + c_p_L * Phi_c * (theta_ABL_so - theta_AUL))) / 3600 '==================2010.04.14 수정
Case "전열교환" '전열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * (h_AUL + Phi_c * (h_ABL_so - h_AUL))) / 3600 '==================2010.04.14 수정
End Select
End If
End If
Else
Q_vc_b = 0
End If
'==========================================================================================================================================
'==========================================================================================================================================
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
If eta_ZUL <> 0 Then
P_V_ZUL_m = V_dot_mech_m * Delta_p_star_ZUL / eta_ZUL / 3600000 ' V_dot_ZUL = V_dot_mech_m (3.2.5-7) 정풍량 (3600은 Pa을 W환산하면서 h를 s로 환산)
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = V_dot_mech_m * Delta_p_star_ABL / eta_ABL / 3600000
Else
P_V_ABL_m = 0
End If
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m '(3.2.5-10) 정풍량
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m '(3.2.5-10) 정풍량
Case "변풍량" '변풍량"
Sigma_V_dot = t_V_mech_m * d_V_mech_m * V_dot_mech_m + 1000 * Q_c_b / (c_p_Lrho_L * (theta_i_c - theta_V_mech_m)) '(3.2.5-5) 월간 공조풍량 합(변풍량)
' 수식 변경 Sigma_V_dot_3 = t_V_mech_m * d_V_mech_m * (V_dot_mech_m ^ 3) + Q_c_b / (c_p_L * rho_L * (theta_i_c - theta_V_mech_m))
Sigma_V_dot_3 = TOSG(Sigma_V_dot * (0.8 * V_dot_mech_m + 0.2 * V_dot_mech_max) ^ 2)
If V_dot_mech_m = 0 Then
P_V_ZUL_m = 0 'CSng(V_dot_mech_m * Delta_p_star_ZUL * f_p / eta_ZUL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ZUL * (1 - f_p)) / (eta_ZUL * V_dot_mech_m ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검토
P_V_ABL_m = 0 'CSng(V_dot_mech_m * Delta_p_star_ABL * f_p / eta_ABL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ABL * (1 - f_p)) / (eta_ABL * V_dot_mech_m ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검
Q_V_E_ZUL_m = 0 'P_V_ZUL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Q_V_E_ABL_m = 0 'P_V_ABL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Else
'==========================변풍량에서도 효율이 없을 경우 동력이 0인 것으로 평가 2010.10.10
If eta_ZUL <> 0 Then
P_V_ZUL_m = TOSG(V_dot_mech_m * Delta_p_star_ZUL * f_p / eta_ZUL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ZUL * (1 - f_p)) / (eta_ZUL * V_dot_mech_max ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검토
'=============================================================================================== 최소외기도입량 동력보다 작으면 최소외기도입 동력으로 적용 2012.01.31
If P_V_ZUL_m < V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600 Then
P_V_ZUL_m = V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600
End If
'===============================================================================================
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = TOSG(V_dot_mech_m * Delta_p_star_ABL * f_p / eta_ABL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ABL * (1 - f_p)) / (eta_ABL * V_dot_mech_max ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검
'=============================================================================================== 최소외기도입량 동력보다 작으면 최소외기도입 동력으로 적용 2012.01.31
If P_V_ABL_m < V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600 Then
P_V_ABL_m = V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600
End If
'===============================================================================================
Else
P_V_ABL_m = 0
End If
'============================================================2010.10.10
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
End If
End Select
'------------------------------------------------------------------------------------------------------------------------------------------
' 우선 외기온도에 대한 공조에너지 요구량 산정 필요 ????
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
'If theta_e < theta_hc_m Then
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
'Case "현열교환"
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_wi - theta_e) '(3.2.5-55) 순수 현열 회수기
'Case "전열교환"
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_wi - theta_e) '(3.2.5-56) 현열 및 습기 회수기 우선 현열만 고려
'End Select
'q_h_12h_m = rho_L * (c_p_L * (theta_hc_m - theta_e) - Delta_h_WRG) * 12 * d_mth * V_dot_A * A_B + rho_L * c_p_L * (theta_h_mech_m - theta_i_h_soll) * 12 * d_mth * (V_dot_mech_m - V_dot_A * A_B) 'theta_h_mech_m 과 theta_hc_m 중 선택 검토
'End If
'If theta_e > theta_hc_m Then
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
'Case "현열교환"
'If theta_e > theta_ABL_so Then
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_e - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기
'Else
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_so - theta_e) '(3.2.5-55) 순수 현열 회수기
'End If
'Case "전열교환"
'If theta_e > theta_ABL_so Then
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_e - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기 우선 현열만 고려
'Else
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_so - theta_e) '(3.2.5-55) 순수 현열 회수기 우선 현열만 고려
'End If
'End Select
'q_c_12h_m = rho_L * (c_p_L * (theta_e - theta_hc_m) - Delta_h_WRG) * 12 * d_mth * V_dot_A * A_B + rho_L * c_p_L * (theta_i_c_soll - theta_c_mech_m) * 12 * d_mth * (V_dot_mech_m - V_dot_A * A_B) 'theta_c_mech_m 과 theta_hc_m 중 선택 검토
'End If
'f_h_H = 1 + 6.333 * 10 ^ (-3) * (t_V_mech_m - 12) - 2.689 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 + 6.94 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-31)
'f_h_C = 1 - 5.583 * 10 ^ (-3) * (t_V_mech_m - 12) + 2.153 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 - 6.597 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-32) 편차가 없는 습도요구
'f_h_C = 1 - 1.552 * 10 ^ (-3) * (t_V_mech - 12) - 8.073 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 - 1.302 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-32) 편차가 있는 습도요구 추후 검토
'f_h_st = 1
'q_h_m = q_h_12h_m * t_V_mech_m / 12 * f_h_H * d_V_mech_m / d_mth '(3-28)
'q_c_m = q_c_12h_m * t_V_mech_m / 12 * f_h_C * d_V_mech_m / d_mth '(3-29)
'q_st_m = q_st_12h_m * t_V_mech_m / 12 * f_h_st * d_V_mech_m / d_mth '(3-30)
'Q_vh_b = q_h_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vc_b = q_c_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vm_b = q_st_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vh_b = q_h_m / 1000 ' 우선 공조풍량을 미리 포함시킴 추후 검토
'Q_vc_b = q_c_m / 1000 ' 우선 공조풍량을 미리 포함시킴 추후 검토
'Q_vm_b = q_st_m * V_dot_mech_m / 1000 '(3-36) =Q_vi_b (7-2,7-8,7-14)
'==========================================================================================================================================
Drow분석(0).공조풍량 = V_dot_mech_m
'Sheets("" & i_count_month & "").Cells(17, 7 + i_count_zone) = V_dot_mech_m
If Q_vh_b < 0 Then
Q_vh_b = 0 '음수 여부 추후 검토
End If
Drow분석(0).공조요구량난방 = Q_vh_b
'Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone) = Q_vh_b
If Q_vc_b < 0 Then
Q_vc_b = 0 '냉방공조에너지요구량이 -인 것은 난방에서 처리되는 것으로 설정
End If
Drow분석(0).공조요구량냉방 = Q_vc_b
'Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone) = Q_vc_b
If Q_vm_b < 0 Then
Q_vm_b = 0 '음수 여부 추후 검토
End If
Drow분석(0).공조요구량가습 = Q_vm_b ' Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone) = Q_vm_b
Drow분석(0).환기요구량 = Q_V_E_ZUL_m + Q_V_E_ABL_m ' Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = Q_V_E_ZUL_m + Q_V_E_ABL_m
'==========================================================================================================================================
'End If
'End If
Next
Else
Drow분석(0).공조풍량 = 0 ' Sheets("" & i_count_month & "").Cells(17, 7 + i_count_zone) = 0
Drow분석(0).공조요구량난방 = 0 ' Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone) = 0
Drow분석(0).공조요구량냉방 = 0 'Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone) = 0
Drow분석(0).공조요구량가습 = 0 ' Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone) = 0
Drow분석(0).환기요구량 = 0 'Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = 0
'==========================================================================2010.02.04 추가부분 시작
If Dr존.냉난방공조 = "환기" OrElse (Dr존.냉난방공조 = "난방" AndAlso Dr존.외기부하처리여부 = "예") Then '//환기
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필.ToString & "' and code <> '0'"), DS.tbl_profileRow())
If DR프로필.GetUpperBound(0) = 0 Then
t_V_mech_m = TOSG(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
V_dot_A = TOSG(DR프로필(0).최소도입외기량) 'Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile)
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
'===================================================================================2010.2.25 추가
'd_V_mech_m = Worksheets("설정조건").Range("월간사용일수1").Offset(i_count_month, i_count_profile)
Select Case i_count_month
Case 0 : d_V_mech_m = 0
Case 1 : d_V_mech_m = DR프로필(0).day01
Case 2 : d_V_mech_m = DR프로필(0).day02
Case 3 : d_V_mech_m = DR프로필(0).day03
Case 4 : d_V_mech_m = DR프로필(0).day04
Case 5 : d_V_mech_m = DR프로필(0).day05
Case 6 : d_V_mech_m = DR프로필(0).day06
Case 7 : d_V_mech_m = DR프로필(0).day07
Case 8 : d_V_mech_m = DR프로필(0).day08
Case 9 : d_V_mech_m = DR프로필(0).day09
Case 10 : d_V_mech_m = DR프로필(0).day10
Case 11 : d_V_mech_m = DR프로필(0).day11
Case 12 : d_V_mech_m = DR프로필(0).day12
End Select
'===================================================================================2010.2.25 추가
End If
Dim DR공조() As DS.tbl_kongjoRow = CType(DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <> '0'"), DS.tbl_kongjoRow())
If DR공조.GetUpperBound(0) = 0 Then
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2010.05.26 추가
If DR공조(0).열교환기유형.Trim = "현열교환" OrElse DR공조(0).열교환기유형.Trim = "전열교환" Then
Phi_h = TOSG(DR공조(0).열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
Phi_c = TOSG(DR공조(0).열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1)
Else
Phi_h = 0
Phi_c = 0
End If
'// 여기 i_count_month 에 0 이 오지는 않나요? 예.. 1 부터 시작해요
'// If CSng(Drow분석(0).난방요구량공조) > 0 Then 'Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
If TOSG(Drow분석(0).난방요구량공조) > 0 Then
Drow분석(0).난방요구량공조 = (1 - Phi_h) * TOSG(Drow분석(0).난방요구량공조)
End If
If TOSG(Drow분석(0).냉방요구량공조) > 0 Then
Drow분석(0).냉방요구량공조 = (1 - Phi_c) * TOSG(Drow분석(0).냉방요구량공조)
End If
'If Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
' Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) = (1 - Phi_h) * Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone)
'End If
'If Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) > 0 Then
' Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) = (1 - Phi_c) * Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone)
'End If
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2010.05.26 추가
eta_ZUL = TOSG(DR공조(0).총효율급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(2, i_count_AHU - 1)
eta_ABL = TOSG(DR공조(0).총효율배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(3, i_count_AHU - 1)
Delta_p_star_ZUL = TOSG(DR공조(0).총압력손실급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(0, i_count_AHU - 1)
Delta_p_star_ABL = TOSG(DR공조(0).총압력손실배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(1, i_count_AHU - 1)
If eta_ZUL <> 0 Then
P_V_ZUL_m = V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600000
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600000
Else
P_V_ABL_m = 0
End If
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m
Result.E분석(i_count_month).환기에너지요구량(Dr존.code) = Q_V_E_ZUL_m + Q_V_E_ABL_m
'Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = Q_V_E_ZUL_m + Q_V_E_ABL_m
End If
Else
Result.E분석(i_count_month).환기에너지요구량(Dr존.code) = 0
End If
'==========================================================================2010.02.04 추가부분 끝
End If
Next
pLog.Add(String.Format(">>Calc_AirHandling 완료"))
End Sub
Private DSET As DS
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult)
DSET = pds
DSETR = pdsetr
Result = presult
End Sub
End Class