r7,r8 파일손상으로 복구 작업 / 전산실 계수 변경 / R9로 저장 완료.
This commit is contained in:
@@ -281,13 +281,12 @@ Public Class C사용면적
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
|
||||
|
||||
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
|
||||
'If Dr프로필.code <> "0010" Then
|
||||
' A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
'Else
|
||||
' A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.583 / 0.314), 3) '//전산실 용도에 따른 난방 가중치 적용
|
||||
'End If
|
||||
'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
If Dr프로필.code <> "0010" Then
|
||||
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
Else
|
||||
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.503 / 0.314), 3) '//전산실 용도에 따른 난방 가중치 적용
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
@@ -306,13 +305,12 @@ Public Class C사용면적
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
|
||||
|
||||
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
|
||||
'If Dr프로필.code <> "0010" Then
|
||||
' A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
'Else
|
||||
' A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.045 / 0.314), 3) '//전산실 용도에 따른 냉방 가중치 적용
|
||||
'End If
|
||||
'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
If Dr프로필.code <> "0010" Then
|
||||
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
Else
|
||||
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.196 / 0.314), 3) '//전산실 용도에 따른 냉방 가중치 적용
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
830
ArinWarev1/DataSet/Calculator/AirHandling/CAirHandling.vb
Normal file
830
ArinWarev1/DataSet/Calculator/AirHandling/CAirHandling.vb
Normal file
@@ -0,0 +1,830 @@
|
||||
Public Class CAirHandling
|
||||
|
||||
''' <summary>
|
||||
''' 최대냉/난반후하 계산식인거 같다.
|
||||
''' </summary>
|
||||
''' <param name="i_HeatCool"></param>
|
||||
''' <remarks></remarks>
|
||||
Public Overridable Sub Calc_Max_Power(ByVal i_HeatCool As Integer)
|
||||
'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
|
||||
|
||||
|
||||
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
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_AirHandling(ByVal i_count_month As Integer, ByVal theta_e As Decimal) ' ByVal d_mth As Integer,
|
||||
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, rho_cl As Decimal
|
||||
Dim q_st_18_12h_m As Decimal, q_st_12h_m As Decimal, q_h_12h_m As Decimal, q_c_12h_m As Decimal, q_h_m As Decimal, q_c_m As Decimal, q_st_m As Decimal
|
||||
Dim eta_ZUL As Decimal, eta_ABL As Decimal, f_h_H As Decimal, f_h_C As Decimal, f_h_st As Decimal
|
||||
Dim Delta_p_star_ZUL As Decimal, Delta_p_star_ABL As Decimal, Delta_h_WRG 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, theta_hc_m As Decimal
|
||||
Dim V_dot_mech_m As Decimal, V_dot_mech_max As Decimal, V_dot_A As Decimal, V_dot_z 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 V_dot_mech_h_max As Decimal, V_dot_mech_c_max As Decimal, V_dot_mech_c_m As Decimal, V_dot_mech_h_m As Decimal
|
||||
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, Q_VE_D 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_c_soll = 26
|
||||
theta_i_c = 24 'theta_i_c_soll - 2 '(2-36)
|
||||
theta_i_h_soll = 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
|
||||
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
|
||||
|
||||
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) '(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<theta_hc_m<=22C
|
||||
'q_c_12h_m = q_c_18_12h_m - g_c_o_m * (theta_hc_m - 18) '(3.2.5-25) 18C<theta_hc_m<=22C
|
||||
'End If
|
||||
'If theta_hc_m <= 18 And theta_hc_m > 14 Then
|
||||
'q_h_12h_m = q_h_18_12h_m + g_h_u_m * (theta_hc_m - 18) '(3.2.5-24) 14C<theta_hc_m<=18C
|
||||
'q_c_12h_m = q_c_18_12h_m - g_c_u_m * (theta_hc_m - 18) '(3.2.5-26) 14C<theta_hc_m<=18C
|
||||
'End If
|
||||
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
|
||||
|
||||
|
||||
|
||||
'==========================================================================================================================================
|
||||
'==========================================================================================================================================
|
||||
|
||||
If Dr공조.리턴공기혼합여부 = "예" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(4, i_count_AHU - 1) = "예" Then
|
||||
If V_dot_mech_m = 0 Then
|
||||
u = 1 '//??
|
||||
Else
|
||||
u = (V_dot_mech_m - V_dot_A * A_B) / V_dot_mech_m '예(리턴공기혼합여부)
|
||||
End If
|
||||
|
||||
Else
|
||||
u = 0 '아니오(리턴공기혼합여부)
|
||||
End If
|
||||
|
||||
If Dr공조.열교환기유형 = "현열교환" OrElse Dr공조.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "현열교환" Or Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
|
||||
Phi_h = TOSG(Dr공조.열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) '=====================2010.04.14 수정
|
||||
Phi_c = TOSG(Dr공조.열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1) '=====================2010.04.14 수정
|
||||
Else
|
||||
Phi_h = 0 '==============================2010.04.14 수정
|
||||
Phi_c = 0 '==============================2010.04.14 수정
|
||||
End If
|
||||
|
||||
|
||||
If TOSG(Drow분석(0).난방요구량공조) > 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<theta_ABL_wi+(1-u)*(1-Phi)*(theta_AUL-theta_ABL_wi)
|
||||
'Q_VE_B = 0
|
||||
'Q_VE_D = 0
|
||||
|
||||
If Dr공조.가습기유형 <> "가습불가" 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
|
||||
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
850
ArinWarev1/DataSet/Calculator/CAirHandling.vb
Normal file
850
ArinWarev1/DataSet/Calculator/CAirHandling.vb
Normal file
@@ -0,0 +1,850 @@
|
||||
Public Class CAirHandling
|
||||
|
||||
''' <summary>
|
||||
''' 최대냉/난반후하 계산식인거 같다.
|
||||
''' </summary>
|
||||
''' <param name="i_HeatCool"></param>
|
||||
''' <remarks></remarks>
|
||||
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<theta_hc_m<=22C
|
||||
'q_c_12h_m = q_c_18_12h_m - g_c_o_m * (theta_hc_m - 18) '(3.2.5-25) 18C<theta_hc_m<=22C
|
||||
'End If
|
||||
'If theta_hc_m <= 18 And theta_hc_m > 14 Then
|
||||
'q_h_12h_m = q_h_18_12h_m + g_h_u_m * (theta_hc_m - 18) '(3.2.5-24) 14C<theta_hc_m<=18C
|
||||
'q_c_12h_m = q_c_18_12h_m - g_c_u_m * (theta_hc_m - 18) '(3.2.5-26) 14C<theta_hc_m<=18C
|
||||
'End If
|
||||
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
|
||||
|
||||
|
||||
|
||||
'==========================================================================================================================================
|
||||
'==========================================================================================================================================
|
||||
|
||||
If Dr공조.리턴공기혼합여부 = "예" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(4, i_count_AHU - 1) = "예" Then
|
||||
If V_dot_mech_m = 0 Then
|
||||
u = 1 '//??
|
||||
Else
|
||||
u = (V_dot_mech_m - V_dot_A * A_B) / V_dot_mech_m '예(리턴공기혼합여부)
|
||||
End If
|
||||
|
||||
Else
|
||||
u = 0 '아니오(리턴공기혼합여부)
|
||||
End If
|
||||
|
||||
If Dr공조.열교환기유형 = "현열교환" OrElse Dr공조.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "현열교환" Or Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
|
||||
Phi_h = TOSG(Dr공조.열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) '=====================2010.04.14 수정
|
||||
Phi_c = TOSG(Dr공조.열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1) '=====================2010.04.14 수정
|
||||
Else
|
||||
Phi_h = 0 '==============================2010.04.14 수정
|
||||
Phi_c = 0 '==============================2010.04.14 수정
|
||||
End If
|
||||
|
||||
|
||||
If TOSG(Drow분석(0).난방요구량공조) > 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<theta_ABL_wi+(1-u)*(1-Phi)*(theta_AUL-theta_ABL_wi)
|
||||
'Q_VE_B = 0
|
||||
'Q_VE_D = 0
|
||||
|
||||
If Dr공조.가습기유형 <> "가습불가" 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
|
||||
1800
ArinWarev1/DataSet/Calculator/CCooling.vb
Normal file
1800
ArinWarev1/DataSet/Calculator/CCooling.vb
Normal file
File diff suppressed because it is too large
Load Diff
18
ArinWarev1/DataSet/Calculator/CD.cd
Normal file
18
ArinWarev1/DataSet/Calculator/CD.cd
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ClassDiagram MajorVersion="1" MinorVersion="1">
|
||||
<Class Name="Eco2Ar.CShared">
|
||||
<Position X="0.5" Y="0.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAAEAAAAAAAAAAAAAEAAAAAAABAAABACAABCAAABA=</HashCode>
|
||||
<FileName>Calculator\CShared.vb</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Eco2Ar.CZone">
|
||||
<Position X="2.25" Y="0.5" Width="1.75" />
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAAAEAAAAAAAgAAAAAAAAhAAABAAgAAAAAIAACAAA=</HashCode>
|
||||
<FileName>Calculator\Zone\CZone.vb</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Font Name="굴림" Size="9" />
|
||||
</ClassDiagram>
|
||||
54
ArinWarev1/DataSet/Calculator/CD_RESULT.cd
Normal file
54
ArinWarev1/DataSet/Calculator/CD_RESULT.cd
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ClassDiagram MajorVersion="1" MinorVersion="1">
|
||||
<Class Name="Eco2Ar.CResult">
|
||||
<Position X="0.5" Y="0.5" Width="1.5" />
|
||||
<Compartments>
|
||||
<Compartment Name="Nested Types" Collapsed="false" />
|
||||
</Compartments>
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAACAAAAAAAAEAEAAAEEAAiIAAAAAAAAgAAABAAAAA=</HashCode>
|
||||
<FileName>Calculator\Result\CResult.vb</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Eco2Ar.C사용면적">
|
||||
<Position X="2" Y="0.5" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEQYAAA=</HashCode>
|
||||
<FileName>Calculator\Result\C사용면적.vb</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Eco2Ar.CZones">
|
||||
<Position X="5.5" Y="0.5" Width="1.75" />
|
||||
<Compartments>
|
||||
<Compartment Name="Fields" Collapsed="true" />
|
||||
<Compartment Name="Nested Types" Collapsed="false" />
|
||||
</Compartments>
|
||||
<NestedTypes>
|
||||
<Class Name="Eco2Ar.CZones.Citem">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>Calculator\Result\CZones.vb</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
</NestedTypes>
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAAAAAAAAACAAAAAAAAAQAAAAAAAAAAAAAAAAAAIA=</HashCode>
|
||||
<FileName>Calculator\Result\CZones.vb</FileName>
|
||||
<NewMemberFileName>Calculator\Result\C최대냉난방부하.vb</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="Eco2Ar.C최대냉난방부하">
|
||||
<Position X="3.5" Y="0.5" Width="2" />
|
||||
<NestedTypes>
|
||||
<Class Name="Eco2Ar.C최대냉난방부하.Citem" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>Calculator\Result\C최대냉난방부하.vb</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
</NestedTypes>
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||
<FileName>Calculator\Result\C최대냉난방부하.vb</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Font Name="굴림" Size="9" />
|
||||
</ClassDiagram>
|
||||
3945
ArinWarev1/DataSet/Calculator/CHeating.vb
Normal file
3945
ArinWarev1/DataSet/Calculator/CHeating.vb
Normal file
File diff suppressed because it is too large
Load Diff
745
ArinWarev1/DataSet/Calculator/CRenewable.vb
Normal file
745
ArinWarev1/DataSet/Calculator/CRenewable.vb
Normal file
@@ -0,0 +1,745 @@
|
||||
Public Class CRenewable
|
||||
|
||||
Private Result As CResult
|
||||
Private DSET As DS
|
||||
Public Sub New(ByRef pds As DS, ByRef presult As CResult)
|
||||
DSET = pds
|
||||
Result = presult
|
||||
'ByVal dr존 As DS.tbl_zoneRow,
|
||||
End Sub
|
||||
' Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal i_count_ts As Integer, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m as decimal, ByVal Q_W_sol_us_m as decimal, ByRef Q_W_sol_out_m as decimal, ByRef Q_H_sol_out_m as decimal, ByRef W_sol_aux_m as decimal)
|
||||
|
||||
Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal DR_code As String, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m As Decimal, ByVal Q_W_sol_us_m As Decimal, _
|
||||
ByRef Q_W_sol_out_m As Decimal, ByRef Q_H_sol_out_m As Decimal, ByRef W_sol_aux_m As Decimal)
|
||||
|
||||
pLog.Add(String.Format(">>Calc_ThermalSolarSystem_EN 진입 : i_system_ts={0}, DR_code={1}, i_ts_month={2}, i_ts_d_mth={3}, Q_H_sol_us_m={4}, Q_W_sol_us_m={5}, Q_W_sol_out_m={6}, Q_H_sol_out_m={7}, W_sol_aux_m={8}", _
|
||||
i_system_ts, DR_code, i_ts_month, i_ts_d_mth, Q_H_sol_us_m, Q_W_sol_us_m, Q_W_sol_out_m, Q_H_sol_out_m, W_sol_aux_m))
|
||||
|
||||
|
||||
Dim theta_ref As Decimal, theta_w As Decimal, theta_cw As Decimal, U_loop_p As Decimal, U_loop As Decimal, Delta_T As Decimal
|
||||
Dim A_ As Decimal, a As Decimal, b As Decimal, c As Decimal, d As Decimal, e As Decimal, f As Decimal, eta_loop As Decimal, IAM As Decimal, eta_0 As Decimal
|
||||
Dim a_1 As Decimal, a_2 As Decimal, P_H As Decimal, P_W As Decimal, V_ref As Decimal, V_sol As Decimal, t_m As Decimal, I_m As Decimal, P_aux_nom As Decimal
|
||||
'Dim i_ts_location As Integer, i_count_ts_location As Integer
|
||||
' Dim i_count_month As Integer
|
||||
Dim i_direction As Integer
|
||||
Dim t_aux_m As Decimal, l_tot As Decimal, f_st As Decimal, U_st As Decimal
|
||||
Dim theta_setpoint As Decimal, theta_a_avg As Decimal, theta_e_avg As Decimal
|
||||
Dim Q_sol_ls_rbl_m As Decimal, Q_sol_aux_rbl_m As Decimal, Q_sol_st_ls_rbl_m As Decimal, Q_bu_dis_ls_rbl_m As Decimal, Q_bu_dis_ls_m As Decimal, Q_sol_ls_m As Decimal
|
||||
Dim Q_W_bu_dis_ls_m As Decimal, Q_H_bu_dis_ls_m As Decimal, Q_W_sol_st_ls_m As Decimal, Q_H_sol_st_ls_m As Decimal
|
||||
Dim A_H As Decimal, A_W As Decimal, X As Decimal, Y As Decimal
|
||||
Dim Q_W_sol_out_net As Decimal, Q_H_sol_out_net As Decimal, H_W_ratio As Decimal
|
||||
|
||||
Q_W_sol_out_net = 0
|
||||
Q_H_sol_out_net = 0
|
||||
|
||||
|
||||
'Dim Dr기상데이터 As DS.tbl_weatherRow
|
||||
'For i_count_ts_location = 1 To DSET.tbl_weather.Rows.Count ' Range("건물위치").Columns.Count
|
||||
' Dr기상데이터 = DSET.tbl_weather(i_count_ts_location - 1)
|
||||
' If dr존.지역 = Dr기상데이터.건물위치 Then '//이상하다 1버번쨰 존의 지역값만 계속쓴다 -_-;; 지역은 즉 존에할당된게아니고 1개만 존재하는듯하다
|
||||
' i_ts_location = i_count_ts_location '//기상데이터에서 현재지정된 존.지역의 기상데이터의 지역의 열번호(엑셀에서만)를 기억한다 (나중에 이번호로 데이터 참조하려고)
|
||||
' Exit For
|
||||
' End If
|
||||
' '//지역찾을떄그냥 DR지역을 사용하도록한다.
|
||||
' 'If Worksheets("입력존").Range("지역1").Offset(0, 0) = Worksheets("기상데이타").Range("건물위치1").Offset(0, i_count_ts_location - 1) Then
|
||||
' ' i_ts_location = i_count_ts_location
|
||||
' ' Exit For
|
||||
' 'End If
|
||||
'Next
|
||||
|
||||
l_tot = 0
|
||||
|
||||
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & DR_code & "' and code <> '0'", "code")(0), DS.tbl_newRow) '//신재생의 태양열시스템
|
||||
|
||||
Select Case Dr신재생.집열판방위.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(3, i_count_ts - 1)
|
||||
Case "동" '동"
|
||||
i_direction = 12
|
||||
|
||||
Case "남동" '남동"
|
||||
i_direction = 10
|
||||
|
||||
Case "남" '남"
|
||||
i_direction = 9
|
||||
|
||||
Case "남서" '남서"
|
||||
i_direction = 11
|
||||
|
||||
Case "서" '서"
|
||||
i_direction = 13
|
||||
|
||||
Case "수평" '수평" '//월별평균일사 수평면을 사용 나머지것들은 45도짜리를 사용한다. 45도짜리 코드값을 해당코드+1000이다. 해당코드+1000으로 미리 셋팅햇다(변경불가)
|
||||
i_direction = 0
|
||||
Case Else
|
||||
MsgBox("신재생에너지-태양열의 집열판 방위값이 올바르지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
|
||||
'//집열판방위에따른 월별평균일사의 총합을 가져온다
|
||||
'//weather_ilsa 의 p코드에는 지역코드값이 들어가고 코드값은 집열판방위+1000 의값이 해당 각도의 방향에대한 데이터가된다.
|
||||
|
||||
|
||||
'///만약값이 서울 방향이 남 이엇을경우에는 해당 일사데이터를 찾는게 목적이에요. 여기서 서울의 코드값은 찾을수잇어요
|
||||
'//그담이 방향 남에 맞는 일사데이터를 찾아야하는데.. 일사데이터 코드로는 못찾으니깐. 이름으로 찾아요.
|
||||
'//이름 45도를 앞에 붙이기 200915
|
||||
|
||||
|
||||
Dim 일사이름 As String = "45도" & Dr신재생.집열판방위 & "향" '//이렇게되면 남(45) 라는 최종이름이 되겟죠?
|
||||
If Dr신재생.집열판방위 = "수평" Then 일사이름 = "수평면"
|
||||
|
||||
Dim Drow평균일사() As DS.weather_ilsaRow = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & _
|
||||
"' and 설명='" & 일사이름 & "'"), DS.weather_ilsaRow())
|
||||
'//그렇게해서 서울의 코드에 해당하는 pcode 와 이름이 남(45)로 되어잇는 일사데이터테이블에서 데이터를 검색하게되겟죠?
|
||||
'//즉 데이터가 나오면 해당 데이터가 맞는거에요 ..이건 데이터베이스 이름을 남(45) 식으로 모두 고쳐주세요
|
||||
|
||||
If Drow평균일사.GetUpperBound(0) = -1 Then
|
||||
MsgBox("지역코드=" + Calc.Pub.기상데이터.code + vbCrLf + "집열판방위코드=" + Dr신재생.집열판방위 + _
|
||||
vbCrLf + "예상일사코드=" + 일사이름 + _
|
||||
vbCrLf + "에 해당하는 평균일사데이터가 없습니다. 1개의 행이 반환되어야 합니다", MsgBoxStyle.Critical, "계산실패")
|
||||
I_m = 0
|
||||
' Return
|
||||
Else
|
||||
l_tot += TOSG(Drow평균일사(0).m01) + TOSG(Drow평균일사(0).m02) + TOSG(Drow평균일사(0).m03) + TOSG(Drow평균일사(0).m04) + _
|
||||
TOSG(Drow평균일사(0).m05) + TOSG(Drow평균일사(0).m06) + TOSG(Drow평균일사(0).m07) + TOSG(Drow평균일사(0).m08) + _
|
||||
TOSG(Drow평균일사(0).m09) + TOSG(Drow평균일사(0).m10) + TOSG(Drow평균일사(0).m11) + TOSG(Drow평균일사(0).m12)
|
||||
I_m = TOSG(Drow평균일사(0)("m" & i_ts_month.ToString("00"))) '//이줄로 위의 케이스문을 대체햇다 오류나면 케이스문으로 일단 사용할예정
|
||||
|
||||
End If
|
||||
t_aux_m = I_m / l_tot * 2000
|
||||
|
||||
'//월별외기평균온도(i_ts_month << 파라미터)
|
||||
theta_e_avg = TOSG(Calc.Pub.기상데이터("m" & i_ts_month.ToString("00")))
|
||||
'theta_e_avg = Worksheets("기상데이타").Range("최소외기온도1").Offset(2 + i_ts_month, i_ts_location - 1) '//월별외기평균온도 tbl_weather에 존재
|
||||
|
||||
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
|
||||
Case "난방공간" '난방공간"
|
||||
theta_a_avg = 20
|
||||
Case "비난방공간" '비난방공간"
|
||||
theta_a_avg = theta_e_avg + (20 - theta_e_avg) / 2
|
||||
Case "외부공간" '외부공간"
|
||||
theta_a_avg = theta_e_avg
|
||||
End Select
|
||||
|
||||
theta_w = 40
|
||||
theta_cw = 15
|
||||
a_2 = 0
|
||||
eta_loop = 0.8
|
||||
eta_0 = 0.6
|
||||
t_m = i_ts_d_mth * 24
|
||||
a = 1.029
|
||||
b = -0.065
|
||||
c = -0.245
|
||||
d = 0.0018
|
||||
e = 0.0215
|
||||
f = 0
|
||||
|
||||
|
||||
Select Case Dr신재생.집열기유형.Trim 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(1, i_count_ts - 1)
|
||||
Case "평판형" '평판형"
|
||||
a_1 = 6
|
||||
IAM = 0.94
|
||||
Case "진공관형" '진공관형"
|
||||
a_1 = 3
|
||||
IAM = 1
|
||||
End Select
|
||||
|
||||
If Dr신재생.태양열시스템의성능 = "성능치" Then ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(5, i_count_ts - 1) = "성능치" Then
|
||||
eta_0 = TOSG(Dr신재생.무손실효율계수) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(6, i_count_ts - 1)
|
||||
a_1 = TOSG(Dr신재생.열손실계수1차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(7, i_count_ts - 1)
|
||||
a_2 = TOSG(Dr신재생.열손실계수2차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(8, i_count_ts - 1)
|
||||
End If
|
||||
|
||||
Select Case Dr신재생.태양열종류.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(0, i_count_ts - 1)
|
||||
Case "급탕" '급탕"
|
||||
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
|
||||
U_loop_p = TOSG(5 + 0.5 * A_) '(B.3)
|
||||
U_loop = a_1 + a_2 * 40 + U_loop_p / A_ '(13)
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_ * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
X = A_ * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
|
||||
Y = A_ * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
|
||||
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
|
||||
Else
|
||||
Q_W_sol_out_m = 0
|
||||
End If
|
||||
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
|
||||
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 60
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
|
||||
Else
|
||||
Q_W_sol_st_ls_m = 0
|
||||
Q_bu_dis_ls_m = 0
|
||||
End If
|
||||
|
||||
If i_system_ts = 1 Then '=====================================================2010.04.02 추가
|
||||
|
||||
'난방 부분
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_H * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
|
||||
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
|
||||
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
|
||||
Else
|
||||
Q_H_sol_out_m = 0
|
||||
End If
|
||||
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
|
||||
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 40
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
|
||||
Else
|
||||
Q_H_sol_st_ls_m = 0
|
||||
Q_H_bu_dis_ls_m = 0
|
||||
End If
|
||||
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
|
||||
|
||||
End If '=====================================================2010.04.02 추가
|
||||
|
||||
' Q_sol_ls_m = Q_W_sol_st_ls_m + Q_bu_dis_ls_m
|
||||
|
||||
' 보조에너지
|
||||
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
|
||||
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
|
||||
|
||||
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
|
||||
|
||||
Select Case Dr신재생.축열탱크설치장소.Trim 'Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
|
||||
Case "난방공간" '난방공간"
|
||||
Q_sol_st_ls_rbl_m = Q_W_sol_st_ls_m
|
||||
Q_bu_dis_ls_rbl_m = Q_bu_dis_ls_m
|
||||
Case "비난방공간" '비난방공간"
|
||||
Q_sol_st_ls_rbl_m = TOSG(Q_W_sol_st_ls_m * 0.5)
|
||||
Q_bu_dis_ls_rbl_m = TOSG(Q_bu_dis_ls_m * 0.5)
|
||||
Case "외부공간" '외부공간"
|
||||
Q_sol_st_ls_rbl_m = 0
|
||||
Q_bu_dis_ls_rbl_m = 0
|
||||
End Select
|
||||
|
||||
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_st_ls_rbl_m + Q_bu_dis_ls_rbl_m '(20)
|
||||
|
||||
|
||||
|
||||
Case "난방+급탕" '난방+급탕"
|
||||
P_H = Q_H_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(9)
|
||||
P_W = Q_W_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(10)
|
||||
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
|
||||
A_H = P_H * A_
|
||||
A_W = P_W * A_
|
||||
|
||||
'급탕 부분
|
||||
U_loop_p = 5 + 0.5 * A_W '(B.3) '===========================2010.04.24 추가
|
||||
If A_W <> 0 Then
|
||||
U_loop = a_1 + a_2 * 40 + U_loop_p / A_W '(13) '===============2010.04.24 추가
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_W * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
End If
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
X = A_W * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
|
||||
Y = A_W * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
|
||||
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
|
||||
Else
|
||||
Q_W_sol_out_m = 0
|
||||
End If
|
||||
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
|
||||
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 60
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_W_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
|
||||
Else
|
||||
Q_W_sol_st_ls_m = 0
|
||||
Q_W_bu_dis_ls_m = 0
|
||||
End If
|
||||
|
||||
|
||||
'난방 부분
|
||||
U_loop_p = 5 + 0.5 * A_H '(B.3) '===========================2010.04.24 추가
|
||||
U_loop = a_1 + a_2 * 40 + U_loop_p / A_H '(13) '===============2010.04.24 추가
|
||||
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_H * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
|
||||
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
|
||||
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
|
||||
Else
|
||||
Q_H_sol_out_m = 0
|
||||
End If
|
||||
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
|
||||
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 40
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
|
||||
Else
|
||||
Q_H_sol_st_ls_m = 0
|
||||
Q_H_bu_dis_ls_m = 0
|
||||
End If
|
||||
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
|
||||
|
||||
|
||||
|
||||
' 보조에너지
|
||||
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
|
||||
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
|
||||
|
||||
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
|
||||
|
||||
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
|
||||
Case "난방공간" '난방공간"
|
||||
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_ls_m
|
||||
Case "비난방공간" '비난방공간"
|
||||
Q_sol_ls_rbl_m = TOSG(Q_sol_aux_rbl_m + Q_sol_ls_m * 0.5)
|
||||
Case "외부공간" '외부공간"
|
||||
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m
|
||||
End Select
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
''보조에너지
|
||||
''f_sol_m = Q_sol_out_m / Q_sol_us_m '(21)
|
||||
''W_bu_aux_m = W_bu_nom_m * (1 - f_sol_m) '(22)
|
||||
|
||||
''P_aux_nom = 50 + 5 * A_ '(B.4)
|
||||
|
||||
|
||||
'// 신재생에너지 자립률 추가(2017.01.20)
|
||||
If (Q_H_sol_out_m + Q_W_sol_out_m) = 0 Then
|
||||
H_W_ratio = 0 ' Q_H_sol_out_m / (Q_H_sol_out_m + Q_W_sol_out_m)
|
||||
|
||||
Else
|
||||
H_W_ratio = Q_H_sol_out_m / (Q_H_sol_out_m + Q_W_sol_out_m)
|
||||
End If
|
||||
|
||||
' Q_H_sol_out_net = Q_H_sol_out_m + H_W_ratio * W_sol_aux_m * 2.75
|
||||
Q_W_sol_out_net = Q_W_sol_out_m + (1 - H_W_ratio) * W_sol_aux_m * 2.75
|
||||
|
||||
|
||||
|
||||
'// 신재생에너지 자립률 추가
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
'//열에너지생산량-태양열
|
||||
Result.생산E(i_ts_month).태양열생산량 += Q_W_sol_out_net + Q_H_sol_out_net '// 20170120 추가
|
||||
'//Result.생산E(i_ts_month).태양열생산량 += Q_W_sol_out_m + Q_H_sol_out_m '20170120 삭제
|
||||
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00"))) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00")))) + Q_W_sol_out_m + Q_H_sol_out_m 'Sheets("계산결과").Cells(97, 7 + i_ts_month) = Q_W_sol_out_m + Q_H_sol_out_m
|
||||
'Dim TDR As DSR.TReqUseRow = CType(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_단위면적당생산량_태양열), DSR.TReqUseRow)
|
||||
Select Case i_system_ts '//이것도 프로시져 파라미터이다.
|
||||
Case 1 '//난방?급탕 혼합형태?
|
||||
If Q_W_sol_out_m <> 0 Then
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_net / Result.사용면적.W) '// 20170120 추가
|
||||
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W) 삭제
|
||||
Else
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_net / Result.사용면적.H) '// 20170120 추가
|
||||
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.H)
|
||||
End If
|
||||
Case 2 '//냉방?
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_net / Result.사용면적.C) '// 20170120 추가
|
||||
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.C)
|
||||
Case 3 '//급탕
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_net / Result.사용면적.W) '// 20170120 추가
|
||||
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W)
|
||||
Case Else
|
||||
MsgBox("단위면적당생산량 누적시 i_syste_ts 가 알수없음", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
|
||||
pLog.Add(String.Format(">>Calc_ThermalSolarSystem_EN 진입 : 태양열생산량={0}, 면적당생산량태양열={1}, Q_W_sol_out_m={2}, Q_H_sol_out_m={3}", _
|
||||
Result.생산E(i_ts_month).태양열생산량, Result.생산E(i_ts_month).면적당생산량태양열, Q_W_sol_out_net, Q_H_sol_out_net)) '// 20170120 수정
|
||||
'pLog.Add(String.Format(">>Calc_ThermalSolarSystem_EN 진입 : 태양열생산량={0}, 면적당생산량태양열={1}, Q_W_sol_out_m={2}, Q_H_sol_out_m={3}", _
|
||||
' Result.생산E(i_ts_month).태양열생산량, Result.생산E(i_ts_month).면적당생산량태양열, Q_W_sol_out_m, Q_H_sol_out_m))
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_PhotovoltaicSystem_EN(ByVal i_count_pv_month As Integer, ByVal i_pv_d_mth As Integer)
|
||||
|
||||
pLog.Add(String.Format(">>Calc_PhotovoltaicSystem_EN 진입 : i_count_pv_month={0}, i_pv_d_mth={1}", _
|
||||
i_count_pv_month, i_pv_d_mth))
|
||||
|
||||
Dim E_el_pv_out As Decimal, P_pk As Decimal, f_perf As Decimal, E_sol As Decimal
|
||||
Dim a As Decimal, K_pk As Decimal
|
||||
'Dim i_count_pv As Integer, i_count_pv_location As Integer, i_pv_location As Integer
|
||||
|
||||
E_el_pv_out = 0
|
||||
|
||||
'If DSET.tbl_new.Rows.Count > 0 Then ' Worksheets("신재생기기").Range("신재생생산기기1").Offset(0, 0) <> "" Then '//신재생기기 처음칸에 뭐가 잇다? 즉 데이터가잇느냐
|
||||
For Each Dr신재생 As DS.tbl_newRow In DSET.tbl_new.Select("code <> '0'", "code")
|
||||
If Dr신재생.기기종류 = "태양광" Then
|
||||
|
||||
a = TOSG(Dr신재생.태양광모듈면적) ' Worksheets("신재생기기").Range("태양광모듈1").Offset(0, i_count_pv - 1)
|
||||
|
||||
Select Case Dr신재생.태양광모듈적용타입.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(4, i_count_pv - 1)
|
||||
Case "밀착형" '밀착형"
|
||||
f_perf = 0.7
|
||||
Case "후면통풍형" '후면통풍형"
|
||||
f_perf = 0.75
|
||||
Case "기계환기형" '기계환기형"
|
||||
f_perf = 0.8
|
||||
End Select
|
||||
|
||||
|
||||
'If a <> 0 Then '//태양광모듈면적이있을경우에만 작동하도록한다.
|
||||
|
||||
|
||||
Dim Dr일사 As DS.weather_ilsaRow
|
||||
Select Case Dr신재생.태양광모듈기울기.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(1, i_count_pv - 1)
|
||||
Case "수평" '수평"
|
||||
'//수평면에해당하는 월별평균일사 값을 가져온다.수평면 0001은 고정값이된다.
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='0001'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
|
||||
Case "45도" '45도"
|
||||
Select Case Dr신재생.태양광모듈방위.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
|
||||
Case "남" '"남"
|
||||
'//45도 남에대한건 기본 수평면하고 +9를 하면 나온다 나머지도 순서이므로 +1을 게속해주면된다.
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 9, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남동" '"남동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 10, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남서" '"남서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 11, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "동" '"동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 12, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "서" '"서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 13, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
End Select
|
||||
|
||||
Case "수직" '수직"
|
||||
Select Case Dr신재생.태양광모듈방위.Trim 'Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
|
||||
Case "남" '"남"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 1, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남동" '"남동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 2, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남서" '"남서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 3, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "동" '"동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 4, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "서" '"서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 5, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
End Select
|
||||
End Select
|
||||
|
||||
'E_sol = E_sol_hor * f_tlt 수평면일사에 계수를 곱하지 않고 직접 기상데이타 적용
|
||||
|
||||
Select Case Dr신재생.태양광모듈종류.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(3, i_count_pv - 1)
|
||||
Case "단결정" '단결정"
|
||||
K_pk = 0.12
|
||||
Case "다결정" '다결정"
|
||||
K_pk = 0.1
|
||||
Case "비정질박막형" '비정질박막형"
|
||||
K_pk = 0.04
|
||||
Case "기타박막형" '기타박막형"
|
||||
K_pk = 0.035
|
||||
Case "CIS박막형" 'CIS박막형"
|
||||
K_pk = 0.105
|
||||
Case "CdTe박막형" 'CdTe박막형"
|
||||
K_pk = 0.095
|
||||
Case "성능치 입력"
|
||||
Try
|
||||
K_pk = TOSG(Dr신재생.태양광모듈효율)
|
||||
Catch ex As Exception
|
||||
MsgBox("태양광모듈효율을 알 수 없습니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈효율)
|
||||
K_pk = 0
|
||||
End Try
|
||||
|
||||
Case Else
|
||||
MsgBox("알수없는 태양광모듈종류입니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈종류)
|
||||
|
||||
End Select
|
||||
|
||||
P_pk = K_pk * a
|
||||
E_el_pv_out = E_el_pv_out + E_sol * P_pk * f_perf
|
||||
'End If
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
'If Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = "" Then
|
||||
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = E_el_pv_out
|
||||
'Else
|
||||
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = Sheets("계산결과").Cells(104, 7 + i_count_pv_month) + E_el_pv_out
|
||||
'End If
|
||||
|
||||
Result.생산E(i_count_pv_month).태양광전력생산량 += E_el_pv_out
|
||||
|
||||
pLog.Add(String.Format(">>Calc_PhotovoltaicSystem_EN 진입 : E_el_pv_out={0}, 태양광전력생산량={1}", _
|
||||
E_el_pv_out, Result.생산E(i_count_pv_month).태양광전력생산량))
|
||||
|
||||
|
||||
|
||||
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00")) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00"))) + E_el_pv_out ' Sheets("계산결과").Cells(95, 7 + i_count_pv_month)
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_HeatpumpSystem(ByVal i_system_hp As Integer, ByVal i_HeatCool As Integer, ByVal Dr신재생 As DS.tbl_newRow, ByVal Q_hp_outg As Decimal, ByVal i_hp_month As Integer, _
|
||||
ByVal d_h_mth As Integer, ByVal t_hp As Integer, ByVal theta_VA As Decimal, ByVal theta_i As Decimal, ByRef Q_h_outg As Decimal, ByRef Q_h_f_hp As Decimal, ByRef Q_h_g_aux As Decimal)
|
||||
|
||||
pLog.Add(String.Format(">>Calc_HeatpumpSystem 진입 : i_system_hp={0}, i_HeatCool={1},dr신재생={2},Q_hp_outg={3},i_hp_month={4},d_h_mth={5},t_hp={6},theta_VA={7},theta_i={8},Q_h_outg={9},Q_h_f_hp={10},Q_h_g_aux={11}", _
|
||||
i_system_hp, i_HeatCool, Dr신재생.code, Q_hp_outg, i_hp_month, d_h_mth, t_hp, theta_VA, theta_i, Q_h_outg, Q_h_f_hp, Q_h_g_aux))
|
||||
|
||||
|
||||
Dim f_Verwindung As Decimal, V As Decimal, q_B_S As Decimal, Phi_g As Decimal
|
||||
Dim Q_h_g As Decimal, Q_h_g_s As Decimal, Q_h_g_WP As Decimal
|
||||
Dim P_rd_mot As Decimal
|
||||
'Dim Q_h_f_hp as decimal 'DIN 에서는 Q_h_f로 표기
|
||||
'Dim Delta_p_prim as decimal, Delta_p_sek as decimal
|
||||
Dim Phi_prim_aux As Decimal, Phi_sek_aux As Decimal, t_ON_aux As Decimal
|
||||
Dim theta_h_s As Decimal
|
||||
Dim COP As Decimal
|
||||
Dim Q_h_outg_net As Decimal
|
||||
|
||||
|
||||
Q_h_g_s = 0
|
||||
Q_h_g_WP = 0 '전기히트펌프인 경우 0 가스히트펌프는 ?
|
||||
P_rd_mot = 0
|
||||
Q_h_f_hp = 0
|
||||
Q_h_outg_net = 0
|
||||
|
||||
|
||||
'eta_aux = 0.3
|
||||
'Delta_p_prim = 40 'kPa 1차측
|
||||
'Delta_p_sek = 10 'kPa 2차측
|
||||
|
||||
'MsgBox(i_count_hp)
|
||||
|
||||
'i_count_hp = 0 '//신재생 줄번호는 무조건 0이된다. 20100127 '//연습용데이터 문제있음
|
||||
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
|
||||
|
||||
Phi_g = TOSG(Dr신재생.지열히트펌프용량) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(0, i_count_hp - 1)
|
||||
|
||||
If Dr신재생.가동연료 <> "전기" And i_HeatCool = 1 And Dr신재생.열교환기설치여부 = "예" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
|
||||
P_rd_mot = 0.4
|
||||
End If
|
||||
|
||||
If Q_hp_outg < (Phi_g * t_hp) * (1 + P_rd_mot) Then
|
||||
Q_h_outg = Q_hp_outg
|
||||
Else
|
||||
Q_h_outg = Phi_g * t_hp * (1 + P_rd_mot)
|
||||
End If
|
||||
|
||||
If i_HeatCool = 1 Or i_HeatCool = 3 Then '난방 1 , 냉방 2, 급탕 3
|
||||
'난방, 급탕
|
||||
If Dr신재생.팽창탱크설치여부 = "예" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(6, i_count_hp - 1) = "예" Then
|
||||
f_Verwindung = 1.2
|
||||
V = TOSG(Dr신재생.팽창탱크체적) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(7, i_count_hp - 1)
|
||||
q_B_S = TOSG(0.4 + 0.14 * V ^ 0.45) '(51)
|
||||
theta_h_s = theta_VA '급수온도로 적용
|
||||
Q_h_g_s = f_Verwindung * (theta_h_s - theta_i) / 45 * d_h_mth * q_B_S '(49) 외부완충(팽창탱크 유무)
|
||||
|
||||
End If
|
||||
|
||||
Q_h_g = Q_h_g_s + Q_h_g_WP
|
||||
COP = TOSG(Dr신재생.열성능비난방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(1, i_count_hp - 1)
|
||||
|
||||
Else
|
||||
'냉방
|
||||
|
||||
COP = TOSG(Dr신재생.열성능비냉방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(2, i_count_hp - 1)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If Dr신재생.가동연료 = "전기" Then ' Worksheets("신재생기기").Range("신재생및열병합기기종류1").Offset(1, i_count_hp - 1) = "전기" Then
|
||||
Q_h_f_hp = (Q_h_outg + Q_h_g) / COP
|
||||
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp '월간 전기히트펌프(재생에너지유입량)
|
||||
Else
|
||||
Q_h_f_hp = Q_h_outg / COP
|
||||
' If i_HeatCool = 1 And Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
|
||||
' P_rd_mot = 0.4
|
||||
' End If
|
||||
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp * (1 + P_rd_mot) '월간 가스히트펌프(재생에너지유입량)
|
||||
End If
|
||||
|
||||
'Q_h_f = Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in '월간(A.1) 전기히트펌프(난방요구량 충당)
|
||||
'Q_h_f = (Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in) / (1 + P_rd_mot) '월간(A.2) 가스히트펌프(난방요구량 충당)
|
||||
|
||||
|
||||
'보조에너지
|
||||
|
||||
|
||||
'Phi_prim_aux = Delta_p_prim * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
|
||||
'Phi_sek_aux = Delta_p_sek * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
|
||||
|
||||
t_ON_aux = Q_h_outg / (Phi_g) '(81)
|
||||
Phi_prim_aux = TOSG(Dr신재생.펌프용량1차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(3, i_count_hp - 1)
|
||||
Phi_sek_aux = TOSG(Dr신재생.펌프용량2차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(4, i_count_hp - 1)
|
||||
|
||||
Q_h_g_aux = TOSG((Phi_prim_aux + Phi_sek_aux) * 0.001 * t_ON_aux) '(88)
|
||||
|
||||
|
||||
'// 신재생에너지 자립률 추가(2017.01.20)
|
||||
|
||||
If Dr신재생.가동연료 = "전기" Then
|
||||
Q_h_outg_net = Q_h_outg - ((Q_h_f_hp + Q_h_g_aux) * 2.75) '전기 1차에너지계수 적용
|
||||
If Q_h_outg_net < 0 Then Q_h_outg_net = 0
|
||||
|
||||
Else
|
||||
Q_h_outg_net = Q_h_outg - (Q_h_f_hp * 1.1 + Q_h_g_aux * 2.75) '가스 1차에너지계수 적용
|
||||
If Q_h_outg_net < 0 Then Q_h_outg_net = 0
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'// 신재생에너지 자립률 추가
|
||||
|
||||
|
||||
'//열에너지생산량 (지열)
|
||||
Result.생산E(i_hp_month).지열생산량 += Q_h_outg_net '//20170120 추가
|
||||
'// Result.생산E(i_hp_month).지열생산량 += Q_h_f_hp '20170120 지열생산량을 수정
|
||||
'DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00")) = CSng(DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00"))) + Q_h_f_hp 'DrT생산.열생산량지열 += Q_h_f_hp
|
||||
|
||||
pLog.Add(String.Format(">>Calc_HeatpumpSystem 결과0 Q_h_f_hp={0},t_ON_aux={1},Q_h_g_aux={2}", _
|
||||
Q_h_f_hp, t_ON_aux, Q_h_g_aux))
|
||||
|
||||
pLog.Add(String.Format(">>Calc_HeatpumpSystem 결과1 지열생산량={0}", _
|
||||
Result.생산E(i_hp_month).지열생산량))
|
||||
|
||||
'100 : Total >> DrT생산.단위면적당생산량지열
|
||||
Select Case i_system_hp
|
||||
Case 1
|
||||
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_outg_net / Result.사용면적.H) '//20170120 추가
|
||||
'//Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.H) '20170120 지열생산량을 수정
|
||||
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(10)("M00")) ' DrT요구량.난방사용면적 ' Sheets("계산결과").Cells(15, 7)
|
||||
Case 2
|
||||
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_outg_net / Result.사용면적.C) '//20170120 추가
|
||||
'//Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.C) '20170120 지열생산량을 수정
|
||||
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(15)("M00")) 'DrT요구량.냉방사용면적 '("계산결과").Cells(20, 7)
|
||||
Case 3
|
||||
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_outg_net / Result.사용면적.W) '//20170120 추가
|
||||
'//Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.W) '20170120 지열생산량을 수정
|
||||
End Select
|
||||
|
||||
pLog.Add(String.Format(">>Calc_HeatpumpSystem 결과2 면적당생산량지열={0}", _
|
||||
Result.생산E(i_hp_month).면적당생산량지열))
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_CogenerationSystemEN(ByVal Dr신재생 As DS.tbl_newRow, i_system_chp As Integer, ByVal i_chp_month As Integer, ByVal Q_h_outg As Decimal, ByVal t_chp As Integer, _
|
||||
ByRef Q_chp_gen_out As Decimal, ByRef E_chp_gen_in As Decimal)
|
||||
|
||||
pLog.Add(String.Format(">>Calc_CogenerationSystemEN 진입 : Dr신재생={0}, i_system_chp={1},i_chp_month={2},Q_h_outg={3},t_chp={4},Q_chp_gen_out={5},E_chp_gen_in={6}", _
|
||||
Dr신재생.code, i_system_chp, i_chp_month, Q_h_outg, t_chp, Q_chp_gen_out, E_chp_gen_in))
|
||||
|
||||
'EN15316-4-4_2007 5.6.2에서 시작
|
||||
'Dim Wmsg As New System.Text.StringBuilder
|
||||
'Wmsg.AppendLine("Calc_CogenerationSystemEN 이 함수의경우")
|
||||
'Wmsg.AppendLine("i_count_chp 에따라서 열을 할당해야한다.... 지만..아직 이 파라미터값을 모르게삳")
|
||||
'Wmsg.AppendLine("사용하는곳의 참조확인을해서 저곳이 신재생기기 코드값이 바로오는건지 다른값인지 확인해봐야겠다")
|
||||
'MsgBox(Wmsg.ToString)
|
||||
|
||||
Dim Q_dot_T_chp As Decimal
|
||||
Dim eta_T_chp_an As Decimal, eta_el_chp_an As Decimal
|
||||
Dim E_el_chp_out As Decimal
|
||||
Dim Q_chp_gen_out_net As Decimal, E_el_chp_out_net As Decimal, Q_E_ratio As Decimal, net_ratio As Decimal
|
||||
|
||||
Q_chp_gen_out_net = 0
|
||||
E_el_chp_out_net = 0
|
||||
Q_E_ratio = 0
|
||||
net_ratio = 0
|
||||
|
||||
|
||||
|
||||
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
|
||||
|
||||
Q_dot_T_chp = TOSG(Dr신재생.열생산능력) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(0, i_count_chp - 1)
|
||||
eta_T_chp_an = TOSG(Dr신재생.열생산효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(1, i_count_chp - 1)
|
||||
eta_el_chp_an = TOSG(Dr신재생.발전효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(2, i_count_chp - 1)
|
||||
|
||||
If Q_h_outg > (Q_dot_T_chp * t_chp) Then
|
||||
Q_chp_gen_out = Q_dot_T_chp * t_chp
|
||||
Else
|
||||
Q_chp_gen_out = Q_h_outg
|
||||
End If
|
||||
|
||||
E_chp_gen_in = Q_chp_gen_out / (eta_T_chp_an / 100)
|
||||
E_el_chp_out = E_chp_gen_in * eta_el_chp_an / 100
|
||||
|
||||
Result.생산E(i_chp_month).열병합전력생산량 += E_el_chp_out
|
||||
|
||||
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과0 E_chp_gen_in={0},E_el_chp_out={1}", E_chp_gen_in, E_el_chp_out))
|
||||
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과1 열병합전력생산량={0}", Result.생산E(i_chp_month).열병합전력생산량))
|
||||
|
||||
'//전기생산량 열병합
|
||||
If Dr신재생.열병합신재생여부 Then
|
||||
|
||||
|
||||
'// 신재생에너지 자립률 추가(2017.01.20)
|
||||
|
||||
net_ratio = (Q_chp_gen_out + E_el_chp_out * 2.75) / (E_chp_gen_in * 1.1)
|
||||
Q_E_ratio = Q_chp_gen_out / (Q_chp_gen_out + E_el_chp_out * 2.75)
|
||||
Q_chp_gen_out_net = Q_chp_gen_out * (net_ratio - 1) * Q_E_ratio
|
||||
E_el_chp_out_net = (E_el_chp_out * 2.75 * (net_ratio - 1) * (1 - Q_E_ratio)) / 2.75
|
||||
If Q_chp_gen_out_net < 0 Then Q_chp_gen_out_net = 0
|
||||
If E_el_chp_out_net < 0 Then E_el_chp_out_net = 0
|
||||
|
||||
|
||||
|
||||
'// 신재생에너지 자립률 추가
|
||||
|
||||
|
||||
'//전력
|
||||
Result.생산E(i_chp_month).신재생열병합전력생산량 += (E_el_chp_out_net) '//20170120 추가
|
||||
'Result.생산E(i_chp_month).신재생열병합전력생산량 += (E_el_chp_out)
|
||||
|
||||
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과2 신재생열병합전력생산량={0}", Result.생산E(i_chp_month).신재생열병합전력생산량))
|
||||
|
||||
'//면적당열병합 (신재생면적당열생산량)
|
||||
Select Case i_system_chp
|
||||
Case 1
|
||||
Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out_net / Result.사용면적.H) '// 20170120 추가
|
||||
'Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out / Result.사용면적.H)
|
||||
Case 2
|
||||
Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out_net / Result.사용면적.C) '// 20170120 추가
|
||||
'Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out / Result.사용면적.C)
|
||||
Case 3
|
||||
Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out_net / Result.사용면적.W) '// 20170120 추가
|
||||
'Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out / Result.사용면적.W)
|
||||
|
||||
End Select
|
||||
|
||||
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과3 신재생면적당열생산량={0}", Result.생산E(i_chp_month).신재생면적당열생산량))
|
||||
|
||||
End If
|
||||
'DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00")) = CSng(DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00"))) + E_el_chp_out ' Sheets("계산결과").Cells(96, 7 + i_chp_month) = E_el_chp_out
|
||||
End Sub
|
||||
End Class
|
||||
181
ArinWarev1/DataSet/Calculator/CShared.vb
Normal file
181
ArinWarev1/DataSet/Calculator/CShared.vb
Normal file
@@ -0,0 +1,181 @@
|
||||
''' <remarks>공용으로 사용되는 값을을 이곳에서 설정한다</remarks>
|
||||
Public Class CShared
|
||||
Public ReadOnly Property 기상데이터() As DS.tbl_weatherRow
|
||||
Get
|
||||
|
||||
If DSET1.tbl_Desc.Rows.Count = 0 Then
|
||||
MsgBox("건물개요데이터가 없습니다.", MsgBoxStyle.Critical, "오류")
|
||||
Return Nothing
|
||||
Else
|
||||
Try
|
||||
Dim drArea As DS.tbl_DescRow = CType(DSET1.tbl_Desc.Rows(0), DS.tbl_DescRow)
|
||||
Dim AreaGrpCode As String = drArea.buildarea
|
||||
|
||||
'/그룹코드에서 데이터를 찾아야한다.
|
||||
Dim drWeatherGrp As DS.weather_groupRow = CType(DSET1.weather_group.Select("code='" + AreaGrpCode + "'")(0), DS.weather_groupRow)
|
||||
Dim AreaName As String = drWeatherGrp.area
|
||||
|
||||
'Dim drtblWeather As DS.tbl_weatherRow = DSET1.tbl_weather.Select("name='" + AreaName + "'")(0)
|
||||
|
||||
Return CType(DSET1.tbl_weather.Select("건물위치 ='" & AreaName & "'")(0), DS.tbl_weatherRow)
|
||||
Catch ex As Exception
|
||||
MsgBox("건물개요의 지역정보를 찾을수없습니다.", MsgBoxStyle.Critical, "오류")
|
||||
Return Nothing
|
||||
End Try
|
||||
End If
|
||||
|
||||
End Get
|
||||
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 오류가있는가?
|
||||
''' </summary>
|
||||
Public IsError As Boolean = False
|
||||
''' <summary>
|
||||
''' 주6일근무제로 변경
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public d_full() As Decimal
|
||||
''' <summary>
|
||||
''' 외기온도값
|
||||
''' </summary>
|
||||
Public theta_e(12) As Decimal
|
||||
''' <summary>
|
||||
''' 평균일사값이 들어있다.
|
||||
''' </summary>
|
||||
Public I_s(8, 12) As Decimal
|
||||
''' <summary>
|
||||
''' 외기온도 난방기(최대)
|
||||
''' </summary>
|
||||
Public theta_e_min As Decimal
|
||||
''' <summary>
|
||||
''' 외기온도 냉방기(최대)
|
||||
''' </summary>
|
||||
Public theta_e_max As Decimal
|
||||
|
||||
Public F_sh_gl(7, 11) As Decimal '//2010.02.26 차양감소계수
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 클래스 생성자
|
||||
''' </summary>
|
||||
Public Sub New()
|
||||
|
||||
If 기상데이터 Is Nothing Then Return
|
||||
|
||||
'//지정된 존에 해당하는 지역정보를 가지고옴(현재기상정보가 존에 할당되어있어서 그렇다)
|
||||
'//1번째 존에 지역이 설정된걸로 간주한다
|
||||
|
||||
'Dr신재생 = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
|
||||
|
||||
d_full = New Decimal() {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} '우선 휴일없는 것으로 설정
|
||||
'd_op = new decimal() {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} '우선 휴일없는 것으로 설정 각달의 일수 ##### 02/21 삭제됨
|
||||
'd_we = new decimal() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} ' 우선 휴일없는 것으로 설정
|
||||
|
||||
'//최소외기온도 설정
|
||||
theta_e_min = TOSG(기상데이터.난방기)
|
||||
theta_e_max = TOSG(기상데이터.냉방기)
|
||||
|
||||
'//지역의 외기온도값
|
||||
theta_e(0) = 0
|
||||
theta_e(1) = TOSG(기상데이터.m01)
|
||||
theta_e(2) = TOSG(기상데이터.m02)
|
||||
theta_e(3) = TOSG(기상데이터.m03)
|
||||
theta_e(4) = TOSG(기상데이터.m04)
|
||||
theta_e(5) = TOSG(기상데이터.m05)
|
||||
theta_e(6) = TOSG(기상데이터.m06)
|
||||
theta_e(7) = TOSG(기상데이터.m07)
|
||||
theta_e(8) = TOSG(기상데이터.m08)
|
||||
theta_e(9) = TOSG(기상데이터.m09)
|
||||
theta_e(10) = TOSG(기상데이터.m10)
|
||||
theta_e(11) = TOSG(기상데이터.m11)
|
||||
theta_e(12) = TOSG(기상데이터.m12)
|
||||
|
||||
'//월별평균일사(기상데이터) 9개를 가져온다. 그중 최대부하값만 취한다.
|
||||
'//현재 기상ROW의 CODE 와같은 Weather ilsa 데이터를 가져온다.
|
||||
'//엑셀의 0 to 8 은 9개의 평균일사 데이터를 의미한다
|
||||
Dim DRow일사() As DS.weather_ilsaRow = CType(DSET1.weather_ilsa.Select("pcode='" & 기상데이터.code & "'", "code"), DS.weather_ilsaRow())
|
||||
If DRow일사.GetUpperBound(0) = -1 Then
|
||||
MsgBox("월별평균일사데이터중 " & 기상데이터.code & "에 해당되는 지역이 없습니다", MsgBoxStyle.Critical, "CShared")
|
||||
Me.IsError = True
|
||||
Else
|
||||
|
||||
For i As Short = 0 To 8 'DRow일사.GetUpperBound(0) <- 이식을 사용하려했으나 45도용데이터떄문에 사용못함
|
||||
Dim DR일사 As DS.weather_ilsaRow = DRow일사(i)
|
||||
I_s(i, 0) = TOSG(DR일사.최대부하)
|
||||
I_s(i, 1) = TOSG(DR일사.m01)
|
||||
I_s(i, 2) = TOSG(DR일사.m02)
|
||||
I_s(i, 3) = TOSG(DR일사.m03)
|
||||
I_s(i, 4) = TOSG(DR일사.m04)
|
||||
I_s(i, 5) = TOSG(DR일사.m05)
|
||||
I_s(i, 6) = TOSG(DR일사.m06)
|
||||
I_s(i, 7) = TOSG(DR일사.m07)
|
||||
I_s(i, 8) = TOSG(DR일사.m08)
|
||||
I_s(i, 9) = TOSG(DR일사.m09)
|
||||
I_s(i, 10) = TOSG(DR일사.m10)
|
||||
I_s(i, 11) = TOSG(DR일사.m11)
|
||||
I_s(i, 12) = TOSG(DR일사.m12)
|
||||
|
||||
'#If DEBUG Then
|
||||
' Dim f As String = "c:\temp\1\일사.txt"
|
||||
' Dim b As New System.Text.StringBuilder
|
||||
' If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("기상코드 I M0 1 2 3 4 5 6 7 8 9 10 11 12")
|
||||
' End If
|
||||
' b.AppendLine(기상데이터.code + vbTab + i.ToString() + vbTab + DR일사.최대부하 + vbTab + _
|
||||
' DR일사.m01 + vbTab + DR일사.m02 + vbTab + DR일사.m03 + vbTab + DR일사.m04 + vbTab + DR일사.m05 + vbTab + _
|
||||
' DR일사.m06 + vbTab + DR일사.m07 + vbTab + DR일사.m08 + vbTab + DR일사.m09 + vbTab + DR일사.m10 + vbTab + DR일사.m11 + vbTab + DR일사.m12)
|
||||
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
'#End If
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
'=============================================================================2010.02.26 추가
|
||||
Dim DRow차양() As DS.weather_chaRow = CType(DSET1.weather_cha.Select("pcode='" & 기상데이터.code & "'", "code"), DS.weather_chaRow())
|
||||
If DRow차양.GetUpperBound(0) = -1 Then
|
||||
MsgBox("월별차양감소데이터중 " & 기상데이터.code & "에 해당되는 지역이 없습니다", MsgBoxStyle.Critical, "CShared")
|
||||
Me.IsError = True
|
||||
Else
|
||||
'//차양감소계수 추가
|
||||
For i As Short = 0 To 7 '총 8개의 종류가있따.
|
||||
Dim DR차양 As DS.weather_chaRow = DRow차양(i)
|
||||
F_sh_gl(i, 0) = TOSG(DR차양.m01)
|
||||
F_sh_gl(i, 1) = TOSG(DR차양.m02)
|
||||
F_sh_gl(i, 2) = TOSG(DR차양.m03)
|
||||
F_sh_gl(i, 3) = TOSG(DR차양.m04)
|
||||
F_sh_gl(i, 4) = TOSG(DR차양.m05)
|
||||
F_sh_gl(i, 5) = TOSG(DR차양.m06)
|
||||
F_sh_gl(i, 6) = TOSG(DR차양.m07)
|
||||
F_sh_gl(i, 7) = TOSG(DR차양.m08)
|
||||
F_sh_gl(i, 8) = TOSG(DR차양.m09)
|
||||
F_sh_gl(i, 9) = TOSG(DR차양.m10)
|
||||
F_sh_gl(i, 10) = TOSG(DR차양.m11)
|
||||
F_sh_gl(i, 11) = TOSG(DR차양.m12)
|
||||
|
||||
'#If DEBUG Then
|
||||
' Dim f As String = "c:\temp\1\차양.txt"
|
||||
' Dim b As New System.Text.StringBuilder
|
||||
' If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("기상코드 I M0 1 2 3 4 5 6 7 8 9 10 11")
|
||||
' End If
|
||||
' b.AppendLine(기상데이터.code + vbTab + i.ToString() + vbTab + _
|
||||
' DR차양.m01 + vbTab + DR차양.m02 + vbTab + DR차양.m03 + vbTab + DR차양.m04 + vbTab + DR차양.m05 + vbTab + _
|
||||
' DR차양.m06 + vbTab + DR차양.m07 + vbTab + DR차양.m08 + vbTab + DR차양.m09 + vbTab + DR차양.m10 + vbTab + DR차양.m11 + vbTab + DR차양.m12)
|
||||
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
'#End If
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
'=============================================================================2010.02.26 추가
|
||||
'For i = 0 To 7
|
||||
' For j = 0 To 11
|
||||
' F_sh_gl(i, j) = Worksheets("기상데이타").Range("차양감소계수1").Offset(i * 13 + j, i_count_location - 1)
|
||||
' Next
|
||||
'Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
892
ArinWarev1/DataSet/Calculator/CSummary.vb
Normal file
892
ArinWarev1/DataSet/Calculator/CSummary.vb
Normal file
@@ -0,0 +1,892 @@
|
||||
Public Class CSummary
|
||||
Public Event Message(ByVal Msg As String, pval As Integer, pmin As Integer, pmax As Integer) '//메세지표시
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult)
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 모든 집계데이터를 갱신합니다.
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub All()
|
||||
|
||||
''TMon()
|
||||
RaiseEvent Message("최종데이터 집계중..." + vbCrLf + "잠시만기다려주세요", 1, 0, 1)
|
||||
|
||||
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다. '//LoadOfZone 에서 계산완료한다.
|
||||
Dr.Calc()
|
||||
Next
|
||||
Result.최대부하.Calc_Summary() '//최대냉난방부하(합계-zone='00') 계산
|
||||
'Result.생산E(0).Calc_Summary() '//합계필드(M00)에데이터를 누적합니다.
|
||||
Result.일차E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
|
||||
Result.E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
|
||||
|
||||
'TReqUse_M01M12() '//이것들은 현재 사용하지 않고있다.
|
||||
'TReqUse_M00() '//현재 사용하지않고있따.
|
||||
|
||||
Me.Make_ResultSheet() '//최종결과를 보여주는 시트를 작성한다.
|
||||
DSETR.AcceptChanges() '//변경된모든내용을 적용함
|
||||
End Sub
|
||||
|
||||
#Region "미사용개체"
|
||||
|
||||
''' <summary>
|
||||
''' 1월부터 10월까지 집계데이터를 계산한다.
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub TReqUse_M01M12()
|
||||
For i As Short = 1 To 12
|
||||
'MOn = "M" & Format(i, "00")
|
||||
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
|
||||
|
||||
|
||||
''////////////////////////////////////
|
||||
'' 연간 Co2 배출량
|
||||
''////////////////////////////////////
|
||||
|
||||
''조명/환기에너지소요량
|
||||
'DR(56 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).조명요구량
|
||||
'DR(57 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).환기요구량
|
||||
|
||||
''//SUMProduct 계산
|
||||
'Dim Acc1 as decimal = 0
|
||||
'Dim Acc2 as decimal = 0
|
||||
'For j As Short = 41 To 57
|
||||
' Acc1 += Ru(j, MOn) * Ru(j, "sign")
|
||||
'Next
|
||||
'For j As Short = 58 To 59
|
||||
' Acc2 += Ru(j, MOn) * Ru(j, "sign")
|
||||
'Next
|
||||
'Ru(ResultRow.CO2_연간배출량, MOn) = Acc1 - Acc2 '//최상단 합계(연가Co2배출량
|
||||
|
||||
''//Excel 67번줄데이터가 필요하므로 먼저계산한다..해당데이터는 마지막(64번줄에 할당함)
|
||||
''//(I95+I96)/(I76+I82+I88+I90+I92)*$C$76
|
||||
'Ru(64, MOn) = (Ru(58, MOn) + Ru(59, MOn)) / (Ru(45, MOn) + Ru(50, MOn) + Ru(55, MOn) + Ru(56, MOn) + Ru(57, MOn)) * Ru(45, "sign")
|
||||
|
||||
''//난방에너지소요량(계수(sign)* Sumproduct)
|
||||
'Dim ACc_Nan as decimal = 0
|
||||
'For j As Short = 41 To 45
|
||||
' ACc_Nan += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
|
||||
'Next
|
||||
|
||||
'Dim ACc_Naeng as decimal = 0
|
||||
'For j As Short = 46 To 50
|
||||
' ACc_Naeng += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
|
||||
'Next
|
||||
|
||||
'Dim ACc_KUb as decimal = 0
|
||||
'For j As Short = 51 To 55
|
||||
' ACc_KUb += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
|
||||
'Next
|
||||
|
||||
|
||||
''//67>64
|
||||
''IF(csng(ru(7,"00"))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/$H$15)+IF($H$20=0,0,(SUMPRODUCT($C$78:$C$82,I78:I82)-I82*I67)/$H$20)+IF($H$26=0,0,(SUMPRODUCT($C$84:$C$88,I84:I88)-I88*I67)/$H$26)+IF($H$23=0,0,($C$90*I90-I90*I67)/$H$23)+IF($H$27=0,0,($C$92*I92-I92*I67)/$H$27)
|
||||
''IF(csng(ru(7))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19))
|
||||
|
||||
''//단위면적당Co2배출량)
|
||||
'If Ru(ResultRow.요구량_난방_사용면적) = 0 Then
|
||||
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = 0
|
||||
'Else
|
||||
' '(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19)
|
||||
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = (ACc_Nan - Ru(45, MOn) * Ru(64, MOn)) / Ru(7) + CSng(IIf(Ru(12) = 0, 0, (ACc_Naeng - Ru(50, MOn) * Ru(64, MOn)) / Ru(12))) + CSng(IIf(Ru(18) = 0, 0, (ACc_KUb - Ru(55, MOn) * Ru(64, MOn)) / Ru(18))) + CSng(IIf(Ru(15) = 0, 0, (Ru(56, "sign") * Ru(56, MOn) - Ru(56, MOn) * Ru(64, MOn)) / Ru(15))) + CSng(IIf(Ru(19) = 0, 0, (Ru(57, "sign") * Ru(57, MOn) - Ru(57, MOn) * Ru(64, MOn)) / Ru(19)))
|
||||
'End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 에너지요구량및소요량 테이블의 M00(합계)를 누적(M01~M12)로 채웁니다. 그렇지않은건 이후에 합계프로시져별도로 생성함
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub TReqUse_M00()
|
||||
''//LT(LineType 이 SL Sum Line 인경우가져와서 m00 = m01~m12 한다
|
||||
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
|
||||
'For Each Drs As DSR.TReqUseRow In DSETR.TReqUse.Select("lt='SL'")
|
||||
' Drs.M00 = Drs.M01 + Drs.M02 + Drs.M03 + Drs.M04 + Drs.M05 + Drs.M06 + Drs.M07 + Drs.M08 + Drs.M09 + Drs.M10 + Drs.M11 + Drs.M12
|
||||
'Next
|
||||
|
||||
''//커스텀 합계필드 계산
|
||||
|
||||
''자주사용되는 SUM(1~12)를 미리 계산해둔다
|
||||
'Dim L45, L50, L55, L56, L57, L22, L27, L31, L33, L37 as decimal : Dim Drow As DSR.TReqUseRow
|
||||
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
|
||||
'L45 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
|
||||
'L50 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
|
||||
'L55 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
|
||||
'L56 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
|
||||
'L57 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
|
||||
'L22 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
|
||||
'L27 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
|
||||
'L31 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
|
||||
'L33 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow)
|
||||
'L37 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
''//실제 데이터 집계
|
||||
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50 '
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L22 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
'Drow.COLG = L22 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
'' End If
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L27 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
|
||||
'Drow.COLG = L27 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
|
||||
'' End If
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L31 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
'Drow.COLG = L31 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
'' End If
|
||||
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L33 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
'Drow.COLG = L33 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
'' End If
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(20 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = DR(22 - 1).M00 + DR(27 - 1).M00 + DR(31 - 1).M00 + DR(33 - 1).M00 + DR(37 - 1).M00
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(26 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(7 - 1).M00 = 0, 0, DR(22 - 1).M00 / DR(7 - 1).M00))
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(30 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(12 - 1).M00 = 0, 0, DR(27 - 1).M00 / DR(12 - 1).M00))
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(32 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(15 - 1).M00 = 0, 0, DR(31 - 1).M00 / DR(15 - 1).M00))
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(36 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(18 - 1).M00 = 0, 0, DR(33 - 1).M00 / DR(18 - 1).M00))
|
||||
|
||||
|
||||
''=SUM(I58:T58)-(H95+H96)/(SUM(I76:T76)+SUM(I82:T82)+SUM(I88:T88)+SUM(I90:T90)+SUM(I92:T92))*SUM(I92:T92)
|
||||
''=L37-(ru(58)+ru(59))/(L45+L50+L55+L56+L57)*L57
|
||||
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow) '//환기에너지소요량(X)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L37 - (Ru(58) + Ru(59)) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
'Drow.COLG = L37 - (Ru(58)) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
'' End If
|
||||
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(38 - 1), DSR.TReqUseRow) '//환기에너지 단위면적당 소요량
|
||||
'Drow.M00 = CSng(IIf(Ru(19) = 0, 0, Ru(37) / Ru(19)))
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(21 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = DR(26 - 1).M00 + DR(30 - 1).M00 + DR(32 - 1).M00 + DR(36 - 1).M00 + DR(38 - 1).M00
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
Public Sub Make_ResultSheet()
|
||||
'//에너지요구량
|
||||
DSETR.TReqUse.Clear()
|
||||
DSETR.TReqUse.AcceptChanges()
|
||||
|
||||
Dim Array As New ArrayList
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).요구량)
|
||||
Next
|
||||
Set_ReqUseRow("100", "에너지요구량", "[kWh]", "Qb", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).면적당요구량)
|
||||
Next
|
||||
Set_ReqUseRow("100", "단위면적당 에너지 요구량", "[kWh/m²]", "Σ(Qb / Ab)", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "난방에너지 요구량", "[kWh]", "QH,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방열)
|
||||
Next
|
||||
Set_ReqUseRow("110", "난방에너지 요구량(열)", "[kWh]", "Qh,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방공조)
|
||||
Next
|
||||
Set_ReqUseRow("110", "난방에너지 요구량(공조,환기)", "[kWh]", "Qh*,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QH,b / AH", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(난방)", "[m²]", "AH", "=", Result.사용면적.H, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "냉방에너지 요구량", "[kWh]", "QC,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방열)
|
||||
Next
|
||||
Set_ReqUseRow("110", "냉방에너지 요구량(열)", "[kWh]", "Qc,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방공조)
|
||||
Next
|
||||
Set_ReqUseRow("110", "냉방에너지 요구량(공조,환기)", "[kWh]", "Qc*,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QC,b / AC", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(냉방)", "[m²]", "AC", "=", Result.사용면적.C, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).조명요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "조명에너지 요구량", "[kWh]", "QL,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).조명면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QL,b / AL", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(조명)", "[m²]", "AL", "=", Result.사용면적.L, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).급탕요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "급탕에너지 요구량", "[kWh]", "QW,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).급탕면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QW,b / AW", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(급탕)", "[m²]", "AW", "=", Result.사용면적.W, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(환기)", "[m²]", "AV", "=", Result.사용면적.V, "N1")
|
||||
|
||||
'//에너지소요량
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).소요량)
|
||||
Next
|
||||
Set_ReqUseRow("200", "에너지소요량", "[kWh]", "Qf", "", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).면적소요량)
|
||||
Next
|
||||
Set_ReqUseRow("200", "단위면적당 에너지 소요량", "[kWh/m²]", "Σ(Qf / Ab)", "", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "QH,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방)
|
||||
Next
|
||||
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "Qh,f", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방보조)
|
||||
Next
|
||||
Set_ReqUseRow("210", "난방보조에너지 소요량", "[kWh]", "Qh,aux", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QH,f / AH", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "QC,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방)
|
||||
Next
|
||||
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "Qc,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방보조)
|
||||
Next
|
||||
Set_ReqUseRow("210", "냉방보조에너지 소요량", "[kWh]", "Qc,aux", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QC,f / AC", "=", Array, "N1")
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).조명S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "조명에너지 소요량", "[kWh]", "QL,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).조명면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QL,f / AL", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "QW,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕)
|
||||
Next
|
||||
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "Qw,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕보조)
|
||||
Next
|
||||
Set_ReqUseRow("210", "급탕보조에너지 소요량", "[kWh]", "Qw,aux", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QW,f / AW", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).환기S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "환기에너지 소요량", "[kWh]", "QV,aux", "=", Array) '//36
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).환기면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QV.aux / AV", "=", Array, "N1")
|
||||
|
||||
'//1차에너지 소요량(10-02 추가)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).소요량)
|
||||
Next
|
||||
Set_ReqUseRow("300", "1차에너지 소요량", "[kWh]", "", "", Array) '//38
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).단위면적)
|
||||
Next
|
||||
Set_ReqUseRow("300", "단위면적당 1차에너지 소요량", "[kWh/m²]", "", "", Array, "N1") '//39
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방 1차에너지 소요량", "", "", "", Array) '//40
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방등유)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방지역)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역난방열료 소요량", "[kWh]", "0.728", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//45
|
||||
|
||||
'Array.Clear() '//--펠렛 100727
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.일차E소요량(i).난방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방면적)
|
||||
Next
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//46
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "냉방 1차에너지 소요량", "", "", "", Array) '//47
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방등유)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//48
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//50
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방지역난방열)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.728", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방지역냉방열)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역냉방열 소요량", "[kWh]", Result.E변환계수.지역냉방.ToString("N3"), "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//52
|
||||
|
||||
'Array.Clear() '//--펠렛 100727
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.일차E소요량(i).냉방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방면적)
|
||||
Next
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//53
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "급탕 1차에너지 소요량", "", "", "", Array) '//54
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕등유)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//55
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕LNG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕LPG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//57
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕지역)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.728", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//59
|
||||
|
||||
'Array.Clear() '//--펠렛 100727
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.일차E소요량(i).급탕펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//60
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).조명소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "조명 1차에너지 소요량", "", "", "", Array) '//61
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).조명전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//62
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).조명면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//63
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).환기소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "환기 1차에너지 소요량", "", "", "", Array) '//64
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).환기전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//65
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).환기면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//66
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).태양광전력생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전기에너지 생산량(태양광)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array) '//67
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).열병합전력생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전기에너지 생산량(열병합)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).태양열생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "열에너지 생산량(태양열)", "[kWh]", "", "=", Array) '//69
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).지열생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "열에너지 생산량(지열)", "[kWh]", "", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).면적당생산량태양열)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 생산량(태양열)", "[kWh]", "", "=", Array, "N1") '//71
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).면적당생산량지열)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 생산량(지열)", "[kWh]", "", "=", Array, "N1") '//72
|
||||
|
||||
|
||||
'//CO2배출량
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).발생량)
|
||||
Next
|
||||
Set_ReqUseRow("400", "연간 CO2 배출량", "[kg CO2]", "", "", Array) '//73
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).단위면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("400", "단위면적당 CO2 배출량", "[kg CO2/m²]", "", "", Array, "N1") '//74
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방 CO2 발생량", "", "", "", Array) '//75
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방등유)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방지역)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
|
||||
|
||||
'Array.Clear() '//펠렛
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.Co2발생량(i).난방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("410", "펠렛 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "냉방 CO2 발생량", "", "", "", Array) '//82
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방등유)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방지역난방열)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방지역냉방열)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역냉방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
'Array.Clear() '//낸ㅇ방펠렛
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.Co2발생량(i).냉방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "급탕 CO2 발생량", "", "", "", Array) '//89
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕등유)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕LNG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕LPG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕지역)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
'Array.Clear() '//급탕펠렛
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.Co2발생량(i).급탕펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).조명발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "조명 CO2 발생량", "", "", "", Array) '//96
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).조명전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).조명면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).환기발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "환기 CO2 발생량", "", "", "", Array) '//99
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).환기전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).환기면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
'//CO2저감량
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).저감량태양광)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 저감량(태양광)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//102
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).저감량열병합)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 저감량(열병합)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//103
|
||||
DSETR.AcceptChanges()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As ArrayList, Optional ByVal F As String = "N0")
|
||||
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
|
||||
|
||||
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
|
||||
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
|
||||
DR.Desc = desc '//설명
|
||||
DR.UNIT = unit '//단위
|
||||
DR.SIGN = sign '//기호
|
||||
DR.EQ = eq '//등호 =
|
||||
DR.M00 = TOSG(Value.Item(0))
|
||||
DR.M01 = TOSG(Value.Item(1))
|
||||
DR.M02 = TOSG(Value.Item(2))
|
||||
DR.M03 = TOSG(Value.Item(3))
|
||||
DR.M04 = TOSG(Value.Item(4))
|
||||
DR.M05 = TOSG(Value.Item(5))
|
||||
DR.M06 = TOSG(Value.Item(6))
|
||||
DR.M07 = TOSG(Value.Item(7))
|
||||
DR.M08 = TOSG(Value.Item(8))
|
||||
DR.M09 = TOSG(Value.Item(9))
|
||||
DR.M10 = TOSG(Value.Item(10))
|
||||
DR.M11 = TOSG(Value.Item(11))
|
||||
DR.M12 = TOSG(Value.Item(12))
|
||||
DR.F = F
|
||||
DSETR.TReqUse.AddTReqUseRow(DR)
|
||||
End Sub
|
||||
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As Decimal, Optional ByVal F As String = "N0")
|
||||
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
|
||||
|
||||
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
|
||||
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
|
||||
DR.Desc = desc '//설명
|
||||
DR.UNIT = unit '//단위
|
||||
DR.SIGN = sign '//기호
|
||||
DR.EQ = eq '//등호 =
|
||||
DR.M00 = Value
|
||||
DR.F = F
|
||||
'DR.M01 = CSng(Value.Item(1))
|
||||
'DR.M02 = CSng(Value.Item(2))
|
||||
'DR.M03 = CSng(Value.Item(3))
|
||||
'DR.M04 = CSng(Value.Item(4))
|
||||
'DR.M05 = CSng(Value.Item(5))
|
||||
'DR.M06 = CSng(Value.Item(6))
|
||||
'DR.M07 = CSng(Value.Item(7))
|
||||
'DR.M08 = CSng(Value.Item(8))
|
||||
'DR.M09 = CSng(Value.Item(9))
|
||||
'DR.M10 = CSng(Value.Item(10))
|
||||
'DR.M11 = CSng(Value.Item(11))
|
||||
'DR.M12 = CSng(Value.Item(12))
|
||||
DSETR.TReqUse.AddTReqUseRow(DR)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
907
ArinWarev1/DataSet/Calculator/CZone.vb
Normal file
907
ArinWarev1/DataSet/Calculator/CZone.vb
Normal file
@@ -0,0 +1,907 @@
|
||||
Public Class CZone
|
||||
|
||||
'Public Event PBarSet(ByVal min As Integer, ByVal max As Integer) '//프로그레시브바 초기화
|
||||
Public Event Message(ByVal Msg As String, pval As Integer, pmin As Integer, pmax As Integer) '//메세지표시
|
||||
' Public Event PBarVal(ByVal Value As Integer) '//프로그레시브 값설정
|
||||
|
||||
''' <summary>
|
||||
''' (main)에너지요구량 계산
|
||||
''' </summary>
|
||||
''' <param name="Calc_Use">에너지소요량을 추가로 계산하려면 True 를 입력</param>
|
||||
''' <param name="Log">로그가 입력될 스트링빌더</param>
|
||||
''' <remarks></remarks>
|
||||
Public Overridable Function Calc_LoadOfZones(showmsg As String, isSimul As Boolean, 기저비율 As Decimal, Optional ByVal p_난방설정온도 As Decimal = 20, Optional ByVal p_냉방설정온도 As Decimal = 26) As Boolean
|
||||
|
||||
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
||||
pLog.Add("Calc_LoadOfZones")
|
||||
pLog.Add(String.Format("기저비율:{0},난방설정온도:{1},냉방설정온도:{2}", 기저비율, p_난방설정온도, p_냉방설정온도))
|
||||
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
||||
|
||||
pLog.Add("요구량log는 임시 종료함", True)
|
||||
pLog.LogEnable = False
|
||||
|
||||
|
||||
Dim title As String = ""
|
||||
|
||||
RaiseEvent Message(showmsg + "에너지요구량계산을 준비중입니다." + vbCrLf + "잠시만기다려주세요", 0, 0, 0)
|
||||
'i_count_OpWe As Integer, d_we_month As Integer, Q_h_b_we as decimal, ==================================2010.2.21 삭제
|
||||
|
||||
Dim t_24 As Integer, f_wind As Integer, t_NA As Integer, t_h_op_d As Integer, i_count_Is As Integer
|
||||
Dim Delta_theta_er As Decimal, Delta_theta_i_NA As Decimal, Delta_theta_i_WE As Decimal, theta_i As Decimal, theta_i_h As Decimal, theta_i_c As Decimal, F_f As Decimal, F__F As Decimal, F_W As Decimal, F_S As Decimal, F_V As Decimal, h_r As Decimal, c_p_arhoa As Decimal, e_wind As Decimal, n_50 As Decimal, n_ue As Decimal, n_mech As Decimal, n_inf As Decimal, A_B As Decimal, A_u As Decimal, h_u As Decimal, V As Decimal, V_ue As Decimal
|
||||
Dim H_V_inf As Decimal, H_V_mech As Decimal, H_V_ue As Decimal, H_V_z As Decimal, theta_z As Decimal, theta_u As Decimal, H_T_D As Decimal, H_T_iu As Decimal, H_T_iz As Decimal, H_T_s As Decimal, Delta_U_WB As Decimal, H_V_mech_theta As Decimal, theta_i_h_soll As Decimal, theta_i_c_soll As Decimal, theta_V_mech As Decimal ', theta_e_min as decimal, theta_e_max as decimal
|
||||
Dim C_wirk As Decimal, tau As Decimal, a As Decimal, a_tb As Decimal, f_we As Decimal, f_NA As Decimal, f_tb As Decimal, Q_h_max As Decimal, theta_V_mech_RLT As Decimal
|
||||
Dim Q_V_inf_sink As Decimal, Q_V_mech_sink As Decimal, Q_V_z_sink As Decimal, Q_V_sink As Decimal, Q_T_e_sink As Decimal, Q_T_u_sink As Decimal, Q_T_z_sink As Decimal, Q_T_s_sink As Decimal, Q_T_sink As Decimal, Q_S_sink As Decimal, R_se As Decimal, Q_source As Decimal, Q_sink As Decimal, Q_I_source As Decimal
|
||||
Dim Q_V_inf_source As Decimal, Q_V_mech_source As Decimal, Q_V_z_source As Decimal, Q_V_source As Decimal, Q_T_e_source As Decimal, Q_T_u_source As Decimal, Q_T_z_source As Decimal, Q_T_s_source As Decimal, Q_T_source As Decimal, Q_S_source As Decimal
|
||||
Dim Q_I_source_p As Decimal, Q_I_source_fac As Decimal, Q_I_L As Decimal, Q_l_b As Decimal, Q_w_b As Decimal, gamma As Decimal, eta As Decimal, Q_h_b As Decimal, Q_h_b_op As Decimal, g_TI As Decimal
|
||||
Dim V_mech As Decimal
|
||||
'Dim d_op_month As Integer, theta_e_month as decimal
|
||||
'Dim A_H as decimal, A_C as decimal, A_L as decimal, A_W as decimal, A_V as decimal
|
||||
Dim Q_vh_b_op As Decimal
|
||||
Dim g_blinds As Decimal, tau_e_B As Decimal, rho_e_B As Decimal, U_blinds As Decimal, tau_e_B_corr As Decimal, rho_e_B_corr As Decimal 'EN 13363-1 적용
|
||||
Dim g As Decimal, alpa As Decimal
|
||||
'Dim i_sub_wall As Integer
|
||||
Dim V_mech_outdoor As Decimal
|
||||
|
||||
'//2010.02.04추가
|
||||
Dim Phi As Decimal
|
||||
'//2010.02.21추가
|
||||
Dim d_op_mth As Integer
|
||||
'//2011.04.04 추가
|
||||
Dim Q_V_win_sink As Decimal, Q_V_win_source As Decimal, H_V_win As Decimal, n_win As Decimal
|
||||
Dim zone_count As Decimal '//2012.07.08 추가 입력존의 수
|
||||
|
||||
'Dim priod_value As Single = 0
|
||||
Dim age As Decimal = 1 '//준공연도에 의한 경년변화값
|
||||
'For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
|
||||
' priod_value = CSng(DRpriod.priod)
|
||||
'Next
|
||||
'If priod_value = 0 Then
|
||||
' age = 1
|
||||
'Else
|
||||
' age = 1 / (1 - priod_value * 0.0012)
|
||||
'End If
|
||||
|
||||
t_24 = 24
|
||||
F_f = 0.5 '구조체와 하늘과의 형태계수
|
||||
F__F = 0.7 '창 프레임 감소계수 __필요
|
||||
F_W = 0.9 '수직입사가 아닌경우에 대한 감소계수
|
||||
F_S = 1 '주변환경에 의한 그늘짐
|
||||
F_V = 1 '0.9 '우선 먼지팩터는 없는 것으로 가정
|
||||
h_r = 5 * 0.9 '= 5*e(모를경우 e=0.9)
|
||||
Delta_theta_er = 10
|
||||
Delta_theta_i_NA = 4 '(용도별조건)
|
||||
'theta_i = 21
|
||||
'theta_i_h = 21
|
||||
theta_i_h_soll = p_난방설정온도 ' 20 '//난방설정온도
|
||||
theta_i_c = 24
|
||||
theta_i_c_soll = p_냉방설정온도 ' 26 '//냉방설정온도
|
||||
theta_V_mech_RLT = 27
|
||||
'theta_e_min = -11.3
|
||||
'theta_e_max = 31.5
|
||||
c_p_arhoa = 0.34 '//먼지모름
|
||||
'n_50 = 1.5
|
||||
n_ue = 0.6
|
||||
e_wind = 0.07
|
||||
f_wind = 15
|
||||
R_se = 0.043 '외기에 직접 열전달저항 확인요망
|
||||
g_TI = 0.35 '(2-113)
|
||||
alpa = 0.4 '우선 0.4으로 설정 표면흡수율 도표 2-6 참조
|
||||
n_mech = 1 '임시
|
||||
A_u = 1
|
||||
h_u = 1 '임시
|
||||
|
||||
|
||||
|
||||
RaiseEvent Message("요구량계산준비완료", 0, 0, 0)
|
||||
|
||||
|
||||
|
||||
'/////////////////////////////////////////////////////
|
||||
For i_count_HeatCool As Integer = 1 To 2 '(1) 루프회전 난방/냉방 구분해서 회전한다. 둘의 산식이 거의 비슷하므로 루프를 이용해서 계산
|
||||
|
||||
For i_count_month As Short = 0 To 12 '(2) --월전체의 루프?
|
||||
|
||||
If i_count_HeatCool = 1 AndAlso i_count_month = 1 Then
|
||||
Console.WriteLine("col")
|
||||
End If
|
||||
|
||||
|
||||
title = showmsg + "요구량계산중..." & CStr(IIf(i_count_HeatCool = 1, "난방", "냉방")) & "(" & i_count_month & "/12)"
|
||||
|
||||
pLog.Add(String.Format("요구량계산({0}),Month={1}", IIf(i_count_HeatCool = 1, "난방", "냉방"), i_count_month), True)
|
||||
|
||||
RaiseEvent Message(title, i_count_month, 0, 12)
|
||||
|
||||
Dim Mon As String = "M" & Format(i_count_month, "00") '//저장소의 필드명이 M00 식으로되어있다.
|
||||
If i_count_month = 0 Then '//난방이라면? '//최소외기온도 난방기(theta_e_min)
|
||||
Calc.Pub.theta_e(i_count_month) = TOSG(IIf(i_count_HeatCool = 1, Calc.Pub.theta_e_min, Calc.Pub.theta_e_max))
|
||||
pLog.Add(String.Format(" Calc.Pub.theta_e({0}) = {1}", i_count_month, Calc.Pub.theta_e(i_count_month)))
|
||||
End If
|
||||
|
||||
'//존 루프
|
||||
For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code") ' DSET.tbl_zone.Rows.Count '(3)
|
||||
|
||||
'//방식이나 공조는 ZZ는 사용안함이다 V=환기 외기부하처리여부의경우 0001 은 예이다.
|
||||
zone_count = TOSG(DR존.입력존의수)
|
||||
|
||||
pLog.Add(String.Format("Start Zone Code={0},Desc={1},입력존수={2}", DR존.code, DR존.설명, zone_count))
|
||||
|
||||
If DR존.냉난방방식 <> "기능없음" Or (DR존.냉난방공조 <> "기능없음" And (DR존.냉난방공조 <> "환기" Or DR존.외기부하처리여부 = "예")) Then
|
||||
Q_vh_b_op = 0
|
||||
|
||||
'//i_count_OpWe 1은 평일 2는 주말이다ㅡㅡ/
|
||||
'======================================2010.2.21 삭제
|
||||
'For i_count_OpWe = 1 To 2
|
||||
'======================================2010.2.21 삭제
|
||||
Q_V_inf_sink = 0
|
||||
Q_V_inf_source = 0
|
||||
Q_V_mech_sink = 0
|
||||
Q_V_mech_source = 0
|
||||
Q_V_z_sink = 0
|
||||
Q_V_z_source = 0
|
||||
Q_V_win_sink = 0 '//2011.04.04 추가
|
||||
Q_V_win_source = 0 '//2011.04.04 추가
|
||||
|
||||
Q_T_e_sink = 0
|
||||
Q_T_e_source = 0
|
||||
Q_T_u_sink = 0
|
||||
Q_T_u_source = 0
|
||||
Q_T_z_sink = 0
|
||||
Q_T_z_source = 0
|
||||
Q_T_s_sink = 0
|
||||
Q_T_s_source = 0
|
||||
|
||||
A_B = TOSG(DR존.면적) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
|
||||
V = TOSG(DR존.순실체적) ' Worksheets("입력존").Range("체적1").Offset(0, i_count_zone - 1)
|
||||
V_ue = A_u * h_u
|
||||
'Log.AppendLine(" >> V_ue = A_u * h_u = // au와 hu 는 선언부에서 1값으로 고정되어있음 v_ue는 항상 1")
|
||||
|
||||
'//존의 프로필설정에대한 실제 프로필의 데이터를 가져옴
|
||||
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'"), DS.tbl_profileRow())
|
||||
If DR프로필.GetUpperBound(0) = -1 Then
|
||||
MsgBox("존=" & DR존.code & " 의 프로필=" & DR존.프로필 & " 의 데이터가 존재하지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
Else
|
||||
'Log.AppendLine(" >> 존의 프로필코드(" & DR존.프로필 & ") 에 해당하는 프로필정보를 가져옵니다")
|
||||
t_h_op_d = TOIT(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
|
||||
'===================================================================================2010.2.21 추가
|
||||
If i_count_month = 0 Then
|
||||
d_op_mth = 0
|
||||
Else
|
||||
d_op_mth = CInt(TOSG(DR프로필(0)("day" & Format(i_count_month, "00"))))
|
||||
End If
|
||||
'===================================================================================2010.2.21 추가
|
||||
If Not isSimul Then '//개선계산중이아닌경우에만 사용한다.
|
||||
theta_i_h_soll = TOSG(DR프로필(0).난방설정온도) ' Worksheets("설정조건").Range("난방설정온도1").Offset(0, i_count_profile)
|
||||
theta_i_c_soll = TOSG(DR프로필(0).냉방설정온도) ' Worksheets("설정조건").Range("냉방설정온도1").Offset(0, i_count_profile)
|
||||
End If
|
||||
Delta_theta_i_NA = TOSG(DR프로필(0).야간최저허용온도) ' Worksheets("설정조건").Range("야간최저허용온도1").Offset(0, i_count_profile)
|
||||
Delta_theta_i_WE = TOSG(DR프로필(0).주말최저허용온도) ' Worksheets("설정조건").Range("주말최저허용온도1").Offset(0, i_count_profile)
|
||||
' If i_count_OpWe = 1 Then=============================================================2010.2.21 삭제
|
||||
'Log.AppendLine(" >> i_count_OpWe = 1 >> Q_I_source_p/Q_I_source_fac/V_mech 계산됨")
|
||||
Q_I_source_p = TOSG(DR프로필(0).사람) * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
|
||||
Q_I_source_fac = (TOSG(DR프로필(0).작업보조기기) * A_B) + 기저비율 ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
|
||||
V_mech = TOSG(DR프로필(0).최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
|
||||
' Else '=============================================================2010.2.21 삭제
|
||||
' Log.AppendLine(" >> i_count_OpWe <> 1 >> Q_I_source_p/Q_I_source_fac 는 0입니다")
|
||||
' Q_I_source_p = 0 '주말 사람없음
|
||||
' Q_I_source_fac = 0 '주말 기기발열 없음
|
||||
'End If
|
||||
'Q_I_L = 0 'mu_L*Q_I_L_elektr (2-123)추후 추가
|
||||
End If
|
||||
|
||||
V_mech_outdoor = 1 '외기처리 관련 (ZZ=사용안함 Y=예)
|
||||
If DR존.냉난방방식 <> "기능없음" And DR존.냉난방공조 <> "기능없음" And DR존.외기부하처리여부 = "예" Then
|
||||
If i_count_HeatCool = 1 Then '//난방이라면
|
||||
If DR존.냉난방공조 <> "난방" AndAlso DR존.냉난방공조 <> "냉난방" Then '난방/냉난방 이 아니면!
|
||||
If theta_i_h_soll > Calc.Pub.theta_e(i_count_month) Then '//난방설정온도 > 외기온도(난방기)
|
||||
Q_vh_b_op = V_mech * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)) * t_h_op_d * c_p_arhoa * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
|
||||
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
|
||||
'Log.AppendLine(" >> 외기처리됨")
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
If DR존.냉난방공조 <> "냉방" AndAlso DR존.냉난방공조 <> "냉난방" Then '냉방/냉난방이 아닐경우
|
||||
If theta_i_c_soll < Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_vh_b_op = V_mech * (Calc.Pub.theta_e(i_count_month) - theta_i_c_soll) * t_h_op_d * c_p_arhoa * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
|
||||
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
|
||||
'Log.AppendLine(" >> 외기처리됨")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format("Q_vh_b_op:{0},V_mech_outdoor:{1}", Q_vh_b_op, V_mech_outdoor))
|
||||
|
||||
|
||||
|
||||
n_50 = TOSG(DR존.침기율) '//tosg 는 빈값일경우 0을 반환
|
||||
n_inf = n_50 * e_wind '(2-59) 환기기기 없는 경우
|
||||
'n_inf = n_50 * e_wind * (1 + f_V_mech * t_V_mech / 24) '(2-60) 급기 및 배기에 대한 환기회수 필요
|
||||
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
|
||||
'If n_nutz < 1.2 Then
|
||||
' Delta_n_win = n_nutz - (n_nutz - 0.2) * n_inf - 0.1
|
||||
'Else
|
||||
' Delta_n_win = n_nutz - n_inf - 0.1
|
||||
'End If
|
||||
'If Delta_n_win < 0 Then
|
||||
' Delta_n_win = 0
|
||||
'End If
|
||||
'n_win = 0.1 + Delta_n_win * t_h_op_d / 24
|
||||
n_win = 0.1 ' 최소외기 도입량은 환기기기 유무와 상관없이 적용되는 것으로 평가하기 때문에 자연환기 기본값만 적용
|
||||
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
|
||||
|
||||
|
||||
H_T_D = 0
|
||||
H_T_iu = 0
|
||||
H_T_iz = 0
|
||||
|
||||
|
||||
Dim Drow프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
If DR존.조명부하산출방법 = "계산치" Then
|
||||
Q_I_L = TOSG(DR존.조명에너지부하율계산치) * TOSG(Drow프로필.일일사용시간) * A_B
|
||||
Else
|
||||
Q_I_L = TOSG(DR존.조명에너지부하율입력치) * TOSG(Drow프로필.일일사용시간) * A_B
|
||||
End If
|
||||
'Q_I_L = TOSG(IIf(DR존.조명부하산출방법 = "계산치", TOSG(DR존.조명에너지부하율계산치), TOSG(DR존.조명에너지부하율입력치))) * TOSG(Drow프로필.일일사용시간) * A_B
|
||||
Q_w_b = TOSG(Drow프로필.일일급탕요구량) * A_B * d_op_mth
|
||||
'===================================2010.2.21 삭제
|
||||
'If DR존.조명부하산출방법 = "CALC" Then '//OpWe의 2번은 주말인거 같다.
|
||||
' '//부하율계산치?입력치구분
|
||||
' Q_w_b = TOSG(DR존.급탕요구량) * A_B * Calc.Pub.d_op_mth(i_count_month)
|
||||
'Else
|
||||
' Q_I_L = 0 '주말 소등으로 설정
|
||||
' Q_w_b = 0 '주말은 급탕사용안함
|
||||
'End If
|
||||
'===================================2010.2.21 삭제
|
||||
|
||||
'Log.AppendLine(" >> 현재존을 사용하는 각 입력면(" & DSET.tbl_myoun.Select("존분류='" & DR존.code & "'").GetUpperBound(0) & ")으로부터 데이터를 누적")
|
||||
For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "'")
|
||||
If Dr입력면.code <> "0" Then
|
||||
If DR존.열교가산치 = "내단열" Then
|
||||
Delta_U_WB = 0.15 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
|
||||
Else
|
||||
Delta_U_WB = 0.1 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
|
||||
End If
|
||||
Select Case Dr입력면.건축부위방식.Trim ' Case Worksheets("입력면").Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
Case "외벽" '"외벽"
|
||||
'Dr입력면.열관류율 >> Calc.Get_열관류율(Dr입력면)
|
||||
H_T_D = H_T_D + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) + Delta_U_WB * TOSG(Dr입력면.건축부위면적) ' Worksheets("입력면").Range("부위면적" & i_sub_wall & "").Offset(0, i_count_wall) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
|
||||
Case "외부창", "내부창" '=================2010.03.20 수정
|
||||
If Dr입력면.블라인드유무 = "유" Then ' '0001(=유) Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
|
||||
If Calc.Get_열관류율(Dr입력면) = 0 Then
|
||||
MsgBox("블라인드 사용이지만 열관류율 수치가 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
|
||||
Else
|
||||
Select Case Dr입력면.블라인드위치.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
|
||||
Case "내부" '"내부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 30))
|
||||
Case "중간" '중간"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 3))
|
||||
Case "외부" ' '외부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 5 + 1 / 10))
|
||||
End Select
|
||||
End If
|
||||
|
||||
Else
|
||||
U_blinds = Calc.Get_열관류율(Dr입력면) * age 'Worksheets("입력면").Range("열관류율" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
End If
|
||||
|
||||
'=========================================================================================================2010.03.20 수정
|
||||
If Dr입력면.건축부위방식.Trim = "외부창" Then
|
||||
H_T_D = H_T_D + U_blinds * TOSG(Dr입력면.건축부위면적) + Delta_U_WB * TOSG(Dr입력면.건축부위면적) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
|
||||
Else
|
||||
H_T_iu = H_T_iu + U_blinds * TOSG(Dr입력면.건축부위면적)
|
||||
End If
|
||||
'=========================================================================================================2010.03.20 수정
|
||||
Case "내벽" ' "내벽"
|
||||
H_T_iu = H_T_iu + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) '(2-48)
|
||||
Case "간벽" '"간벽"
|
||||
H_T_iz = H_T_iz + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) '(2-52)
|
||||
Case Else
|
||||
MsgBox("입력면 건축부위방식이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
End Select
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
If H_T_D = 0 Then
|
||||
H_V_inf = 0
|
||||
Else
|
||||
H_V_inf = n_inf * V * c_p_arhoa '(2-58) c_p_arhoa는 0.34 V는 존의 체적
|
||||
End If
|
||||
H_V_win = n_win * V * c_p_arhoa '//2011.04.04 추가
|
||||
H_V_mech = V_mech * c_p_arhoa 'n_mech * V * c_p_arhoa '(2-83)
|
||||
H_V_ue = n_ue * V_ue * c_p_arhoa '(2-94)
|
||||
'H_V_z = n_z_d * c_p_arhoa '(2-99)
|
||||
|
||||
pLog.Add(String.Format("H_V_inf:{0},H_V_win:{1},H_V_mech:{2},H_V_ue:{3}", H_V_inf, H_V_win, H_V_mech, H_V_ue))
|
||||
|
||||
|
||||
If DR존.열저장능력 = "" Then
|
||||
MsgBox(DR존.설명 & "의 열저장능력이 입력되어 있지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
C_wirk = 0
|
||||
Else
|
||||
C_wirk = TOSG(DR존.열저장능력) * A_B ' .Worksheets("입력존").Range("열저장능력1").Offset(0, i_count_zone - 1) * A_B
|
||||
End If
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
H_V_mech_theta = 0 'H_V_mech * (theta_i_h_soll - theta_V_mech) / 6 '(2-130) 우선 고려안함
|
||||
Else
|
||||
H_V_mech_theta = 0 'H_V_mech * (theta_i_c_soll - theta_V_mech) / 6 '(2-130)
|
||||
End If
|
||||
tau = C_wirk / ((H_T_D + H_T_iu + H_T_iz) + (H_V_inf + H_V_mech + H_V_ue + H_V_win) + H_V_mech_theta) '(2-22, 129) 추후 H_V_z 추가 '//2011.04.04 H_V_win 추가
|
||||
If tau < 48 Then tau = 48
|
||||
|
||||
a = 1 + tau / 16 '(2-25)
|
||||
|
||||
a_tb = 1 ' =A_beheizt / A_B 'A_beheizt는 난방면적, A_B는 전용면적
|
||||
|
||||
t_NA = 24 - t_h_op_d
|
||||
f_tb = TOSG(0.8 * (1 - Math.Exp(-Q_h_max / (A_B * 35))) * a_tb ^ 2) '(2-34)
|
||||
|
||||
pLog.Add(String.Format("t_NA:{0},f_tb:{1}", t_NA, f_tb))
|
||||
|
||||
'================================================2010.2.21 삭제
|
||||
'If i_count_OpWe = 1 Then
|
||||
'================================================2010.2.21 삭제
|
||||
Select Case DR존.야간운전방식.Trim '공통1002 Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1)
|
||||
Case "정상가동" '정상가동"
|
||||
f_NA = 0
|
||||
Case "감소가동" '감소가동"
|
||||
f_NA = TOSG(0.13 * t_NA * Math.Exp(-tau / 250) / 24) '(2-28) 감소가동
|
||||
Case "가동정지" '가동정지"
|
||||
f_NA = TOSG(0.26 * t_NA * Math.Exp(-tau / 250) / 24) '(2-29) 가동정지
|
||||
End Select
|
||||
theta_i_h = theta_i_h_soll - f_NA * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
|
||||
If theta_i_h < theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 Then theta_i_h = theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 '(2-27) 야간감소
|
||||
'================================================2010.2.21 삭제
|
||||
'Else
|
||||
'================================================2010.2.21 삭제
|
||||
Select Case DR존.주말운전방식.Trim ' Worksheets("입력존").Range("주말가동1").Offset(0, i_count_zone - 1)
|
||||
Case "정상가동" '정상가동"
|
||||
f_we = 0
|
||||
Case "감소가동" '감소가동"
|
||||
f_we = TOSG(0.2 * (1 - 0.4 * tau / 250)) '(2-31) 난방감소
|
||||
Case "가동정지" '가동정지"
|
||||
f_we = TOSG(0.3 * (1 - 0.2 * tau / 250)) '(2-32) 난방정지식
|
||||
End Select
|
||||
theta_i_h = theta_i_h_soll - f_we * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
|
||||
If theta_i_h < theta_i_h_soll - Delta_theta_i_WE Then theta_i_h = theta_i_h_soll - Delta_theta_i_WE '(2-30) 주말감소식 변형
|
||||
'================================================2010.2.21 삭제
|
||||
'End If
|
||||
'================================================2010.2.21 삭제
|
||||
|
||||
pLog.Add(String.Format("theta_i_h:{0}", theta_i_h))
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
theta_i = theta_i_h
|
||||
theta_z = theta_i_h
|
||||
theta_u = TOSG(theta_i_h_soll - 0.7 * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)))
|
||||
Else
|
||||
theta_i = theta_i_c_soll '24'에너지 사용량 계산할때 24 사용
|
||||
theta_z = theta_i_c_soll
|
||||
theta_u = TOSG(theta_i_c_soll - 0.7 * (theta_i_c_soll - Calc.Pub.theta_e(i_count_month)))
|
||||
End If
|
||||
|
||||
'theta_i_h = theta_i_h_soll - f_tb * (theta_i_h_soll - theta_e(i_count_month)) '(2-33) 공간적제한
|
||||
'theta_i_h = theta_i_NA - f_tb * (theta_i_NA - theta_e(i_count_month)) '(2-35) 공간적 시간적 제한
|
||||
|
||||
'theta_V_mech = theta_e(i_count_month) '(2-90) 공조처리 없는 경우
|
||||
'theta_V_mech = theta_e(i_count_month) + eta_V_mech * (theta_i - theta_e(i_count_month)) '(2-91) 비제어적 열교환 eta_V_mech은 사용자입력
|
||||
theta_V_mech_RLT = TOSG(IIf(i_count_HeatCool = 1, 27, 16))
|
||||
|
||||
theta_V_mech = Calc.Pub.theta_e(i_count_month) 'theta_V_mech_RLT '(2-92) 공조처리된 급기온도(도표 3-3, 3-4, 7-5) 난방 27, 냉방 16으로 설정
|
||||
|
||||
pLog.Add(String.Format("theta_i:{0},theta_z:{1},theta_u:{2},theta_V_mech_RLT:{3},theta_V_mech:{4}", theta_i, theta_z, theta_u, theta_V_mech_RLT, theta_V_mech))
|
||||
|
||||
|
||||
'=======================================================================2010.02.04 추가부분 시작
|
||||
If DR존.냉난방공조처리시스템 <> "0" And DR존.냉난방공조 = "환기" Then '//냉난방공조처리시스템이 선택되어있고 공조가 환기라면
|
||||
'//공조처리스템과 일치하는 공조기기(tbl_kongjo) 를 찾아서 계산한다.
|
||||
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
|
||||
Select Case DR(0).열교환기유형.Trim
|
||||
Case "현열교환", "전열교환" '//현열교환,전열교환
|
||||
Phi = TOSG(DR(0).열회수율) ' Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
|
||||
Case Else
|
||||
Phi = 0
|
||||
End Select
|
||||
theta_V_mech = Calc.Pub.theta_e(i_count_month) + Phi * (theta_i - Calc.Pub.theta_e(i_count_month))
|
||||
Else
|
||||
MsgBox(DR존.설명 & "존의 냉난방공조처리스템(" & DR존.냉난방공조처리시스템 & ") 의값이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
End If
|
||||
End If
|
||||
'=======================================================================2010.02.04 추가부분 끝
|
||||
|
||||
If theta_i > Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_V_inf_sink = H_V_inf * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-56)
|
||||
Q_V_win_sink = H_V_win * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '//2011.04.04 추가
|
||||
Else
|
||||
Q_V_inf_source = H_V_inf * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
|
||||
Q_V_win_source = H_V_win * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '//2011.04.04 추가
|
||||
End If
|
||||
'================================================2010.2.21 삭제
|
||||
'If i_count_OpWe = 1 Then
|
||||
'================================================2010.2.21 삭제
|
||||
If theta_i > theta_V_mech Then
|
||||
Q_V_mech_sink = H_V_mech * V_mech_outdoor * (theta_i - theta_V_mech) * t_h_op_d '(2-81)
|
||||
Else
|
||||
Q_V_mech_source = H_V_mech * V_mech_outdoor * (theta_V_mech - theta_i) * t_h_op_d '(2-
|
||||
End If
|
||||
'================================================2010.2.21 삭제
|
||||
'Else
|
||||
'If theta_i > theta_V_mech Then
|
||||
' Q_V_mech_sink = 0
|
||||
'Else
|
||||
' Q_V_mech_source = 0
|
||||
'End If
|
||||
'End If
|
||||
'================================================2010.2.21 삭제
|
||||
|
||||
pLog.Add(String.Format("Q_V_inf_sink:{0},Q_V_win_sink:{1},Q_V_mech_sink:{2},Q_V_mech_source:{3}", _
|
||||
Q_V_inf_sink, Q_V_win_sink, Q_V_mech_sink, Q_V_mech_source))
|
||||
|
||||
|
||||
If theta_i > theta_z Then
|
||||
Q_V_z_sink = H_V_z * (theta_i - theta_z) * t_24 '(2-97)
|
||||
Else
|
||||
Q_V_z_source = H_V_z * (theta_z - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
|
||||
Q_V_sink = Q_V_inf_sink + Q_V_mech_sink + Q_V_z_sink + Q_V_win_sink '(2-13) '//2011.04.04 추가
|
||||
|
||||
'//Console.WriteLine(String.Format("mon={0},QV_sink={1},{2},{3},{4},{5}", i_count_month, Q_V_sink, Q_V_inf_sink, Q_V_mech_sink, Q_V_z_sink, Q_V_win_sink))
|
||||
|
||||
Q_V_source = Q_V_inf_source + Q_V_mech_source + Q_V_z_source + Q_V_win_source '(2- '//2011.04.04 추가
|
||||
|
||||
If theta_i > Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_T_e_sink = H_T_D * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-42)
|
||||
Else
|
||||
Q_T_e_source = H_T_D * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
If theta_i > theta_u Then
|
||||
Q_T_u_sink = H_T_iu * (theta_i - theta_u) * t_24 '(2-46)
|
||||
Else
|
||||
Q_T_u_source = H_T_iu * (theta_u - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
If theta_i > theta_z Then
|
||||
Q_T_z_sink = H_T_iz * (theta_i - theta_z) * t_24 '(2-50)
|
||||
Else
|
||||
Q_T_z_source = H_T_iz * (theta_z - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
If theta_i > Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_T_s_sink = H_T_s * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-53) 추후수정
|
||||
Else
|
||||
Q_T_s_source = H_T_s * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-53) 추후수정
|
||||
End If
|
||||
|
||||
Q_T_sink = Q_T_e_sink + Q_T_u_sink + Q_T_z_sink + Q_T_s_sink '(2-12)
|
||||
Q_T_source = Q_T_e_source + Q_T_u_source + Q_T_z_source + Q_T_s_source '(2-12)
|
||||
|
||||
Q_S_sink = 0
|
||||
Q_S_source = 0
|
||||
|
||||
pLog.Add(String.Format("Q_T_sink:{0},Q_T_source:{1}", Q_T_sink, Q_T_source))
|
||||
|
||||
For Each DRF입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "' and code <> '0'") '//해당존을 사용하는 모든 입력면을 가져옴
|
||||
Select Case DRF입력면.방위.Trim ' Worksheets("입력면").Range("방위" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
Case "수평" '"수평"
|
||||
i_count_Is = 0
|
||||
Case "남" '"남"
|
||||
i_count_Is = 1
|
||||
Case "남동" '"남동"
|
||||
i_count_Is = 2
|
||||
Case "남서" '"남서"
|
||||
i_count_Is = 3
|
||||
Case "동" '"동"
|
||||
i_count_Is = 4
|
||||
Case "서" '"서"
|
||||
i_count_Is = 5
|
||||
Case "북동" '"북동"
|
||||
i_count_Is = 6
|
||||
Case "북서" '"북서"
|
||||
i_count_Is = 7
|
||||
Case "북" '"북"
|
||||
i_count_Is = 8
|
||||
'==========================================================2010.03.20 추가
|
||||
Case Else
|
||||
i_count_Is = -1
|
||||
'==========================================================2010.03.20 추가
|
||||
End Select
|
||||
|
||||
If i_count_Is <> -1 Then '=====================================2010.03.20 추가
|
||||
|
||||
|
||||
Select Case DRF입력면.건축부위방식.Trim ' Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
Case "외벽" '외벽
|
||||
If alpa * Calc.Pub.I_s(i_count_Is, i_count_month) < F_f * h_r * Delta_theta_er Then
|
||||
Q_S_sink = Q_S_sink + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * (F_f * h_r * Delta_theta_er - alpa * Calc.Pub.I_s(i_count_Is, i_count_month)) * t_24 '(2-111)
|
||||
Else
|
||||
'Log.AppendLine("외벽 if else = " & Q_S_source)
|
||||
Q_S_source = Q_S_source + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * (alpa * Calc.Pub.I_s(i_count_Is, i_count_month) - F_f * h_r * Delta_theta_er) * t_24 '(2-
|
||||
'Log.AppendLine(">>" & Q_S_source)
|
||||
End If
|
||||
|
||||
Case "외부창", "내부창" '=====================================2010.03.20 수정
|
||||
If TOSG(DRF입력면.수평차양각) < 67.5 Then 'Range("에너지투과율" & i_sub_wall & "").Offset(1, i_count_wall) < 67.5 Then
|
||||
|
||||
If DRF입력면.블라인드유무 = "유" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
|
||||
Select Case DRF입력면.블라인드빛종류.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(6, i_count_wall)
|
||||
Case "불투과(t=0.0)" '불투과(t=0.0)"
|
||||
tau_e_B = 0
|
||||
Select Case DRF입력면.블라인드색상.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
|
||||
Case "흰색" '흰색"
|
||||
rho_e_B = 0.7
|
||||
Case "밝은색" '밝은색"
|
||||
rho_e_B = 0.5
|
||||
Case "어두운색" '어두운색"
|
||||
rho_e_B = 0.3
|
||||
Case "검은색" '검은색"
|
||||
rho_e_B = 0.1
|
||||
Case Else
|
||||
MsgBox("불투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
Case "약투과(t=0.2)" '약투과(t=0.2)"
|
||||
tau_e_B = 0.2
|
||||
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
|
||||
Case "흰색"
|
||||
rho_e_B = 0.6
|
||||
Case "밝은색"
|
||||
rho_e_B = 0.4
|
||||
Case "어두운색"
|
||||
rho_e_B = 0.2
|
||||
Case "검은색"
|
||||
rho_e_B = 0.1
|
||||
Case Else
|
||||
MsgBox("약투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
Case "반투과(t=0.4)" '반투과(t=0.4)"
|
||||
tau_e_B = 0.4
|
||||
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
|
||||
Case "흰색"
|
||||
rho_e_B = 0.4
|
||||
Case "밝은색"
|
||||
rho_e_B = 0.3
|
||||
Case "어두운색"
|
||||
rho_e_B = 0.2
|
||||
Case "검은색"
|
||||
rho_e_B = 0.1
|
||||
Case Else
|
||||
MsgBox("반투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
End Select
|
||||
|
||||
If DRF입력면.블라인드각도 = "45도" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(5, i_count_wall) = "45도" Then
|
||||
tau_e_B_corr = TOSG(0.65 * tau_e_B + 0.15 * rho_e_B)
|
||||
rho_e_B_corr = TOSG(rho_e_B * (0.75 + 0.7 * tau_e_B))
|
||||
tau_e_B = tau_e_B_corr
|
||||
rho_e_B = rho_e_B_corr
|
||||
End If
|
||||
|
||||
g = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
If DRF입력면.블라인드위치.Trim <> "" AndAlso Calc.Get_열관류율(DRF입력면) = 0 Then
|
||||
MsgBox(DRF입력면.설명 & "의 열관류율이 0입니다", MsgBoxStyle.Critical, "확인")
|
||||
Else
|
||||
Select Case DRF입력면.블라인드위치.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
|
||||
Case "내부" '내부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 30))
|
||||
g_blinds = g * (1 - g * rho_e_B - (1 - tau_e_B - rho_e_B) * U_blinds / 30)
|
||||
Case "중간" '중간"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 3))
|
||||
g_blinds = g * tau_e_B + g * ((1 - tau_e_B - rho_e_B) + (1 - g) * rho_e_B) * U_blinds / 3
|
||||
Case "외부" '외부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 5 + 1 / 10))
|
||||
g_blinds = tau_e_B * g + (1 - tau_e_B - rho_e_B) * U_blinds / 10 + tau_e_B * (1 - g) * g / 5
|
||||
Case Else
|
||||
MsgBox("블라인드위치가 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
End If
|
||||
'===========================================================================2010.02.27 추가
|
||||
If i_count_month = 0 Then
|
||||
If i_count_HeatCool = 1 Then
|
||||
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1) * g_blinds
|
||||
Else
|
||||
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1) * g_blinds
|
||||
End If
|
||||
Else
|
||||
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1) * g_blinds
|
||||
End If
|
||||
'===========================================================================2010.02.27 추가
|
||||
|
||||
Else
|
||||
g_blinds = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
|
||||
End If
|
||||
If TOSG(DRF입력면.수평차양각) < 67.5 Then '===================================================================2014.04.03 if문 추가
|
||||
Q_S_source = TOSG(Q_S_source + F__F * TOSG(DRF입력면.건축부위면적) * F_S * F_W * F_V * g_blinds * Math.Cos(1.33 * TOSG(DRF입력면.수평차양각) * 3.141592 / 180) * (1 - TOSG(DRF입력면.수직차양각) / 300) * Calc.Pub.I_s(i_count_Is, i_count_month) * t_24) '(2-113)
|
||||
End If
|
||||
|
||||
End If
|
||||
End Select
|
||||
End If '==========================================================2010.03.20 추가
|
||||
Next
|
||||
|
||||
Q_I_source = Q_I_source_p + Q_I_source_fac + Q_I_L '(2-20)
|
||||
Q_source = Q_S_source + Q_T_source + Q_V_source + Q_I_source '(2-16)
|
||||
If i_count_month = 0 AndAlso i_count_HeatCool = 1 Then Q_source = 0 ' 난방 최대부하 계산
|
||||
Q_sink = Q_T_sink + Q_V_sink + Q_S_sink '(2-11) Q_I_sink는 현재 고려안함
|
||||
|
||||
If Q_sink = 0 Then
|
||||
eta = 0
|
||||
Else
|
||||
gamma = Q_source / Q_sink '(2-21)
|
||||
'If gamma > 1.1 And a > 100 Then
|
||||
If gamma ^ a > 1000000 Then
|
||||
eta = 1 / gamma
|
||||
Else
|
||||
If gamma = 1 Then
|
||||
eta = a / (a + 1) '(2-24)
|
||||
Else
|
||||
eta = TOSG((1 - gamma ^ a) / (1 - gamma ^ (a + 1))) '(2-23)
|
||||
End If
|
||||
End If
|
||||
|
||||
If 1 - (eta * gamma) < 0.01 Then eta = 1 / gamma '(2-137)
|
||||
If (1 - eta) * gamma < 0.01 Then eta = 1 '(2-138)
|
||||
'If V_mech >= Q_C_max / (c_p_arhoa * (theta_i - theta_mech)) Then eta = 1 '(2-139) 추후 고민
|
||||
End If
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
Q_h_b = Q_sink - eta * Q_source '(2-1)
|
||||
Else
|
||||
Q_h_b = (1 - eta) * Q_source '(2-7)
|
||||
End If
|
||||
|
||||
If Q_h_b < 0.001 Then Q_h_b = 0 '1W 미만 제거
|
||||
|
||||
pLog.Add(String.Format("Q_h_b:{0}", Q_h_b))
|
||||
|
||||
'========================================================2010.2.21 수정 And i_count_OpWe = 1 삭제
|
||||
If i_count_month = 0 Then
|
||||
If t_h_op_d <> 0 Then
|
||||
Q_h_b_op = Q_h_b / t_h_op_d * zone_count
|
||||
Else
|
||||
Q_h_b_op = Q_h_b * zone_count
|
||||
End If
|
||||
Else
|
||||
'=================================================2010.2.21 삭제
|
||||
'If i_count_OpWe = 1 Then
|
||||
'=================================================2010.2.21 삭제
|
||||
Q_h_b_op = Q_h_b * d_op_mth * zone_count
|
||||
' MsgBox(i_count_month & " " & Q_h_b & " " & d_op(i_count_month) & " " & Q_h_b_op)
|
||||
'=================================================2010.2.21 삭제
|
||||
'Else
|
||||
'Q_h_b_we = Q_h_b * Calc.Pub.d_we(i_count_month)
|
||||
'=================================================2010.2.21 삭제
|
||||
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
If DR존.조명부하산출방법 = "계산치" Then 'Worksheets("조명").Range("조명부하산출방법1").Offset(0, i_count_zone - 1) = "계산치" Then
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
|
||||
Else
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
|
||||
End If
|
||||
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
|
||||
'=================================================2010.2.21 삭제
|
||||
'End If
|
||||
'=================================================2010.2.21 삭제
|
||||
End If
|
||||
'Q_h_b_mth = d_op(i_count_month) * (Q_sink_op - eta_op * Q_source_op) + d_we(i_count_month) * (Q_sink_we - eta_we * Q_source_we) '(2-6)
|
||||
'======================================2010.2.21 삭제
|
||||
'Next
|
||||
'======================================2010.2.21 삭제
|
||||
Else
|
||||
A_B = TOSG(DR존.면적) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
|
||||
|
||||
Q_vh_b_op = 0
|
||||
Q_h_b_op = 0
|
||||
'Q_h_b_we = 0
|
||||
|
||||
'//조명부하산출방법이 계산치(0001)일경우 계산치로 그렇지않을경우 입력치로 계산함
|
||||
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
|
||||
If DR존.조명부하산출방법 = "계산치" Then
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
|
||||
Else
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
|
||||
End If
|
||||
|
||||
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format("Q_w_b:{0}", Q_w_b))
|
||||
|
||||
Dim Dr최대부하 As New C최대냉난방부하.Citem(DSETR, DR존.code) ' DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & DR존.code & "'")(0), DSR.최대냉난방부하Row)
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
If i_count_month = 0 Then '//0번시트는최대 냉난방부하 시트이다.
|
||||
Dr최대부하.최대난방기기부하 = TOSG((Q_h_b_op) / 1000) ''=================== Q_h_b_we 2010.2.21 삭제
|
||||
'Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
|
||||
If DR존.야간운전방식 = "가동정지" Then ' Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1) = "가동정지" Then
|
||||
Dr최대부하.일일난방최대가동시간 = t_h_op_d
|
||||
'Dr최대냉난방부하.난방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
|
||||
Else
|
||||
Dr최대부하.일일난방최대가동시간 = 24
|
||||
'Dr최대냉난방부하.난방최대가동시간 = 24 ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = 24
|
||||
End If
|
||||
Else
|
||||
Dim Dr월에너지요구량 As New C에너지분석(DSETR, Result, i_count_month, DR존.code)
|
||||
|
||||
'Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
|
||||
'Dr월에너지요구량 = DSETR.에너지분석및요구량.Rows(i_count_month - 1) '//각 월별 시트에 값을 셋트(에너지분석및요구량 테이블에 들어있다)
|
||||
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "난방" Then '//냉난방,난방
|
||||
Dr월에너지요구량.난방에너지요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
|
||||
' If i_count_month = 1 Then MsgBox("1")
|
||||
'Log.AppendLine("공조값설정=" & CSng(Q_vh_b_op / 1000))
|
||||
ElseIf DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "난방" Then '//냉난방,난방
|
||||
Dr월에너지요구량.난방에너지요구량열 = 0
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
|
||||
'//오류확인용 존1만 확인한다.
|
||||
'If DR존.code = "0001" Then MsgBox(DR존.냉난방방식 & vbCrLf & DR존.냉난방공조 & vbCrLf & CSng((Q_h_b_op + Q_h_b_we) / 1000), MsgBoxStyle.Information, DR존.code)
|
||||
|
||||
Else
|
||||
If (DR존.냉난방공조 = "냉방" Or DR존.냉난방공조 = "환기") And DR존.외기부하처리여부 = "예" Then '냉방/환기/"예" Then
|
||||
Dr월에너지요구량.난방에너지요구량열 = 0
|
||||
' If i_count_month = 1 Then MsgBox("3")
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
|
||||
Else
|
||||
' If i_count_month = 1 Then MsgBox("4")
|
||||
Dr월에너지요구량.난방에너지요구량열 = 0
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
Dr월에너지요구량.조명에너지요구량 = Q_l_b / 1000
|
||||
|
||||
' Log.AppendLine("i_count_HeatCool=" & i_count_HeatCool & "i_count_month=" & i_count_month & ",급탕에너지요구량=" & CSng(Q_w_b / 1000))
|
||||
Dr월에너지요구량.급탕에너지요구량 = Q_w_b / 1000
|
||||
' MsgBox("난방요구량" & Dr월에너지요구량.난방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
|
||||
|
||||
pLog.Add(String.Format("난방에너지요구량열:{0},공조환기:{1},조명에너지요구량:{2},급탕에너지요구량:{3}", _
|
||||
Dr월에너지요구량.난방에너지요구량열, _
|
||||
Dr월에너지요구량.난방에너지요구량공조환기, _
|
||||
Dr월에너지요구량.조명에너지요구량, _
|
||||
Dr월에너지요구량.급탕에너지요구량))
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
If i_count_month = 0 Then
|
||||
Dr최대부하.최대냉방기기부하 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
|
||||
If DR존.야간운전방식 = "가동정지" Then '//가동정지
|
||||
Dr최대부하.일일냉방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
|
||||
Else
|
||||
Dr최대부하.일일냉방최대가동시간 = 24 'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = 24
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format("Dr최대부하.일일냉방최대가동시간:{0}", Dr최대부하.일일냉방최대가동시간))
|
||||
|
||||
Else
|
||||
Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
|
||||
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "냉방" Then '//냉난방/냉방
|
||||
Dr월에너지요구량.냉방요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
|
||||
Else
|
||||
If DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "냉방" Then '//냉난방/냉방
|
||||
Dr월에너지요구량.냉방요구량열 = 0
|
||||
Dr월에너지요구량.냉방요구량공조 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
Else
|
||||
If (DR존.냉난방공조 = "난방" Or DR존.냉난방공조 = "환기") And DR존.냉난방공조 = "예" Then '//난방/환기/예
|
||||
Dr월에너지요구량.냉방요구량열 = 0
|
||||
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
|
||||
Else
|
||||
Dr월에너지요구량.냉방요구량열 = 0
|
||||
Dr월에너지요구량.냉방요구량공조 = 0
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format("냉방요구량열:{0},냉방요구량공조{1}", Dr월에너지요구량.냉방요구량열, Dr월에너지요구량.냉방요구량공조))
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
Next '(3)
|
||||
|
||||
Dim CAir As New CAirHandling(DSET, DSETR, Result)
|
||||
If i_count_month = 0 Then
|
||||
CAir.Calc_Max_Power(i_count_HeatCool) '//AIR HANDLING 모듈 에 존재함..역시 내용이 크다 ㅠ_ㅠ
|
||||
End If
|
||||
|
||||
Next '(2)
|
||||
Next '(1)
|
||||
|
||||
title = showmsg + "분석데이터 집계중..."
|
||||
RaiseEvent Message(title, 12, 0, 12)
|
||||
|
||||
'//요구량 계산이 완료되었으므로 Summary 계산한다. (이것이 없어서 소요량이 오류났음)
|
||||
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다.
|
||||
Dr.Calc()
|
||||
Next
|
||||
DSETR.AcceptChanges()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' (main2)소요량 계산
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Function Calc_Useage(isSimul As String) As Boolean
|
||||
|
||||
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>")
|
||||
pLog.Add("Calc_Useage")
|
||||
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>")
|
||||
|
||||
'Dim d_op_month As Integer
|
||||
Dim theta_e_month As Decimal
|
||||
Dim d_full_mth As Integer
|
||||
|
||||
Dim title = isSimul + "소요량계산준비중..."
|
||||
RaiseEvent Message(title, 12, 0, 12)
|
||||
|
||||
'//160428
|
||||
|
||||
|
||||
For i_count_month As Short = 1 To 12 '//월별로 난/냉방 소요량을 계산
|
||||
|
||||
pLog.LogEnable = False
|
||||
|
||||
|
||||
title = isSimul + "소요량계산중..." & "(" & i_count_month & "/12)"
|
||||
RaiseEvent Message(title, i_count_month, 0, 12)
|
||||
|
||||
'===============================================2010.2.21 수정
|
||||
'd_op_month = d_op(i_count_month)
|
||||
d_full_mth = CInt(Calc.Pub.d_full(i_count_month))
|
||||
'===============================================2010.2.21 수정
|
||||
theta_e_month = Calc.Pub.theta_e(i_count_month)
|
||||
|
||||
pLog.Add(String.Format("소요량계산 Mon={0},d_full_mth={1},theta_e_month={2}", i_count_month, d_full_mth, theta_e_month))
|
||||
|
||||
'///난방
|
||||
|
||||
pLog.Add("급탕소요량 시작")
|
||||
Calc.Heating.Calc_WaterheatingSystem(i_count_month, d_full_mth, theta_e_month) '//급탕소요량 '========2010.2.21 수정
|
||||
|
||||
|
||||
pLog.Add("환기소요량 시작")
|
||||
Calc.AirHandling.Calc_AirHandling(i_count_month, d_full_mth) '//환기? '========2010.2.21 수정
|
||||
|
||||
'//
|
||||
If Result.E분석(i_count_month).난방에너지요구량 <> 0 Then
|
||||
pLog.Add(String.Format("난방에너지요구량({0})이 0보다 큽니다 추가 계산을 실행 : Calc.Heating.Calc_HeatingSystem", Result.E분석(i_count_month).난방에너지요구량))
|
||||
Calc.Heating.Calc_HeatingSystem(i_count_month, theta_e_month) '//난방소요량
|
||||
End If
|
||||
|
||||
'///냉방
|
||||
pLog.LogEnable = True
|
||||
If Result.E분석(i_count_month).냉방에너지요구량 <> 0 Then
|
||||
pLog.Add(String.Format("냉방에너지요구량({0})이 0보다 큽니다 추가 계산을 실행 : Calc.Cooling.Calc_CoolingSystem", Result.E분석(i_count_month).냉방에너지요구량))
|
||||
Calc.Cooling.Calc_CoolingSystem(i_count_month, theta_e_month)
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format("==== 소요량 Mon={0} 완료==========", i_count_month))
|
||||
Next
|
||||
DSETR.AcceptChanges()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
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
|
||||
|
||||
719
ArinWarev1/DataSet/Calculator/Calculator.vb
Normal file
719
ArinWarev1/DataSet/Calculator/Calculator.vb
Normal file
@@ -0,0 +1,719 @@
|
||||
Public Class Calculator
|
||||
|
||||
Public WithEvents Zone As CZone '//존에클래스할당
|
||||
Public WithEvents AirHandling As CAirHandling '//존에클래스할당
|
||||
Public WithEvents Cooling As CCooling '//존에클래스할당
|
||||
Public WithEvents Heating As CHeating '//존에클래스할당
|
||||
Public WithEvents Renewable As CRenewable '//존에클래스할당
|
||||
Public WithEvents Summary As CSummary
|
||||
Public WithEvents Pub As CShared
|
||||
|
||||
Public IsError As Boolean = False
|
||||
Public IsSimulation As Boolean = False
|
||||
|
||||
Enum ECalc
|
||||
All = 0
|
||||
REq = 1
|
||||
Use = 2
|
||||
설계개선안 = 3
|
||||
End Enum
|
||||
|
||||
Private DSET As DS
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Public Sub New(ByVal Version As String, ByRef pds As DS, ByRef pdsetr As DSR, ByRef prresult As CResult, p_simul As Boolean)
|
||||
Me.IsError = False
|
||||
DSET = pds
|
||||
DSETR = pdsetr
|
||||
Result = prresult
|
||||
IsSimulation = p_simul '//평가계산에의해서는 시뮬레이션모드로 작동
|
||||
Select Case Version
|
||||
Case "2009123100", StartVersion
|
||||
Me.Zone = New CZone(DSET, DSETR, Result) '//존
|
||||
Me.AirHandling = New CAirHandling(DSET, DSETR, Result) '//공기
|
||||
Me.Cooling = New CCooling(DSET, DSETR, Result)
|
||||
Me.Heating = New CHeating(DSET, DSETR, Result)
|
||||
Me.Renewable = New CRenewable(DSET, Result) '//신재상
|
||||
Me.Summary = New CSummary(DSETR, Result) '//계산결과 집계
|
||||
Me.Pub = New CShared '//공용변수(여기추가됬을거에요)- 기상오류처리
|
||||
Me.IsError = Me.Pub.IsError '//공용변수값에 오류확인
|
||||
Case Else
|
||||
MsgBox("LG계산식에 지원되지않는 버젼(" & StartVersion & "/" & Version & ")입니다", MsgBoxStyle.Critical, "확인")
|
||||
Me.IsError = True
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Function 설계개선안사용여부(findcode As String) As Boolean
|
||||
Dim retval As Boolean = False
|
||||
For Each dr As DS.tbl_monuseRow In DSET1.tbl_monuse.Select("code='" + findcode + "'", "월")
|
||||
If dr.도시가스 <> "0" Then
|
||||
retval = True
|
||||
Exit For
|
||||
End If
|
||||
If dr.전력 <> "0" Then
|
||||
retval = True
|
||||
Exit For
|
||||
End If
|
||||
If dr.지역난방 <> "0" Then
|
||||
retval = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Return retval
|
||||
End Function
|
||||
|
||||
Private Sub 입력값계수변환(code As String)
|
||||
If 설계개선안사용여부(code) Then
|
||||
For Each dr As DS.tbl_monuseRow In DSET1.tbl_monuse.Select("code='" + code + "'", "월")
|
||||
Dim newdr As DSR.월별1차에너지사용량Row = DSETR1.월별1차에너지사용량.NewRow
|
||||
newdr.도시가스 = dr.도시가스 * Result2.E변환계수.LNG
|
||||
newdr.전력 = dr.전력 * Result2.E변환계수.전력
|
||||
newdr.지역난방 = dr.지역난방 * Result2.E변환계수.지역난방
|
||||
newdr.code = dr.code
|
||||
newdr.년 = dr.년
|
||||
newdr.월 = dr.월
|
||||
DSETR1.월별1차에너지사용량.Rows.Add(newdr)
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
'''130824
|
||||
Public Function 설계개선안계산() As Boolean
|
||||
Dim dr_desc As DS.tbl_DescRow = DSET.tbl_Desc.Rows(0)
|
||||
|
||||
'//년면적값확인
|
||||
Dim 년면적 As Decimal = 0
|
||||
If IsNumeric(dr_desc.buildm23) = False Then dr_desc.buildm23 = "0"
|
||||
년면적 = CDec(dr_desc.buildm23)
|
||||
If 년면적 = 0 Then
|
||||
MsgBox("년면적값이 없습니다.", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
End If
|
||||
|
||||
'//월별에너지사용량에서 입력한 값
|
||||
Dim 사용자입력값에너지사용량(12) As Decimal
|
||||
|
||||
'//현재계산되어있는 1차에너지사용량
|
||||
Dim 년면적당(12) As Decimal
|
||||
Dim 년면적당원본(12) As Decimal
|
||||
|
||||
Dim ok As Boolean = True
|
||||
Dim 오차계산횟수 As Decimal = 0
|
||||
Dim 난방설정온도 As Decimal = 20
|
||||
Dim 냉방설정온도 As Decimal = 26
|
||||
Dim 실내발열 As Decimal = 0
|
||||
|
||||
Dim 전반기최저입력 As Decimal = 999999
|
||||
Dim 하반기최저입력 As Decimal = 999999
|
||||
Dim 전반기최저 As Decimal = 999999
|
||||
Dim 하반기최저 As Decimal = 999999
|
||||
|
||||
For i As Integer = 1 To 12
|
||||
사용자입력값에너지사용량(i) = 0
|
||||
년면적당(i) = 0
|
||||
Zone_Message("계산데이터와 입력데이터 집계중(" + i.ToString() + "/3)...", i, 0, 12)
|
||||
|
||||
'//사용자에의해서 입력된 값을 누적한다.
|
||||
For Each dr1 As DSR.월별1차에너지사용량Row In DSETR.월별1차에너지사용량.Select("월='" + i.ToString("00") + "'")
|
||||
사용자입력값에너지사용량(i) += TOSG(dr1.도시가스) + TOSG(dr1.전력) + TOSG(dr1.지역난방)
|
||||
Next
|
||||
|
||||
'//임시계산저장소의 값을 이용한다.
|
||||
년면적당원본(i) = (Result1.일차E소요량(i).난방소요량 / 년면적) + (Result1.일차E소요량(i).냉방소요량 / 년면적) _
|
||||
+ (Result1.일차E소요량(i).급탕소요량 / 년면적) + (Result1.일차E소요량(i).조명소요량 / 년면적) _
|
||||
+ (Result1.일차E소요량(i).환기소요량 / 년면적)
|
||||
|
||||
If i <= 6 Then
|
||||
If 사용자입력값에너지사용량(i) < 전반기최저입력 Then 전반기최저입력 = 사용자입력값에너지사용량(i)
|
||||
If 년면적당원본(i) < 전반기최저 Then 전반기최저 = 년면적당원본(i)
|
||||
Else
|
||||
If 사용자입력값에너지사용량(i) < 하반기최저입력 Then 하반기최저입력 = 사용자입력값에너지사용량(i)
|
||||
If 년면적당원본(i) < 하반기최저 Then 하반기최저 = 년면적당원본(i)
|
||||
End If
|
||||
Next
|
||||
|
||||
Dim 입력값평균 As Decimal = (하반기최저입력 + 전반기최저입력) / 2
|
||||
Dim 계산값평균 As Decimal = (하반기최저 + 전반기최저) / 2
|
||||
Dim 오차 As Decimal = 계산값평균 - 입력값평균
|
||||
Dim 오차재계산횟수 As Integer = 5
|
||||
|
||||
|
||||
While (True)
|
||||
|
||||
For i As Integer = 1 To 12
|
||||
사용자입력값에너지사용량(i) = 0
|
||||
년면적당(i) = 0
|
||||
Zone_Message("계산데이터와 입력데이터 집계중(" + i.ToString() + "/3)...", i, 0, 12)
|
||||
|
||||
'//사용자에의해서 입력된 값을 누적한다.
|
||||
For Each dr1 As DSR.월별1차에너지사용량Row In DSETR.월별1차에너지사용량.Select("월='" + i.ToString("00") + "'")
|
||||
사용자입력값에너지사용량(i) += TOSG(dr1.도시가스) + TOSG(dr1.전력) + TOSG(dr1.지역난방)
|
||||
Next
|
||||
|
||||
'//임시계산저장소의 값을 이용한다.
|
||||
년면적당(i) = (Result2.일차E소요량(i).난방소요량 / 년면적) + (Result2.일차E소요량(i).냉방소요량 / 년면적) _
|
||||
+ (Result2.일차E소요량(i).급탕소요량 / 년면적) + (Result2.일차E소요량(i).조명소요량 / 년면적) _
|
||||
+ (Result2.일차E소요량(i).환기소요량 / 년면적)
|
||||
|
||||
년면적당(i) += (-1 * 오차)
|
||||
|
||||
Next
|
||||
|
||||
'//여름피크확인(8월)
|
||||
'//겨울피크확인(1월)
|
||||
Dim 오차겨울 As Decimal = Math.Abs(년면적당(1) - 사용자입력값에너지사용량(1))
|
||||
Dim 오차여름 As Decimal = Math.Abs(년면적당(8) - 사용자입력값에너지사용량(8))
|
||||
|
||||
Dim 원본겨울 As Decimal = 년면적당원본(1)
|
||||
Dim 원본여름 As Decimal = 년면적당원본(8)
|
||||
|
||||
Dim 오차발생여름 As Boolean = False
|
||||
Dim 오차발생겨울 As Boolean = False
|
||||
|
||||
Dim 오차겨울퍼센트 As Decimal = (오차겨울 / 년면적당(1)) * 100
|
||||
Dim 오차여름퍼센트 As Decimal = (오차여름 / 년면적당(8)) * 100
|
||||
|
||||
'//오차계산에따른 반복제어
|
||||
If 오차계산횟수 > 오차재계산횟수 Then
|
||||
' MsgBox("오차계산횟수를 초과하였습니다" + vbCrLf + "개선작업이 종료됩니다.", MsgBoxStyle.Information, "확인")
|
||||
ok = False
|
||||
Exit While
|
||||
End If
|
||||
|
||||
If 오차겨울퍼센트 > 0.1 Then
|
||||
오차발생겨울 = True
|
||||
If 년면적당(1) < 사용자입력값에너지사용량(1) Then
|
||||
난방설정온도 += 0.5
|
||||
Else
|
||||
난방설정온도 -= 0.5
|
||||
End If
|
||||
End If
|
||||
|
||||
If 오차여름퍼센트 > 0.1 Then
|
||||
오차발생여름 = True
|
||||
If 년면적당(8) < 사용자입력값에너지사용량(8) Then
|
||||
냉방설정온도 -= 0.5
|
||||
Else
|
||||
냉방설정온도 += 0.5
|
||||
End If
|
||||
End If
|
||||
|
||||
'//오차가발생하지않았다면 더이상 진행하지 않는다.
|
||||
If Not 오차발생여름 AndAlso Not 오차발생겨울 Then
|
||||
ok = True
|
||||
Exit While
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'//변경될 온도정보를 가지고 다시 계산합니다.
|
||||
If Me.Start("설계개선작업(" + (오차계산횟수 + 1).ToString() + "/" + 오차재계산횟수.ToString + ")" + vbCrLf + vbCrLf + _
|
||||
"(겨울/여름)오차발생율:" + 오차겨울퍼센트.ToString("#0.00") + "%/" + 오차여름퍼센트.ToString("#0.00") + "%" + vbCrLf, ECalc.All, LogSB, (-1 * 오차), 난방설정온도, 냉방설정온도) Then '//파라미터 True 라면 소요량이 추가로 게산된다.
|
||||
오차계산횟수 += 1
|
||||
Me.Summary.All()
|
||||
'오차 = 0
|
||||
'Continue While
|
||||
Else
|
||||
MsgBox("설계개선작업중 오류가 발생하였습니다." + vbCrLf + LogSB.ToString, MsgBoxStyle.Critical, "확인")
|
||||
ok = False
|
||||
Exit While
|
||||
End If
|
||||
|
||||
End While
|
||||
|
||||
|
||||
'//가상결과데이터(DSR2)를 집계해서 실제결과DSR1에 넣는다.
|
||||
DSETR1.설계계산결과.Clear()
|
||||
DSETR1.설계계산결과.AcceptChanges()
|
||||
|
||||
For i As Integer = 1 To 12
|
||||
Dim ndr As DSR.설계계산결과Row = DSETR1.설계계산결과.New설계계산결과Row
|
||||
ndr.월 = i.ToString("00")
|
||||
ndr.난방전 = (Result2.일차E소요량(i).난방소요량 / 년면적)
|
||||
ndr.냉방전 = (Result2.일차E소요량(i).냉방소요량 / 년면적)
|
||||
ndr.조명전 = (Result2.일차E소요량(i).조명소요량 / 년면적)
|
||||
ndr.급탕전 = +(Result2.일차E소요량(i).급탕소요량 / 년면적)
|
||||
ndr.환기전 = (Result2.일차E소요량(i).환기소요량 / 년면적)
|
||||
DSETR1.설계계산결과.Rows.Add(ndr)
|
||||
Next
|
||||
|
||||
|
||||
'//벽체 열관류율, 창호 열관류율, 일사투과율, 장비 효율, 조명밀도 등 적용
|
||||
'//면형태 : 벽체 - 외,내벽 :: tbl_yk 모든 열관류율을 = 0.1 *get열관류율을 마지막에 한번만 작동하도록 상수지정
|
||||
'//면형태 : 창호 - 외부창,내부창 = 1.0
|
||||
'//면형태 : 창호 - 외부창,내부창 일사투과율 = 0.3
|
||||
For Each drmn As DS.tbl_ykRow In DSET.tbl_yk.Select("code <> '0'")
|
||||
Dim 면형태코드 As String = drmn.면형태
|
||||
If 면형태코드.Trim = "" Then Continue For
|
||||
Dim 면형태 As String = Get_CName("1088", 면형태코드)
|
||||
Select Case 면형태
|
||||
Case "외벽(벽체)", "내벽(벽체)", "지중벽"
|
||||
drmn.열관류율 = "0.1"
|
||||
Case "외부창", "내부창"
|
||||
drmn.열관류율 = "1"
|
||||
drmn.일사에너지투과율 = "0.3"
|
||||
End Select
|
||||
Next : DSET.tbl_yk.AcceptChanges()
|
||||
|
||||
'//난방기기 , 정격보일러효율=0.9 , 히트난방정격7=4.5
|
||||
For Each drmn As DS.tbl_nanbangkikiRow In DSET.tbl_nanbangkiki.Select("code <> '0'")
|
||||
If CDec(drmn.정격보일러효율) < 90 Then
|
||||
drmn.정격보일러효율 = "90"
|
||||
End If
|
||||
If CDec(drmn.히트난방정격7) < 4.5 Then
|
||||
drmn.히트난방정격7 = "4.5"
|
||||
End If
|
||||
Next : DSET.tbl_nanbangkiki.AcceptChanges()
|
||||
|
||||
'//냉방기기 , 열성능비 = 5.0
|
||||
For Each drmn As DS.tbl_nangbangkikiRow In DSET.tbl_nangbangkiki.Select("code <> '0'")
|
||||
If CDec(drmn.열성능비) < 5 Then
|
||||
drmn.열성능비 = "5.0"
|
||||
End If
|
||||
Next : DSET.tbl_nangbangkiki.AcceptChanges()
|
||||
|
||||
'//조명밀도 : 조명에너지부하율입력치 : 6
|
||||
For Each drmn As DS.tbl_zoneRow In DSET.tbl_zone.Select("code <> '0'")
|
||||
If drmn.조명부하산출방법 = "입력치" Then
|
||||
drmn.조명에너지부하율입력치 = 6
|
||||
End If
|
||||
Next : DSET.tbl_zone.AcceptChanges()
|
||||
|
||||
'//보정데이터유지하고 계산실행
|
||||
'//그래프출력시 발생한 오차를 데이터테이블에 표시
|
||||
'//변경될 온도정보를 가지고 다시 계산합니다.
|
||||
If Me.Start("설계개선작업II" + vbCrLf, ECalc.All, LogSB, (-1 * 오차), 난방설정온도, 냉방설정온도) Then '//파라미터 True 라면 소요량이 추가로 게산된다.
|
||||
Me.Summary.All()
|
||||
ok = False
|
||||
End If
|
||||
|
||||
For i As Integer = 1 To 12
|
||||
Dim ndr As DSR.설계계산결과Row = DSETR1.설계계산결과.Rows(i - 1)
|
||||
ndr.난방 = (Result2.일차E소요량(i).난방소요량 / 년면적)
|
||||
ndr.냉방 = (Result2.일차E소요량(i).냉방소요량 / 년면적)
|
||||
ndr.조명 = (Result2.일차E소요량(i).조명소요량 / 년면적)
|
||||
ndr.급탕 = +(Result2.일차E소요량(i).급탕소요량 / 년면적)
|
||||
ndr.환기 = (Result2.일차E소요량(i).환기소요량 / 년면적)
|
||||
ndr.AcceptChanges()
|
||||
Next
|
||||
|
||||
DSETR1.설계계산결과.AcceptChanges()
|
||||
|
||||
'//파라미터저장
|
||||
DSETR1.설계계산파라미터.Clear()
|
||||
Dim ndr3 As DSR.설계계산파라미터Row = DSETR1.설계계산파라미터.New설계계산파라미터Row
|
||||
ndr3.난방 = 난방설정온도.ToString
|
||||
ndr3.냉방 = 냉방설정온도.ToString
|
||||
ndr3.기저비율 = CDec(-1 * 오차).ToString()
|
||||
DSETR1.설계계산파라미터.Rows.Add(ndr3)
|
||||
DSETR1.설계계산파라미터.AcceptChanges()
|
||||
|
||||
If ok Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Function Start(showmsg As String, ByVal CalcType As ECalc, ByRef logBuffer As System.Text.StringBuilder, 기저비율 As Decimal, Optional ByVal 난방설정온도 As Decimal = 20, Optional ByVal 냉방설정온도 As Decimal = 26) As Boolean
|
||||
|
||||
pLog.Add("=====================================")
|
||||
pLog.Add("Calc Start")
|
||||
pLog.Add("=====================================", True)
|
||||
|
||||
Me.Pub = New CShared '//공용변수
|
||||
|
||||
'//계산을 시작 p_CalcUse : 는 소요량 계산도 할건지으 ㅣ플래그 나중에 분리해야겠따.
|
||||
'Dim ST As Date = Now
|
||||
|
||||
If Me.IsError Then
|
||||
MsgBox("계산준비중 오류발생", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
End If
|
||||
logBuffer = New System.Text.StringBuilder("")
|
||||
Dim Cnt As Integer = FixData()
|
||||
'log.AppendLine(">>데이터보정(" & Cnt.ToString & ")개의 데이터가 보정되었습니다")
|
||||
'log.AppendLine(">>유효성검사시작")
|
||||
If validation() = False Then Return False '//유효성 체크를 수행한다.
|
||||
|
||||
If CalcType <> ECalc.Use AndAlso CalcType <> ECalc.설계개선안 Then
|
||||
'log.AppendLine(">>계산영역초기화")
|
||||
Clear_ResultArea() '//과거의 계산영역을 클리어시킨다.
|
||||
'log.AppendLine(">>각존의 사용면적 계산")
|
||||
Result.사용면적.Calc() '//A_H,C,W,L,V 의 누적값을 계산(사용면적) : 개별프로시져로 할당
|
||||
'log.AppendLine(">>주계산시작")
|
||||
End If
|
||||
|
||||
'//사용자가입력한 1차에너지사용량(=월별에너지사용량)을 변환계수를 이용해 값을 생성한다.
|
||||
DSETR1.월별1차에너지사용량.Rows.Clear() : DSETR2.월별1차에너지사용량.Rows.Clear()
|
||||
DSETR1.월별1차에너지사용량.AcceptChanges() : DSETR2.월별1차에너지사용량.AcceptChanges()
|
||||
Zone_Message("설계개선안 입력데이터 변환중(1/3)...", 1, 0, 3) : 입력값계수변환("0001")
|
||||
Zone_Message("설계개선안 입력데이터 변환중(2/3)...", 2, 0, 3) : 입력값계수변환("0002")
|
||||
Zone_Message("설계개선안 입력데이터 변환중(3/3)...", 1, 0, 3) : 입력값계수변환("0003")
|
||||
DSETR1.월별1차에너지사용량.AcceptChanges()
|
||||
DSETR2.월별1차에너지사용량.Merge(DSETR1.월별1차에너지사용량)
|
||||
DSETR2.월별1차에너지사용량.AcceptChanges()
|
||||
|
||||
Dim Retval As Boolean
|
||||
Select Case CalcType
|
||||
Case ECalc.All
|
||||
pLog.LogEnable = False
|
||||
Retval = Zone.Calc_LoadOfZones(showmsg, IsSimulation, 기저비율, 난방설정온도, 냉방설정온도)
|
||||
pLog.LogEnable = True
|
||||
If Retval Then Retval = Zone.Calc_Useage(showmsg)
|
||||
Return Retval
|
||||
Case ECalc.REq
|
||||
pLog.LogEnable = True
|
||||
Return Zone.Calc_LoadOfZones(showmsg, IsSimulation, 기저비율, 난방설정온도, 냉방설정온도)
|
||||
Case ECalc.Use
|
||||
pLog.LogEnable = True
|
||||
Return Zone.Calc_Useage(showmsg)
|
||||
Case ECalc.설계개선안
|
||||
pLog.LogEnable = True
|
||||
Return 설계개선안계산()
|
||||
End Select
|
||||
|
||||
pLog.LogEnable = True
|
||||
|
||||
End Function
|
||||
|
||||
Private Function FixData() As Integer
|
||||
Dim RetCnt As Integer = 0
|
||||
Dim Null As String = "(없음)"
|
||||
'//보정할수있는데이터를 보정합니다.
|
||||
';//입력면 - 건축부위방식이 .내벽 or 간벽일경우 방위는 (없음)이다
|
||||
For Each DR면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("code <> '0'")
|
||||
If DR면.건축부위방식 = "내벽" Or DR면.건축부위방식 = "간벽" Then
|
||||
If DR면.방위 <> Null Then
|
||||
RetCnt += 1
|
||||
DR면.방위 = Null
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code <> '0'")
|
||||
If DR존.조명방식.ToString = "0" OrElse DR존.조명방식.ToString = "" Then
|
||||
RetCnt += 1
|
||||
LogSB.AppendLine("Zone " & DR존.설명.ToString & "] 의 조명방식이 없음으로 설정됩니다.")
|
||||
DR존.조명방식 = "(없음)"
|
||||
End If
|
||||
If DR존.인공광원.ToString = "0" OrElse DR존.인공광원.ToString = "" Then
|
||||
RetCnt += 1
|
||||
LogSB.AppendLine("Zone " & DR존.설명.ToString & "] 의 인공광원이 없음으로 설정됩니다.")
|
||||
DR존.인공광원 = "(없음)"
|
||||
End If
|
||||
If DR존.외기부하처리여부.ToString = "0" OrElse DR존.외기부하처리여부.ToString = "" Then
|
||||
RetCnt += 1
|
||||
LogSB.AppendLine("Zone " & DR존.설명.ToString & "] 의 외기부하처리여부가 아니오로 설정됩니다.")
|
||||
DR존.외기부하처리여부 = "아니오"
|
||||
End If
|
||||
|
||||
'If DR존.조명방식.ToString.Trim = "" Then DR존.조명방식 = "(없음)"
|
||||
'If DR존.인공광원.ToString.Trim = "" Then DR존.인공광원 = "(없음)"
|
||||
Next
|
||||
|
||||
DSET.AcceptChanges() '//변경내용 적용
|
||||
Return RetCnt
|
||||
End Function
|
||||
Public Function validation() As Boolean
|
||||
pLog.Add("Calc Validation")
|
||||
'//존이 2개이상있어야한다 (없음데이터로인해서 반드시 1개는 있기때문이다.)
|
||||
'//여기보정데이터가잇네요.;
|
||||
Dim NoErr As Boolean = True
|
||||
|
||||
'//콤보박스들의 값이 지정되어잇는지 확인한다. 무조건 있어야한다
|
||||
Dim Title As String
|
||||
Dim Columns() As String '//(없음)이 들어가는 콤보필드
|
||||
Dim ColumnC() As String '//공용코드전용 필드들
|
||||
Dim CGubun() As String '//공용코드필드의 구분값이 저장됨
|
||||
Dim Columnst() As String '//0이 들어가는 콤보필드
|
||||
|
||||
'//ZONE
|
||||
Title = "Zone"
|
||||
Columns = New String() {"냉난방열공급시스템", "열저장능력", "열교가산치", _
|
||||
"주말운전방식", "야간운전방식", "외기부하처리여부", _
|
||||
"냉난방공조", "냉난방방식", _
|
||||
"조명부하산출방법", "조명방식", "인공광원"}
|
||||
ColumnC = New String() {"열저장능력", "열교가산치", _
|
||||
"주말운전방식", "야간운전방식", "외기부하처리여부"} '
|
||||
'//다를지도 모르니 나중에 함 확인하시구요
|
||||
CGubun = New String() {"1023", "1022", _
|
||||
"1002", "1002", "1054"} '//공용코드있는데는 모조리 설정하시구요 물론 길이는 바로위하고 같아야합닌다.
|
||||
'//여기에 각 공용코드의 구분값 1009 뭐 이런것들을 같게 넣어주세요 column 가 8개가있었따면 cgubun 도 8개가 잇으면됩니다.
|
||||
|
||||
Columnst = New String() {"프로필", "냉난방공조처리시스템", "열생산난방생산기기", _
|
||||
"열생산급탕생산기기", "열생산냉방생산기기", _
|
||||
"열생산가습생산기기", "냉난방공조분배시스템", _
|
||||
"냉난방분배시스템", "공조냉방생산기기", "공조난방생산기기"}
|
||||
|
||||
Set_Null(Columns, DSET.tbl_zone, "(없음)") '//데이터를 기본값 셋팅해주는구문이구요 없는데이터는 넓값처리
|
||||
Set_Null(ColumnC, DSET.tbl_zone, "(없음)") '//공용코드값이 아에없는 데이터를 기본값 셋팅해주는구문이구요 없는데이터는 넓값처리
|
||||
'Set_CheckCommon(ColumnC, DSET.tbl_zone, CGubun) '//이거는 // 공용코드오류난 데이터 검색하는부분이에요
|
||||
Set_Null(Columnst, DSET.tbl_zone, "0")
|
||||
|
||||
Title = "신재생에너지"
|
||||
Columns = New String() {"기기종류", "가동연료", "태양열종류", "집열기유형", _
|
||||
"집열판방위", "태양열시스템의성능", "축열탱크설치장소", _
|
||||
"태양광모듈기울기", "태양광모듈방위", _
|
||||
"태양광모듈종류", "태양광모듈적용타입", _
|
||||
"열교환기설치여부", "팽창탱크설치여부"}
|
||||
Set_Null(Columns, DSET.tbl_new, "(없음)")
|
||||
'Set_Null(Columnst, DSET.tbl_bunbae, "0")
|
||||
|
||||
Title = "난방분배시스템"
|
||||
Columns = New String() {"생산기기구분", "표준치적용", "배관망유형", _
|
||||
"배관구간방식", "배관설치장소", _
|
||||
"배관설치장소", "지관장소"}
|
||||
Set_Null(Columns, DSET.tbl_nbunbae, "(없음)")
|
||||
'Set_Null(Columnst, DSET.tbl_bunbae, "0")
|
||||
|
||||
Title = "난방기기"
|
||||
Columns = New String() {"열생산기기방식", "사용연료", "운전방식", "보일러방식", _
|
||||
"지역난방방식", "단열등급", "축열탱크방식", _
|
||||
"배관망유형", "펌프교정계수", "펌프제어유형", _
|
||||
"분배시스템방식", "순환유무", "펌프제어", _
|
||||
"히트펌프시스템종류", "신재생연결여부"}
|
||||
Columnst = New String() {"연결된시스템"}
|
||||
Set_Null(Columns, DSET.tbl_nanbangkiki, "(없음)")
|
||||
Set_Null(Columnst, DSET.tbl_nanbangkiki, "0")
|
||||
|
||||
Title = "냉방기기"
|
||||
Columns = New String() {"냉동기방식", "냉동기종류", "냉동기압축방식", _
|
||||
"압축기제어방식", "냉동기설비시스템", _
|
||||
"냉동기설비시스템", "제어방식", _
|
||||
"열생산연결방식", "사용연료", "증발식건식냉각기", _
|
||||
"증발식냉각기", "보조방음기유무", "신재생연결여부"}
|
||||
Columnst = New String() {"온수열생산기기", "연결된시스템"}
|
||||
Set_Null(Columns, DSET.tbl_nangbangkiki, "(없음)")
|
||||
Set_Null(Columnst, DSET.tbl_nangbangkiki, "0")
|
||||
|
||||
|
||||
Title = "입력면"
|
||||
Columns = New String() {"건축부위방식", "블라인드유무", _
|
||||
"블라인드위치", "방위", "블라인드빛종류", _
|
||||
"블라인드색상", "블라인드각도"}
|
||||
Columnst = New String() {"존분류", "대차대조존"}
|
||||
Set_Null(Columns, DSET.tbl_myoun, "(없음)")
|
||||
Set_Null(Columnst, DSET.tbl_myoun, "0")
|
||||
|
||||
|
||||
Title = "난방공급시스템"
|
||||
Columns = New String() {"열공급시스템", "노출형제어", "바닥난방열제어", _
|
||||
"바닥난방열건축부위", "바닥난방전기제어", "바닥난방전기건축부위", "전기난방제어"}
|
||||
Columnst = New String() {"열공급생산기기"}
|
||||
Set_Null(Columns, DSET.tbl_kongkub, "(없음)")
|
||||
Set_Null(Columnst, DSET.tbl_kongkub, "0")
|
||||
|
||||
|
||||
Title = "공조처리"
|
||||
Columns = New String() {"공조방식", "리턴공기혼합여부", "가습기유형", "외기냉방제어유무", "열교환기유형"}
|
||||
Set_Null(Columns, DSET.tbl_kongjo, "(없음)")
|
||||
'Set_Null(Columnst, DSET.tbl_bunbae, "0")
|
||||
|
||||
Title = "냉방분배시스템"
|
||||
Columns = New String() {"냉매방식", "펌프운전제어유무"}
|
||||
Columnst = New String() {"냉동기"}
|
||||
Set_Null(Columns, DSET.tbl_bunbae, "(없음)")
|
||||
Set_Null(Columnst, DSET.tbl_bunbae, "0")
|
||||
|
||||
|
||||
'//모든공조데이터 순환
|
||||
For Each DR As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code<>'0'")
|
||||
DR.팬효율산출방식 = DR.팬효율산출방식.Trim
|
||||
'MsgBox(DR.설명 & "==현재저장된값 : " & DR.팬효율산출방식 & " 길이 = " & DR.팬효율산출방식.Length)
|
||||
If DR.팬효율산출방식.Trim = "" Then DR.팬효율산출방식 = "입력치"
|
||||
Next
|
||||
'DSET.tbl_kongjo.AcceptChanges()
|
||||
DSET.AcceptChanges()
|
||||
|
||||
|
||||
'//그값이 존에잇어요?cnrkehlsrp?추가된게?공조기기요
|
||||
For Each Dr As DS.tbl_zoneRow In DSET.tbl_zone.Select("code <> '0'") '//모든존을 검사 없음(0)은 빼고
|
||||
'If Dr.공조난방생산기기 = "0" And Dr.공조냉방생산기기 = "0" Then '//둘다 0일경우
|
||||
'//오류를 내고싶으면 여기서 return false 해버리면됩니다.'다른족건이 잇다면.. 아까처럼..
|
||||
'Return False 냉난방공조 라는 공조에 냉난방이 있으면 : :
|
||||
'End If
|
||||
If Dr.냉난방공조 = "냉난방" Then '//
|
||||
If Dr.공조난방생산기기 = "0" OrElse Dr.공조냉방생산기기 = "0" Then
|
||||
MsgBox("입력존에서 공조방식에 대응하는 공조냉난방생산기기가 지정되지 않은 것이 있습니다.")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If Dr.냉난방공조 = "난방" OrElse (Dr.냉난방공조 = "냉방" And Dr.외기부하처리여부 = "예") Then '//
|
||||
If Dr.공조난방생산기기 = "0" Then
|
||||
MsgBox("입력존에서 공조방식에 대응하는 공조난방생산기기가 지정되지 않은 것이 있습니다.")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If Dr.냉난방공조 = "냉방" OrElse (Dr.냉난방공조 = "난방" And Dr.외기부하처리여부 = "예") Then '//
|
||||
If Dr.공조냉방생산기기 = "0" Then
|
||||
MsgBox("입력존에서 공조방식에 대응하는 공조냉방생산기기가 지정되지 않은 것이 있습니다.")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
If Dr.냉난방공조 = "환기" And Dr.외기부하처리여부 = "예" Then '//
|
||||
If Dr.공조난방생산기기 = "0" OrElse Dr.공조냉방생산기기 = "0" Then
|
||||
MsgBox("입력존에서 외기부하처리에 따른 공조냉난방생산기기가 지정되지 않은 것이 있습니다.")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
'//여기에서 FAlse 를 반환해버리면.. 게산은 돌지않아요 게산전에 수행되는곳이구요
|
||||
'//아까 파일오픈시에도 여기를 호출합니다. 바로 윗부분이 nul l값에대한 기본값 처리구요.
|
||||
Return NoErr
|
||||
End Function
|
||||
|
||||
Private Sub Set_Null(ByVal Columns() As String, ByRef dt As DataTable, ByVal val As String)
|
||||
For Each Dr As DataRow In dt.Select("code<>'0'", "code")
|
||||
For Each Col As String In Columns
|
||||
If Dr(Col).ToString.Trim = "" Then '//값이없으면 기본값(val)으로 설정
|
||||
Dr(Col) = val
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
'''공용코드에값이있는지확인
|
||||
Private Sub Set_CheckCommon(ByVal Columns() As String, ByRef dt As DataTable, ByVal gubunval() As String)
|
||||
Dim index As Short = -1
|
||||
For Each Dr As DataRow In dt.Select("code<>'0'", "code")
|
||||
index = 0
|
||||
For Each Col As String In Columns
|
||||
If Dr(Col).ToString.Trim = "" Then '//값이없으면 기본값(val)으로 설정
|
||||
'Dr(Col) = val
|
||||
Else '//값이있을때
|
||||
Dim V As String = Dr(Col).ToString.Trim
|
||||
'//v의값이 공용ㅇ코드에 있는지 확인 공용코드는 name 을 저장하므로 name 으로검사를 수행
|
||||
Dim Cdr() As DS.tbl_commonRow = DSET.tbl_common.Select("gubun='" & gubunval(index) & "' and name='" & V & "'")
|
||||
If Cdr.GetUpperBound(0) = -1 Then
|
||||
MsgBox("값이있으나 공용코드에없음(여기에 경고문구좀 날려주시면되구요")
|
||||
End If
|
||||
End If
|
||||
index += 1
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 계산결과 영역을 초기화시킵니다.
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Private Sub Clear_ResultArea()
|
||||
pLog.Add("Clear_ResultArea")
|
||||
|
||||
DSETR.Clear() : DSETR.AcceptChanges() '//기존데이터 클리어
|
||||
|
||||
'//0번시트의 결과값을 저장할 장소를 생성한다. Zone=00 은 합계필드이다(이것이 일률적이지않아서 00으로 할당을 따로 해서 나중에 합산작업을 할 예정)
|
||||
'//00번 존을포함하여 현재 존의 갯수+1개를 생성한다.
|
||||
|
||||
'//최대냉난방/E분석
|
||||
Dim ZoneCode As String
|
||||
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("", "code")
|
||||
If Dr존.code = "0" Then
|
||||
ZoneCode = "00"
|
||||
Else
|
||||
ZoneCode = Dr존.code
|
||||
End If
|
||||
|
||||
Dim Res1 As DSR.최대냉난방부하Row = DSETR.최대냉난방부하.New최대냉난방부하Row
|
||||
Res1.Zone = ZoneCode : DSETR.최대냉난방부하.Add최대냉난방부하Row(Res1)
|
||||
For ii As Integer = 1 To 12
|
||||
Dim DrE분석 As DSR.월별에너지분석Row = DSETR.월별에너지분석.New월별에너지분석Row
|
||||
DrE분석.월 = "M" & Format(ii, "00") '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
|
||||
DrE분석.존 = ZoneCode
|
||||
DSETR.월별에너지분석.Add월별에너지분석Row(DrE분석)
|
||||
'MsgBox("M" & Format(ii, "00"), MsgBoxStyle.Information, ZoneCo'de)
|
||||
Next
|
||||
Next
|
||||
|
||||
'//월별로 움직이는데이터
|
||||
Dim Mon As String
|
||||
Dim Dr As DataRow
|
||||
For ii As Integer = 0 To 12
|
||||
Mon = "M" & Format(ii, "00")
|
||||
|
||||
Dr = DSETR.생산에너지.NewRow
|
||||
Dr("mon") = Mon '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
|
||||
DSETR.생산에너지.Rows.Add(Dr)
|
||||
|
||||
Dr = DSETR.에너지소요량.NewRow
|
||||
Dr("mon") = Mon '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
|
||||
DSETR.에너지소요량.Rows.Add(Dr)
|
||||
|
||||
Dr = DSETR.에너지소요량1.NewRow
|
||||
Dr("mon") = Mon '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
|
||||
DSETR.에너지소요량1.Rows.Add(Dr)
|
||||
|
||||
Next
|
||||
'//전부다시 구성해야함
|
||||
DSETR.AcceptChanges()
|
||||
End Sub
|
||||
|
||||
|
||||
'''열관류율값ㅇㄹ 반환
|
||||
Public Function Get_열관류율(ByVal Dr As DS.tbl_myounRow) As Decimal
|
||||
Dim 열관류율2 As String = Dr.열관류율2 '//저장된 코드값 cmb_열관류율
|
||||
|
||||
If IsNumeric(열관류율2) Then
|
||||
If CInt(열관류율2) > 0 Then
|
||||
Try
|
||||
Dim Drow As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & 열관류율2 & "'")(0)
|
||||
Return TOSG(Drow.열관류율) '//코드내에 저장된 값을 보낸다
|
||||
Catch ex As Exception
|
||||
MsgBox("열관류율코드값(" & 열관류율2 & ") 값오류" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Critical, "확인")
|
||||
Return 0
|
||||
End Try
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim 열관 As Single = 0
|
||||
Try
|
||||
열관 = Single.Parse(Dr.열관류율)
|
||||
Catch ex As Exception
|
||||
열관 = 0
|
||||
End Try
|
||||
|
||||
Return TOSG(Dr.열관류율)
|
||||
'If 열관 = 0 Then '//0이므로 코드값을 찾는다.
|
||||
|
||||
' Try
|
||||
' Dim Drow As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & 열관류율2 & "'")(0)
|
||||
' Return TOSG(Drow.열관류율) '//코드내에 저장된 값을 보낸다
|
||||
' Catch ex As Exception
|
||||
' MsgBox("열관류율코드값(" & 열관류율2 & ") 값오류" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Critical, "확인")
|
||||
' Return 0
|
||||
' End Try
|
||||
'Else '//입력값이 잇으므로 입력값을 바로사용한다.
|
||||
|
||||
'End If
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Zone_Message(Msg As String, pval As Integer, pmin As Integer, pmax As Integer) Handles Zone.Message
|
||||
If Not msgf Is Nothing Then
|
||||
msgf.Label1.Text = Msg
|
||||
msgf.ProgressBar1.Minimum = pmin
|
||||
msgf.ProgressBar1.Maximum = pmax
|
||||
msgf.ProgressBar1.Value = pval
|
||||
msgf.Label1.Refresh()
|
||||
Else
|
||||
msgf = New Frm_Work("계산중...")
|
||||
msgf.Label1.Text = Msg
|
||||
msgf.ProgressBar1.Minimum = pmin
|
||||
msgf.ProgressBar1.Maximum = pmax
|
||||
msgf.ProgressBar1.Value = pval
|
||||
msgf.TopMost = True
|
||||
msgf.Show()
|
||||
End If
|
||||
|
||||
msgf.Refresh()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
813
ArinWarev1/DataSet/Calculator/Cooling/CCooling.vb
Normal file
813
ArinWarev1/DataSet/Calculator/Cooling/CCooling.vb
Normal file
@@ -0,0 +1,813 @@
|
||||
Public Class CCooling
|
||||
Public Overridable Sub Calc_CoolingSystem(ByVal i_count_month As Integer, ByVal theta_e As Decimal)
|
||||
|
||||
|
||||
Dim c_p1 As Decimal, c_p2 As Decimal, c_cl As Decimal
|
||||
Dim b As Decimal, L As Decimal, n_G As Decimal, h_G As Decimal, L_max As Decimal, R As Decimal, z As Decimal
|
||||
Dim rho_cl As Decimal
|
||||
Dim eta_c_star_d As Decimal, eta_c_star_ce_sens As Decimal, eta_c_star_ce As Decimal, eta_c_d As Decimal, eta_c_ce As Decimal, eta_c_ce_sens As Decimal
|
||||
Dim Q_c_star_s As Decimal, Q_c_s As Decimal, Q_c_b As Decimal, Q_vc_b As Decimal, Q_vm_b As Decimal, Q_c_b_i As Decimal, Q_c_star_b_i As Decimal
|
||||
Dim Q_c_star_b As Decimal, Q_m_star_b As Decimal, Q_c_star_d As Decimal, Q_c_star_ce As Decimal, Q_c_d As Decimal, Q_c_ce As Decimal
|
||||
Dim Q_c_star_outg As Decimal, Q_z_outg_l As Decimal, Q_m_star_outg As Decimal, Q_dot_c_outg As Decimal, Q_c_outg As Decimal, Q_c_outg_total As Decimal, Q_dot_z As Decimal
|
||||
Dim Q_c_ce_aux As Decimal, Q_z_aux_d_l As Decimal, Q_z_star_outg_l As Decimal
|
||||
Dim f_c_ce_aux As Decimal, f_Abgl As Decimal, f_e As Decimal
|
||||
Dim V_dot_z As Decimal
|
||||
Dim EER As Decimal, PLV_av As Decimal
|
||||
Dim P_d_hydr As Decimal, P_Pump As Decimal
|
||||
Dim beta_d_l As Decimal, e_d_l As Decimal
|
||||
Dim W_d_hydr_l As Decimal
|
||||
Dim Q_c_f_elektr As Decimal, Q_c_f_R_elektr As Decimal, Q_dot_R_outg As Decimal, Q_c_outg_therm As Decimal, Q_c_f As Decimal, Q_c_aux As Decimal
|
||||
Dim t_h_max As Integer
|
||||
Dim Q_c_g As Decimal, Q_c_g_v_i As Decimal, Q_dot_N As Decimal, Q_dot_d_in As Decimal
|
||||
Dim theta_VA As Decimal, theta_RA As Decimal, theta_HK_m_beta_h_d As Decimal, beta_h As Decimal, n_beta As Decimal
|
||||
Dim eta_k_100 As Decimal, eta_k_pl As Decimal, f As Decimal, e As Decimal, q_B_70 As Decimal, q_B_theta As Decimal, f_Hs_Hi As Decimal
|
||||
Dim Q_V_g_100 As Decimal, Q_dot_B_h As Decimal, Q_V_g_pl As Decimal, q_R_elektr As Decimal
|
||||
Dim beta_k_pl As Decimal, Delta_theta_z_cl As Decimal
|
||||
Dim Delta_P_WUE As Decimal, Delta_P_WUV As Decimal, Delta_P_RV As Decimal, Delta_p_z As Decimal
|
||||
Dim k_n As Decimal, f_1_av As Decimal, f_2_av As Decimal, f_R_av As Decimal, T_W_1_i As Decimal, l_min_i As Decimal
|
||||
Dim use_Oil As Decimal, use_LNG As Decimal, use_LPG As Decimal, use_Elec As Decimal, use_DH As Decimal
|
||||
|
||||
'20100223 제거 i_count_chiller As Integer, 최적화중 사용안함
|
||||
'Dim i_count_zone As Integer, i_count_c_d As Integer
|
||||
Dim i_count_beta As Integer, k_n_index As Integer
|
||||
' Dim i_count_renewable As Integer
|
||||
Dim i_HeatCool As Integer
|
||||
Dim theta_i As Decimal, Q_hp_outg As Decimal, Q_c_f_hp As Decimal, Q_c_g_hp_aux As Decimal
|
||||
Dim Q_chp_outg As Decimal, Q_c_f_chp As Decimal
|
||||
Dim system_type As Integer
|
||||
'==================================2010.2.21 수정
|
||||
Dim use_DC As Decimal
|
||||
Dim d_op_mth As Integer
|
||||
Dim d_op_max_mth As Integer
|
||||
|
||||
Dim f_1_av_up As Decimal, f_1_av_dn As Decimal
|
||||
' Dim i_count_profile As Integer
|
||||
use_DC = 0
|
||||
d_op_max_mth = 0
|
||||
'==================================2010.2.21 수정
|
||||
'==================================2010.04.02 수정
|
||||
Dim Q_H_sol_out_m As Decimal, Q_W_sol_out_m As Decimal, W_sol_aux_m As Decimal
|
||||
Dim Q_h_outg_i As Decimal
|
||||
|
||||
Q_H_sol_out_m = 0
|
||||
Q_h_outg_i = 0
|
||||
'==================================2010.04.02 수정
|
||||
Dim priod_value As Single = 0
|
||||
Dim age As Single '//준공연도에 의한 경년변화값
|
||||
Dim age_heating As Single
|
||||
For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
|
||||
priod_value = CSng(DRpriod.priod)
|
||||
Next
|
||||
If priod_value > 20 Then priod_value = 20
|
||||
age = (1 - 0.01) ^ priod_value
|
||||
age_heating = (1 - 0.005) ^ priod_value
|
||||
|
||||
|
||||
eta_c_star_d = 0.95 '건물 내 배관 적용
|
||||
eta_c_star_ce_sens = 1 '습도요구 편차없음 적용
|
||||
eta_c_star_ce = 0.9 '공조기기로 냉열전달에서 현열전달효율로 우선 0.9 적용
|
||||
Q_c_star_s = 0
|
||||
Q_c_s = 0 '(3.2.8-22)
|
||||
eta_c_d = 0.9 ' 우선 적용 추후 검토
|
||||
eta_c_ce = 1 ' 우선 적용 추후 검토
|
||||
eta_c_ce_sens = 0.9 '우선 적용 추후 검토
|
||||
f_c_ce_aux = 0.04 ' 표3.93 우선 적용 추후 검토
|
||||
f_Abgl = 1 '수리역학적으로 평형을 이룬 배관망
|
||||
Q_c_f = 0
|
||||
Q_c_aux = 0
|
||||
beta_k_pl = 0.3
|
||||
PLV_av = 1
|
||||
use_Oil = 0
|
||||
use_LNG = 0
|
||||
use_LPG = 0
|
||||
use_Elec = 0
|
||||
use_DH = 0
|
||||
i_HeatCool = 2
|
||||
system_type = 2
|
||||
|
||||
Dim Mon As String = "M" & Format(i_count_month, "00")
|
||||
For Each dr냉방 As DS.tbl_nangbangkikiRow In DSET.tbl_nangbangkiki.Select("code<>'0'", "code")
|
||||
|
||||
'//이 냉방기가가 존에서 사용되었는지확인한다.
|
||||
Dim Drow존() As DS.tbl_zoneRow = CType(DSET.tbl_zone.Select("(공조냉방생산기기 = '" & dr냉방.code & "' and 냉난방공조 <> '기능없음' and (외기부하처리여부 = '예' or 냉난방공조 = '냉난방' or 냉난방공조 = '냉방') ) or (열생산냉방생산기기='" & dr냉방.code & "' and 냉난방방식 <> '난방' and 냉난방방식 <> '기능없음') and code <> '0'"), DS.tbl_zoneRow())
|
||||
If Drow존.GetUpperBound(0) <> -1 Then ' Worksheets("냉방기기").Range("냉방생산기기1").Offset(2, i_count_chiller - 1) = "0001" Then '2
|
||||
Q_c_b = 0
|
||||
Q_c_star_b = 0
|
||||
t_h_max = 0
|
||||
Q_c_f_elektr = 0
|
||||
Q_c_outg_therm = 0
|
||||
Q_c_g = 0
|
||||
Q_c_f_R_elektr = 0
|
||||
|
||||
|
||||
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("(공조냉방생산기기 = '" & dr냉방.code & "' and 냉난방공조 <> '기능없음' and (외기부하처리여부 = '예' or 냉난방공조 = '냉난방' or 냉난방공조 = '냉방') ) or (열생산냉방생산기기='" & dr냉방.code & "' and 냉난방방식 <> '난방' and 냉난방방식 <> '기능없음') and code <> '0'", "code")
|
||||
Dim Drow분석() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & Dr존.code & "'"), DSR.월별에너지분석Row())
|
||||
' 존데이터를가져올떄 해당 냉방기기에서 사용한 존만 가져왔따.
|
||||
' If Dr존.열생산냉방생산기기 <> "" Then ' Worksheets("입력존").Range("입력냉방생산기기1").Offset(0, i_count_zone - 1) <> "" Then
|
||||
' If Dr존.열생산냉방생산기기 = dr냉방.code Then ' Worksheets("입력존").Range("입력냉방생산기기1").Offset(0, i_count_zone - 1) = Worksheets("냉방기기").Range("냉방생산기기1").Offset(0, i_count_chiller - 1) Then
|
||||
|
||||
If Dr존.열생산냉방생산기기 = dr냉방.code And (Dr존.냉난방방식 = "냉난방" OrElse Dr존.냉난방방식 = "냉방") Then
|
||||
Q_c_b_i = Result.E분석(i_count_month).냉방에너지요구량열(Dr존.code) ' CSng(Drow분석(0).냉방요구량열) ' Sheets("" & i_count_month & "").Cells(10, 7 + i_count_zone)
|
||||
Q_c_b = Q_c_b + Q_c_b_i
|
||||
End If
|
||||
If Dr존.공조냉방생산기기 = dr냉방.code And Dr존.냉난방공조 = "냉난방" OrElse Dr존.냉난방공조 = "냉방" OrElse ((Dr존.냉난방공조 = "환기" OrElse Dr존.냉난방공조 = "난방") And Dr존.외기부하처리여부 = "예") Then
|
||||
If (Dr존.냉난방공조 = "환기" OrElse Dr존.냉난방공조 = "난방") And Dr존.외기부하처리여부 = "예" Then '// 2010.11.19 추가
|
||||
Q_c_star_b_i = TOSG(Drow분석(0).냉방요구량공조) '//2010.11.19 추가
|
||||
Else
|
||||
Q_c_star_b_i = Result.E분석(i_count_month).공조에너지요구량냉방(Dr존.code) ' CSng(Drow분석(0).공조요구량냉방) ' Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone)
|
||||
End If
|
||||
|
||||
Q_c_star_b = Q_c_star_b + Q_c_star_b_i
|
||||
End If
|
||||
|
||||
'===================================================================================2010.2.21 수정
|
||||
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
Dim Drow최대() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Dr존.code & "'"), DSR.최대냉난방부하Row())
|
||||
|
||||
If i_count_month = 0 Then
|
||||
d_op_mth = 0
|
||||
Else
|
||||
d_op_mth = CInt(Dr프로필("day" & Format(i_count_month, "00")))
|
||||
End If
|
||||
|
||||
'If t_h_max < TOSG(Drow최대(0).난방최대가동시간) * d_op_mth Then
|
||||
' t_h_max = CInt(TOSG(Drow최대(0).난방최대가동시간) * d_op_mth)
|
||||
'End If
|
||||
|
||||
If t_h_max < TOSG(Dr프로필.일일운전시간) * d_op_mth Then
|
||||
t_h_max = CInt(TOSG(Dr프로필.일일운전시간) * d_op_mth)
|
||||
End If
|
||||
|
||||
If d_op_max_mth < d_op_mth Then
|
||||
d_op_max_mth = d_op_mth
|
||||
End If
|
||||
'===================================================================================2010.2.21 수정
|
||||
' End If
|
||||
' End If
|
||||
Next
|
||||
|
||||
'Q_vh_b = Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone)
|
||||
'Q_vc_b = Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone)
|
||||
'Q_vm_b = Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone)
|
||||
|
||||
|
||||
'==========================================================================================================================================
|
||||
' 가열유닛에 대한 사용에너지(3차 에너지)
|
||||
' 외부 공조덕트가 없어서 Q_vh_d 는 0으로 적용
|
||||
|
||||
'Q_dot_V_H_max = V_dot_star_rho_L(c_p_L * (theta_ZUL_wi - theta_AUL_wi) - Delta_h_WRG) '(3.2.5-58)
|
||||
'Q_dot_V_H_max = V_dot_star * rho_L(h_ZUL_wi - h_AUL_wi - Delta_h_WRG) '(3.2.5-57)
|
||||
'b_VH_a = sigma1_12(b_VH_month) '(3.2.8-7)
|
||||
'b_VH_mth = Q_vh_b / Q_dot_V_H_max '(3.2.8-6)
|
||||
't_H_r = t_H_r_14_12h + (t_H_r_22_12h - t_H_r_14_12h) * (theta_V_mech - 14) / 8 '(3-B.1) theta_V_mech은 (3-C.1)
|
||||
't_H_star_op_mth = t_H_r * b_VH_mth / b_VH_a '(3.2.8-5)
|
||||
'Q_vh_d = f_vh_d * A_K_A * t_H_star_opo_mth '(3.2.8-10) f_vh_d=16W/m
|
||||
|
||||
'Q_vh_ce = (1 - eta_vh_ce) * Q_vh_b '(3.2.8-9) eta_vh_ce 는 1로 Q_vh_ce 는 0이 됨
|
||||
'Q_h_star_b = Q_vh_b 'Q_h_star_b = Q_vh_b + Q_vh_ce + Q_vh_d '(3.2.8-2)
|
||||
'==========================================================================================================================================
|
||||
|
||||
|
||||
|
||||
'==========================================================================================================================================
|
||||
' 냉각 유닛에 대한 사용 에너지(3차 에너지)
|
||||
' 외부 공조덕트가 없어서 Q_vc_d 는 0으로 적용
|
||||
|
||||
'Q_dot_V_C_max = V_dot_star * rho_L(h_AUL_so - h_ZUL_so - Delta_h_WRG) '(3.2.5-62)
|
||||
'b_VC_a = sigma1_12(b_VC_month) '(3.2.8-13)
|
||||
'b_VC_mth = Q_vc_b / Q_dot_V_C_max '(3.2.8-12)
|
||||
't_C_r = (t_C_r_14_12h + (t_C_r_22_12h - t_C_r_14_12h) * (theta_V_mech - 14) / 8) * f_h_C '(3-B.2) theta_V_mech은 (3-C.1)
|
||||
't_C_star_op_mth = t_C_r * b_VC_mth / b_VC_a '(3.2.8-11)
|
||||
'Q_vc_d = f_vc_d * A_K_A * t_C_star_opo_mth '(3.2.8-10) f_vh_d=9W/m
|
||||
'Q_vc_ce = (1 - eta_vc_ce) * Q_vc_b '(3.2.8-9) eta_vc_ce 는 1로 Q_vc_ce 는 0이 됨
|
||||
|
||||
'Q_c_star_b = Q_vc_b 'Q_c_star_b = Q_vc_b + Q_vc_ce + Q_vc_d '(3.2.8-8)
|
||||
|
||||
'==========================================================================================================================================
|
||||
|
||||
|
||||
'가습
|
||||
'Q_m_star_b = Q_vm_b '(3.2.8-14)
|
||||
|
||||
|
||||
' 실-냉방 냉열 공급
|
||||
|
||||
'Q_c_b = Sheets("" & i_count_month & "").Cells(7, 7 + i_count_zone)
|
||||
|
||||
Q_c_d = (1 - eta_c_d) * Q_c_b '(3.2.8-21) eta_c_d는 (Tab.7-8)
|
||||
Q_c_ce = ((1 - eta_c_ce) + (1 - eta_c_ce_sens)) * Q_c_b '(3.2.5-20) eta_c_ce는(Tab.7-8), eta_c_ce_sens는 (Tab.7-7)
|
||||
|
||||
Q_c_outg = Q_c_b + Q_c_ce + Q_c_d + Q_c_s '(3.2.8-19)
|
||||
|
||||
|
||||
|
||||
'==========================================================================================================================================
|
||||
' 실-냉방 2차 공기 송풍기의 전기에너지 요구량
|
||||
' 추후 세부 변수 검토
|
||||
|
||||
'beta_c_i = beat_c_we = Q_c_b_we / (Q_c_max_res * t_c_op_we) '(2-D.7)
|
||||
'beta_c_i = beta_c_nutz = Q_c_b_nutz / (Q_c_max_res * t_c_op_nutz)
|
||||
't_c_i = t_mth_nutz = d_nutz * t_c_op_nutz '(2-D.8) t_c_i=t_mth_we=d_we*t_c_op_we
|
||||
't_c_i = t_mth_i * beta_c_i / beta_c_grenz '(2-D.6)
|
||||
't_c_op = t_c_NR + t_c_we '(2-D.5)
|
||||
'Q_c_outg = Q_c_b + Q_c_ce + Q_c_d + Q_c_s '(3.2.8-19)
|
||||
'Q_c_ce_aux = f_c_ce_aux * Q_c_outg * t_c_op / 1000 '(3.2.8-23) f_c_ce_aux 는 (Tab.3.93)
|
||||
Q_c_ce_aux = f_c_ce_aux * Q_c_outg * t_h_max / 1000
|
||||
|
||||
|
||||
'==========================================================================================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
'공조-냉방 냉열 공급
|
||||
|
||||
Q_c_star_d = (1 - eta_c_star_d) * Q_c_star_b '(3.2.8-18) eta_c_star_d는 (Tab.3.91)
|
||||
Q_c_star_ce = ((1 - eta_c_star_ce) + (1 - eta_c_star_ce_sens)) * Q_c_star_b '(3.2.8-16) eta_c_star_ce는 (Tab.3.91), eta_c_star_ce_sens는 (Tab.3.91)
|
||||
|
||||
Q_c_star_outg = Q_c_star_b + Q_c_star_ce + Q_c_star_d + Q_c_star_s '(3.2.8-15)
|
||||
Q_z_star_outg_l = Q_c_star_outg
|
||||
|
||||
|
||||
' 공조기기 가습에 필요한 생산기의 이용열 교부
|
||||
|
||||
|
||||
'Q_m_star_d = 0
|
||||
'Q_m_star_ce = 0
|
||||
'Q_m_star_b = Q_vm_b '(3.2.8-14)
|
||||
'Q_m_star_outg = Q_m_star_b 'Q_m_star_outg = Q_m_star_b + Q_m_star_ce + Q_m_star_d '(3.2.8-24)
|
||||
|
||||
|
||||
Q_c_outg_total = Q_c_outg + Q_c_star_outg
|
||||
|
||||
Q_z_outg_l = Q_c_outg_total
|
||||
|
||||
|
||||
|
||||
'==================================================================================================================================
|
||||
'==================================================================================================================================
|
||||
'지열시스템
|
||||
|
||||
Dim CRenew As New CRenewable
|
||||
If dr냉방.신재생연결여부 = "시스템연결" AndAlso dr냉방.연결된시스템 <> "0" Then ' 시스템연결" Then
|
||||
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & dr냉방.연결된시스템 & "' and code <> '0'")(0), DS.tbl_newRow)
|
||||
'//연결되었을시에는
|
||||
Select Case Dr신재생.기기종류.Trim
|
||||
Case "태양열" '//태양열
|
||||
Case "태양광" '//태양광
|
||||
Case "지열" '//지열
|
||||
Select Case Dr신재생.가동연료.Trim
|
||||
Case "전기" '전기"
|
||||
CRenew.Calc_HeatpumpSystem(system_type, i_HeatCool, Dr신재생, Q_c_outg_total, i_count_month, d_op_max_mth, t_h_max, theta_VA, theta_i, Q_hp_outg, Q_c_f_hp, Q_c_g_hp_aux)
|
||||
Q_c_outg_total = Q_c_outg_total - Q_hp_outg
|
||||
Q_c_f = Q_c_f + Q_c_f_hp + Q_c_g_hp_aux
|
||||
use_Elec = use_Elec + Q_c_f_hp + Q_c_g_hp_aux
|
||||
Case "천연가스" '천연가스"
|
||||
CRenew.Calc_HeatpumpSystem(system_type, i_HeatCool, Dr신재생, Q_c_outg_total, i_count_month, d_op_max_mth, t_h_max, theta_VA, theta_i, Q_hp_outg, Q_c_f_hp, Q_c_g_hp_aux)
|
||||
Q_c_outg_total = Q_c_outg_total - Q_hp_outg
|
||||
Q_c_f = Q_c_f + Q_c_f_hp + Q_c_g_hp_aux
|
||||
use_LNG = use_LNG + Q_c_f_hp
|
||||
use_Elec = use_Elec + Q_c_g_hp_aux
|
||||
Case "액화가스" '액화가스"
|
||||
CRenew.Calc_HeatpumpSystem(system_type, i_HeatCool, Dr신재생, Q_c_outg_total, i_count_month, d_op_max_mth, t_h_max, theta_VA, theta_i, Q_hp_outg, Q_c_f_hp, Q_c_g_hp_aux)
|
||||
Q_c_outg_total = Q_c_outg_total - Q_hp_outg
|
||||
Q_c_f = Q_c_f + Q_c_f_hp + Q_c_g_hp_aux
|
||||
use_LPG = use_LPG + Q_c_f_hp
|
||||
use_Elec = use_Elec + Q_c_g_hp_aux
|
||||
End Select
|
||||
Case "열병합" '//열병합
|
||||
End Select
|
||||
End If
|
||||
|
||||
'==================================================================================================================================
|
||||
'==================================================================================================================================
|
||||
|
||||
EER = TOSG(dr냉방.열성능비) * age ' Dr냉방.열성능비
|
||||
Q_dot_c_outg = TOSG(dr냉방.냉동기용량) ' dr냉방.냉동기용량
|
||||
|
||||
k_n = Q_c_outg_total / (Q_dot_c_outg * t_h_max)
|
||||
|
||||
If k_n > 1 Then k_n = 1
|
||||
|
||||
k_n_index = 100 ' 조건에 없는 압축방식에서 에러 발생 유도함
|
||||
|
||||
Select Case dr냉방.냉동기방식.Trim 'Dr냉방.냉동기방식
|
||||
Case "압축식", "압축식(LNG)" '압축식"
|
||||
T_W_1_i = TOSG(dr냉방.냉각탑입구온도) ' Dr냉방.냉각탑입구온도
|
||||
Select Case dr냉방.냉동기종류.Trim ' Dr냉방.냉동기종류
|
||||
Case "수냉식" '수냉식"
|
||||
Select Case dr냉방.냉동기압축방식.Trim ' Dr냉방.냉동기압축방식
|
||||
Case "왕복동/스크롤 압축기" '왕복동/스크롤압축기"
|
||||
Select Case dr냉방.압축기제어방식.Trim 'Dr냉방.압축기제어방식
|
||||
Case "on/off제어"
|
||||
k_n_index = 7
|
||||
f_2_av = 1
|
||||
Case "다단제어" '다단제어"
|
||||
k_n_index = 8
|
||||
Select Case dr냉방.증발식건식냉각기.Trim ' Dr냉방.증발식건식냉각기
|
||||
Case "증발식" '증발식"
|
||||
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
|
||||
Case "건식" '건식"
|
||||
f_2_av = TOSG(2.1181 - 0.0249 * T_W_1_i)
|
||||
Case Else
|
||||
MsgBox("22")
|
||||
End Select
|
||||
Case "실린더off"
|
||||
k_n_index = 9
|
||||
Select Case dr냉방.증발식건식냉각기.Trim
|
||||
Case "증발식" '증발식"
|
||||
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
|
||||
Case "건식" '건식"
|
||||
f_2_av = TOSG(2.1181 - 0.0249 * T_W_1_i)
|
||||
Case Else
|
||||
MsgBox("21")
|
||||
End Select
|
||||
Case "바이패스제어" '바이패스제어"
|
||||
k_n_index = 10
|
||||
f_2_av = 1
|
||||
Case Else
|
||||
MsgBox("19")
|
||||
End Select
|
||||
Case "스크류압축기" '스크류압축기"
|
||||
k_n_index = 11
|
||||
Select Case dr냉방.증발식건식냉각기.Trim
|
||||
Case "증발식" '증발식"
|
||||
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
|
||||
Case "건식" '건식"
|
||||
f_2_av = TOSG(3.1851 - 0.0486 * T_W_1_i)
|
||||
Case Else
|
||||
MsgBox("18")
|
||||
End Select
|
||||
Case "터보압축기" '터보압축기"
|
||||
k_n_index = 12
|
||||
Select Case dr냉방.증발식건식냉각기.Trim
|
||||
Case "증발식" '증발식"
|
||||
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
|
||||
Case "건식" '건식"
|
||||
f_2_av = TOSG(2.1181 - 0.0249 * T_W_1_i)
|
||||
Case Else
|
||||
MsgBox("16")
|
||||
End Select
|
||||
Case Else
|
||||
MsgBox("17")
|
||||
End Select
|
||||
|
||||
Case "공냉식" '공냉식"
|
||||
Select Case dr냉방.냉동기압축방식.Trim
|
||||
Case "왕복동/스크롤 압축기" '왕복동/스크롤압축기"
|
||||
Select Case dr냉방.압축기제어방식.Trim
|
||||
Case "on/off제어"
|
||||
k_n_index = 0
|
||||
f_2_av = 1
|
||||
Case "다단제어" '다단제어"
|
||||
k_n_index = 1
|
||||
f_2_av = 1
|
||||
Case Else
|
||||
MsgBox("15")
|
||||
End Select
|
||||
Case "스크류압축기" '스크류압축기"
|
||||
k_n_index = 2
|
||||
f_2_av = 1
|
||||
Case Else
|
||||
MsgBox("14")
|
||||
End Select
|
||||
|
||||
Case "실내공조시스템" '실내공조시스템"
|
||||
Select Case dr냉방.냉동기설비시스템.Trim ' Dr냉방.냉동기설비시스템
|
||||
Case "콤팩트형시스템" '콤팩트형시스템"
|
||||
k_n_index = 3
|
||||
f_2_av = 1
|
||||
Case "실내외분리시스템" '실내외분리시스템"
|
||||
Select Case dr냉방.제어방식.Trim.ToLower '냉동기설비시스템의제어방식 Dr냉방.제어방식
|
||||
Case "on/off제어"
|
||||
k_n_index = 3
|
||||
f_2_av = 1
|
||||
Case "회전수제어" '회전수제어"
|
||||
k_n_index = 5
|
||||
f_2_av = 1
|
||||
Case Else
|
||||
MsgBox(dr냉방.제어방식.Trim)
|
||||
End Select
|
||||
Case "멀티분리시스템" '멀티분리시스템"
|
||||
Select Case dr냉방.제어방식.Trim
|
||||
Case "on/off제어"
|
||||
k_n_index = 4
|
||||
f_2_av = 1
|
||||
Case "회전수제어" '회전수제어"
|
||||
k_n_index = 6
|
||||
f_2_av = 1
|
||||
Case Else
|
||||
MsgBox("11")
|
||||
End Select
|
||||
Case Else
|
||||
MsgBox("13")
|
||||
End Select
|
||||
Case Else
|
||||
MsgBox("30")
|
||||
End Select
|
||||
'//이부분정확히 살펴보아야할듯
|
||||
If k_n = 0 Then k_n = 0.001 ' 부분부하율이 0일 경우 부분부하를 0에서 0.1구간으로 설정
|
||||
'Dim Drow부분부하() As DS.tbl_buhaRow = DSET.tbl_buha.Rows(k_n_index) '.Select("code='" & Format(9 - Int((1 - k_n) * 10), "00") & "'")
|
||||
|
||||
If k_n_index >= 100 Then
|
||||
Log.AppendLine("냉방기기(" & dr냉방.설명 & ")의 냉동기방식(" & dr냉방.냉동기방식.Trim & ")에따른 종류(" & dr냉방.냉동기종류.Trim & ")를 확인할 수 없습니다")
|
||||
Exit For 'Return
|
||||
Else
|
||||
f_1_av_up = TOSG(DSET.tbl_buha.Rows(k_n_index)(CInt(9 - Int((1 - k_n) * 10) + 2)))
|
||||
If k_n < 0.1 Then
|
||||
f_1_av_dn = f_1_av_up
|
||||
Else
|
||||
f_1_av_dn = TOSG(DSET.tbl_buha.Rows(k_n_index)(CInt(9 - Int((1 - k_n) * 10) + 1)))
|
||||
End If
|
||||
f_1_av = f_1_av_up - (f_1_av_up - f_1_av_dn) * (1 - (k_n * 10 - Int(k_n * 10)))
|
||||
|
||||
'f_1_av = TOSG(DSET.tbl_buha.Rows(k_n_index)(CInt(9 - Int((1 - k_n) * 10) + 2))) ' Worksheets("부분부하율").Range("냉동기부분부하율1").Offset(k_n_index, 9 - Int((1 - k_n) * 10))
|
||||
End If
|
||||
|
||||
PLV_av = f_1_av * f_2_av
|
||||
If dr냉방.냉동기방식 = "압축식" Then
|
||||
Q_c_f_elektr = Q_c_outg_total / (EER * PLV_av)
|
||||
'======================================================================= 2010.10.5 추가
|
||||
ElseIf dr냉방.냉동기방식 = "압축식(LNG)" Then
|
||||
Q_c_outg_therm = Q_c_outg_total / (EER * PLV_av)
|
||||
use_LNG = use_LNG + Q_c_outg_therm
|
||||
'======================================================================= 2010.10.5 추가
|
||||
End If
|
||||
If (dr냉방.냉동기방식 = "압축식" Or dr냉방.냉동기방식 = "압축식(LNG)") And dr냉방.냉동기종류 = "수냉식" Then 'If Dr냉방.냉동기방식 = "압축식" And Dr냉방.냉동기종류 = "수냉식" Then
|
||||
Q_dot_R_outg = Q_dot_c_outg * (1 + 1 / EER)
|
||||
Select Case dr냉방.증발식건식냉각기.Trim
|
||||
Case "증발식" '증발식"
|
||||
l_min_i = TOSG(1.2103 - 0.0162 * theta_e) '원래는 습구온도로 입력요망 우선 외기건구온도로 입력 추후 수정
|
||||
'f_R_av = (Log(1 - 0.5 / 0.8) * l_min_i / (Log(1 - 0.5 / 0.8) * 0.87)) ^ 2 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
|
||||
f_R_av = Q_c_outg_total * 4 / (Q_dot_c_outg * t_h_max) ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
|
||||
If f_R_av > 1 Then f_R_av = 1 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산하고 최대가동시간 이하로 계산 추후 수정
|
||||
Select Case dr냉방.증발식냉각기.Trim 'Dr냉방.증발식냉각기
|
||||
Case "폐쇄형" '폐쇄형"
|
||||
Select Case dr냉방.보조방음기유무.Trim 'Dr냉방.보조방음기유무
|
||||
Case "아니오" '아니오"
|
||||
q_R_elektr = 0.033
|
||||
Case "예" '예"
|
||||
q_R_elektr = 0.04
|
||||
End Select
|
||||
Case "개방형" '개방형"
|
||||
Select Case dr냉방.보조방음기유무.Trim
|
||||
Case "아니오" '아니오"
|
||||
q_R_elektr = 0.018
|
||||
Case "예" '예"
|
||||
q_R_elektr = 0.021
|
||||
End Select
|
||||
End Select
|
||||
Case "건식" '건식"
|
||||
f_R_av = 1 '우선 1로 적용 추후 검토
|
||||
q_R_elektr = 0.045
|
||||
End Select
|
||||
Q_c_f_R_elektr = Q_dot_R_outg * q_R_elektr * f_R_av * t_h_max
|
||||
Else
|
||||
Q_c_f_R_elektr = 0
|
||||
End If
|
||||
|
||||
|
||||
Case "흡수식" '흡수식"
|
||||
Q_dot_R_outg = Q_dot_c_outg * (1 + 1 / EER)
|
||||
T_W_1_i = TOSG(dr냉방.냉각탑입구온도)
|
||||
Select Case dr냉방.증발식건식냉각기.Trim
|
||||
Case "증발식" '증발식"
|
||||
l_min_i = TOSG(1.2103 - 0.0162 * theta_e) '원래는 습구온도로 입력요망 우선 외기건구온도로 입력 추후 수정
|
||||
'f_R_av = (Log(1 - 0.5 / 0.8) * l_min_i / (Log(1 - 0.5 / 0.8) * 0.87)) ^ 2 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
|
||||
f_R_av = Q_c_outg_total * 4 / (Q_dot_c_outg * t_h_max) ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
|
||||
If f_R_av > 1 Then f_R_av = 1 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산하고 최대가동시간 이하로 계산 추후 수정
|
||||
Select Case dr냉방.증발식냉각기.Trim
|
||||
Case "폐쇄형"
|
||||
Select Case dr냉방.보조방음기유무.Trim
|
||||
Case "아니오"
|
||||
q_R_elektr = 0.033
|
||||
Case "예"
|
||||
q_R_elektr = 0.04
|
||||
End Select
|
||||
Case "개방형"
|
||||
Select Case dr냉방.보조방음기유무.Trim
|
||||
Case "아니오"
|
||||
q_R_elektr = 0.018
|
||||
Case "예"
|
||||
q_R_elektr = 0.021
|
||||
End Select
|
||||
End Select
|
||||
Case "건식" '건식"
|
||||
f_R_av = 1 '우선 1로 적용 추후 검토
|
||||
q_R_elektr = 0.045
|
||||
End Select
|
||||
Q_c_f_R_elektr = Q_dot_R_outg * q_R_elektr * f_R_av * t_h_max
|
||||
|
||||
Select Case dr냉방.증발식건식냉각기.Trim
|
||||
Case "증발식"
|
||||
f_2_av = TOSG(1.7174 - 0.0217 * T_W_1_i)
|
||||
Case "건식"
|
||||
f_2_av = TOSG(2.3235 - 0.0294 * T_W_1_i)
|
||||
Case Else
|
||||
'MsgBox("증발식건식냉각기를 확인할 수 없습니다" & vbCrLf & "Calc_CoolingSystem 429번줄 Case else 를 입력하세요", MsgBoxStyle.Critical, dr냉방.증발식건식냉각기)
|
||||
|
||||
End Select
|
||||
|
||||
'//13번째줄
|
||||
If k_n = 0 Then k_n = 0.01 ' 부분부하율이 0일 경우 부분부하를 0에서 0.1구간으로 설정
|
||||
f_1_av_up = TOSG(DSET.tbl_buha.Rows(13)(CInt(9 - Int((1 - k_n) * 10) + 2)))
|
||||
If k_n < 0.1 Then
|
||||
f_1_av_dn = f_1_av_up
|
||||
Else
|
||||
f_1_av_dn = TOSG(DSET.tbl_buha.Rows(13)(CInt(9 - Int((1 - k_n) * 10) + 1)))
|
||||
End If
|
||||
f_1_av = f_1_av_up - (f_1_av_up - f_1_av_dn) * (1 - (k_n * 10 - Int(k_n * 10)))
|
||||
'f_1_av = TOSG(DSET.tbl_buha.Rows(13)(CInt(9 - Int((1 - k_n) * 10) + 2))) 'Worksheets("부분부하율").Range("냉동기부분부하율1").Offset(13, 9 - Int((1 - k_n) * 10))
|
||||
PLV_av = f_1_av * f_2_av
|
||||
|
||||
|
||||
|
||||
Q_c_outg_therm = Q_c_outg_total / (EER * PLV_av)
|
||||
|
||||
': 흡수식 냉동기에서 사용되는 보일러의 생산손실에너지 계산
|
||||
If dr냉방.열생산연결방식.ToString = "외부연결" Then '==============================2010.04.02 if문 추가
|
||||
|
||||
|
||||
'//냉방의 온수열생산기기로 지정된 난방기기만을 취한다 10.02.23 최적화중변경
|
||||
For Each Dr난방 As DS.tbl_nanbangkikiRow In DSET.tbl_nanbangkiki.Select("code = '" & dr냉방.온수열생산기기 & "' and code <> '0'", "code")
|
||||
'If Dr난방.code = dr냉방.온수열생산기기 Then ' Dr냉방.온수열생산기기 Then
|
||||
|
||||
theta_VA = TOSG(Dr난방.급수온도) ' Worksheets("난방기기").Range("난방기기급수온도1").Offset(0, i_count_c_d - 1)
|
||||
theta_RA = TOSG(Dr난방.환수온도) ' Worksheets("난방기기").Range("난방기기환수온도1").Offset(0, i_count_c_d - 1)
|
||||
|
||||
theta_HK_m_beta_h_d = TOSG(0.5 * (theta_VA + theta_RA))
|
||||
|
||||
'----------------------------------------------------------------------------------------------------------------------------------
|
||||
'----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
'신재생 및 열병합 시스템
|
||||
Dim CNew As New CRenewable
|
||||
If Dr난방.신재생연결여부 = "시스템연결" AndAlso Dr난방.연결된시스템 <> "0" Then ' Worksheets("난방기기").Range("신재생난방연결1").Offset(0, i_count_c_d - 1) = "시스템연결" Then
|
||||
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & Dr난방.연결된시스템 & "' and code <> '0'")(0), DS.tbl_newRow)
|
||||
Select Case Dr신재생.기기종류.Trim
|
||||
Case "태양열" '//태양열
|
||||
'========================================================================================2010.04.02 추가
|
||||
If Q_c_outg_therm > 0 Then
|
||||
Calc.Renewable.Calc_ThermalSolarSystem_EN(system_type, Dr신재생.code, i_count_month, d_op_max_mth, Q_h_outg_i, Q_c_outg_therm, Q_W_sol_out_m, Q_H_sol_out_m, W_sol_aux_m)
|
||||
Q_c_outg_therm = Q_c_outg_therm - Q_W_sol_out_m
|
||||
Q_c_aux = Q_c_aux + W_sol_aux_m
|
||||
End If
|
||||
'========================================================================================2010.04.02 추가
|
||||
Case "태양광" '//태양광
|
||||
Case "지열" '//지열
|
||||
Case "열병합" '//열병합
|
||||
If Q_c_outg_therm > 0 Then '===========================2010.04.02 And Q_c_outg_therm > 0 추가
|
||||
Select Case Dr신재생.가동연료.Trim
|
||||
Case "난방유" '난방유"
|
||||
CNew.Calc_CogenerationSystemEN(Dr신재생, i_count_month, Q_c_outg_therm, t_h_max, Q_chp_outg, Q_c_f_chp)
|
||||
Q_c_outg_therm = Q_c_outg_therm - Q_chp_outg
|
||||
use_Oil = use_Oil + Q_c_f_chp
|
||||
|
||||
Case "천연가스" '천연가스"
|
||||
CNew.Calc_CogenerationSystemEN(Dr신재생, i_count_month, Q_c_outg_therm, t_h_max, Q_chp_outg, Q_c_f_chp)
|
||||
Q_c_outg_therm = Q_c_outg_therm - Q_chp_outg
|
||||
use_LNG = use_LNG + Q_c_f_chp
|
||||
|
||||
Case "액화가스" '액화가스"
|
||||
CNew.Calc_CogenerationSystemEN(Dr신재생, i_count_month, Q_c_outg_therm, t_h_max, Q_chp_outg, Q_c_f_chp)
|
||||
Q_c_outg_therm = Q_c_outg_therm - Q_chp_outg
|
||||
use_LPG = use_LPG + Q_c_f_chp
|
||||
|
||||
End Select
|
||||
End If
|
||||
|
||||
End Select
|
||||
End If
|
||||
|
||||
|
||||
'----------------------------------------------------------------------------------------------------------------------------------
|
||||
'----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
If Dr난방.열생산기기방식 = "보일러" Then ' Worksheets("난방기기").Range("열생산기기방식1").Offset(0, i_count_c_d - 1) = "보일러" Then
|
||||
|
||||
Q_dot_N = TOSG(Dr난방.정격보일러효율) * age_heating ' Worksheets("난방기기").Range("난방기기정격출력1").Offset(0, i_count_c_d - 1)
|
||||
Q_dot_d_in = Q_c_outg_therm / t_h_max
|
||||
|
||||
Select Case Dr난방.운전방식.Trim ' Worksheets("난방기기").Range("난방기기운전방식1").Offset(0, i_count_c_d - 1)
|
||||
Case "단독가동" '단독가동"
|
||||
beta_h = Q_dot_d_in / Q_dot_N '(3.2.7-64) : 단일보일러 시설
|
||||
Case "동시가동" ' 동시가동"
|
||||
beta_h = Q_dot_d_in / (Q_dot_N * TOSG(Dr난방.보일러대수)) ' Worksheets("난방기기").Range("난방기기운전방식1").Offset(1, i_count_c_d - 1)) '(3.2.7-64) : 다수보일러 동시가동
|
||||
Case "순차가동" '순차가동"
|
||||
For i_count_beta = 1 To CInt(TOSG(Dr난방.보일러대수))
|
||||
If Q_dot_d_in <= (Q_dot_N * i_count_beta) Then
|
||||
beta_h = (Q_dot_d_in - Q_dot_N * (i_count_beta - 1)) / Q_dot_N * i_count_beta '다수보일러 대수제어
|
||||
n_beta = i_count_beta - 1
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End Select
|
||||
|
||||
|
||||
eta_k_100 = TOSG(Dr난방.정격보일러효율) * age_heating / 100 'Worksheets("난방기기").Range("난방기기정격효율1").Offset(0, i_count_c_d - 1) / 100
|
||||
eta_k_pl = eta_k_100
|
||||
f = -0.4
|
||||
Select Case Dr난방.보일러방식.Trim 'Worksheets("난방기기").Range("보일러방식1").Offset(0, i_count_c_d - 1)
|
||||
Case "가스보일러" '가스보일러"
|
||||
e = 8.5
|
||||
f = -0.4
|
||||
Case "기름보일러" '기름보일러"
|
||||
e = 8.5
|
||||
f = -0.4
|
||||
Case "저온가스보일러" '저온가스보일러"
|
||||
e = 4.5
|
||||
f = -0.4
|
||||
Case "저온기름보일러" '저온기름보일러"
|
||||
e = 4.25
|
||||
Case "콘덴싱보일러" '콘덴싱보일러"
|
||||
e = 4
|
||||
End Select
|
||||
|
||||
q_B_70 = TOSG((e * (Q_dot_N ^ f)) / 100)
|
||||
q_B_theta = q_B_70 '원래는 =q_B_70 * (theta_HK_m_beta_h_g - theta_i) / (70 - 20) 이지만 q_B_theta 와 q_B_70 이 같은 것으로 적용 추후검토
|
||||
|
||||
'Select Case Worksheets("난방기기").Range("난방기기사용연료1").Offset(0, i_count_c_d - 1)
|
||||
'Case "난방유"
|
||||
'f_Hs_Hi = 1.06
|
||||
'Case "천연가스"
|
||||
'f_Hs_Hi = 1.11
|
||||
'Case "액화가스"
|
||||
'f_Hs_Hi = 1.09
|
||||
'Case "석탄"
|
||||
'f_Hs_Hi = 1.04
|
||||
'Case "갈탄"
|
||||
'f_Hs_Hi = 1.07
|
||||
'Case "나무"
|
||||
'f_Hs_Hi = 1.08
|
||||
'End Select
|
||||
|
||||
f_Hs_Hi = 1 ' 국내는 총발열량을 기준으로 입력함으로 우선 1로 설정, 추후 검토
|
||||
|
||||
Q_dot_B_h = q_B_theta * (Q_dot_N / eta_k_100) * f_Hs_Hi '(3.2.7-71)
|
||||
|
||||
Q_V_g_100 = (f_Hs_Hi - eta_k_100) / eta_k_100 * Q_dot_N
|
||||
Q_V_g_pl = (f_Hs_Hi - eta_k_pl) / eta_k_pl * beta_k_pl * Q_dot_N
|
||||
|
||||
'------------------------------------------------------------------------------------------------------
|
||||
|
||||
If beta_h > beta_k_pl Then
|
||||
Q_c_g_v_i = ((beta_h - beta_k_pl) / (1 - beta_k_pl) * (Q_V_g_100 - Q_V_g_pl) + Q_V_g_pl)
|
||||
Q_c_g_v_i = Q_c_g_v_i + ((Q_V_g_100 - Q_V_g_pl) + Q_V_g_pl) * n_beta
|
||||
Else
|
||||
Q_c_g_v_i = ((beta_h / beta_k_pl) * (Q_V_g_pl - Q_dot_B_h) + Q_dot_B_h)
|
||||
End If
|
||||
|
||||
|
||||
Q_c_g = Q_c_g_v_i * t_h_max ' 추후 검토
|
||||
|
||||
Else
|
||||
|
||||
':지역난방의 경우 적용 추후 검토
|
||||
Q_c_g = 0
|
||||
|
||||
End If
|
||||
|
||||
If Dr난방.열생산기기방식 = "보일러" Then 'Worksheets("난방기기").Range("열생산기기방식1").Offset(0, i_count_c_d - 1) = "보일러" Then
|
||||
Select Case Dr난방.사용연료.Trim ' Worksheets("난방기기").Range("난방기기사용연료1").Offset(0, i_count_c_d - 1)
|
||||
Case "난방유" '난방유"
|
||||
use_Oil = use_Oil + Q_c_g + Q_c_outg_therm
|
||||
|
||||
Case "천연가스" '천연가스"
|
||||
use_LNG = use_LNG + Q_c_g + Q_c_outg_therm
|
||||
|
||||
Case "액화가스" '액화가스"
|
||||
use_LPG = use_LPG + Q_c_g + Q_c_outg_therm
|
||||
|
||||
End Select
|
||||
Else
|
||||
Select Case Dr난방.열생산기기방식.Trim 'Worksheets("난방기기").Range("열생산기기방식1").Offset(0, i_count_c_d - 1)
|
||||
Case "지역난방" '지역난방"
|
||||
use_DH = use_DH + Q_c_outg_therm
|
||||
|
||||
Case "전기보일러" '전기보일러"
|
||||
use_Elec = use_Elec + Q_c_outg_therm
|
||||
|
||||
End Select
|
||||
|
||||
End If
|
||||
|
||||
|
||||
' End If
|
||||
|
||||
|
||||
Next
|
||||
'=================================================================================================2010.04.02 if문 추가
|
||||
ElseIf dr냉방.열생산연결방식 = "직화식" Then
|
||||
Select Case dr냉방.사용연료.ToString
|
||||
Case "난방유"
|
||||
use_Oil = use_Oil + Q_c_outg_therm
|
||||
Case "천연가스"
|
||||
use_LNG = use_LNG + Q_c_outg_therm
|
||||
Case "액화가스"
|
||||
use_LPG = use_LPG + Q_c_outg_therm
|
||||
Case Else
|
||||
MsgBox("냉동기기(" & dr냉방.설명 & ")가 직화식이나 사용연료가 없습니다.확인바랍니다.", vbOKOnly, "건물 에너지 평가 프로그램(ECO2)")
|
||||
End Select
|
||||
Else
|
||||
MsgBox("냉동기기(" & dr냉방.설명 & ")의 열생산연결방식을 확인바랍니다.", vbOKOnly, "건물 에너지 평가 프로그램(ECO2)")
|
||||
End If
|
||||
|
||||
'=================================================================================================2010.04.02 if문 추가
|
||||
Case "지역냉방" '지역냉방"
|
||||
'--------------------------------------------------------------------------------------------------2010.02.22 수정
|
||||
use_DC = use_DC + Q_c_outg_total
|
||||
'--------------------------------------------------------------------------------------------------2010.02.22 수정
|
||||
Q_c_outg_therm = Q_c_outg_total
|
||||
|
||||
End Select
|
||||
|
||||
Q_c_f = Q_c_f + Q_c_f_elektr + Q_c_f_R_elektr + Q_c_outg_therm + Q_c_g
|
||||
use_Elec = use_Elec + Q_c_f_elektr + Q_c_f_R_elektr
|
||||
|
||||
If i_count_month = 6 Then
|
||||
i_count_month = 6
|
||||
End If
|
||||
' 분배에 대한 전기 에너지 소비
|
||||
For Each Dr분배 As DS.tbl_bunbaeRow In DSET.tbl_bunbae.Select("냉동기='" & dr냉방.code & "' and code <> '0'", "code")
|
||||
'If Dr분배.냉동기 = dr냉방.code Then ' Worksheets("냉방분배시스템").Range("냉동기분배1").Offset(0, i_count_c_d - 1) = Worksheets("냉방기기").Range("냉방생산기기1").Offset(0, i_count_chiller - 1) Then
|
||||
|
||||
Q_dot_z = Q_dot_c_outg * (1 + 1 / EER) '(3.2.8-30)
|
||||
Delta_theta_z_cl = TOSG(Dr분배.설정점에서의온도차) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(3, i_count_c_d - 1) 6
|
||||
c_cl = TOSG(Dr분배.냉매의비열) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(4, i_count_c_d - 1) 4.18
|
||||
rho_cl = TOSG(Dr분배.냉매의밀도) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(5, i_count_c_d - 1) 1000
|
||||
V_dot_z = (3600 * Q_dot_z) / (Delta_theta_z_cl * c_cl * rho_cl) '(3.2.8-29)
|
||||
L = TOSG(Dr분배.공급범위의길이) ' Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(0, i_count_c_d - 1)
|
||||
b = TOSG(Dr분배.공급범위의넓이) 'Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(1, i_count_c_d - 1)
|
||||
n_G = TOSG(Dr분배.열층의수) ' Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(2, i_count_c_d - 1)
|
||||
h_G = TOSG(Dr분배.층고) 'Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(3, i_count_c_d - 1)
|
||||
L_max = 2 * (L + b / 2 + h_G * n_G + 10) '(3.2.8-32)
|
||||
R = TOSG(Dr분배.배관의압력손실) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(7, i_count_c_d - 1) 0.3
|
||||
z = TOSG(Dr분배.개별저항비율) '("냉방분배시스템").Range("급수온도1").Offset(8, i_count_c_d - 1) 0.4
|
||||
Delta_P_WUE = TOSG(Dr분배.생산기기압력손실) ' Worksheets("냉방분배시스템").Range("생산기기압력손실1").Offset(0, i_count_c_d - 1)
|
||||
Delta_P_WUV = TOSG(Dr분배.사용기기압력손실) ' Worksheets("냉방분배시스템").Range("생산기기압력손실1").Offset(1, i_count_c_d - 1)
|
||||
Delta_P_RV = TOSG(Dr분배.제어밸브압력손실) ' Worksheets("냉방분배시스템").Range("생산기기압력손실1").Offset(2, i_count_c_d - 1)
|
||||
|
||||
Delta_p_z = R * L_max * (1 + z) + Delta_P_WUE + Delta_P_RV + Delta_P_WUV '(3.2.8-31) R(7-Tab.11), Delta_P_WUE, Delta_P_RV, Delta_P_WUV (7-Tab.12)
|
||||
|
||||
P_d_hydr = 1000 * Delta_p_z * V_dot_z / 3600 '(3.2.8-28)
|
||||
|
||||
'f_e = f_dash_e * (1 + (nu_cl ^ 2 / (16 * P_d_hydr)) ^ 0.4) '기존건물 관련
|
||||
'f_e = (1.25 + (200 / P_d_hydr) ^ 0.5) * f_Adap * b '(3.2.8-38) '기존건물 관련
|
||||
P_Pump = TOSG(Dr분배.펌프동력) 'Worksheets("냉방분배시스템").Range("급수온도1").Offset(9, i_count_c_d - 1)
|
||||
'P_Pump = Worksheets("냉방분배시스템").Range("급수온도1").Offset(9, i_count_c_d - 1) << 이거오류인듯 펌프는 8번인덱스여야한다.9번줄에는 아무것도 없다.
|
||||
f_e = P_Pump / P_d_hydr '원래는 P_hydr '(3.2.8-37)
|
||||
|
||||
If Dr분배.펌프운전제어유무 = "제어" Then ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(-1, i_count_c_d - 1) = "제어" Then
|
||||
c_p1 = 0.85
|
||||
c_p2 = 0.15
|
||||
ElseIf Dr분배.펌프운전제어유무 = "대수제어" Then
|
||||
c_p1 = 0.75
|
||||
c_p2 = 0.25
|
||||
Else
|
||||
c_p1 = 0.25
|
||||
c_p2 = 0.75
|
||||
End If
|
||||
|
||||
'beta_d_l = beta_dash_ + (1 - beta_dash_d_l) * V_dot_z_min / V_dot_z '(3.2.8-35)
|
||||
If Q_z_outg_l <> 0 Then
|
||||
beta_d_l = Q_z_outg_l / (Q_dot_z * t_h_max) '(3.2.8-34) t_d_l 을 t_h_max으로 사용
|
||||
|
||||
e_d_l = f_e * (c_p1 + c_p2 / beta_d_l) '(3.2.8-36)
|
||||
|
||||
W_d_hydr_l = P_d_hydr / 1000 * t_h_max * beta_d_l * f_Abgl '(3.2.8-27) t_d_l 을 t_h_max으로 사용
|
||||
|
||||
Q_z_aux_d_l = W_d_hydr_l * e_d_l '(3.2.8-26)
|
||||
'Q_z_aux_d_a = sigma(Q_z_zux_d_l) '(3.2.8-25)
|
||||
|
||||
Q_c_aux = Q_c_aux + Q_z_aux_d_l
|
||||
End If
|
||||
|
||||
'End If
|
||||
|
||||
Next
|
||||
|
||||
End If '2
|
||||
|
||||
Next '1
|
||||
|
||||
|
||||
|
||||
'//계산결과 시트의 각 월에해당되는 곳에 데이터를 기록한다.
|
||||
|
||||
Result.E소요량(i_count_month).냉방 = Q_c_f
|
||||
Result.E소요량(i_count_month).냉방보조 = Q_c_aux
|
||||
|
||||
use_Elec = use_Elec + Q_c_aux
|
||||
|
||||
Result.일차E소요량(i_count_month).냉방등유 = use_Oil
|
||||
Result.일차E소요량(i_count_month).냉방LNG = use_LNG
|
||||
Result.일차E소요량(i_count_month).냉방LPG = use_LPG
|
||||
Result.일차E소요량(i_count_month).냉방지역난방열 = use_DH
|
||||
'--------------------------------------------------------------------------------------------------2010.02.22 수정
|
||||
Result.일차E소요량(i_count_month).냉방지역냉방열 = use_DC
|
||||
'--------------------------------------------------------------------------------------------------2010.02.22 수정
|
||||
Result.일차E소요량(i_count_month).냉방전력 = use_Elec
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
1821
ArinWarev1/DataSet/Calculator/Heating/CHeating.vb
Normal file
1821
ArinWarev1/DataSet/Calculator/Heating/CHeating.vb
Normal file
File diff suppressed because it is too large
Load Diff
593
ArinWarev1/DataSet/Calculator/Renewable/CRenewable.vb
Normal file
593
ArinWarev1/DataSet/Calculator/Renewable/CRenewable.vb
Normal file
@@ -0,0 +1,593 @@
|
||||
Public Class CRenewable
|
||||
Public Sub New()
|
||||
'ByVal dr존 As DS.tbl_zoneRow,
|
||||
End Sub
|
||||
' Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal i_count_ts As Integer, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m as decimal, ByVal Q_W_sol_us_m as decimal, ByRef Q_W_sol_out_m as decimal, ByRef Q_H_sol_out_m as decimal, ByRef W_sol_aux_m as decimal)
|
||||
|
||||
Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal DR_code As String, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m As Decimal, ByVal Q_W_sol_us_m As Decimal, ByRef Q_W_sol_out_m As Decimal, ByRef Q_H_sol_out_m As Decimal, ByRef W_sol_aux_m As Decimal)
|
||||
|
||||
Dim theta_ref As Decimal, theta_w As Decimal, theta_cw As Decimal, U_loop_p As Decimal, U_loop As Decimal, Delta_T As Decimal
|
||||
Dim A_ As Decimal, a As Decimal, b As Decimal, c As Decimal, d As Decimal, e As Decimal, f As Decimal, eta_loop As Decimal, IAM As Decimal, eta_0 As Decimal
|
||||
Dim a_1 As Decimal, a_2 As Decimal, P_H As Decimal, P_W As Decimal, V_ref As Decimal, V_sol As Decimal, t_m As Decimal, I_m As Decimal, P_aux_nom As Decimal
|
||||
'Dim i_ts_location As Integer, i_count_ts_location As Integer
|
||||
' Dim i_count_month As Integer
|
||||
Dim i_direction As Integer
|
||||
Dim t_aux_m As Decimal, l_tot As Decimal, f_st As Decimal, U_st As Decimal
|
||||
Dim theta_setpoint As Decimal, theta_a_avg As Decimal, theta_e_avg As Decimal
|
||||
Dim Q_sol_ls_rbl_m As Decimal, Q_sol_aux_rbl_m As Decimal, Q_sol_st_ls_rbl_m As Decimal, Q_bu_dis_ls_rbl_m As Decimal, Q_bu_dis_ls_m As Decimal, Q_sol_ls_m As Decimal
|
||||
Dim Q_W_bu_dis_ls_m As Decimal, Q_H_bu_dis_ls_m As Decimal, Q_W_sol_st_ls_m As Decimal, Q_H_sol_st_ls_m As Decimal
|
||||
Dim A_H As Decimal, A_W As Decimal, X As Decimal, Y As Decimal
|
||||
|
||||
'Dim Dr기상데이터 As DS.tbl_weatherRow
|
||||
'For i_count_ts_location = 1 To DSET.tbl_weather.Rows.Count ' Range("건물위치").Columns.Count
|
||||
' Dr기상데이터 = DSET.tbl_weather(i_count_ts_location - 1)
|
||||
' If dr존.지역 = Dr기상데이터.건물위치 Then '//이상하다 1버번쨰 존의 지역값만 계속쓴다 -_-;; 지역은 즉 존에할당된게아니고 1개만 존재하는듯하다
|
||||
' i_ts_location = i_count_ts_location '//기상데이터에서 현재지정된 존.지역의 기상데이터의 지역의 열번호(엑셀에서만)를 기억한다 (나중에 이번호로 데이터 참조하려고)
|
||||
' Exit For
|
||||
' End If
|
||||
' '//지역찾을떄그냥 DR지역을 사용하도록한다.
|
||||
' 'If Worksheets("입력존").Range("지역1").Offset(0, 0) = Worksheets("기상데이타").Range("건물위치1").Offset(0, i_count_ts_location - 1) Then
|
||||
' ' i_ts_location = i_count_ts_location
|
||||
' ' Exit For
|
||||
' 'End If
|
||||
'Next
|
||||
|
||||
l_tot = 0
|
||||
|
||||
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & DR_code & "' and code <> '0'", "code")(0), DS.tbl_newRow) '//신재생의 태양열시스템
|
||||
|
||||
Select Case Dr신재생.집열판방위.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(3, i_count_ts - 1)
|
||||
Case "동" '동"
|
||||
i_direction = 12
|
||||
|
||||
Case "남동" '남동"
|
||||
i_direction = 10
|
||||
|
||||
Case "남" '남"
|
||||
i_direction = 9
|
||||
|
||||
Case "남서" '남서"
|
||||
i_direction = 11
|
||||
|
||||
Case "서" '서"
|
||||
i_direction = 13
|
||||
|
||||
Case "수평" '수평" '//월별평균일사 수평면을 사용 나머지것들은 45도짜리를 사용한다. 45도짜리 코드값을 해당코드+1000이다. 해당코드+1000으로 미리 셋팅햇다(변경불가)
|
||||
i_direction = 0
|
||||
Case Else
|
||||
MsgBox("신재생에너지-태양열의 집열판 방위값이 올바르지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
|
||||
'//집열판방위에따른 월별평균일사의 총합을 가져온다
|
||||
'//weather_ilsa 의 p코드에는 지역코드값이 들어가고 코드값은 집열판방위+1000 의값이 해당 각도의 방향에대한 데이터가된다.
|
||||
|
||||
|
||||
'///만약값이 서울 방향이 남 이엇을경우에는 해당 일사데이터를 찾는게 목적이에요. 여기서 서울의 코드값은 찾을수잇어요
|
||||
'//그담이 방향 남에 맞는 일사데이터를 찾아야하는데.. 일사데이터 코드로는 못찾으니깐. 이름으로 찾아요.
|
||||
'//
|
||||
Dim 일사이름 As String = Dr신재생.집열판방위 & "(45)" '//이렇게되면 남(45) 라는 최종이름이 되겟죠?
|
||||
Dim Drow평균일사() As DS.weather_ilsaRow = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & _
|
||||
"' and 설명='" & 일사이름 & "'"), DS.weather_ilsaRow())
|
||||
'//그렇게해서 서울의 코드에 해당하는 pcode 와 이름이 남(45)로 되어잇는 일사데이터테이블에서 데이터를 검색하게되겟죠?
|
||||
'//즉 데이터가 나오면 해당 데이터가 맞는거에요 ..이건 데이터베이스 이름을 남(45) 식으로 모두 고쳐주세요
|
||||
|
||||
If Drow평균일사.GetUpperBound(0) = -1 Then
|
||||
MsgBox("지역코드=" + Calc.Pub.기상데이터.code + vbCrLf + "집열판방위코드=" + Dr신재생.집열판방위 + _
|
||||
vbCrLf + "예상일사코드=" + 일사이름 + _
|
||||
vbCrLf + "에 해당하는 평균일사데이터가 없습니다. 1개의 행이 반환되어야 합니다", MsgBoxStyle.Critical, "계산실패")
|
||||
I_m = 0
|
||||
' Return
|
||||
Else
|
||||
l_tot += TOSG(Drow평균일사(0).m01) + TOSG(Drow평균일사(0).m02) + TOSG(Drow평균일사(0).m03) + TOSG(Drow평균일사(0).m04) + _
|
||||
TOSG(Drow평균일사(0).m05) + TOSG(Drow평균일사(0).m06) + TOSG(Drow평균일사(0).m07) + TOSG(Drow평균일사(0).m08) + _
|
||||
TOSG(Drow평균일사(0).m09) + TOSG(Drow평균일사(0).m10) + TOSG(Drow평균일사(0).m11) + TOSG(Drow평균일사(0).m12)
|
||||
I_m = TOSG(Drow평균일사(0)("m" & i_ts_month.ToString("00"))) '//이줄로 위의 케이스문을 대체햇다 오류나면 케이스문으로 일단 사용할예정
|
||||
|
||||
End If
|
||||
|
||||
|
||||
t_aux_m = I_m / l_tot * 2000
|
||||
|
||||
|
||||
'//월별외기평균온도(i_ts_month << 파라미터)
|
||||
theta_e_avg = TOSG(Calc.Pub.기상데이터("m" & i_ts_month.ToString("00")))
|
||||
'theta_e_avg = Worksheets("기상데이타").Range("최소외기온도1").Offset(2 + i_ts_month, i_ts_location - 1) '//월별외기평균온도 tbl_weather에 존재
|
||||
|
||||
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
|
||||
Case "난방공간" '난방공간"
|
||||
theta_a_avg = 20
|
||||
Case "비난방공간" '비난방공간"
|
||||
theta_a_avg = theta_e_avg + (20 - theta_e_avg) / 2
|
||||
Case "외부공간" '외부공간"
|
||||
theta_a_avg = theta_e_avg
|
||||
End Select
|
||||
|
||||
theta_w = 40
|
||||
theta_cw = 15
|
||||
a_2 = 0
|
||||
eta_loop = 0.8
|
||||
eta_0 = 0.6
|
||||
t_m = i_ts_d_mth * 24
|
||||
a = 1.029
|
||||
b = -0.065
|
||||
c = -0.245
|
||||
d = 0.0018
|
||||
e = 0.0215
|
||||
f = 0
|
||||
|
||||
|
||||
Select Case Dr신재생.집열기유형.Trim 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(1, i_count_ts - 1)
|
||||
Case "평판형" '평판형"
|
||||
a_1 = 6
|
||||
IAM = 0.94
|
||||
Case "진공관형" '진공관형"
|
||||
a_1 = 3
|
||||
IAM = 1
|
||||
End Select
|
||||
|
||||
If Dr신재생.태양열시스템의성능 = "성능치" Then ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(5, i_count_ts - 1) = "성능치" Then
|
||||
eta_0 = TOSG(Dr신재생.무손실효율계수) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(6, i_count_ts - 1)
|
||||
a_1 = TOSG(Dr신재생.열손실계수1차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(7, i_count_ts - 1)
|
||||
a_2 = TOSG(Dr신재생.열손실계수2차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(8, i_count_ts - 1)
|
||||
End If
|
||||
|
||||
Select Case Dr신재생.태양열종류.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(0, i_count_ts - 1)
|
||||
Case "급탕" '급탕"
|
||||
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
|
||||
U_loop_p = TOSG(5 + 0.5 * A_) '(B.3)
|
||||
U_loop = a_1 + a_2 * 40 + U_loop_p / A_ '(13)
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_ * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
X = A_ * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
|
||||
Y = A_ * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
|
||||
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
|
||||
Else
|
||||
Q_W_sol_out_m = 0
|
||||
End If
|
||||
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
|
||||
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 60
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
|
||||
Else
|
||||
Q_W_sol_st_ls_m = 0
|
||||
Q_bu_dis_ls_m = 0
|
||||
End If
|
||||
|
||||
If i_system_ts = 1 Then '=====================================================2010.04.02 추가
|
||||
|
||||
'난방 부분
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_H * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
|
||||
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
|
||||
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
|
||||
Else
|
||||
Q_H_sol_out_m = 0
|
||||
End If
|
||||
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
|
||||
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 40
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
|
||||
Else
|
||||
Q_H_sol_st_ls_m = 0
|
||||
Q_H_bu_dis_ls_m = 0
|
||||
End If
|
||||
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
|
||||
|
||||
End If '=====================================================2010.04.02 추가
|
||||
|
||||
' Q_sol_ls_m = Q_W_sol_st_ls_m + Q_bu_dis_ls_m
|
||||
|
||||
' 보조에너지
|
||||
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
|
||||
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
|
||||
|
||||
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
|
||||
|
||||
Select Case Dr신재생.축열탱크설치장소.Trim 'Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
|
||||
Case "난방공간" '난방공간"
|
||||
Q_sol_st_ls_rbl_m = Q_W_sol_st_ls_m
|
||||
Q_bu_dis_ls_rbl_m = Q_bu_dis_ls_m
|
||||
Case "비난방공간" '비난방공간"
|
||||
Q_sol_st_ls_rbl_m = TOSG(Q_W_sol_st_ls_m * 0.5)
|
||||
Q_bu_dis_ls_rbl_m = TOSG(Q_bu_dis_ls_m * 0.5)
|
||||
Case "외부공간" '외부공간"
|
||||
Q_sol_st_ls_rbl_m = 0
|
||||
Q_bu_dis_ls_rbl_m = 0
|
||||
End Select
|
||||
|
||||
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_st_ls_rbl_m + Q_bu_dis_ls_rbl_m '(20)
|
||||
|
||||
|
||||
|
||||
Case "난방+급탕" '난방+급탕"
|
||||
P_H = Q_H_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(9)
|
||||
P_W = Q_W_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(10)
|
||||
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
|
||||
A_H = P_H * A_
|
||||
A_W = P_W * A_
|
||||
|
||||
'급탕 부분
|
||||
U_loop_p = 5 + 0.5 * A_W '(B.3) '===========================2010.04.24 추가
|
||||
If A_W <> 0 Then
|
||||
U_loop = a_1 + a_2 * 40 + U_loop_p / A_W '(13) '===============2010.04.24 추가
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_W * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
End If
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
X = A_W * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
|
||||
Y = A_W * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
|
||||
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
|
||||
Else
|
||||
Q_W_sol_out_m = 0
|
||||
End If
|
||||
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
|
||||
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 60
|
||||
If Q_W_sol_us_m <> 0 Then
|
||||
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_W_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
|
||||
Else
|
||||
Q_W_sol_st_ls_m = 0
|
||||
Q_W_bu_dis_ls_m = 0
|
||||
End If
|
||||
|
||||
|
||||
'난방 부분
|
||||
U_loop_p = 5 + 0.5 * A_H '(B.3) '===========================2010.04.24 추가
|
||||
U_loop = a_1 + a_2 * 40 + U_loop_p / A_H '(13) '===============2010.04.24 추가
|
||||
|
||||
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
|
||||
Delta_T = theta_ref - theta_e_avg '(14)
|
||||
V_ref = A_H * 75
|
||||
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
|
||||
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
|
||||
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
|
||||
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
|
||||
Else
|
||||
Q_H_sol_out_m = 0
|
||||
End If
|
||||
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
|
||||
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
|
||||
|
||||
'태양열시스템 열손실
|
||||
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
|
||||
theta_setpoint = 40
|
||||
If Q_H_sol_us_m <> 0 Then
|
||||
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
|
||||
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
|
||||
Else
|
||||
Q_H_sol_st_ls_m = 0
|
||||
Q_H_bu_dis_ls_m = 0
|
||||
End If
|
||||
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
|
||||
|
||||
|
||||
|
||||
' 보조에너지
|
||||
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
|
||||
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
|
||||
|
||||
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
|
||||
|
||||
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
|
||||
Case "난방공간" '난방공간"
|
||||
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_ls_m
|
||||
Case "비난방공간" '비난방공간"
|
||||
Q_sol_ls_rbl_m = TOSG(Q_sol_aux_rbl_m + Q_sol_ls_m * 0.5)
|
||||
Case "외부공간" '외부공간"
|
||||
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m
|
||||
End Select
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
''보조에너지
|
||||
''f_sol_m = Q_sol_out_m / Q_sol_us_m '(21)
|
||||
''W_bu_aux_m = W_bu_nom_m * (1 - f_sol_m) '(22)
|
||||
|
||||
''P_aux_nom = 50 + 5 * A_ '(B.4)
|
||||
|
||||
'//열에너지생산량-태양열
|
||||
Result.생산E(i_ts_month).태양열생산량 += Q_W_sol_out_m + Q_H_sol_out_m
|
||||
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00"))) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00")))) + Q_W_sol_out_m + Q_H_sol_out_m 'Sheets("계산결과").Cells(97, 7 + i_ts_month) = Q_W_sol_out_m + Q_H_sol_out_m
|
||||
'Dim TDR As DSR.TReqUseRow = CType(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_단위면적당생산량_태양열), DSR.TReqUseRow)
|
||||
Select Case i_system_ts '//이것도 프로시져 파라미터이다.
|
||||
Case 1 '//난방?급탕 혼합형태?
|
||||
If Q_W_sol_out_m <> 0 Then
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W)
|
||||
Else
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.H)
|
||||
End If
|
||||
Case 2 '//냉방?
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.C)
|
||||
Case 3 '//급탕
|
||||
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W)
|
||||
Case Else
|
||||
MsgBox("단위면적당생산량 누적시 i_syste_ts 가 알수없음", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_PhotovoltaicSystem_EN(ByVal i_count_pv_month As Integer, ByVal i_pv_d_mth As Integer)
|
||||
|
||||
Dim E_el_pv_out As Decimal, P_pk As Decimal, f_perf As Decimal, E_sol As Decimal, E_sol_hor As Decimal, f_tlt As Decimal
|
||||
Dim a As Decimal, K_pk As Decimal
|
||||
'Dim i_count_pv As Integer, i_count_pv_location As Integer, i_pv_location As Integer
|
||||
|
||||
E_el_pv_out = 0
|
||||
|
||||
'If DSET.tbl_new.Rows.Count > 0 Then ' Worksheets("신재생기기").Range("신재생생산기기1").Offset(0, 0) <> "" Then '//신재생기기 처음칸에 뭐가 잇다? 즉 데이터가잇느냐
|
||||
For Each Dr신재생 As DS.tbl_newRow In DSET.tbl_new.Select("code <> '0'", "code")
|
||||
If Dr신재생.기기종류 = "태양광" Then
|
||||
|
||||
a = TOSG(Dr신재생.태양광모듈면적) ' Worksheets("신재생기기").Range("태양광모듈1").Offset(0, i_count_pv - 1)
|
||||
|
||||
Select Case Dr신재생.태양광모듈적용타입.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(4, i_count_pv - 1)
|
||||
Case "밀착형" '밀착형"
|
||||
f_perf = 0.7
|
||||
Case "후면통풍형" '후면통풍형"
|
||||
f_perf = 0.75
|
||||
Case "기계환기형" '기계환기형"
|
||||
f_perf = 0.8
|
||||
End Select
|
||||
|
||||
|
||||
'If a <> 0 Then '//태양광모듈면적이있을경우에만 작동하도록한다.
|
||||
|
||||
|
||||
Dim Dr일사 As DS.weather_ilsaRow
|
||||
Select Case Dr신재생.태양광모듈기울기.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(1, i_count_pv - 1)
|
||||
Case "수평" '수평"
|
||||
'//수평면에해당하는 월별평균일사 값을 가져온다.수평면 0001은 고정값이된다.
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='0001'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
|
||||
Case "45도" '45도"
|
||||
Select Case Dr신재생.태양광모듈방위.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
|
||||
Case "남" '"남"
|
||||
'//45도 남에대한건 기본 수평면하고 +9를 하면 나온다 나머지도 순서이므로 +1을 게속해주면된다.
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 9, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남동" '"남동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 10, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남서" '"남서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 11, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "동" '"동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 12, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "서" '"서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 13, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
End Select
|
||||
|
||||
Case "수직" '수직"
|
||||
Select Case Dr신재생.태양광모듈방위.Trim 'Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
|
||||
Case "남" '"남"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 1, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남동" '"남동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 2, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "남서" '"남서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 3, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "동" '"동"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 4, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
Case "서" '"서"
|
||||
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 5, "0000") & "'")(0), DS.weather_ilsaRow)
|
||||
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
|
||||
End Select
|
||||
End Select
|
||||
|
||||
'E_sol = E_sol_hor * f_tlt 수평면일사에 계수를 곱하지 않고 직접 기상데이타 적용
|
||||
|
||||
Select Case Dr신재생.태양광모듈종류.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(3, i_count_pv - 1)
|
||||
Case "단결정" '단결정"
|
||||
K_pk = 0.12
|
||||
Case "다결정" '다결정"
|
||||
K_pk = 0.1
|
||||
Case "비정질박막형" '비정질박막형"
|
||||
K_pk = 0.04
|
||||
Case "기타박막형" '기타박막형"
|
||||
K_pk = 0.035
|
||||
Case "CIS박막형" 'CIS박막형"
|
||||
K_pk = 0.105
|
||||
Case "CdTe박막형" 'CdTe박막형"
|
||||
K_pk = 0.095
|
||||
Case "성능치 입력"
|
||||
Try
|
||||
K_pk = TOSG(Dr신재생.태양광모듈효율)
|
||||
Catch ex As Exception
|
||||
MsgBox("태양광모듈효율을 알 수 없습니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈효율)
|
||||
K_pk = 0
|
||||
End Try
|
||||
|
||||
Case Else
|
||||
MsgBox("알수없는 태양광모듈종류입니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈종류)
|
||||
|
||||
End Select
|
||||
|
||||
P_pk = K_pk * a
|
||||
E_el_pv_out = E_el_pv_out + E_sol * P_pk * f_perf
|
||||
'End If
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
'If Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = "" Then
|
||||
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = E_el_pv_out
|
||||
'Else
|
||||
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = Sheets("계산결과").Cells(104, 7 + i_count_pv_month) + E_el_pv_out
|
||||
'End If
|
||||
|
||||
Result.생산E(i_count_pv_month).태양광전력생산량 += E_el_pv_out
|
||||
|
||||
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00")) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00"))) + E_el_pv_out ' Sheets("계산결과").Cells(95, 7 + i_count_pv_month)
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_HeatpumpSystem(ByVal i_system_hp As Integer, ByVal i_HeatCool As Integer, ByVal Dr신재생 As DS.tbl_newRow, ByVal Q_hp_outg As Decimal, ByVal i_hp_month As Integer, ByVal d_h_mth As Integer, ByVal t_hp As Integer, ByVal theta_VA As Decimal, ByVal theta_i As Decimal, ByRef Q_h_outg As Decimal, ByRef Q_h_f_hp As Decimal, ByRef Q_h_g_aux As Decimal)
|
||||
|
||||
Dim f_Verwindung As Decimal, V As Decimal, q_B_S As Decimal, Phi_g As Decimal
|
||||
Dim Q_h_g As Decimal, Q_h_g_s As Decimal, Q_h_g_WP As Decimal
|
||||
Dim P_rd_mot As Decimal
|
||||
'Dim Q_h_f_hp as decimal 'DIN 에서는 Q_h_f로 표기
|
||||
'Dim Delta_p_prim as decimal, Delta_p_sek as decimal
|
||||
Dim Phi_prim_aux As Decimal, Phi_sek_aux As Decimal, t_ON_aux As Decimal
|
||||
Dim theta_h_s As Decimal
|
||||
Dim COP As Decimal
|
||||
|
||||
Q_h_g_s = 0
|
||||
Q_h_g_WP = 0 '전기히트펌프인 경우 0 가스히트펌프는 ?
|
||||
P_rd_mot = 0
|
||||
Q_h_f_hp = 0
|
||||
|
||||
'eta_aux = 0.3
|
||||
'Delta_p_prim = 40 'kPa 1차측
|
||||
'Delta_p_sek = 10 'kPa 2차측
|
||||
|
||||
'MsgBox(i_count_hp)
|
||||
|
||||
'i_count_hp = 0 '//신재생 줄번호는 무조건 0이된다. 20100127 '//연습용데이터 문제있음
|
||||
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
|
||||
|
||||
Phi_g = TOSG(Dr신재생.지열히트펌프용량) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(0, i_count_hp - 1)
|
||||
|
||||
If Dr신재생.가동연료 <> "전기" And i_HeatCool = 1 And Dr신재생.열교환기설치여부 = "예" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
|
||||
P_rd_mot = 0.4
|
||||
End If
|
||||
|
||||
If Q_hp_outg < (Phi_g * t_hp) * (1 + P_rd_mot) Then
|
||||
Q_h_outg = Q_hp_outg
|
||||
Else
|
||||
Q_h_outg = Phi_g * t_hp * (1 + P_rd_mot)
|
||||
End If
|
||||
|
||||
If i_HeatCool = 1 Or i_HeatCool = 3 Then '난방 1 , 냉방 2, 급탕 3
|
||||
'난방, 급탕
|
||||
If Dr신재생.팽창탱크설치여부 = "예" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(6, i_count_hp - 1) = "예" Then
|
||||
f_Verwindung = 1.2
|
||||
V = TOSG(Dr신재생.팽창탱크체적) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(7, i_count_hp - 1)
|
||||
q_B_S = TOSG(0.4 + 0.14 * V ^ 0.45) '(51)
|
||||
theta_h_s = theta_VA '급수온도로 적용
|
||||
Q_h_g_s = f_Verwindung * (theta_h_s - theta_i) / 45 * d_h_mth * q_B_S '(49) 외부완충(팽창탱크 유무)
|
||||
|
||||
End If
|
||||
|
||||
Q_h_g = Q_h_g_s + Q_h_g_WP
|
||||
COP = TOSG(Dr신재생.열성능비난방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(1, i_count_hp - 1)
|
||||
|
||||
Else
|
||||
'냉방
|
||||
|
||||
COP = TOSG(Dr신재생.열성능비냉방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(2, i_count_hp - 1)
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If Dr신재생.가동연료 = "전기" Then ' Worksheets("신재생기기").Range("신재생및열병합기기종류1").Offset(1, i_count_hp - 1) = "전기" Then
|
||||
Q_h_f_hp = (Q_h_outg + Q_h_g) / COP
|
||||
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp '월간 전기히트펌프(재생에너지유입량)
|
||||
Else
|
||||
Q_h_f_hp = Q_h_outg / COP
|
||||
' If i_HeatCool = 1 And Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
|
||||
' P_rd_mot = 0.4
|
||||
' End If
|
||||
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp * (1 + P_rd_mot) '월간 가스히트펌프(재생에너지유입량)
|
||||
End If
|
||||
|
||||
'Q_h_f = Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in '월간(A.1) 전기히트펌프(난방요구량 충당)
|
||||
'Q_h_f = (Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in) / (1 + P_rd_mot) '월간(A.2) 가스히트펌프(난방요구량 충당)
|
||||
|
||||
|
||||
'보조에너지
|
||||
|
||||
|
||||
'Phi_prim_aux = Delta_p_prim * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
|
||||
'Phi_sek_aux = Delta_p_sek * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
|
||||
|
||||
t_ON_aux = Q_h_outg / (Phi_g) '(81)
|
||||
Phi_prim_aux = TOSG(Dr신재생.펌프용량1차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(3, i_count_hp - 1)
|
||||
Phi_sek_aux = TOSG(Dr신재생.펌프용량2차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(4, i_count_hp - 1)
|
||||
|
||||
Q_h_g_aux = TOSG((Phi_prim_aux + Phi_sek_aux) * 0.001 * t_ON_aux) '(88)
|
||||
|
||||
'//열에너지생산량 (지열)
|
||||
Result.생산E(i_hp_month).지열생산량 += Q_h_f_hp
|
||||
'DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00")) = CSng(DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00"))) + Q_h_f_hp 'DrT생산.열생산량지열 += Q_h_f_hp
|
||||
|
||||
'100 : Total >> DrT생산.단위면적당생산량지열
|
||||
Select Case i_system_hp
|
||||
Case 1
|
||||
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.H)
|
||||
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(10)("M00")) ' DrT요구량.난방사용면적 ' Sheets("계산결과").Cells(15, 7)
|
||||
Case 2
|
||||
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.C)
|
||||
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(15)("M00")) 'DrT요구량.냉방사용면적 '("계산결과").Cells(20, 7)
|
||||
Case 3
|
||||
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.W)
|
||||
End Select
|
||||
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub Calc_CogenerationSystemEN(ByVal Dr신재생 As DS.tbl_newRow, ByVal i_chp_month As Integer, ByVal Q_h_outg As Decimal, ByVal t_chp As Integer, ByRef Q_chp_gen_out As Decimal, ByRef E_chp_gen_in As Decimal)
|
||||
'EN15316-4-4_2007 5.6.2에서 시작
|
||||
'Dim Wmsg As New System.Text.StringBuilder
|
||||
'Wmsg.AppendLine("Calc_CogenerationSystemEN 이 함수의경우")
|
||||
'Wmsg.AppendLine("i_count_chp 에따라서 열을 할당해야한다.... 지만..아직 이 파라미터값을 모르게삳")
|
||||
'Wmsg.AppendLine("사용하는곳의 참조확인을해서 저곳이 신재생기기 코드값이 바로오는건지 다른값인지 확인해봐야겠다")
|
||||
'MsgBox(Wmsg.ToString)
|
||||
|
||||
Dim Q_dot_T_chp As Decimal
|
||||
Dim eta_T_chp_an As Decimal, eta_el_chp_an As Decimal
|
||||
Dim E_el_chp_out As Decimal
|
||||
|
||||
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
|
||||
|
||||
Q_dot_T_chp = TOSG(Dr신재생.열생산능력) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(0, i_count_chp - 1)
|
||||
eta_T_chp_an = TOSG(Dr신재생.열생산효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(1, i_count_chp - 1)
|
||||
eta_el_chp_an = TOSG(Dr신재생.발전효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(2, i_count_chp - 1)
|
||||
|
||||
If Q_h_outg > (Q_dot_T_chp * t_chp) Then
|
||||
Q_chp_gen_out = Q_dot_T_chp * t_chp
|
||||
Else
|
||||
Q_chp_gen_out = Q_h_outg
|
||||
End If
|
||||
|
||||
E_chp_gen_in = Q_chp_gen_out / (eta_T_chp_an / 100)
|
||||
E_el_chp_out = E_chp_gen_in * eta_el_chp_an / 100
|
||||
|
||||
'//전기생산량 열병합
|
||||
Result.생산E(i_chp_month).열병합전력생산량 += E_el_chp_out
|
||||
'DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00")) = CSng(DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00"))) + E_el_chp_out ' Sheets("계산결과").Cells(96, 7 + i_chp_month) = E_el_chp_out
|
||||
End Sub
|
||||
End Class
|
||||
780
ArinWarev1/DataSet/Calculator/Result/C1차소요량.vb
Normal file
780
ArinWarev1/DataSet/Calculator/Result/C1차소요량.vb
Normal file
@@ -0,0 +1,780 @@
|
||||
Public Class C1차소요량
|
||||
Public Mon As String
|
||||
Private ErrMsg As String = "1차에너지소요량 계산되지 않았습니다"
|
||||
Private MIdx As Integer
|
||||
|
||||
'//M00 일떄의 합계식이 추가되지않았따
|
||||
'//해당부분은 주로 합계식에서 사용된다.
|
||||
|
||||
Public Sub Calc_Summary()
|
||||
|
||||
If MIdx <> 0 Then
|
||||
MsgBox("Calc 계산식은 0번만 가능합니다")
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim i1, i2, i3, i4, i5, i6 As Decimal
|
||||
|
||||
i1 = 0 : i2 = 0 : i3 = 0 : i4 = 0 : i5 = 0
|
||||
For i As Integer = 1 To 12
|
||||
i1 += Result.일차E소요량(i).난방등유
|
||||
i2 += Result.일차E소요량(i).난방LNG
|
||||
i3 += Result.일차E소요량(i).난방LPG
|
||||
i4 += Result.일차E소요량(i).난방지역
|
||||
i5 += Result.일차E소요량(i).난방전력
|
||||
Next
|
||||
Me.난방등유 = i1
|
||||
Me.난방LNG = i2
|
||||
Me.난방LPG = i3
|
||||
Me.난방지역 = i4
|
||||
Me.난방전력 = i5
|
||||
|
||||
i1 = 0 : i2 = 0 : i3 = 0 : i4 = 0 : i5 = 0 : i6 = 0
|
||||
For i As Integer = 1 To 12
|
||||
i1 += Result.일차E소요량(i).냉방등유
|
||||
i2 += Result.일차E소요량(i).냉방LNG
|
||||
i3 += Result.일차E소요량(i).냉방LPG
|
||||
i4 += Result.일차E소요량(i).냉방지역난방열
|
||||
i5 += Result.일차E소요량(i).냉방지역냉방열
|
||||
i6 += Result.일차E소요량(i).냉방전력
|
||||
Next
|
||||
Me.냉방등유 = i1
|
||||
Me.냉방LNG = i2
|
||||
Me.냉방LPG = i3
|
||||
Me.냉방지역난방열 = i4
|
||||
Me.냉방지역냉방열 = i5
|
||||
Me.냉방전력 = i6
|
||||
|
||||
i1 = 0 : i2 = 0 : i3 = 0 : i4 = 0 : i5 = 0
|
||||
For i As Integer = 1 To 12
|
||||
i1 += Result.일차E소요량(i).급탕등유
|
||||
i2 += Result.일차E소요량(i).급탕LNG
|
||||
i3 += Result.일차E소요량(i).급탕LPG
|
||||
i4 += Result.일차E소요량(i).급탕지역
|
||||
i5 += Result.일차E소요량(i).급탕전력
|
||||
Next
|
||||
Me.급탕등유 = i1
|
||||
Me.급탕LNG = i2
|
||||
Me.급탕LPG = i3
|
||||
Me.급탕지역 = i4
|
||||
Me.급탕전력 = i5
|
||||
|
||||
End Sub
|
||||
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
MIdx = pmIdx
|
||||
Mon = "M" & Format(pmIdx, "00")
|
||||
End Sub
|
||||
|
||||
ReadOnly Property 소요량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.일차E소요량(i).소요량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Me.난방소요량 + Me.냉방소요량 + Me.급탕소요량 + Me.조명소요량 + Me.환기소요량 - (Result.생산E(MIdx).태양광전력생산량 * Result.E변환계수.전력) - (Result.생산E(MIdx).열병합전력생산량 * Result.E변환계수.전력)
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 단위면적() As Decimal
|
||||
Get
|
||||
If MIdx <> 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방면적 + Me.냉방면적 + Me.급탕면적 + Me.조명면적 + Me.환기면적
|
||||
End If
|
||||
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "난방"
|
||||
ReadOnly Property 난방소요량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
|
||||
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
|
||||
Me.난방전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Else
|
||||
Return Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
|
||||
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
|
||||
Me.난방전력 * Result.E변환계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 난방소요량2() As Decimal '//140112(?)
|
||||
Get
|
||||
|
||||
Dim 건물용도 As Integer = CInt(DSET1.tbl_Desc.Rows(0)("isjugo"))
|
||||
|
||||
If MIdx = 0 Then
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
|
||||
Dim R As Decimal = Me.난방등유 * Result.E변환계수.지역난방 + Me.난방LNG * Result.E변환계수.지역난방 + _
|
||||
Me.난방LPG * Result.E변환계수.지역난방 + Me.난방지역 * Result.E변환계수.지역난방 + _
|
||||
Me.난방전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Dim R As Decimal = Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
|
||||
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
|
||||
Me.난방전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
Return Me.난방등유 * Result.E변환계수.지역난방 + Me.난방LNG * Result.E변환계수.지역난방 + _
|
||||
Me.난방LPG * Result.E변환계수.지역난방 + Me.난방지역 * Result.E변환계수.지역난방 + _
|
||||
Me.난방전력 * Result.E변환계수.전력
|
||||
Else
|
||||
Return Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
|
||||
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
|
||||
Me.난방전력 * Result.E변환계수.전력
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property 난방등유() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방등유"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("난방등유") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 난방LNG() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방LNG"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("난방LNG") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 난방LPG() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방LPG"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("난방LPG") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
'Property 난방펠렛() As Decimal
|
||||
' Get
|
||||
' Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
' If DR.GetUpperBound(0) = -1 Then
|
||||
' MsgBox(ErrMsg,MsgBoxStyle.Information,"C1차소요량")
|
||||
' Return 0
|
||||
' Else
|
||||
' Return TOSG(DR(0)("난방펠렛"))
|
||||
' End If
|
||||
' End Get
|
||||
' Set(ByVal value As Decimal)
|
||||
' Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
' If DR.GetUpperBound(0) = -1 Then
|
||||
' MsgBox(ErrMsg,MsgBoxStyle.Information,"C1차소요량")
|
||||
' Else
|
||||
' DR(0)("난방펠렛") = value
|
||||
' End If
|
||||
' End Set
|
||||
'End Property
|
||||
Property 난방지역() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방지역"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("난방지역") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 난방전력() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방전력"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("난방전력") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property 난방면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방소요량 / Result.사용면적.H
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 난방면적2() As Decimal
|
||||
Get
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방소요량2 / Result.사용면적.H
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "냉방"
|
||||
ReadOnly Property 냉방소요량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.냉방등유 * Result.E변환계수.등유 + Me.냉방LNG * Result.E변환계수.LNG + _
|
||||
Me.냉방LPG * Result.E변환계수.LPG + Me.냉방지역난방열 * Result.E변환계수.지역난방 + _
|
||||
Me.냉방지역냉방열 * Result.E변환계수.지역냉방 + Me.냉방전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.냉방전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Else
|
||||
Return Me.냉방등유 * Result.E변환계수.등유 + Me.냉방LNG * Result.E변환계수.LNG + _
|
||||
Me.냉방LPG * Result.E변환계수.LPG + Me.냉방지역난방열 * Result.E변환계수.지역난방 + _
|
||||
Me.냉방지역냉방열 * Result.E변환계수.지역냉방 + Me.냉방전력 * Result.E변환계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
Property 냉방등유() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방등유"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방등유") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방LNG() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방LNG"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방LNG") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방펠렛() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방펠렛"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방펠렛") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방LPG() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방LPG"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방LPG") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방지역난방열() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방지역"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방지역") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방지역냉방열() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방지역2"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방지역2") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방전력() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방전력"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("냉방전력") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 냉방면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.C = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.냉방소요량 / Result.사용면적.C
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "급탕"
|
||||
ReadOnly Property 급탕소요량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
|
||||
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
|
||||
Me.급탕전력 * Result.E변환계수.전력
|
||||
|
||||
'#If DEBUG Then
|
||||
' Dim f As String = "c:\temp\1\급탕소요량1.txt"
|
||||
' Dim b As New System.Text.StringBuilder
|
||||
' If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("태양광전력생산량 열병합전력생산량 난방전력 냉방전력 급탕전력 조명전력 환기전력 전력변환계수")
|
||||
' End If
|
||||
' b.AppendLine(Result.생산E(0).태양광전력생산량.ToString() + vbTab + Result.생산E(0).열병합전력생산량.ToString() + vbTab + _
|
||||
' 난방전력.ToString() + vbTab + 냉방전력.ToString() + vbTab + 급탕전력.ToString() + vbTab + 조명전력.ToString() + vbTab + _
|
||||
' 환기전력.ToString() + vbTab + Result.E변환계수.전력.ToString())
|
||||
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
'#End If
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Else
|
||||
|
||||
'#If DEBUG Then
|
||||
' Dim f As String = "c:\temp\1\급탕소요량2.txt"
|
||||
' Dim b As New System.Text.StringBuilder
|
||||
' If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("MIDX 급탕등유 급탕LNG 급탕LPG 급탕지역 급탕전력")
|
||||
' End If
|
||||
' b.AppendLine(MIdx.ToString() + vbTab + 급탕등유.ToString() + vbTab + 급탕LNG.ToString() + vbTab + 급탕LPG.ToString() + vbTab + 급탕지역.ToString() + vbTab + 급탕전력.ToString())
|
||||
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
'#End If
|
||||
|
||||
Return Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
|
||||
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
|
||||
Me.급탕전력 * Result.E변환계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 급탕소요량2() As Decimal
|
||||
Get
|
||||
Dim 건물용도 As Integer = CInt(DSET1.tbl_Desc.Rows(0)("isjugo"))
|
||||
|
||||
If MIdx = 0 Then
|
||||
If 건물용도 < 10 Then
|
||||
Dim R As Decimal = Me.급탕등유 * Result.E변환계수.지역난방 + Me.급탕LNG * Result.E변환계수.지역난방 + _
|
||||
Me.급탕LPG * Result.E변환계수.지역난방 + Me.급탕지역 * Result.E변환계수.지역난방 + _
|
||||
Me.급탕전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Else
|
||||
Dim R As Decimal = Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
|
||||
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
|
||||
Me.급탕전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
Return Me.급탕등유 * Result.E변환계수.지역난방 + Me.급탕LNG * Result.E변환계수.지역난방 + _
|
||||
Me.급탕LPG * Result.E변환계수.지역난방 + Me.급탕지역 * Result.E변환계수.지역난방 + _
|
||||
Me.급탕전력 * Result.E변환계수.전력
|
||||
Else
|
||||
Return Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
|
||||
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
|
||||
Me.급탕전력 * Result.E변환계수.전력
|
||||
End If
|
||||
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Property 급탕등유() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕등유"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("급탕등유") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕LNG() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕LNG"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("급탕LNG") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕펠렛() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕펠렛"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("급탕펠렛") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕LPG() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕LPG"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("급탕LPG") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕지역() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕지역"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("급탕지역") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕전력() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕전력"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
|
||||
Else
|
||||
DR(0)("급탕전력") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 급탕면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.W = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.급탕소요량 / Result.사용면적.W
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕면적2() As Decimal
|
||||
Get
|
||||
If Result.사용면적.W = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.급탕소요량2 / Result.사용면적.W
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "조명부분(읽기전용)"
|
||||
ReadOnly Property 조명소요량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = 조명전력 * Result.E변환계수.전력
|
||||
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.조명전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Return 조명전력 * Result.E변환계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 조명전력() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then '//합계필드라면 12월의 합계를 반환한다.
|
||||
Dim i1 As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
i1 += Result.일차E소요량(i).조명전력
|
||||
Next
|
||||
Return i1
|
||||
Else
|
||||
Return Result.E소요량(Me.MIdx).조명S
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 조명면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.L = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.조명소요량 / Result.사용면적.L
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "환기부분(읽기전용)"
|
||||
ReadOnly Property 환기소요량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = 환기전력 * Result.E변환계수.전력
|
||||
Try
|
||||
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
|
||||
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.환기전력 * Result.E변환계수.전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Else
|
||||
Return 환기전력 * Result.E변환계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 환기전력() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then '//합계필드라면 12월의 합계를 반환한다.
|
||||
Dim i1 As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
i1 += Result.일차E소요량(i).환기전력
|
||||
Next
|
||||
Return i1
|
||||
Else
|
||||
Return Result.E소요량(Me.MIdx).환기S
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 환기면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.V = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.환기소요량 / Result.사용면적.V
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
452
ArinWarev1/DataSet/Calculator/Result/CCo2발생량.vb
Normal file
452
ArinWarev1/DataSet/Calculator/Result/CCo2발생량.vb
Normal file
@@ -0,0 +1,452 @@
|
||||
Public Class CCo2발생량
|
||||
Public Mon As String
|
||||
Private ErrMsg As String = "에너지소요량 계산되지 않았습니다"
|
||||
Private MIdx As Integer
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
|
||||
Result = presult
|
||||
MIdx = pmIdx
|
||||
Mon = "M" & Format(MIdx, "00")
|
||||
End Sub
|
||||
ReadOnly Property 발생량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then '//최종합계는 저람량을 제하지않는다?
|
||||
Return Me.난방발생량 + Me.냉방발생량 + Me.급탕발생량 + Me.조명발생량 + Me.환기발생량
|
||||
Else
|
||||
Return Me.난방발생량 + Me.냉방발생량 + Me.급탕발생량 + Me.조명발생량 + Me.환기발생량 - Me.저감량태양광 - Me.저감량열병합
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 단위면적() As Decimal
|
||||
Get '//월구분없음 실제로는 최종합 M00 에만 값이 있다.
|
||||
Return Me.난방면적 + Me.냉방면적 + Me.급탕면적 + Me.조명면적 + Me.환기면적
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "난방"
|
||||
ReadOnly Property 난방발생량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.난방등유 + Me.난방LNG + Me.난방LPG + Me.난방지역 + Me.난방전력
|
||||
Try
|
||||
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.난방전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Return Me.난방등유 + Me.난방LNG + Me.난방LPG + Me.난방지역 + Me.난방전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방등유() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).난방등유
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).난방등유 * Result.Co2배출계수.등유
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방LNG() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).난방LNG
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).난방LNG * Result.Co2배출계수.LNG
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방LPG() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).난방LPG
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).난방LPG * Result.Co2배출계수.LPG
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방지역() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).난방지역
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).난방지역 * Result.Co2배출계수.지역난방
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방전력() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).난방전력
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).난방전력 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
'ReadOnly Property 난방펠렛() As Decimal
|
||||
' Get
|
||||
' If Me.MIdx = 0 Then
|
||||
' Dim Res As Decimal = 0
|
||||
' For i As Short = 1 To 12
|
||||
' Res += Result.Co2발생량(i).난방펠렛
|
||||
' Next
|
||||
' Return Res
|
||||
' Else
|
||||
' Return Result.일차E소요량(MIdx).난방펠렛 * Result.Co2배출계수.펠렛
|
||||
' End If
|
||||
' End Get
|
||||
'End Property
|
||||
ReadOnly Property 난방면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방발생량 / Result.사용면적.H
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
ReadOnly Property 냉방발생량() As Decimal
|
||||
Get
|
||||
Dim R As Decimal = Me.냉방등유 + Me.냉방LNG + Me.냉방LPG + Me.냉방지역난방열 + Me.냉방지역냉방열 + Me.냉방전력
|
||||
If MIdx = 0 Then
|
||||
Try
|
||||
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.냉방전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Return R
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방등유() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).냉방등유
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).냉방등유 * Result.Co2배출계수.등유
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방LNG() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).냉방LNG
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).냉방LNG * Result.Co2배출계수.LNG
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
'ReadOnly Property 냉방펠렛() As Decimal
|
||||
' Get
|
||||
' If Me.MIdx = 0 Then
|
||||
' Dim Res As Decimal = 0
|
||||
' For i As Short = 1 To 12
|
||||
' Res += Result.Co2발생량(i).냉방펠렛
|
||||
' Next
|
||||
' Return Res
|
||||
' Else
|
||||
' Return Result.일차E소요량(MIdx).냉방펠렛 * Result.Co2배출계수.펠렛
|
||||
' End If
|
||||
' End Get
|
||||
'End Property
|
||||
ReadOnly Property 냉방LPG() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).냉방LPG
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).냉방LPG * Result.Co2배출계수.LPG
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방지역난방열() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).냉방지역난방열
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).냉방지역난방열 * Result.Co2배출계수.지역난방
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방지역냉방열() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).냉방지역냉방열
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).냉방지역냉방열 * Result.Co2배출계수.지역냉방
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방전력() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).냉방전력
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).냉방전력 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.C = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.냉방발생량 / Result.사용면적.C
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 급탕발생량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.급탕등유 + Me.급탕LNG + Me.급탕LPG + Me.급탕지역 + Me.급탕전력
|
||||
Try
|
||||
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.급탕전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Return Me.급탕등유 + Me.급탕LNG + Me.급탕LPG + Me.급탕지역 + Me.급탕전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕등유() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).급탕등유
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).급탕등유 * Result.Co2배출계수.등유
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
'ReadOnly Property 급탕펠렛() As Decimal
|
||||
' Get
|
||||
' If Me.MIdx = 0 Then
|
||||
' Dim Res As Decimal = 0
|
||||
' For i As Short = 1 To 12
|
||||
' Res += Result.Co2발생량(i).급탕펠렛
|
||||
' Next
|
||||
' Return Res
|
||||
' Else
|
||||
' Return Result.일차E소요량(MIdx).급탕펠렛 * Result.Co2배출계수.펠렛
|
||||
' End If
|
||||
' End Get
|
||||
'End Property
|
||||
ReadOnly Property 급탕LNG() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).급탕LNG
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).급탕LNG * Result.Co2배출계수.LNG
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕LPG() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).급탕LPG
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).급탕LPG * Result.Co2배출계수.LPG
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕지역() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).급탕지역
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).급탕지역 * Result.Co2배출계수.지역난방
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕전력() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).급탕전력
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).급탕전력 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.W = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.급탕발생량 / Result.사용면적.W
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 조명발생량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.조명전력
|
||||
Try
|
||||
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.조명전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Return Me.조명전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 조명전력() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).조명전력
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).조명전력 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 조명면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.L = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.조명발생량 / Result.사용면적.L
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 환기발생량() As Decimal
|
||||
Get
|
||||
If MIdx = 0 Then
|
||||
Dim R As Decimal = Me.환기전력
|
||||
Try
|
||||
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.환기전력
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
Else
|
||||
Return Me.환기전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 환기전력() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).환기전력
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.일차E소요량(MIdx).환기전력 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 환기면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.V = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.환기발생량 / Result.사용면적.V
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 저감량태양광() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).저감량태양광
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.생산E(MIdx).태양광전력생산량 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 저감량열병합() As Decimal
|
||||
Get
|
||||
If Me.MIdx = 0 Then
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.Co2발생량(i).저감량열병합
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return Result.생산E(MIdx).열병합전력생산량 * Result.Co2배출계수.전력
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
48
ArinWarev1/DataSet/Calculator/Result/CResult.vb
Normal file
48
ArinWarev1/DataSet/Calculator/Result/CResult.vb
Normal file
@@ -0,0 +1,48 @@
|
||||
Public Class CResult
|
||||
|
||||
|
||||
Public Zones As CZones
|
||||
|
||||
Public E요구량(12) As C에너지요구량
|
||||
Public E소요량(12) As C에너지소요량
|
||||
Public 일차E소요량(12) As C1차소요량
|
||||
Public 생산E(12) As C생산에너지
|
||||
Public Co2발생량(12) As CCo2발생량
|
||||
Public E분석(12) As C에너지분석 '//여기는 유일하게 0번 인덱스를 쓸수없다
|
||||
|
||||
Public Co2배출계수 As CCo2배출계수
|
||||
Public E변환계수 As C1차에너지변환계수
|
||||
|
||||
Public 사용면적 As C사용면적
|
||||
Public 최대부하 As C최대냉난방부하
|
||||
|
||||
Private DSETR As DSR
|
||||
Private DSET As DS
|
||||
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR)
|
||||
DSET = pds
|
||||
DSETR = pdsetr
|
||||
|
||||
'//공용
|
||||
Co2배출계수 = New CCo2배출계수
|
||||
E변환계수 = New C1차에너지변환계수
|
||||
|
||||
'//단일
|
||||
사용면적 = New C사용면적(DSET, DSETR, Me)
|
||||
최대부하 = New C최대냉난방부하(DSETR)
|
||||
|
||||
'//서브추가항목
|
||||
Zones = New CZones(DSET, DSETR, Me)
|
||||
|
||||
'//월별로 들어가는 배열항목
|
||||
For i As Integer = 0 To 12
|
||||
Me.E요구량(i) = New C에너지요구량(Me, i)
|
||||
Me.E소요량(i) = New C에너지소요량(DSETR, Me, i)
|
||||
Me.일차E소요량(i) = New C1차소요량(DSETR, Me, i)
|
||||
Me.생산E(i) = New C생산에너지(DSETR, Me, i)
|
||||
Me.Co2발생량(i) = New CCo2발생량(Me, i)
|
||||
Me.E분석(i) = New C에너지분석(DSETR, Me, i)
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
71
ArinWarev1/DataSet/Calculator/Result/CZones.vb
Normal file
71
ArinWarev1/DataSet/Calculator/Result/CZones.vb
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
''' <summary>
|
||||
''' 각존의 데이터를 참조한다
|
||||
''' </summary>
|
||||
Public Class CZones
|
||||
Dim ErrMsg As String = "최대냉난방부하가 계산되지 않았습니다"
|
||||
Public Items() As Citem
|
||||
|
||||
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
|
||||
ReDim Items(Me.CountR) '//결과내의 존을 초기화한다.
|
||||
Dim idx As Integer = 0
|
||||
For Each It As DSR.최대냉난방부하Row In DSETR.최대냉난방부하.Select("zone<>'00'")
|
||||
Items(idx) = New Citem(DSET, DSETR, Result, idx, It.Zone)
|
||||
idx += 1
|
||||
Next
|
||||
'//해당존의 코드값을 가지고 결과가 게산되어있따.
|
||||
End Sub
|
||||
Public Function Count() As Integer
|
||||
Return DSET.tbl_zone.Rows.Count '//현재 시스템의 존 카운터를 반환
|
||||
End Function
|
||||
Public Function CountR() As Integer
|
||||
Return DSETR.최대냉난방부하.Select("zone<>'00'").GetUpperBound(0) + 1 '//계산결과내의 존의 갯수를 반환
|
||||
End Function
|
||||
|
||||
Public Class Citem
|
||||
Public Index As Integer
|
||||
Public Code As String
|
||||
Public 최대냉난방부하 As C최대냉난방부하.Citem
|
||||
Public 월에너지분석(11) As C에너지분석 '//이존의 12달의 내역을 참조한다.
|
||||
Private DSETR As DSR
|
||||
Private DSET As DS
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult, ByVal pidx As Integer, ByVal pcode As String)
|
||||
DSET = pds
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
Me.Index = pidx
|
||||
Me.Code = pcode
|
||||
최대냉난방부하 = New C최대냉난방부하.Citem(DSETR, pcode)
|
||||
|
||||
Dim Idx As Integer = 0
|
||||
For Each DR As C에너지분석 In Me.월에너지분석
|
||||
DR = New C에너지분석(DSETR, Result, Idx, pcode)
|
||||
Idx += 1
|
||||
Next
|
||||
End Sub
|
||||
Public Function Name() As String
|
||||
Dim dR() As DataRow = DSET.tbl_zone.Select("code='" & Me.Code & "'")
|
||||
If dR.GetUpperBound(0) = -1 Then
|
||||
Return "존재하지않는 Zone 입니다"
|
||||
Else
|
||||
Return dR(0)("설명").ToString
|
||||
End If
|
||||
End Function
|
||||
Public Function Row() As DS.tbl_zoneRow
|
||||
Dim dR() As DS.tbl_zoneRow = CType(DSET.tbl_zone.Select("code='" & Me.Code & "'"), DS.tbl_zoneRow())
|
||||
If dR.GetUpperBound(0) = -1 Then
|
||||
Return Nothing
|
||||
Else
|
||||
Return dR(0)
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
End Class
|
||||
|
||||
75
ArinWarev1/DataSet/Calculator/Result/C범용.vb
Normal file
75
ArinWarev1/DataSet/Calculator/Result/C범용.vb
Normal file
@@ -0,0 +1,75 @@
|
||||
Public Class CCo2배출계수
|
||||
Public Sub New()
|
||||
|
||||
End Sub
|
||||
ReadOnly Property 등유() As Decimal
|
||||
Get
|
||||
Return 0.259
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property LNG() As Decimal
|
||||
Get
|
||||
Return 0.202
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property LPG() As Decimal
|
||||
Get
|
||||
Return 0.227
|
||||
End Get
|
||||
End Property
|
||||
'ReadOnly Property 펠렛() As Decimal
|
||||
' Get
|
||||
' Return 0.0 '//나중에 지정하세요.
|
||||
' End Get
|
||||
'End Property
|
||||
ReadOnly Property 지역난방() As Decimal
|
||||
Get
|
||||
Return 0.164
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 지역냉방() As Decimal
|
||||
Get
|
||||
Return 0.14
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 전력() As Decimal
|
||||
Get
|
||||
Return 0.4691
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
Public Class C1차에너지변환계수
|
||||
Public Sub New()
|
||||
|
||||
End Sub
|
||||
ReadOnly Property 등유() As Decimal
|
||||
Get
|
||||
Return 1.1
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property LNG() As Decimal
|
||||
Get
|
||||
Return 1.1
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property LPG() As Decimal
|
||||
Get
|
||||
Return 1.1
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 지역난방() As Decimal
|
||||
Get
|
||||
Return 0.728
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 지역냉방() As Decimal
|
||||
Get
|
||||
Return 0.937
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 전력() As Decimal
|
||||
Get
|
||||
Return 2.75
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
412
ArinWarev1/DataSet/Calculator/Result/C사용면적.vb
Normal file
412
ArinWarev1/DataSet/Calculator/Result/C사용면적.vb
Normal file
@@ -0,0 +1,412 @@
|
||||
''' <summary>
|
||||
''' 전체존의 사용면적을 계산및 확인(냉,난,조,급,환)
|
||||
''' </summary>
|
||||
''' <remarks>전체존의 사용면적을 계산및 확인(냉,난,조,급,환)</remarks>
|
||||
Public Class C사용면적
|
||||
|
||||
''' <summary>
|
||||
''' 난방
|
||||
''' </summary>
|
||||
''' <remarks>난방</remarks>
|
||||
Property H() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("H"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("H") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 냉방
|
||||
''' </summary>
|
||||
''' <remarks>냉방</remarks>
|
||||
Property C() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("C"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("C") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 조명
|
||||
''' </summary>
|
||||
''' <remarks>조명</remarks>
|
||||
Property L() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("L"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("L") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 급탕
|
||||
''' </summary>
|
||||
''' <remarks>급탕</remarks>
|
||||
Property W() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("W"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("W") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 환기
|
||||
''' </summary>
|
||||
''' <remarks>환기</remarks>
|
||||
Property V() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("V"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("V") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 난방_WF
|
||||
''' </summary>
|
||||
''' <remarks>난방</remarks>
|
||||
Property H_WF() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("H_WF"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("H_WF") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 냉방_WF
|
||||
''' </summary>
|
||||
''' <remarks>냉방</remarks>
|
||||
Property C_WF() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("C_WF"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("C_WF") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 조명_WF
|
||||
''' </summary>
|
||||
''' <remarks>조명</remarks>
|
||||
Property L_WF() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("L_WF"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("L_WF") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 급탕_WF
|
||||
''' </summary>
|
||||
''' <remarks>급탕</remarks>
|
||||
Property W_WF() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("W_WF"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("W_WF") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
''' <summary>
|
||||
''' 환기_WF
|
||||
''' </summary>
|
||||
''' <remarks>환기</remarks>
|
||||
Property V_WF() As Decimal
|
||||
Get
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DSETR.사용면적(0)("V_WF"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
If DSETR.사용면적.Rows.Count = 0 Then
|
||||
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
|
||||
Else
|
||||
DSETR.사용면적(0)("V_WF") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Overridable Sub Calc()
|
||||
|
||||
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
||||
pLog.Add(">> C사용면적.Calc")
|
||||
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
||||
|
||||
Dim A_H As Decimal = 0
|
||||
Dim A_C As Decimal = 0
|
||||
Dim A_L As Decimal = 0
|
||||
Dim A_W As Decimal = 0
|
||||
Dim A_V As Decimal = 0
|
||||
'//용도별 면적가중치(wf) 추가 '2012.07.01
|
||||
Dim A_H_wf As Decimal = 0
|
||||
Dim A_C_wf As Decimal = 0
|
||||
Dim A_L_wf As Decimal = 0
|
||||
Dim A_W_wf As Decimal = 0
|
||||
Dim A_V_wf As Decimal = 0
|
||||
Dim day_year As Decimal
|
||||
'//'2012.07.01
|
||||
|
||||
If DSETR.사용면적.Rows.Count = 0 Then '//데결과가 없으면 신규줄을 기록한다.
|
||||
Dim Dr As DSR.사용면적Row = DSETR.사용면적.New사용면적Row
|
||||
Dr.H = 0 : Dr.C = 0 : Dr.L = 0 : Dr.W = 0 : Dr.V = 0
|
||||
DSETR.사용면적.Add사용면적Row(Dr)
|
||||
DSETR.AcceptChanges()
|
||||
End If
|
||||
|
||||
'//건물용도
|
||||
Dim 건물용도 As Integer = CInt(DSET.tbl_Desc.Rows(0)("isjugo"))
|
||||
|
||||
'//A_H,C,W,L,V 의 누적값을 계산(사용면적) '//모든존을 대상으로
|
||||
|
||||
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
|
||||
|
||||
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "'")(0), DS.tbl_profileRow)
|
||||
|
||||
Dim offset As Integer = 1
|
||||
If Dr프로필.code = "0016" Then
|
||||
If Dr존.조명부하산출방법 = "입력치" Then
|
||||
If Dr존.조명에너지부하율입력치 > 10 Then
|
||||
offset = ((Dr존.조명에너지부하율입력치 - 10) * 0.4 + 10) / Dr존.조명에너지부하율입력치
|
||||
End If
|
||||
ElseIf Dr존.조명부하산출방법 = "계산치" Then
|
||||
If Dr존.조명에너지부하율계산치 > 10 Then
|
||||
offset = ((Dr존.조명에너지부하율계산치 - 10) * 0.4 + 10) / Dr존.조명에너지부하율계산치
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format(">> Zone({0})Row Offset={1}", Dr존.code, offset))
|
||||
|
||||
'//냉난방(HC) 이거나 난방(H)일경우 난방면적 누적
|
||||
If Dr존.냉난방방식.IndexOf("난") <> -1 OrElse Dr존.냉난방공조.IndexOf("난") <> -1 Then
|
||||
A_H += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
|
||||
If 건물용도 < 10 Then '//주거일경우에
|
||||
|
||||
'//연
|
||||
|
||||
A_H_wf = A_H
|
||||
|
||||
Else
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
|
||||
|
||||
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
|
||||
'If Dr프로필.code <> "0010" Then
|
||||
' A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
'Else
|
||||
' A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.503 / 0.314), 3) '//전산실 용도에 따른 난방 가중치 적용
|
||||
'End If
|
||||
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format(">> Zone({0})Row A_H_wf={1}", Dr존.code, A_H_wf))
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'//냉난방(hC) 이거나 냉방(C)일경우 냉방면적 누적
|
||||
If Dr존.냉난방방식.IndexOf("냉") <> -1 OrElse Dr존.냉난방공조.IndexOf("냉") <> -1 Then
|
||||
A_C += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
A_C_wf = A_C
|
||||
Else
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
|
||||
|
||||
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
|
||||
'If Dr프로필.code <> "0010" Then
|
||||
' A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
'Else
|
||||
' A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.196 / 0.314), 3) '//전산실 용도에 따른 냉방 가중치 적용
|
||||
'End If
|
||||
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format(">> Zone({0})Row A_C={1},A_C_wf={2}", Dr존.code, A_C, A_C_wf))
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'//급탕요구량이 있다면 급탕면적 누적
|
||||
If TOSG(Dr프로필.일일급탕요구량) > 0 Then
|
||||
|
||||
A_W += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
|
||||
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
A_W_wf = A_W
|
||||
Else
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일급탕요구량) * Math.Round(day_year / (30 * 250), 3)) 160211 소수점오류인한 수정
|
||||
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일급탕요구량) * (day_year / (30 * 250)), 3)
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format(">> Zone({0})Row A_W={1},A_W_wf={2}", Dr존.code, A_W, A_W_wf))
|
||||
|
||||
End If
|
||||
|
||||
'//조명의 에너지부하율값이 있으면 조명면적 누적
|
||||
If Dr존.조명에너지부하율계산치 <> "0" OrElse Dr존.조명에너지부하율입력치 <> "0" Then
|
||||
A_L += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
'//가스를쓰는 난방 급탕은 계가 발생
|
||||
A_L_wf = A_L
|
||||
Else
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일사용시간) * Math.Round(day_year / (9 * 250), 3) * offset)
|
||||
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format(">> Zone({0})Row A_L={1},A_L_wf={2}", Dr존.code, A_L, A_L_wf))
|
||||
End If
|
||||
|
||||
'//냉난방공조를 사용하고있다면 환기면적 누적(ZZ:기능없음)
|
||||
If (Dr존.냉난방공조 <> "기능없음") Then
|
||||
A_V += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
A_V_wf = A_V
|
||||
Else
|
||||
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
|
||||
'A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
|
||||
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
End If
|
||||
|
||||
pLog.Add(String.Format(">> Zone({0})Row A_V={1},A_V_wf={2}", Dr존.code, A_V, A_V_wf))
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
'//저장소에 보관한다.
|
||||
'//가중치 없는 사용면적
|
||||
Result.사용면적.H = A_H
|
||||
Result.사용면적.C = A_C
|
||||
Result.사용면적.L = A_L
|
||||
Result.사용면적.W = A_W
|
||||
Result.사용면적.V = A_V
|
||||
|
||||
pLog.Add("C사용면적.CALC 결과 : 가중치없음")
|
||||
pLog.Add(String.Format("H={0},C={1},L={2},W={3},V={4}", A_H, A_C, A_L, A_W, A_V))
|
||||
|
||||
|
||||
'// 가중치 있는 사용면적 '2013.07.01
|
||||
Result.사용면적.H_WF = A_H_wf
|
||||
Result.사용면적.C_WF = A_C_wf
|
||||
Result.사용면적.L_WF = A_L_wf
|
||||
Result.사용면적.W_WF = A_W_wf
|
||||
Result.사용면적.V_WF = A_V_wf
|
||||
|
||||
pLog.Add("C사용면적.CALC 결과 : 가중치적용")
|
||||
pLog.Add(String.Format("H_wf={0},C_wf={1},L_wf={2},W_wf={3},V_wf={4}", A_H_wf, A_C_wf, A_L_wf, A_W_wf, A_V_wf))
|
||||
End Sub
|
||||
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Private DSET As DS
|
||||
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult)
|
||||
|
||||
If Not pLog Is Nothing Then
|
||||
pLog.Add("New C사용면적", True)
|
||||
End If
|
||||
|
||||
DSET = pds
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
End Sub
|
||||
End Class
|
||||
272
ArinWarev1/DataSet/Calculator/Result/C생산에너지.vb
Normal file
272
ArinWarev1/DataSet/Calculator/Result/C생산에너지.vb
Normal file
@@ -0,0 +1,272 @@
|
||||
'// 0월합계에대한 처리는 하였음
|
||||
'// 완료일자 : 2010-03-08
|
||||
|
||||
Public Class C생산에너지
|
||||
Public Mon As String
|
||||
Private MIdx As Integer
|
||||
Private ErrMsg As String = "에너지소요량 계산되지 않았습니다"
|
||||
|
||||
'Public Sub Calc_Summary()
|
||||
' '//
|
||||
' If MIdx <> 0 Then
|
||||
' MsgBox("계산식은 0번 합계배열만 가능합니다")
|
||||
' Return
|
||||
' End If
|
||||
|
||||
' Dim I1 as decimal = 0
|
||||
' Dim I2 as decimal = 0
|
||||
' Dim I3 as decimal = 0
|
||||
' Dim I4 as decimal = 0
|
||||
' Dim I5 as decimal = 0
|
||||
' Dim I6 as decimal = 0
|
||||
' For i As Integer = 1 To 12
|
||||
' '//12월을 다더해서 0번열에 기록한다.
|
||||
' I1 += Result.생산E(i).태양광전력생산량
|
||||
' I2 += Result.생산E(i).열병합전력생산량
|
||||
' I3 += Result.생산E(i).태양열생산량
|
||||
' I4 += Result.생산E(i).지열생산량
|
||||
' I5 += Result.생산E(i).면적당생산량태양열
|
||||
' I6 += Result.생산E(i).면적당생산량지열
|
||||
' Next
|
||||
' Me.태양광전력생산량 = I1
|
||||
' Me.열병합전력생산량 = I2
|
||||
' Me.태양열생산량 = I3
|
||||
' Me.지열생산량 = I4
|
||||
' Me.면적당생산량태양열 = I5
|
||||
' Me.면적당생산량지열 = I6
|
||||
'End Sub
|
||||
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
MIdx = pmIdx
|
||||
Mon = "M" & Format(MIdx, "00")
|
||||
End Sub
|
||||
Property 태양광전력생산량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).태양광전력생산량
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("전력태양광"))
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
' MsgBox("태양광기록(" & Mon & ")")
|
||||
DR(0)("전력태양광") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 열병합전력생산량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).열병합전력생산량
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("전력열병합"))
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("전력열병합") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 신재생열병합전력생산량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).신재생열병합전력생산량
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("신재생열병합전력생산량"))
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("신재생열병합전력생산량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property 신재생면적당열생산량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).신재생면적당열생산량
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("신재생면적당열생산량"))
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("신재생면적당열생산량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Property 태양열생산량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).태양열생산량
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("생산량태양열"))
|
||||
End If
|
||||
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("생산량태양열") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 지열생산량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).지열생산량
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("생산량지열"))
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("생산량지열") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 면적당생산량태양열() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).면적당생산량태양열
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("면적당생산량태양열"))
|
||||
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("면적당생산량태양열") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 면적당생산량지열() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
'MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
|
||||
Dim Res As Decimal = 0
|
||||
For i As Short = 1 To 12
|
||||
Res += Result.생산E(i).면적당생산량지열
|
||||
Next
|
||||
Return Res
|
||||
Else
|
||||
Return TOSG(DR(0)("면적당생산량지열"))
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("면적당생산량지열") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
|
||||
355
ArinWarev1/DataSet/Calculator/Result/C에너지분석.vb
Normal file
355
ArinWarev1/DataSet/Calculator/Result/C에너지분석.vb
Normal file
@@ -0,0 +1,355 @@
|
||||
Public Class C에너지분석
|
||||
Public ZZone As String
|
||||
Public Mon As String
|
||||
Private ErrMsg As String = "월에너지분석이 계산되지 않았습니다"
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, ByVal mIdx As Integer, Optional ByVal pZone As String = "00")
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
Me.ZZone = pZone
|
||||
Mon = "M" & Format(mIdx, "00")
|
||||
End Sub
|
||||
ReadOnly Property 에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "에너지요구량")
|
||||
Return 0
|
||||
Else
|
||||
Return 난방에너지요구량열(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
|
||||
난방에너지요구량공조환기(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
|
||||
냉방에너지요구량열(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
|
||||
냉방에너지요구량공조환기(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
|
||||
조명에너지요구량(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
|
||||
급탕에너지요구량(CStr(IIf(Zone <> "00", Zone, ZZone)))
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 면적당에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Return Me.난방단위면적당요구량 + Me.냉방단위면적당요구량 + Me.조명단위면적당요구량 + Me.급탕단위면적당요구량
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Return Me.난방에너지요구량열(IIf(Zone <> "00", Zone, ZZone).ToString) + Me.난방에너지요구량공조환기(IIf(Zone <> "00", Zone, ZZone).ToString)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 난방단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방에너지요구량 / Result.사용면적.H
|
||||
End If
|
||||
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
Property 난방에너지요구량열(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량열")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방요구량열"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량열")
|
||||
Else
|
||||
DR(0)("난방요구량열") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 난방에너지요구량공조환기(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량공조환기")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방요구량공조"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량공조환기")
|
||||
Else
|
||||
DR(0)("난방요구량공조") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property 냉방에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Return Me.냉방에너지요구량열(CStr(IIf(Zone <> "00", Zone, ZZone))) + Me.냉방에너지요구량공조환기(CStr(IIf(Zone <> "00", Zone, ZZone)))
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 냉방단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.냉방에너지요구량 / Result.사용면적.C
|
||||
End If
|
||||
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
Property 냉방에너지요구량열(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
|
||||
|
||||
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량열")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방요구량열"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량열")
|
||||
Else
|
||||
DR(0)("냉방요구량열") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방에너지요구량공조환기(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량공조환기")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방요구량공조"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량공조환기")
|
||||
Else
|
||||
DR(0)("냉방요구량공조") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property 조명에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "조명에너지요구량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("조명요구량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "조명에너지요구량")
|
||||
Else
|
||||
DR(0)("조명요구량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 조명단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
If Result.사용면적.L = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.조명에너지요구량 / Result.사용면적.L
|
||||
End If
|
||||
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property 급탕에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "급탕요구량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕요구량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "급탕요구량")
|
||||
Else
|
||||
DR(0)("급탕요구량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 급탕단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
If Result.사용면적.W = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.급탕에너지요구량 / Result.사용면적.W
|
||||
End If
|
||||
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
|
||||
End Get
|
||||
End Property
|
||||
Property 공조풍량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조풍량")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("공조풍량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조풍량")
|
||||
Else
|
||||
DR(0)("공조풍량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 공조에너지요구량난방(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조에너지요구량난방")
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("공조요구량난방"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조에너지요구량난방")
|
||||
Else
|
||||
DR(0)("공조요구량난방") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 공조에너지요구량냉방(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("공조요구량냉방"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("공조요구량냉방") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 공조에너지요구량가습(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("공조요구량가습"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("공조요구량가습") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 환기에너지요구량(Optional ByVal Zone As String = "00") As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone = "00", ZZone, Zone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("환기요구량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("환기요구량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Public Sub Calc()
|
||||
'//Zone 이 00일떄만 계산된다
|
||||
|
||||
'//여기데이터는 12개가 미리존재한다 그러므로 현재 속한 월말 계산하면된다
|
||||
'//현재 월 존에해당하는 데이터가없다면 생성해준다.
|
||||
Dim Drow As DSR.월별에너지분석Row
|
||||
If DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='00'").GetUpperBound(0) = -1 Then
|
||||
Drow = DSETR.월별에너지분석.New월별에너지분석Row
|
||||
Drow.존 = "00"
|
||||
Drow.월 = Mon
|
||||
DSETR.월별에너지분석.Add월별에너지분석Row(Drow) '//기본줄을 추가함
|
||||
DSETR.AcceptChanges()
|
||||
End If
|
||||
|
||||
Dim a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 As Decimal
|
||||
a2 = 0 : a3 = 0 : a4 = 0 : a5 = 0 : a6 = 0
|
||||
a7 = 0 : a8 = 0 : a9 = 0 : a10 = 0 : a11 = 0 : a12 = 0
|
||||
For Each Dr As DSR.월별에너지분석Row In DSETR.월별에너지분석.Select("월='" & Mon & "' and 존 <> '00'", "존")
|
||||
'//존별로 에너지요구량 최상단 합데이터를 갱신한다.
|
||||
'Dr.에너지요구량 = Dr.난방요구량열 + Dr.난방요구량공조 + Dr.냉방요구량열 + Dr.냉방요구량공조 + Dr.조명요구량 + Dr.급탕요구량
|
||||
'a1 = a1 + Dr.에너지요구량
|
||||
a2 = a2 + Dr.난방요구량열
|
||||
a3 = a3 + Dr.난방요구량공조
|
||||
a4 = a4 + Dr.냉방요구량열
|
||||
a5 = a5 + Dr.냉방요구량공조
|
||||
a6 = a6 + Dr.조명요구량
|
||||
a7 = a7 + Dr.급탕요구량
|
||||
a8 = a8 + Dr.공조풍량
|
||||
a9 = a9 + Dr.공조요구량난방
|
||||
a10 = a10 + Dr.공조요구량냉방
|
||||
a11 = a11 + Dr.공조요구량가습
|
||||
a12 = a12 + Dr.환기요구량
|
||||
Next
|
||||
|
||||
'Me.에너지요구량 = a2 + a3 + a4 + a5 + a6 + a7 ㅇ건 Readonlye 로 계산한다.
|
||||
|
||||
Me.난방에너지요구량열 = a2
|
||||
Me.난방에너지요구량공조환기 = a3
|
||||
Me.냉방에너지요구량열 = a4
|
||||
Me.냉방에너지요구량공조환기 = a5
|
||||
Me.조명에너지요구량 = a6
|
||||
Me.급탕에너지요구량 = a7
|
||||
Me.공조풍량 = a8
|
||||
Me.공조에너지요구량난방 = a9
|
||||
Me.공조에너지요구량냉방 = a10
|
||||
Me.공조에너지요구량가습 = a11
|
||||
Me.환기에너지요구량 = a12
|
||||
' Next
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
401
ArinWarev1/DataSet/Calculator/Result/C에너지소요량.vb
Normal file
401
ArinWarev1/DataSet/Calculator/Result/C에너지소요량.vb
Normal file
@@ -0,0 +1,401 @@
|
||||
Public Class C에너지소요량
|
||||
|
||||
|
||||
Dim Midx As Integer
|
||||
Public Mon As String
|
||||
Private ErrMsg As String = "에너지소요량 계산되지 않았습니다"
|
||||
Private DSETR As DSR
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
|
||||
DSETR = pdsetr
|
||||
Result = presult
|
||||
Mon = "M" & Format(pmIdx, "00")
|
||||
Me.Midx = pmIdx
|
||||
End Sub
|
||||
|
||||
Public Sub Calc_Summary()
|
||||
If Midx <> 0 Then
|
||||
MsgBox("계산식은 0번 합계필드만 가능합니다.", MsgBoxStyle.Critical, "확인")
|
||||
Return
|
||||
End If
|
||||
Dim I10 As Decimal = 0
|
||||
Dim I20 As Decimal = 0
|
||||
Dim I30 As Decimal = 0
|
||||
Dim I40 As Decimal = 0
|
||||
Dim I50 As Decimal = 0
|
||||
Dim I60 As Decimal = 0
|
||||
|
||||
Dim IH As Decimal = 0
|
||||
Dim IC As Decimal = 0
|
||||
Dim IL As Decimal = 0
|
||||
Dim IW As Decimal = 0
|
||||
Dim IV As Decimal = 0
|
||||
|
||||
Dim I4 As Decimal = 0 '//난방
|
||||
Dim I5 As Decimal = 0 '//냉방
|
||||
Dim I6 As Decimal = 0 '//조명
|
||||
Dim I7 As Decimal = 0 '//급탕
|
||||
Dim I8 As Decimal = 0 '//환기
|
||||
|
||||
For i As Integer = 1 To 12
|
||||
'//12월을 다더해서 0번열에 기록한다.
|
||||
I10 += Result.E소요량(i).난방
|
||||
I20 += Result.E소요량(i).난방보조
|
||||
I30 += Result.E소요량(i).냉방
|
||||
I40 += Result.E소요량(i).냉방보조
|
||||
I50 += Result.E소요량(i).급탕
|
||||
I60 += Result.E소요량(i).급탕보조
|
||||
|
||||
IH += Result.E소요량(i).난방S
|
||||
IC += Result.E소요량(i).냉방S
|
||||
IL += Result.E소요량(i).조명S
|
||||
IW += Result.E소요량(i).급탕S
|
||||
IV += Result.E소요량(i).환기S
|
||||
|
||||
I4 += Result.일차E소요량(i).난방전력
|
||||
I5 += Result.일차E소요량(i).냉방전력
|
||||
I6 += Result.일차E소요량(i).조명전력
|
||||
I7 += Result.일차E소요량(i).급탕전력
|
||||
I8 += Result.일차E소요량(i).환기전력
|
||||
Next
|
||||
|
||||
Me.난방 = I10
|
||||
Me.난방보조 = I20
|
||||
Me.냉방 = I30
|
||||
Me.냉방보조 = I40
|
||||
Me.급탕 = I50
|
||||
Me.급탕보조 = I60
|
||||
|
||||
If (I4 + I5 + I6 + I7 + I8 <> 0) Then
|
||||
Me.난방S = IH - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I4
|
||||
Me.냉방S = IC - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I5
|
||||
Me.조명S = IL - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I6
|
||||
Me.급탕S = IW - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I7
|
||||
Me.환기S = IV - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I8
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
ReadOnly Property 소요량() As Decimal
|
||||
Get
|
||||
Return 난방S + 냉방S + 조명S + 환기S + 급탕S
|
||||
End Get
|
||||
End Property
|
||||
|
||||
ReadOnly Property 면적소요량() As Decimal
|
||||
Get
|
||||
Return 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
|
||||
End Get
|
||||
|
||||
End Property
|
||||
Property 난방S() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방"))
|
||||
End If
|
||||
Else
|
||||
Return 난방 + 난방보조
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("난방") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property 난방() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방에너지소요량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("난방에너지소요량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 난방보조() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방보조에너지소요량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("난방보조에너지소요량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 난방면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방S / Result.사용면적.H
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
Property 냉방S() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방"))
|
||||
End If
|
||||
Else
|
||||
Return 냉방 + 냉방보조
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("냉방") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방에너지소요량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("냉방에너지소요량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 냉방보조() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방보조에너지소요량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("냉방보조에너지소요량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 냉방면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.C = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.냉방S / Result.사용면적.C
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
Property 조명S() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("조명"))
|
||||
End If
|
||||
Else
|
||||
Return Result.E분석(Midx).조명에너지요구량
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("조명") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 조명면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.L = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.조명S / Result.사용면적.L
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property 급탕S() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("급탕"))
|
||||
End If
|
||||
Else
|
||||
Return 급탕 + 급탕보조
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("급탕") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
|
||||
'#If DEBUG Then
|
||||
' Dim f As String = "c:\temp\1\급탕에너지소요량.txt"
|
||||
' Dim b As New System.Text.StringBuilder
|
||||
' If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("Mon 급탕에너지소요량")
|
||||
' End If
|
||||
' b.AppendLine(Mon + vbTab + DR(0)("급탕에너지소요량").ToString)
|
||||
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
'#End If
|
||||
|
||||
Return TOSG(DR(0)("급탕에너지소요량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("급탕에너지소요량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 급탕보조() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
|
||||
#If DEBUG Then
|
||||
'Dim f As String = "c:\temp\1\급탕보조에너지소요량.txt"
|
||||
'Dim b As New System.Text.StringBuilder
|
||||
'If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("Mon 급탕보조에너지소요량")
|
||||
'End If
|
||||
'b.AppendLine(Mon + vbTab + DR(0)("급탕보조에너지소요량").ToString)
|
||||
'My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
#End If
|
||||
|
||||
Return TOSG(DR(0)("급탕보조에너지소요량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("급탕보조에너지소요량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 급탕면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.W = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
|
||||
'#If DEBUG Then
|
||||
' Dim f As String = "c:\temp\1\급탕면적.txt"
|
||||
' Dim b As New System.Text.StringBuilder
|
||||
' If System.IO.File.Exists(f) = False Then
|
||||
' b.AppendLine("급탕S 사용면적")
|
||||
' End If
|
||||
' b.AppendLine(급탕S.ToString() + vbTab + Result.사용면적.W.ToString)
|
||||
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
|
||||
'#End If
|
||||
|
||||
Return 급탕S / Result.사용면적.W
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
Property 환기S() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("환기"))
|
||||
End If
|
||||
Else
|
||||
Return Result.E분석(Midx).환기에너지요구량
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("환기") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property 환기면적() As Decimal
|
||||
Get
|
||||
If Result.사용면적.V = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return 환기S / Result.사용면적.V
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
End Class
|
||||
224
ArinWarev1/DataSet/Calculator/Result/C에너지요구량.vb
Normal file
224
ArinWarev1/DataSet/Calculator/Result/C에너지요구량.vb
Normal file
@@ -0,0 +1,224 @@
|
||||
Public Class C에너지요구량
|
||||
|
||||
Dim Midx As Integer
|
||||
Public Mon As String
|
||||
Private ErrMsg As String = "에너지요구량 계산되지 않았습니다"
|
||||
Private Result As CResult
|
||||
Public Sub New(ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
|
||||
Result = presult
|
||||
Mon = "M" & Format(pmIdx, "00")
|
||||
Me.Midx = pmIdx
|
||||
End Sub
|
||||
|
||||
ReadOnly Property 요구량() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then '//누적데이터
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).요구량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return 난방요구량 + 냉방요구량 + 조명요구량 + 급탕요구량
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 면적당요구량() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then '//누적데이터
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).면적당요구량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return 난방면적 + 냉방면적 + 조명면적 + 급탕면적
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "난방요구량"
|
||||
ReadOnly Property 난방요구량() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then '//누적데이터
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).난방요구량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Me.난방열 + Me.난방공조
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방열() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E분석(i).난방에너지요구량열
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Result.E분석(Midx).난방에너지요구량열
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방공조() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E분석(i).난방에너지요구량공조환기
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Result.E분석(Midx).난방에너지요구량공조환기
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 난방면적() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).난방면적
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
If Result.사용면적.H = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.난방요구량 / Result.사용면적.H
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "냉방요구량"
|
||||
ReadOnly Property 냉방요구량() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then '//누적데이터
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).냉방요구량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Me.냉방열 + Me.냉방공조
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방열() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E분석(i).냉방에너지요구량열
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Result.E분석(Midx).냉방에너지요구량열
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방공조() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E분석(i).냉방에너지요구량공조환기
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Result.E분석(Midx).냉방에너지요구량공조환기
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 냉방면적() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).냉방면적
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
If Result.사용면적.C = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.냉방요구량 / Result.사용면적.C
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "조명요구량"
|
||||
ReadOnly Property 조명요구량() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then '//누적데이터
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).조명요구량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Result.E분석(Midx).조명에너지요구량
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 조명면적() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).조명면적
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
If Result.사용면적.L = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.조명요구량 / Result.사용면적.L
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
#Region "급탕요구량"
|
||||
ReadOnly Property 급탕요구량() As Decimal
|
||||
Get
|
||||
If Midx = 0 Then '//누적데이터
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).급탕요구량
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
Return Result.E분석(Midx).급탕에너지요구량
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
ReadOnly Property 급탕면적() As Decimal
|
||||
Get '//월별 에너지분석에서 난방요구량
|
||||
If Midx = 0 Then
|
||||
Dim R As Decimal = 0
|
||||
For i As Integer = 1 To 12
|
||||
R += Result.E요구량(i).급탕면적
|
||||
Next
|
||||
Return R
|
||||
Else
|
||||
If Result.사용면적.W = 0 Then
|
||||
Return 0
|
||||
Else
|
||||
Return Me.급탕요구량 / Result.사용면적.W
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
264
ArinWarev1/DataSet/Calculator/Result/C최대냉난방부하.vb
Normal file
264
ArinWarev1/DataSet/Calculator/Result/C최대냉난방부하.vb
Normal file
@@ -0,0 +1,264 @@
|
||||
|
||||
Public Class C최대냉난방부하
|
||||
Private DSETR As DSR
|
||||
Public Sub New(ByRef pdsetr As DSR) '//존은초기화값을 가지고 생성한다.
|
||||
DSETR = pdsetr
|
||||
End Sub
|
||||
Public Function Item(Optional ByVal ZoneCode As String = "00") As Citem
|
||||
Return New Citem(DSETR, ZoneCode)
|
||||
End Function
|
||||
|
||||
Public Sub Calc_Summary()
|
||||
'//Zone 이 00일떄만 계산된다
|
||||
|
||||
Dim a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 As Decimal
|
||||
a1 = 0 : a2 = 0 : a3 = 0 : a4 = 0 : a5 = 0 : a6 = 0
|
||||
a7 = 0 : a8 = 0 : a9 = 0 : a10 = 0
|
||||
Dim Exist As Boolean = False
|
||||
|
||||
For Each Dr As DSR.최대냉난방부하Row In DSETR.최대냉난방부하.Select("Zone <> '00'", "Zone")
|
||||
If Exist = False Then Exist = True
|
||||
' Dr.최대냉난방부하 = Dr.최대난방기기부하 + Dr.최대냉방기기부하
|
||||
a1 += Dr.최대난방기기부하
|
||||
a2 += Dr.최대난방실내부하
|
||||
'a3 += Dr.난방최대가동시간
|
||||
a4 += Dr.최대가열성능
|
||||
a5 += Dr.최대냉방기기부하
|
||||
a6 += Dr.최대냉방실내부하
|
||||
'a7 += Dr.냉방최대가동시간
|
||||
a8 += Dr.최대냉각성능
|
||||
a9 += Dr.최대가습성능
|
||||
a10 += Dr.공조풍량
|
||||
Next
|
||||
|
||||
If Exist = False Then
|
||||
MsgBox("각존별 계산이 되어있지않아서 값을 계산할 수 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
Return
|
||||
End If
|
||||
|
||||
Me.Item("00").최대난방기기부하 = a1
|
||||
Me.Item("00").최대난방실내부하 = a2
|
||||
Me.Item("00").일일난방최대가동시간 = a3
|
||||
Me.Item("00").최대가열성능 = a4
|
||||
Me.Item("00").최대냉방기기부하 = a5
|
||||
Me.Item("00").최대냉방실내부하 = a6
|
||||
Me.Item("00").일일냉방최대가동시간 = a7
|
||||
Me.Item("00").최대냉각성능 = a8
|
||||
Me.Item("00").최대가습성능 = a9
|
||||
Me.Item("00").공조풍량 = a10
|
||||
|
||||
End Sub
|
||||
|
||||
Public Class Citem
|
||||
Private Zone As String
|
||||
Dim ErrMsg As String = "최대냉난방부하가 계산되지 않았습니다"
|
||||
Private DSETR As DSR
|
||||
Public Sub New(ByRef pdsetr As DSR, Optional ByVal pZone As String = "00") '//존은초기화값을 가지고 생성한다.
|
||||
DSETR = pdsetr
|
||||
Zone = pZone
|
||||
End Sub
|
||||
ReadOnly Property 최대냉난방부하() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(Me.최대난방기기부하 + Me.최대냉방기기부하)
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
Property 최대난방기기부하() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대난방기기부하"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대난방기기부하") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 최대난방실내부하() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대난방실내부하"))
|
||||
End If
|
||||
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대난방실내부하") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 일일난방최대가동시간() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("난방최대가동시간"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("난방최대가동시간") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 최대가열성능() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대가열성능"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대가열성능") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 최대냉방기기부하() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대냉방기기부하"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대냉방기기부하") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 최대냉방실내부하() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대냉방실내부하"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대냉방실내부하") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 일일냉방최대가동시간() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("냉방최대가동시간"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("냉방최대가동시간") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 최대냉각성능() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대냉각성능"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대냉각성능") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 최대가습성능() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("최대가습성능"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("최대가습성능") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
Property 공조풍량() As Decimal
|
||||
Get
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Return 0
|
||||
Else
|
||||
Return TOSG(DR(0)("공조풍량"))
|
||||
End If
|
||||
End Get
|
||||
Set(ByVal value As Decimal)
|
||||
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
|
||||
If DR.GetUpperBound(0) = -1 Then
|
||||
MsgBox(ErrMsg)
|
||||
Else
|
||||
DR(0)("공조풍량") = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
|
||||
End Class
|
||||
899
ArinWarev1/DataSet/Calculator/Summary/CSummary.vb
Normal file
899
ArinWarev1/DataSet/Calculator/Summary/CSummary.vb
Normal file
@@ -0,0 +1,899 @@
|
||||
Public Class CSummary
|
||||
|
||||
Public Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 모든 집계데이터를 갱신합니다.
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub All()
|
||||
|
||||
''TMon()
|
||||
'///
|
||||
|
||||
Work_msg("최종데이터 집계중...")
|
||||
Frm_Work.ProgressBar1.Maximum = 12
|
||||
Frm_Work.ProgressBar1.Minimum = 0
|
||||
Frm_Work.ProgressBar1.Value = 0
|
||||
Frm_Work.ProgressBar1.Visible = False
|
||||
Frm_Work.TopMost = True
|
||||
Frm_Work.Show()
|
||||
|
||||
|
||||
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다. '//LoadOfZone 에서 계산완료한다.
|
||||
Dr.Calc()
|
||||
Next
|
||||
Result.최대부하.Calc_Summary() '//최대냉난방부하(합계-zone='00') 계산
|
||||
'Result.생산E(0).Calc_Summary() '//합계필드(M00)에데이터를 누적합니다.
|
||||
Result.일차E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
|
||||
Result.E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
|
||||
|
||||
'TReqUse_M01M12() '//이것들은 현재 사용하지 않고있다.
|
||||
'TReqUse_M00() '//현재 사용하지않고있따.
|
||||
|
||||
Me.Make_ResultSheet() '//최종결과를 보여주는 시트를 작성한다.
|
||||
DSETR.AcceptChanges() '//변경된모든내용을 적용함
|
||||
End Sub
|
||||
|
||||
#Region "미사용개체"
|
||||
|
||||
''' <summary>
|
||||
''' 1월부터 10월까지 집계데이터를 계산한다.
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub TReqUse_M01M12()
|
||||
Dim MOn As String
|
||||
For i As Short = 1 To 12
|
||||
'MOn = "M" & Format(i, "00")
|
||||
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
|
||||
|
||||
|
||||
''////////////////////////////////////
|
||||
'' 연간 Co2 배출량
|
||||
''////////////////////////////////////
|
||||
|
||||
''조명/환기에너지소요량
|
||||
'DR(56 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).조명요구량
|
||||
'DR(57 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).환기요구량
|
||||
|
||||
''//SUMProduct 계산
|
||||
'Dim Acc1 as decimal = 0
|
||||
'Dim Acc2 as decimal = 0
|
||||
'For j As Short = 41 To 57
|
||||
' Acc1 += Ru(j, MOn) * Ru(j, "sign")
|
||||
'Next
|
||||
'For j As Short = 58 To 59
|
||||
' Acc2 += Ru(j, MOn) * Ru(j, "sign")
|
||||
'Next
|
||||
'Ru(ResultRow.CO2_연간배출량, MOn) = Acc1 - Acc2 '//최상단 합계(연가Co2배출량
|
||||
|
||||
''//Excel 67번줄데이터가 필요하므로 먼저계산한다..해당데이터는 마지막(64번줄에 할당함)
|
||||
''//(I95+I96)/(I76+I82+I88+I90+I92)*$C$76
|
||||
'Ru(64, MOn) = (Ru(58, MOn) + Ru(59, MOn)) / (Ru(45, MOn) + Ru(50, MOn) + Ru(55, MOn) + Ru(56, MOn) + Ru(57, MOn)) * Ru(45, "sign")
|
||||
|
||||
''//난방에너지소요량(계수(sign)* Sumproduct)
|
||||
'Dim ACc_Nan as decimal = 0
|
||||
'For j As Short = 41 To 45
|
||||
' ACc_Nan += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
|
||||
'Next
|
||||
|
||||
'Dim ACc_Naeng as decimal = 0
|
||||
'For j As Short = 46 To 50
|
||||
' ACc_Naeng += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
|
||||
'Next
|
||||
|
||||
'Dim ACc_KUb as decimal = 0
|
||||
'For j As Short = 51 To 55
|
||||
' ACc_KUb += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
|
||||
'Next
|
||||
|
||||
|
||||
''//67>64
|
||||
''IF(csng(ru(7,"00"))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/$H$15)+IF($H$20=0,0,(SUMPRODUCT($C$78:$C$82,I78:I82)-I82*I67)/$H$20)+IF($H$26=0,0,(SUMPRODUCT($C$84:$C$88,I84:I88)-I88*I67)/$H$26)+IF($H$23=0,0,($C$90*I90-I90*I67)/$H$23)+IF($H$27=0,0,($C$92*I92-I92*I67)/$H$27)
|
||||
''IF(csng(ru(7))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19))
|
||||
|
||||
''//단위면적당Co2배출량)
|
||||
'If Ru(ResultRow.요구량_난방_사용면적) = 0 Then
|
||||
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = 0
|
||||
'Else
|
||||
' '(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19)
|
||||
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = (ACc_Nan - Ru(45, MOn) * Ru(64, MOn)) / Ru(7) + CSng(IIf(Ru(12) = 0, 0, (ACc_Naeng - Ru(50, MOn) * Ru(64, MOn)) / Ru(12))) + CSng(IIf(Ru(18) = 0, 0, (ACc_KUb - Ru(55, MOn) * Ru(64, MOn)) / Ru(18))) + CSng(IIf(Ru(15) = 0, 0, (Ru(56, "sign") * Ru(56, MOn) - Ru(56, MOn) * Ru(64, MOn)) / Ru(15))) + CSng(IIf(Ru(19) = 0, 0, (Ru(57, "sign") * Ru(57, MOn) - Ru(57, MOn) * Ru(64, MOn)) / Ru(19)))
|
||||
'End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 에너지요구량및소요량 테이블의 M00(합계)를 누적(M01~M12)로 채웁니다. 그렇지않은건 이후에 합계프로시져별도로 생성함
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Sub TReqUse_M00()
|
||||
''//LT(LineType 이 SL Sum Line 인경우가져와서 m00 = m01~m12 한다
|
||||
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
|
||||
'For Each Drs As DSR.TReqUseRow In DSETR.TReqUse.Select("lt='SL'")
|
||||
' Drs.M00 = Drs.M01 + Drs.M02 + Drs.M03 + Drs.M04 + Drs.M05 + Drs.M06 + Drs.M07 + Drs.M08 + Drs.M09 + Drs.M10 + Drs.M11 + Drs.M12
|
||||
'Next
|
||||
|
||||
''//커스텀 합계필드 계산
|
||||
|
||||
''자주사용되는 SUM(1~12)를 미리 계산해둔다
|
||||
'Dim L45, L50, L55, L56, L57, L22, L27, L31, L33, L37 as decimal : Dim Drow As DSR.TReqUseRow
|
||||
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
|
||||
'L45 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
|
||||
'L50 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
|
||||
'L55 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
|
||||
'L56 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
|
||||
'L57 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
|
||||
'L22 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
|
||||
'L27 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
|
||||
'L31 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
|
||||
'L33 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow)
|
||||
'L37 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
|
||||
|
||||
''//실제 데이터 집계
|
||||
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50 '
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L22 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
'Drow.COLG = L22 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
|
||||
'' End If
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L27 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
|
||||
'Drow.COLG = L27 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
|
||||
'' End If
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L31 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
'Drow.COLG = L31 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
|
||||
'' End If
|
||||
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
|
||||
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L33 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
'Drow.COLG = L33 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
|
||||
'' End If
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(20 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = DR(22 - 1).M00 + DR(27 - 1).M00 + DR(31 - 1).M00 + DR(33 - 1).M00 + DR(37 - 1).M00
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(26 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(7 - 1).M00 = 0, 0, DR(22 - 1).M00 / DR(7 - 1).M00))
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(30 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(12 - 1).M00 = 0, 0, DR(27 - 1).M00 / DR(12 - 1).M00))
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(32 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(15 - 1).M00 = 0, 0, DR(31 - 1).M00 / DR(15 - 1).M00))
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(36 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = CSng(IIf(DR(18 - 1).M00 = 0, 0, DR(33 - 1).M00 / DR(18 - 1).M00))
|
||||
|
||||
|
||||
''=SUM(I58:T58)-(H95+H96)/(SUM(I76:T76)+SUM(I82:T82)+SUM(I88:T88)+SUM(I90:T90)+SUM(I92:T92))*SUM(I92:T92)
|
||||
''=L37-(ru(58)+ru(59))/(L45+L50+L55+L56+L57)*L57
|
||||
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow) '//환기에너지소요량(X)
|
||||
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
|
||||
'Drow.M00 = L37 - (Ru(58) + Ru(59)) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
'Drow.COLG = L37 - (Ru(58)) / (L45 + L50 + L55 + L56 + L57) * L57
|
||||
'' End If
|
||||
|
||||
|
||||
'Drow = CType(DSETR.TReqUse.Rows(38 - 1), DSR.TReqUseRow) '//환기에너지 단위면적당 소요량
|
||||
'Drow.M00 = CSng(IIf(Ru(19) = 0, 0, Ru(37) / Ru(19)))
|
||||
|
||||
''//
|
||||
'Drow = CType(DSETR.TReqUse.Rows(21 - 1), DSR.TReqUseRow)
|
||||
'Drow.M00 = DR(26 - 1).M00 + DR(30 - 1).M00 + DR(32 - 1).M00 + DR(36 - 1).M00 + DR(38 - 1).M00
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
Public Sub Make_ResultSheet()
|
||||
'//에너지요구량
|
||||
DSETR.TReqUse.Clear()
|
||||
DSETR.TReqUse.AcceptChanges()
|
||||
|
||||
Dim Array As New ArrayList
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).요구량)
|
||||
Next
|
||||
Set_ReqUseRow("100", "에너지요구량", "[kWh]", "Qb", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).면적당요구량)
|
||||
Next
|
||||
Set_ReqUseRow("100", "단위면적당 에너지 요구량", "[kWh/m²]", "Σ(Qb / Ab)", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "난방에너지 요구량", "[kWh]", "QH,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방열)
|
||||
Next
|
||||
Set_ReqUseRow("110", "난방에너지 요구량(열)", "[kWh]", "Qh,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방공조)
|
||||
Next
|
||||
Set_ReqUseRow("110", "난방에너지 요구량(공조,환기)", "[kWh]", "Qh*,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).난방면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QH,b / AH", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(난방)", "[m²]", "AH", "=", Result.사용면적.H, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "냉방에너지 요구량", "[kWh]", "QC,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방열)
|
||||
Next
|
||||
Set_ReqUseRow("110", "냉방에너지 요구량(열)", "[kWh]", "Qc,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방공조)
|
||||
Next
|
||||
Set_ReqUseRow("110", "냉방에너지 요구량(공조,환기)", "[kWh]", "Qc*,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).냉방면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QC,b / AC", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(냉방)", "[m²]", "AC", "=", Result.사용면적.C, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).조명요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "조명에너지 요구량", "[kWh]", "QL,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).조명면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QL,b / AL", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(조명)", "[m²]", "AL", "=", Result.사용면적.L, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).급탕요구량)
|
||||
Next
|
||||
Set_ReqUseRow("110", "급탕에너지 요구량", "[kWh]", "QW,b", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E요구량(i).급탕면적)
|
||||
Next
|
||||
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QW,b / AW", "=", Array, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(급탕)", "[m²]", "AW", "=", Result.사용면적.W, "N1")
|
||||
Set_ReqUseRow("110", "사용면적(환기)", "[m²]", "AV", "=", Result.사용면적.V, "N1")
|
||||
|
||||
'//에너지소요량
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).소요량)
|
||||
Next
|
||||
Set_ReqUseRow("200", "에너지소요량", "[kWh]", "Qf", "", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).면적소요량)
|
||||
Next
|
||||
Set_ReqUseRow("200", "단위면적당 에너지 소요량", "[kWh/m²]", "Σ(Qf / Ab)", "", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "QH,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방)
|
||||
Next
|
||||
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "Qh,f", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방보조)
|
||||
Next
|
||||
Set_ReqUseRow("210", "난방보조에너지 소요량", "[kWh]", "Qh,aux", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).난방면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QH,f / AH", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "QC,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방)
|
||||
Next
|
||||
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "Qc,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방보조)
|
||||
Next
|
||||
Set_ReqUseRow("210", "냉방보조에너지 소요량", "[kWh]", "Qc,aux", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).냉방면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QC,f / AC", "=", Array, "N1")
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).조명S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "조명에너지 소요량", "[kWh]", "QL,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).조명면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QL,f / AL", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "QW,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕)
|
||||
Next
|
||||
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "Qw,f", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕보조)
|
||||
Next
|
||||
Set_ReqUseRow("210", "급탕보조에너지 소요량", "[kWh]", "Qw,aux", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).급탕면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QW,f / AW", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).환기S)
|
||||
Next
|
||||
Set_ReqUseRow("210", "환기에너지 소요량", "[kWh]", "QV,aux", "=", Array) '//36
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.E소요량(i).환기면적)
|
||||
Next
|
||||
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QV.aux / AV", "=", Array, "N1")
|
||||
|
||||
'//1차에너지 소요량(10-02 추가)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).소요량)
|
||||
Next
|
||||
Set_ReqUseRow("300", "1차에너지 소요량", "[kWh]", "", "", Array) '//38
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).단위면적)
|
||||
Next
|
||||
Set_ReqUseRow("300", "단위면적당 1차에너지 소요량", "[kWh/m²]", "", "", Array, "N1") '//39
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방 1차에너지 소요량", "", "", "", Array) '//40
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방등유)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방지역)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.614", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//45
|
||||
|
||||
'Array.Clear() '//--펠렛 100727
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.일차E소요량(i).난방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).난방면적)
|
||||
Next
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//46
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "냉방 1차에너지 소요량", "", "", "", Array) '//47
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방등유)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//48
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//50
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방지역난방열)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.614", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방지역냉방열)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역냉방열 소요량", "[kWh]", Pub.Result.E변환계수.지역냉방.ToString("N3"), "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//52
|
||||
|
||||
'Array.Clear() '//--펠렛 100727
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.일차E소요량(i).냉방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).냉방면적)
|
||||
Next
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//53
|
||||
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "급탕 1차에너지 소요량", "", "", "", Array) '//54
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕등유)
|
||||
Next
|
||||
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//55
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕LNG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕LPG)
|
||||
Next
|
||||
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//57
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕지역)
|
||||
Next
|
||||
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.614", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//59
|
||||
|
||||
'Array.Clear() '//--펠렛 100727
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.일차E소요량(i).급탕펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).급탕면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//60
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).조명소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "조명 1차에너지 소요량", "", "", "", Array) '//61
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).조명전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//62
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).조명면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//63
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).환기소요량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "환기 1차에너지 소요량", "", "", "", Array) '//64
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).환기전력)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//65
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.일차E소요량(i).환기면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//66
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).태양광전력생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전기에너지 생산량(태양광)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array) '//67
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).열병합전력생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "전기에너지 생산량(열병합)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).태양열생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "열에너지 생산량(태양열)", "[kWh]", "", "=", Array) '//69
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).지열생산량)
|
||||
Next
|
||||
Set_ReqUseRow("310", "열에너지 생산량(지열)", "[kWh]", "", "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).면적당생산량태양열)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 생산량(태양열)", "[kWh]", "", "=", Array, "N1") '//71
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.생산E(i).면적당생산량지열)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("310", "단위면적당 생산량(지열)", "[kWh]", "", "=", Array, "N1") '//72
|
||||
|
||||
|
||||
'//CO2배출량
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).발생량)
|
||||
Next
|
||||
Set_ReqUseRow("400", "연간 CO2 배출량", "[kg CO2]", "", "", Array) '//73
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).단위면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("400", "단위면적당 CO2 배출량", "[kg CO2/m²]", "", "", Array, "N1") '//74
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방 CO2 발생량", "", "", "", Array) '//75
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방등유)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방지역)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
|
||||
|
||||
'Array.Clear() '//펠렛
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.Co2발생량(i).난방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("410", "펠렛 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).난방면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "냉방 CO2 발생량", "", "", "", Array) '//82
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방등유)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방LNG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방LPG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방지역난방열)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방지역냉방열)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역냉방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
'Array.Clear() '//낸ㅇ방펠렛
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.Co2발생량(i).냉방펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).냉방면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "급탕 CO2 발생량", "", "", "", Array) '//89
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕등유)
|
||||
Next
|
||||
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕LNG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕LPG)
|
||||
Next
|
||||
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕지역)
|
||||
Next
|
||||
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
'Array.Clear() '//급탕펠렛
|
||||
'For i As Integer = 0 To 12
|
||||
' Array.Add(Result.Co2발생량(i).급탕펠렛)
|
||||
'Next
|
||||
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).급탕면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).조명발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "조명 CO2 발생량", "", "", "", Array) '//96
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).조명전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).조명면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).환기발생량)
|
||||
Next
|
||||
Set_ReqUseRow("410", "환기 CO2 발생량", "", "", "", Array) '//99
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).환기전력)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).환기면적)
|
||||
Next
|
||||
|
||||
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
|
||||
|
||||
'//CO2저감량
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).저감량태양광)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 저감량(태양광)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//102
|
||||
Array.Clear()
|
||||
For i As Integer = 0 To 12
|
||||
Array.Add(Result.Co2발생량(i).저감량열병합)
|
||||
Next
|
||||
Set_ReqUseRow("410", "전력 CO2 저감량(열병합)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//103
|
||||
DSETR.AcceptChanges()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As ArrayList, Optional ByVal F As String = "N0")
|
||||
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
|
||||
|
||||
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
|
||||
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
|
||||
DR.Desc = desc '//설명
|
||||
DR.UNIT = unit '//단위
|
||||
DR.SIGN = sign '//기호
|
||||
DR.EQ = eq '//등호 =
|
||||
DR.M00 = TOSG(Value.Item(0))
|
||||
DR.M01 = TOSG(Value.Item(1))
|
||||
DR.M02 = TOSG(Value.Item(2))
|
||||
DR.M03 = TOSG(Value.Item(3))
|
||||
DR.M04 = TOSG(Value.Item(4))
|
||||
DR.M05 = TOSG(Value.Item(5))
|
||||
DR.M06 = TOSG(Value.Item(6))
|
||||
DR.M07 = TOSG(Value.Item(7))
|
||||
DR.M08 = TOSG(Value.Item(8))
|
||||
DR.M09 = TOSG(Value.Item(9))
|
||||
DR.M10 = TOSG(Value.Item(10))
|
||||
DR.M11 = TOSG(Value.Item(11))
|
||||
DR.M12 = TOSG(Value.Item(12))
|
||||
DR.F = F
|
||||
DSETR.TReqUse.AddTReqUseRow(DR)
|
||||
End Sub
|
||||
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As Decimal, Optional ByVal F As String = "N0")
|
||||
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
|
||||
|
||||
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
|
||||
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
|
||||
DR.Desc = desc '//설명
|
||||
DR.UNIT = unit '//단위
|
||||
DR.SIGN = sign '//기호
|
||||
DR.EQ = eq '//등호 =
|
||||
DR.M00 = Value
|
||||
DR.F = F
|
||||
'DR.M01 = CSng(Value.Item(1))
|
||||
'DR.M02 = CSng(Value.Item(2))
|
||||
'DR.M03 = CSng(Value.Item(3))
|
||||
'DR.M04 = CSng(Value.Item(4))
|
||||
'DR.M05 = CSng(Value.Item(5))
|
||||
'DR.M06 = CSng(Value.Item(6))
|
||||
'DR.M07 = CSng(Value.Item(7))
|
||||
'DR.M08 = CSng(Value.Item(8))
|
||||
'DR.M09 = CSng(Value.Item(9))
|
||||
'DR.M10 = CSng(Value.Item(10))
|
||||
'DR.M11 = CSng(Value.Item(11))
|
||||
'DR.M12 = CSng(Value.Item(12))
|
||||
DSETR.TReqUse.AddTReqUseRow(DR)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
822
ArinWarev1/DataSet/Calculator/Zone/CZone.vb
Normal file
822
ArinWarev1/DataSet/Calculator/Zone/CZone.vb
Normal file
@@ -0,0 +1,822 @@
|
||||
Public Class CZone
|
||||
|
||||
Public Event PBarSet(ByVal min As Integer, ByVal max As Integer) '//프로그레시브바 초기화
|
||||
Public Event Message(ByVal Msg As String) '//메세지표시
|
||||
Public Event PBarVal(ByVal Value As Integer) '//프로그레시브 값설정
|
||||
|
||||
''' <summary>
|
||||
''' (main)에너지요구량 계산
|
||||
''' </summary>
|
||||
''' <param name="Calc_Use">에너지소요량을 추가로 계산하려면 True 를 입력</param>
|
||||
''' <param name="Log">로그가 입력될 스트링빌더</param>
|
||||
''' <remarks></remarks>
|
||||
Public Overridable Function Calc_LoadOfZones() As Boolean
|
||||
Dim Title As String = "에너지요구량을 계산합니다"
|
||||
RaiseEvent Message(Title & vbCrLf & "잠시만 기다려주세요")
|
||||
RaiseEvent PBarSet(0, 100)
|
||||
|
||||
RaiseEvent Message(Title & vbCrLf & "데이터저장소를 확보하는중.")
|
||||
'i_count_OpWe As Integer, d_we_month As Integer, Q_h_b_we as decimal, ==================================2010.2.21 삭제
|
||||
|
||||
Dim t_24 As Integer, f_wind As Integer, t_NA As Integer, t_h_op_d As Integer, i_count_Is As Integer
|
||||
Dim Delta_theta_er As Decimal, Delta_theta_i_NA As Decimal, Delta_theta_i_WE As Decimal, theta_i As Decimal, theta_i_h As Decimal, theta_i_c As Decimal, F_f As Decimal, F__F As Decimal, F_W As Decimal, F_S As Decimal, F_V As Decimal, h_r As Decimal, c_p_arhoa As Decimal, e_wind As Decimal, n_50 As Decimal, n_ue As Decimal, n_mech As Decimal, n_inf As Decimal, A_B As Decimal, A_u As Decimal, h_u As Decimal, V As Decimal, V_ue As Decimal
|
||||
Dim H_V_inf As Decimal, H_V_mech As Decimal, H_V_ue As Decimal, H_V_z As Decimal, theta_z As Decimal, theta_u As Decimal, H_T_D As Decimal, H_T_iu As Decimal, H_T_iz As Decimal, H_T_s As Decimal, Delta_U_WB As Decimal, H_V_mech_theta As Decimal, theta_i_h_soll As Decimal, theta_i_c_soll As Decimal, theta_V_mech As Decimal ', theta_e_min as decimal, theta_e_max as decimal
|
||||
Dim C_wirk As Decimal, tau As Decimal, a As Decimal, a_tb As Decimal, A_beheizt As Decimal, f_we As Decimal, f_NA As Decimal, f_tb As Decimal, Q_h_max As Decimal, theta_i_NA As Decimal, eta_V_mech As Decimal, theta_V_mech_RLT As Decimal
|
||||
Dim Q_V_inf_sink As Decimal, Q_V_mech_sink As Decimal, Q_V_z_sink As Decimal, Q_V_sink As Decimal, Q_T_e_sink As Decimal, Q_T_u_sink As Decimal, Q_T_z_sink As Decimal, Q_T_s_sink As Decimal, Q_T_sink As Decimal, Q_S_sink As Decimal, R_se As Decimal, Q_source As Decimal, Q_sink As Decimal, Q_I_source As Decimal
|
||||
Dim Q_V_inf_source As Decimal, Q_V_mech_source As Decimal, Q_V_z_source As Decimal, Q_V_source As Decimal, Q_T_e_source As Decimal, Q_T_u_source As Decimal, Q_T_z_source As Decimal, Q_T_s_source As Decimal, Q_T_source As Decimal, Q_S_source As Decimal
|
||||
Dim Q_I_source_p As Decimal, Q_I_source_fac As Decimal, Q_I_L As Decimal, Q_l_b As Decimal, Q_w_b As Decimal, gamma As Decimal, eta As Decimal, Q_h_b As Decimal, Q_h_b_op As Decimal, g_TI As Decimal
|
||||
Dim V_mech As Decimal
|
||||
'Dim d_op_month As Integer, theta_e_month as decimal
|
||||
'Dim A_H as decimal, A_C as decimal, A_L as decimal, A_W as decimal, A_V as decimal
|
||||
Dim Q_vh_b_op As Decimal
|
||||
Dim g_blinds As Decimal, tau_e_B As Decimal, rho_e_B As Decimal, U_blinds As Decimal, tau_e_B_corr As Decimal, rho_e_B_corr As Decimal 'EN 13363-1 적용
|
||||
Dim g As Decimal, alpa As Decimal
|
||||
'Dim i_sub_wall As Integer
|
||||
Dim V_mech_outdoor As Decimal
|
||||
|
||||
'//2010.02.04추가
|
||||
Dim i_count_AHU As Integer
|
||||
Dim Phi As Decimal
|
||||
'//2010.02.21추가
|
||||
Dim d_op_mth As Integer
|
||||
Dim d_full_mth As Integer
|
||||
'//2011.04.04 추가
|
||||
Dim Q_V_win_sink As Decimal, Q_V_win_source As Decimal, H_V_win As Decimal, n_win As Decimal
|
||||
Dim zone_count As Decimal '//2012.07.08 추가
|
||||
|
||||
|
||||
Dim priod_value As Single = 0
|
||||
Dim age As Single '//준공연도에 의한 경년변화값
|
||||
For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
|
||||
priod_value = CSng(DRpriod.priod)
|
||||
Next
|
||||
If priod_value = 0 Then
|
||||
age = 1
|
||||
Else
|
||||
age = 1 / (1 - priod_value * 0.0012)
|
||||
End If
|
||||
|
||||
|
||||
|
||||
RaiseEvent Message(Title & vbCrLf & "저장소 기본값을 설정하는중.")
|
||||
t_24 = 24
|
||||
F_f = 0.5 '구조체와 하늘과의 형태계수
|
||||
F__F = 0.7 '창 프레임 감소계수 __필요
|
||||
F_W = 0.9 '수직입사가 아닌경우에 대한 감소계수
|
||||
F_S = 1 '주변환경에 의한 그늘짐
|
||||
F_V = 1 '0.9 '우선 먼지팩터는 없는 것으로 가정
|
||||
h_r = 5 * 0.9 '= 5*e(모를경우 e=0.9)
|
||||
Delta_theta_er = 10
|
||||
Delta_theta_i_NA = 4 '(용도별조건)
|
||||
'theta_i = 21
|
||||
'theta_i_h = 21
|
||||
theta_i_h_soll = 20
|
||||
theta_i_c = 24
|
||||
theta_i_c_soll = 26
|
||||
theta_V_mech_RLT = 27
|
||||
'theta_e_min = -11.3
|
||||
'theta_e_max = 31.5
|
||||
c_p_arhoa = 0.34 '//먼지모름
|
||||
'n_50 = 1.5
|
||||
n_ue = 0.6
|
||||
e_wind = 0.07
|
||||
f_wind = 15
|
||||
R_se = 0.043 '외기에 직접 열전달저항 확인요망
|
||||
g_TI = 0.35 '(2-113)
|
||||
alpa = 0.4 '우선 0.4으로 설정 표면흡수율 도표 2-6 참조
|
||||
n_mech = 1 '임시
|
||||
A_u = 1
|
||||
h_u = 1 '임시
|
||||
|
||||
RaiseEvent Message(Title & vbCrLf & "결과저장소 초기화")
|
||||
|
||||
Work_msg("요구량계산중...")
|
||||
Frm_Work.ProgressBar1.Maximum = 26
|
||||
Frm_Work.ProgressBar1.Minimum = 0
|
||||
Frm_Work.ProgressBar1.Value = 0
|
||||
Frm_Work.TopMost = True
|
||||
Frm_Work.Show()
|
||||
|
||||
'/////////////////////////////////////////////////////
|
||||
For i_count_HeatCool As Integer = 1 To 2 '(1) 루프회전 난방/냉방 구분해서 회전한다. 둘의 산식이 거의 비슷하므로 루프를 이용해서 계산
|
||||
|
||||
For i_count_month As Short = 0 To 12 '(2) --월전체의 루프?
|
||||
|
||||
Work_msg("요구량계산중..." & CStr(IIf(i_count_HeatCool = 1, "난방", "냉방")) & "(" & i_count_month & "/12)") : Work_plus()
|
||||
Dim Mon As String = "M" & Format(i_count_month, "00") '//저장소의 필드명이 M00 식으로되어있다.
|
||||
|
||||
If i_count_month = 0 Then '//난방이라면? '//최소외기온도 난방기(theta_e_min)
|
||||
Calc.Pub.theta_e(i_count_month) = TOSG(IIf(i_count_HeatCool = 1, Calc.Pub.theta_e_min, Calc.Pub.theta_e_max))
|
||||
End If
|
||||
|
||||
'//존 루프
|
||||
For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code") ' DSET.tbl_zone.Rows.Count '(3)
|
||||
'//방식이나 공조는 ZZ는 사용안함이다 V=환기 외기부하처리여부의경우 0001 은 예이다.
|
||||
zone_count = TOSG(DR존.입력존의수)
|
||||
If DR존.냉난방방식 <> "기능없음" Or (DR존.냉난방공조 <> "기능없음" And (DR존.냉난방공조 <> "환기" Or DR존.외기부하처리여부 = "예")) Then
|
||||
Q_vh_b_op = 0
|
||||
|
||||
'//i_count_OpWe 1은 평일 2는 주말이다ㅡㅡ/
|
||||
'======================================2010.2.21 삭제
|
||||
'For i_count_OpWe = 1 To 2
|
||||
'======================================2010.2.21 삭제
|
||||
Q_V_inf_sink = 0
|
||||
Q_V_inf_source = 0
|
||||
Q_V_mech_sink = 0
|
||||
Q_V_mech_source = 0
|
||||
Q_V_z_sink = 0
|
||||
Q_V_z_source = 0
|
||||
Q_V_win_sink = 0 '//2011.04.04 추가
|
||||
Q_V_win_source = 0 '//2011.04.04 추가
|
||||
|
||||
Q_T_e_sink = 0
|
||||
Q_T_e_source = 0
|
||||
Q_T_u_sink = 0
|
||||
Q_T_u_source = 0
|
||||
Q_T_z_sink = 0
|
||||
Q_T_z_source = 0
|
||||
Q_T_s_sink = 0
|
||||
Q_T_s_source = 0
|
||||
|
||||
A_B = TOSG(DR존.면적) * zone_count ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
|
||||
V = TOSG(DR존.순실체적) * zone_count ' Worksheets("입력존").Range("체적1").Offset(0, i_count_zone - 1)
|
||||
V_ue = A_u * h_u
|
||||
'Log.AppendLine(" >> V_ue = A_u * h_u = // au와 hu 는 선언부에서 1값으로 고정되어있음 v_ue는 항상 1")
|
||||
|
||||
'//존의 프로필설정에대한 실제 프로필의 데이터를 가져옴
|
||||
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'"), DS.tbl_profileRow())
|
||||
If DR프로필.GetUpperBound(0) = -1 Then
|
||||
MsgBox("존=" & DR존.code & " 의 프로필=" & DR존.프로필 & " 의 데이터가 존재하지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
Else
|
||||
'Log.AppendLine(" >> 존의 프로필코드(" & DR존.프로필 & ") 에 해당하는 프로필정보를 가져옵니다")
|
||||
t_h_op_d = TOIT(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
|
||||
'===================================================================================2010.2.21 추가
|
||||
If i_count_month = 0 Then
|
||||
d_op_mth = 0
|
||||
Else
|
||||
d_op_mth = CInt(TOSG(DR프로필(0)("day" & Format(i_count_month, "00"))))
|
||||
End If
|
||||
'===================================================================================2010.2.21 추가
|
||||
theta_i_h_soll = TOSG(DR프로필(0).난방설정온도) ' Worksheets("설정조건").Range("난방설정온도1").Offset(0, i_count_profile)
|
||||
theta_i_c_soll = TOSG(DR프로필(0).냉방설정온도) ' Worksheets("설정조건").Range("냉방설정온도1").Offset(0, i_count_profile)
|
||||
Delta_theta_i_NA = TOSG(DR프로필(0).야간최저허용온도) ' Worksheets("설정조건").Range("야간최저허용온도1").Offset(0, i_count_profile)
|
||||
Delta_theta_i_WE = TOSG(DR프로필(0).주말최저허용온도) ' Worksheets("설정조건").Range("주말최저허용온도1").Offset(0, i_count_profile)
|
||||
' If i_count_OpWe = 1 Then=============================================================2010.2.21 삭제
|
||||
'Log.AppendLine(" >> i_count_OpWe = 1 >> Q_I_source_p/Q_I_source_fac/V_mech 계산됨")
|
||||
Q_I_source_p = TOSG(DR프로필(0).사람) * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
|
||||
Q_I_source_fac = TOSG(DR프로필(0).작업보조기기) * A_B ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
|
||||
V_mech = TOSG(DR프로필(0).최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
|
||||
' Else '=============================================================2010.2.21 삭제
|
||||
' Log.AppendLine(" >> i_count_OpWe <> 1 >> Q_I_source_p/Q_I_source_fac 는 0입니다")
|
||||
' Q_I_source_p = 0 '주말 사람없음
|
||||
' Q_I_source_fac = 0 '주말 기기발열 없음
|
||||
'End If
|
||||
'Q_I_L = 0 'mu_L*Q_I_L_elektr (2-123)추후 추가
|
||||
End If
|
||||
|
||||
V_mech_outdoor = 1 '외기처리 관련 (ZZ=사용안함 Y=예)
|
||||
If DR존.냉난방방식 <> "기능없음" And DR존.냉난방공조 <> "기능없음" And DR존.외기부하처리여부 = "예" Then
|
||||
If i_count_HeatCool = 1 Then '//난방이라면
|
||||
If DR존.냉난방공조 <> "난방" AndAlso DR존.냉난방공조 <> "냉난방" Then '난방/냉난방 이 아니면!
|
||||
If theta_i_h_soll > Calc.Pub.theta_e(i_count_month) Then '//난방설정온도 > 외기온도(난방기)
|
||||
Q_vh_b_op = V_mech * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)) * t_h_op_d * c_p_arhoa * d_op_mth '===============d_op(i_count_month) 2010.2.21 수정
|
||||
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
|
||||
'Log.AppendLine(" >> 외기처리됨")
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
If DR존.냉난방공조 <> "냉방" AndAlso DR존.냉난방공조 <> "냉난방" Then '냉방/냉난방이 아닐경우
|
||||
If theta_i_c_soll < Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_vh_b_op = V_mech * (Calc.Pub.theta_e(i_count_month) - theta_i_c_soll) * t_h_op_d * c_p_arhoa * d_op_mth '===============d_op(i_count_month) 2010.2.21 수정
|
||||
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
|
||||
'Log.AppendLine(" >> 외기처리됨")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
n_50 = TOSG(DR존.침기율) '//tosg 는 빈값일경우 0을 반환
|
||||
n_inf = n_50 * e_wind '(2-59) 환기기기 없는 경우
|
||||
'n_inf = n_50 * e_wind * (1 + f_V_mech * t_V_mech / 24) '(2-60) 급기 및 배기에 대한 환기회수 필요
|
||||
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
|
||||
'If n_nutz < 1.2 Then
|
||||
' Delta_n_win = n_nutz - (n_nutz - 0.2) * n_inf - 0.1
|
||||
'Else
|
||||
' Delta_n_win = n_nutz - n_inf - 0.1
|
||||
'End If
|
||||
'If Delta_n_win < 0 Then
|
||||
' Delta_n_win = 0
|
||||
'End If
|
||||
'n_win = 0.1 + Delta_n_win * t_h_op_d / 24
|
||||
n_win = 0.1 ' 최소외기 도입량은 환기기기 유무와 상관없이 적용되는 것으로 평가하기 때문에 자연환기 기본값만 적용
|
||||
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
|
||||
|
||||
|
||||
H_T_D = 0
|
||||
H_T_iu = 0
|
||||
H_T_iz = 0
|
||||
|
||||
|
||||
Dim Drow프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
If DR존.조명부하산출방법 = "계산치" Then
|
||||
Q_I_L = TOSG(DR존.조명에너지부하율계산치) * TOSG(Drow프로필.일일사용시간) * A_B
|
||||
Else
|
||||
Q_I_L = TOSG(DR존.조명에너지부하율입력치) * TOSG(Drow프로필.일일사용시간) * A_B
|
||||
End If
|
||||
'Q_I_L = TOSG(IIf(DR존.조명부하산출방법 = "계산치", TOSG(DR존.조명에너지부하율계산치), TOSG(DR존.조명에너지부하율입력치))) * TOSG(Drow프로필.일일사용시간) * A_B
|
||||
Q_w_b = TOSG(Drow프로필.일일급탕요구량) * A_B * d_op_mth
|
||||
'===================================2010.2.21 삭제
|
||||
'If DR존.조명부하산출방법 = "CALC" Then '//OpWe의 2번은 주말인거 같다.
|
||||
' '//부하율계산치?입력치구분
|
||||
' Q_w_b = TOSG(DR존.급탕요구량) * A_B * Calc.Pub.d_op_mth(i_count_month)
|
||||
'Else
|
||||
' Q_I_L = 0 '주말 소등으로 설정
|
||||
' Q_w_b = 0 '주말은 급탕사용안함
|
||||
'End If
|
||||
'===================================2010.2.21 삭제
|
||||
|
||||
'Log.AppendLine(" >> 현재존을 사용하는 각 입력면(" & DSET.tbl_myoun.Select("존분류='" & DR존.code & "'").GetUpperBound(0) & ")으로부터 데이터를 누적")
|
||||
For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "'")
|
||||
If Dr입력면.code <> "0" Then
|
||||
If DR존.열교가산치 = "내단열" Then
|
||||
Delta_U_WB = 0.15 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
|
||||
Else
|
||||
Delta_U_WB = 0.1 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
|
||||
End If
|
||||
Select Case Dr입력면.건축부위방식.Trim ' Case Worksheets("입력면").Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
Case "외벽" '"외벽"
|
||||
'Dr입력면.열관류율 >> Calc.Get_열관류율(Dr입력면)
|
||||
H_T_D = H_T_D + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) * zone_count + Delta_U_WB * TOSG(Dr입력면.건축부위면적) * zone_count ' Worksheets("입력면").Range("부위면적" & i_sub_wall & "").Offset(0, i_count_wall) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
|
||||
Case "외부창", "내부창" '=================2010.03.20 수정
|
||||
If Dr입력면.블라인드유무 = "유" Then ' '0001(=유) Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
|
||||
If Calc.Get_열관류율(Dr입력면) = 0 Then
|
||||
MsgBox("블라인드 사용이지만 열관류율 수치가 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
|
||||
Else
|
||||
Select Case Dr입력면.블라인드위치.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
|
||||
Case "내부" '"내부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 30))
|
||||
Case "중간" '중간"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 3))
|
||||
Case "외부" ' '외부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 5 + 1 / 10))
|
||||
End Select
|
||||
End If
|
||||
|
||||
Else
|
||||
U_blinds = Calc.Get_열관류율(Dr입력면) * age 'Worksheets("입력면").Range("열관류율" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
End If
|
||||
|
||||
'=========================================================================================================2010.03.20 수정
|
||||
If Dr입력면.건축부위방식.Trim = "외부창" Then
|
||||
H_T_D = H_T_D + U_blinds * TOSG(Dr입력면.건축부위면적) * zone_count + Delta_U_WB * TOSG(Dr입력면.건축부위면적) * zone_count '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
|
||||
Else
|
||||
H_T_iu = H_T_iu + U_blinds * TOSG(Dr입력면.건축부위면적) * zone_count
|
||||
End If
|
||||
'=========================================================================================================2010.03.20 수정
|
||||
Case "내벽" ' "내벽"
|
||||
H_T_iu = H_T_iu + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) * zone_count '(2-48)
|
||||
Case "간벽" '"간벽"
|
||||
H_T_iz = H_T_iz + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) * zone_count '(2-52)
|
||||
Case Else
|
||||
MsgBox("입력면 건축부위방식이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
End Select
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
If H_T_D = 0 Then
|
||||
H_V_inf = 0
|
||||
Else
|
||||
H_V_inf = n_inf * V * c_p_arhoa '(2-58) c_p_arhoa는 0.34 V는 존의 체적
|
||||
End If
|
||||
H_V_win = n_win * V * c_p_arhoa '//2011.04.04 추가
|
||||
H_V_mech = V_mech * c_p_arhoa 'n_mech * V * c_p_arhoa '(2-83)
|
||||
H_V_ue = n_ue * V_ue * c_p_arhoa '(2-94)
|
||||
'H_V_z = n_z_d * c_p_arhoa '(2-99)
|
||||
|
||||
If DR존.열저장능력 = "" Then
|
||||
MsgBox(DR존.설명 & "의 열저장능력이 입력되어 있지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
C_wirk = 0
|
||||
Else
|
||||
C_wirk = TOSG(DR존.열저장능력) * A_B ' .Worksheets("입력존").Range("열저장능력1").Offset(0, i_count_zone - 1) * A_B
|
||||
End If
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
H_V_mech_theta = 0 'H_V_mech * (theta_i_h_soll - theta_V_mech) / 6 '(2-130) 우선 고려안함
|
||||
Else
|
||||
H_V_mech_theta = 0 'H_V_mech * (theta_i_c_soll - theta_V_mech) / 6 '(2-130)
|
||||
End If
|
||||
tau = C_wirk / ((H_T_D + H_T_iu + H_T_iz) + (H_V_inf + H_V_mech + H_V_ue + H_V_win) + H_V_mech_theta) '(2-22, 129) 추후 H_V_z 추가 '//2011.04.04 H_V_win 추가
|
||||
If tau < 48 Then tau = 48
|
||||
|
||||
a = 1 + tau / 16 '(2-25)
|
||||
|
||||
a_tb = 1 ' =A_beheizt / A_B 'A_beheizt는 난방면적, A_B는 전용면적
|
||||
|
||||
t_NA = 24 - t_h_op_d
|
||||
f_tb = TOSG(0.8 * (1 - Math.Exp(-Q_h_max / (A_B * 35))) * a_tb ^ 2) '(2-34)
|
||||
|
||||
'================================================2010.2.21 삭제
|
||||
'If i_count_OpWe = 1 Then
|
||||
'================================================2010.2.21 삭제
|
||||
Select Case DR존.야간운전방식.Trim '공통1002 Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1)
|
||||
Case "정상가동" '정상가동"
|
||||
f_NA = 0
|
||||
Case "감소가동" '감소가동"
|
||||
f_NA = TOSG(0.13 * t_NA * Math.Exp(-tau / 250) / 24) '(2-28) 감소가동
|
||||
Case "가동정지" '가동정지"
|
||||
f_NA = TOSG(0.26 * t_NA * Math.Exp(-tau / 250) / 24) '(2-29) 가동정지
|
||||
End Select
|
||||
theta_i_h = theta_i_h_soll - f_NA * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
|
||||
If theta_i_h < theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 Then theta_i_h = theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 '(2-27) 야간감소
|
||||
'================================================2010.2.21 삭제
|
||||
'Else
|
||||
'================================================2010.2.21 삭제
|
||||
Select Case DR존.주말운전방식.Trim ' Worksheets("입력존").Range("주말가동1").Offset(0, i_count_zone - 1)
|
||||
Case "정상가동" '정상가동"
|
||||
f_we = 0
|
||||
Case "감소가동" '감소가동"
|
||||
f_we = TOSG(0.2 * (1 - 0.4 * tau / 250)) '(2-31) 난방감소
|
||||
Case "가동정지" '가동정지"
|
||||
f_we = TOSG(0.3 * (1 - 0.2 * tau / 250)) '(2-32) 난방정지식
|
||||
End Select
|
||||
theta_i_h = theta_i_h_soll - f_we * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
|
||||
If theta_i_h < theta_i_h_soll - Delta_theta_i_WE Then theta_i_h = theta_i_h_soll - Delta_theta_i_WE '(2-30) 주말감소식 변형
|
||||
'================================================2010.2.21 삭제
|
||||
'End If
|
||||
'================================================2010.2.21 삭제
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
theta_i = theta_i_h
|
||||
theta_z = theta_i_h
|
||||
theta_u = TOSG(theta_i_h_soll - 0.7 * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)))
|
||||
Else
|
||||
theta_i = theta_i_c_soll '24'에너지 사용량 계산할때 24 사용
|
||||
theta_z = theta_i_c_soll
|
||||
theta_u = TOSG(theta_i_c_soll - 0.7 * (theta_i_c_soll - Calc.Pub.theta_e(i_count_month)))
|
||||
End If
|
||||
|
||||
'theta_i_h = theta_i_h_soll - f_tb * (theta_i_h_soll - theta_e(i_count_month)) '(2-33) 공간적제한
|
||||
'theta_i_h = theta_i_NA - f_tb * (theta_i_NA - theta_e(i_count_month)) '(2-35) 공간적 시간적 제한
|
||||
|
||||
'theta_V_mech = theta_e(i_count_month) '(2-90) 공조처리 없는 경우
|
||||
'theta_V_mech = theta_e(i_count_month) + eta_V_mech * (theta_i - theta_e(i_count_month)) '(2-91) 비제어적 열교환 eta_V_mech은 사용자입력
|
||||
theta_V_mech_RLT = TOSG(IIf(i_count_HeatCool = 1, 27, 16))
|
||||
|
||||
theta_V_mech = Calc.Pub.theta_e(i_count_month) 'theta_V_mech_RLT '(2-92) 공조처리된 급기온도(도표 3-3, 3-4, 7-5) 난방 27, 냉방 16으로 설정
|
||||
|
||||
|
||||
'=======================================================================2010.02.04 추가부분 시작
|
||||
If DR존.냉난방공조처리시스템 <> "0" And DR존.냉난방공조 = "환기" Then '//냉난방공조처리시스템이 선택되어있고 공조가 환기라면
|
||||
'//공조처리스템과 일치하는 공조기기(tbl_kongjo) 를 찾아서 계산한다.
|
||||
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
|
||||
Select Case DR(0).열교환기유형.Trim
|
||||
Case "현열교환", "전열교환" '//현열교환,전열교환
|
||||
Phi = TOSG(DR(0).열회수율) ' Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
|
||||
Case Else
|
||||
Phi = 0
|
||||
End Select
|
||||
theta_V_mech = Calc.Pub.theta_e(i_count_month) + Phi * (theta_i - Calc.Pub.theta_e(i_count_month))
|
||||
Else
|
||||
MsgBox(DR존.설명 & "존의 냉난방공조처리스템(" & DR존.냉난방공조처리시스템 & ") 의값이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
|
||||
End If
|
||||
End If
|
||||
'=======================================================================2010.02.04 추가부분 끝
|
||||
|
||||
If theta_i > Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_V_inf_sink = H_V_inf * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-56)
|
||||
Q_V_win_sink = H_V_win * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '//2011.04.04 추가
|
||||
Else
|
||||
Q_V_inf_source = H_V_inf * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
|
||||
Q_V_win_source = H_V_win * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '//2011.04.04 추가
|
||||
End If
|
||||
'================================================2010.2.21 삭제
|
||||
'If i_count_OpWe = 1 Then
|
||||
'================================================2010.2.21 삭제
|
||||
If theta_i > theta_V_mech Then
|
||||
Q_V_mech_sink = H_V_mech * V_mech_outdoor * (theta_i - theta_V_mech) * t_h_op_d '(2-81)
|
||||
Else
|
||||
Q_V_mech_source = H_V_mech * V_mech_outdoor * (theta_V_mech - theta_i) * t_h_op_d '(2-
|
||||
End If
|
||||
'================================================2010.2.21 삭제
|
||||
'Else
|
||||
'If theta_i > theta_V_mech Then
|
||||
' Q_V_mech_sink = 0
|
||||
'Else
|
||||
' Q_V_mech_source = 0
|
||||
'End If
|
||||
'End If
|
||||
'================================================2010.2.21 삭제
|
||||
|
||||
If theta_i > theta_z Then
|
||||
Q_V_z_sink = H_V_z * (theta_i - theta_z) * t_24 '(2-97)
|
||||
Else
|
||||
Q_V_z_source = H_V_z * (theta_z - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
Q_V_sink = Q_V_inf_sink + Q_V_mech_sink + Q_V_z_sink + Q_V_win_sink '(2-13) '//2011.04.04 추가
|
||||
Q_V_source = Q_V_inf_source + Q_V_mech_source + Q_V_z_source + Q_V_win_source '(2- '//2011.04.04 추가
|
||||
|
||||
If theta_i > Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_T_e_sink = H_T_D * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-42)
|
||||
Else
|
||||
Q_T_e_source = H_T_D * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
If theta_i > theta_u Then
|
||||
Q_T_u_sink = H_T_iu * (theta_i - theta_u) * t_24 '(2-46)
|
||||
Else
|
||||
Q_T_u_source = H_T_iu * (theta_u - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
If theta_i > theta_z Then
|
||||
Q_T_z_sink = H_T_iz * (theta_i - theta_z) * t_24 '(2-50)
|
||||
Else
|
||||
Q_T_z_source = H_T_iz * (theta_z - theta_i) * t_24 '(2-
|
||||
End If
|
||||
|
||||
If theta_i > Calc.Pub.theta_e(i_count_month) Then
|
||||
Q_T_s_sink = H_T_s * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-53) 추후수정
|
||||
Else
|
||||
Q_T_s_source = H_T_s * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-53) 추후수정
|
||||
End If
|
||||
|
||||
Q_T_sink = Q_T_e_sink + Q_T_u_sink + Q_T_z_sink + Q_T_s_sink '(2-12)
|
||||
Q_T_source = Q_T_e_source + Q_T_u_source + Q_T_z_source + Q_T_s_source '(2-12)
|
||||
|
||||
Q_S_sink = 0
|
||||
Q_S_source = 0
|
||||
|
||||
For Each DRF입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "' and code <> '0'") '//해당존을 사용하는 모든 입력면을 가져옴
|
||||
Select Case DRF입력면.방위.Trim ' Worksheets("입력면").Range("방위" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
Case "수평" '"수평"
|
||||
i_count_Is = 0
|
||||
Case "남" '"남"
|
||||
i_count_Is = 1
|
||||
Case "남동" '"남동"
|
||||
i_count_Is = 2
|
||||
Case "남서" '"남서"
|
||||
i_count_Is = 3
|
||||
Case "동" '"동"
|
||||
i_count_Is = 4
|
||||
Case "서" '"서"
|
||||
i_count_Is = 5
|
||||
Case "북동" '"북동"
|
||||
i_count_Is = 6
|
||||
Case "북서" '"북서"
|
||||
i_count_Is = 7
|
||||
Case "북" '"북"
|
||||
i_count_Is = 8
|
||||
'==========================================================2010.03.20 추가
|
||||
Case Else
|
||||
i_count_Is = -1
|
||||
'==========================================================2010.03.20 추가
|
||||
End Select
|
||||
|
||||
If i_count_Is <> -1 Then '=====================================2010.03.20 추가
|
||||
|
||||
|
||||
Select Case DRF입력면.건축부위방식.Trim ' Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
Case "외벽" '외벽
|
||||
If alpa * Calc.Pub.I_s(i_count_Is, i_count_month) < F_f * h_r * Delta_theta_er Then
|
||||
Q_S_sink = Q_S_sink + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * zone_count * (F_f * h_r * Delta_theta_er - alpa * Calc.Pub.I_s(i_count_Is, i_count_month)) * t_24 '(2-111)
|
||||
Else
|
||||
'Log.AppendLine("외벽 if else = " & Q_S_source)
|
||||
Q_S_source = Q_S_source + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * zone_count * (alpa * Calc.Pub.I_s(i_count_Is, i_count_month) - F_f * h_r * Delta_theta_er) * t_24 '(2-
|
||||
'Log.AppendLine(">>" & Q_S_source)
|
||||
End If
|
||||
|
||||
Case "외부창", "내부창" '=====================================2010.03.20 수정
|
||||
If TOSG(DRF입력면.수평차양각) < 67.5 Then 'Range("에너지투과율" & i_sub_wall & "").Offset(1, i_count_wall) < 67.5 Then
|
||||
|
||||
If DRF입력면.블라인드유무 = "유" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
|
||||
Select Case DRF입력면.블라인드빛종류.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(6, i_count_wall)
|
||||
Case "불투과(t=0.0)" '불투과(t=0.0)"
|
||||
tau_e_B = 0
|
||||
Select Case DRF입력면.블라인드색상.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
|
||||
Case "흰색" '흰색"
|
||||
rho_e_B = 0.7
|
||||
Case "밝은색" '밝은색"
|
||||
rho_e_B = 0.5
|
||||
Case "어두운색" '어두운색"
|
||||
rho_e_B = 0.3
|
||||
Case "검은색" '검은색"
|
||||
rho_e_B = 0.1
|
||||
Case Else
|
||||
MsgBox("불투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
Case "약투과(t=0.2)" '약투과(t=0.2)"
|
||||
tau_e_B = 0.2
|
||||
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
|
||||
Case "흰색"
|
||||
rho_e_B = 0.6
|
||||
Case "밝은색"
|
||||
rho_e_B = 0.4
|
||||
Case "어두운색"
|
||||
rho_e_B = 0.2
|
||||
Case "검은색"
|
||||
rho_e_B = 0.1
|
||||
Case Else
|
||||
MsgBox("약투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
Case "반투과(t=0.4)" '반투과(t=0.4)"
|
||||
tau_e_B = 0.4
|
||||
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
|
||||
Case "흰색"
|
||||
rho_e_B = 0.4
|
||||
Case "밝은색"
|
||||
rho_e_B = 0.3
|
||||
Case "어두운색"
|
||||
rho_e_B = 0.2
|
||||
Case "검은색"
|
||||
rho_e_B = 0.1
|
||||
Case Else
|
||||
MsgBox("반투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
End Select
|
||||
|
||||
If DRF입력면.블라인드각도 = "45도" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(5, i_count_wall) = "45도" Then
|
||||
tau_e_B_corr = TOSG(0.65 * tau_e_B + 0.15 * rho_e_B)
|
||||
rho_e_B_corr = TOSG(rho_e_B * (0.75 + 0.7 * tau_e_B))
|
||||
tau_e_B = tau_e_B_corr
|
||||
rho_e_B = rho_e_B_corr
|
||||
End If
|
||||
|
||||
g = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
If DRF입력면.블라인드위치.Trim <> "" AndAlso Calc.Get_열관류율(DRF입력면) = 0 Then
|
||||
MsgBox(DRF입력면.설명 & "의 열관류율이 0입니다", MsgBoxStyle.Critical, "확인")
|
||||
Else
|
||||
Select Case DRF입력면.블라인드위치.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
|
||||
Case "내부" '내부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 30))
|
||||
g_blinds = g * (1 - g * rho_e_B - (1 - tau_e_B - rho_e_B) * U_blinds / 30)
|
||||
Case "중간" '중간"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 3))
|
||||
g_blinds = g * tau_e_B + g * ((1 - tau_e_B - rho_e_B) + (1 - g) * rho_e_B) * U_blinds / 3
|
||||
Case "외부" '외부"
|
||||
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 5 + 1 / 10))
|
||||
g_blinds = tau_e_B * g + (1 - tau_e_B - rho_e_B) * U_blinds / 10 + tau_e_B * (1 - g) * g / 5
|
||||
Case Else
|
||||
MsgBox("블라인드위치가 없습니다", MsgBoxStyle.Critical, "확인")
|
||||
End Select
|
||||
End If
|
||||
'===========================================================================2010.02.27 추가
|
||||
If i_count_month = 0 Then
|
||||
If i_count_HeatCool = 1 Then
|
||||
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1) * g_blinds
|
||||
Else
|
||||
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1) * g_blinds
|
||||
End If
|
||||
Else
|
||||
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1) * g_blinds
|
||||
End If
|
||||
'===========================================================================2010.02.27 추가
|
||||
|
||||
Else
|
||||
g_blinds = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
|
||||
|
||||
End If
|
||||
Q_S_source = TOSG(Q_S_source + F__F * TOSG(DRF입력면.건축부위면적) * zone_count * F_S * F_W * F_V * g_blinds * Math.Cos(1.33 * TOSG(DRF입력면.수평차양각) * 3.141592 / 180) * (1 - TOSG(DRF입력면.수직차양각) / 300) * Calc.Pub.I_s(i_count_Is, i_count_month) * t_24) '(2-113)
|
||||
End If
|
||||
End Select
|
||||
End If '==========================================================2010.03.20 추가
|
||||
Next
|
||||
|
||||
Q_I_source = Q_I_source_p + Q_I_source_fac + Q_I_L '(2-20)
|
||||
Q_source = Q_S_source + Q_T_source + Q_V_source + Q_I_source '(2-16)
|
||||
If i_count_month = 0 AndAlso i_count_HeatCool = 1 Then Q_source = 0 ' 난방 최대부하 계산
|
||||
Q_sink = Q_T_sink + Q_V_sink + Q_S_sink '(2-11) Q_I_sink는 현재 고려안함
|
||||
|
||||
If Q_sink = 0 Then
|
||||
eta = 0
|
||||
Else
|
||||
gamma = Q_source / Q_sink '(2-21)
|
||||
'If gamma > 1.1 And a > 100 Then
|
||||
If gamma ^ a > 1000000 Then
|
||||
eta = 1 / gamma
|
||||
Else
|
||||
If gamma = 1 Then
|
||||
eta = a / (a + 1) '(2-24)
|
||||
Else
|
||||
eta = TOSG((1 - gamma ^ a) / (1 - gamma ^ (a + 1))) '(2-23)
|
||||
End If
|
||||
End If
|
||||
|
||||
If 1 - (eta * gamma) < 0.01 Then eta = 1 / gamma '(2-137)
|
||||
If (1 - eta) * gamma < 0.01 Then eta = 1 '(2-138)
|
||||
'If V_mech >= Q_C_max / (c_p_arhoa * (theta_i - theta_mech)) Then eta = 1 '(2-139) 추후 고민
|
||||
End If
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
Q_h_b = Q_sink - eta * Q_source '(2-1)
|
||||
Else
|
||||
Q_h_b = (1 - eta) * Q_source '(2-7)
|
||||
End If
|
||||
|
||||
|
||||
If Q_h_b < 0.001 Then Q_h_b = 0 '1W 미만 제거
|
||||
|
||||
'========================================================2010.2.21 수정 And i_count_OpWe = 1 삭제
|
||||
If i_count_month = 0 Then
|
||||
If t_h_op_d <> 0 Then
|
||||
Q_h_b_op = Q_h_b / t_h_op_d
|
||||
Else
|
||||
Q_h_b_op = Q_h_b
|
||||
End If
|
||||
Else
|
||||
'=================================================2010.2.21 삭제
|
||||
'If i_count_OpWe = 1 Then
|
||||
'=================================================2010.2.21 삭제
|
||||
Q_h_b_op = Q_h_b * d_op_mth
|
||||
' MsgBox(i_count_month & " " & Q_h_b & " " & d_op(i_count_month) & " " & Q_h_b_op)
|
||||
'=================================================2010.2.21 삭제
|
||||
'Else
|
||||
'Q_h_b_we = Q_h_b * Calc.Pub.d_we(i_count_month)
|
||||
'=================================================2010.2.21 삭제
|
||||
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
If DR존.조명부하산출방법 = "계산치" Then 'Worksheets("조명").Range("조명부하산출방법1").Offset(0, i_count_zone - 1) = "계산치" Then
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
|
||||
Else
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
|
||||
End If
|
||||
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
|
||||
'=================================================2010.2.21 삭제
|
||||
'End If
|
||||
'=================================================2010.2.21 삭제
|
||||
End If
|
||||
'Q_h_b_mth = d_op(i_count_month) * (Q_sink_op - eta_op * Q_source_op) + d_we(i_count_month) * (Q_sink_we - eta_we * Q_source_we) '(2-6)
|
||||
'======================================2010.2.21 삭제
|
||||
'Next
|
||||
'======================================2010.2.21 삭제
|
||||
Else
|
||||
A_B = TOSG(DR존.면적) * zone_count ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
|
||||
|
||||
Q_vh_b_op = 0
|
||||
Q_h_b_op = 0
|
||||
'Q_h_b_we = 0
|
||||
|
||||
'//조명부하산출방법이 계산치(0001)일경우 계산치로 그렇지않을경우 입력치로 계산함
|
||||
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
|
||||
|
||||
If DR존.조명부하산출방법 = "계산치" Then
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
|
||||
Else
|
||||
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
|
||||
End If
|
||||
|
||||
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth '===============d_op(i_count_month) 2010.2.21 수정
|
||||
End If
|
||||
|
||||
Dim Dr최대부하 As New C최대냉난방부하.Citem(DR존.code) ' DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & DR존.code & "'")(0), DSR.최대냉난방부하Row)
|
||||
|
||||
If i_count_HeatCool = 1 Then
|
||||
If i_count_month = 0 Then '//0번시트는최대 냉난방부하 시트이다.
|
||||
Dr최대부하.최대난방기기부하 = TOSG((Q_h_b_op) / 1000) ''=================== Q_h_b_we 2010.2.21 삭제
|
||||
'Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
|
||||
If DR존.야간운전방식 = "가동정지" Then ' Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1) = "가동정지" Then
|
||||
Dr최대부하.일일난방최대가동시간 = t_h_op_d
|
||||
'Dr최대냉난방부하.난방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
|
||||
Else
|
||||
Dr최대부하.일일난방최대가동시간 = 24
|
||||
'Dr최대냉난방부하.난방최대가동시간 = 24 ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = 24
|
||||
End If
|
||||
Else
|
||||
Dim Dr월에너지요구량 As New C에너지분석(i_count_month, DR존.code)
|
||||
|
||||
'Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
|
||||
'Dr월에너지요구량 = DSETR.에너지분석및요구량.Rows(i_count_month - 1) '//각 월별 시트에 값을 셋트(에너지분석및요구량 테이블에 들어있다)
|
||||
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "난방" Then '//냉난방,난방
|
||||
Dr월에너지요구량.난방에너지요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
|
||||
' If i_count_month = 1 Then MsgBox("1")
|
||||
'Log.AppendLine("공조값설정=" & CSng(Q_vh_b_op / 1000))
|
||||
ElseIf DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "난방" Then '//냉난방,난방
|
||||
Dr월에너지요구량.난방에너지요구량열 = 0
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
|
||||
'//오류확인용 존1만 확인한다.
|
||||
'If DR존.code = "0001" Then MsgBox(DR존.냉난방방식 & vbCrLf & DR존.냉난방공조 & vbCrLf & CSng((Q_h_b_op + Q_h_b_we) / 1000), MsgBoxStyle.Information, DR존.code)
|
||||
|
||||
Else
|
||||
If (DR존.냉난방공조 = "냉방" Or DR존.냉난방공조 = "환기") And DR존.외기부하처리여부 = "예" Then '냉방/환기/"예" Then
|
||||
Dr월에너지요구량.난방에너지요구량열 = 0
|
||||
' If i_count_month = 1 Then MsgBox("3")
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
|
||||
Else
|
||||
' If i_count_month = 1 Then MsgBox("4")
|
||||
Dr월에너지요구량.난방에너지요구량열 = 0
|
||||
Dr월에너지요구량.난방에너지요구량공조환기 = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
Dr월에너지요구량.조명에너지요구량 = Q_l_b / 1000
|
||||
|
||||
' Log.AppendLine("i_count_HeatCool=" & i_count_HeatCool & "i_count_month=" & i_count_month & ",급탕에너지요구량=" & CSng(Q_w_b / 1000))
|
||||
Dr월에너지요구량.급탕에너지요구량 = Q_w_b / 1000
|
||||
' MsgBox("난방요구량" & Dr월에너지요구량.난방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
|
||||
End If
|
||||
|
||||
Else
|
||||
If i_count_month = 0 Then
|
||||
Dr최대부하.최대냉방기기부하 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
|
||||
If DR존.야간운전방식 = "가동정지" Then '//가동정지
|
||||
Dr최대부하.일일냉방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
|
||||
Else
|
||||
Dr최대부하.일일냉방최대가동시간 = 24 'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = 24
|
||||
End If
|
||||
|
||||
Else
|
||||
Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
|
||||
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "냉방" Then '//냉난방/냉방
|
||||
Dr월에너지요구량.냉방요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
|
||||
Else
|
||||
If DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "냉방" Then '//냉난방/냉방
|
||||
Dr월에너지요구량.냉방요구량열 = 0
|
||||
Dr월에너지요구량.냉방요구량공조 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
|
||||
Else
|
||||
If (DR존.냉난방공조 = "난방" Or DR존.냉난방공조 = "환기") And DR존.냉난방공조 = "예" Then '//난방/환기/예
|
||||
Dr월에너지요구량.냉방요구량열 = 0
|
||||
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
|
||||
Else
|
||||
Dr월에너지요구량.냉방요구량열 = 0
|
||||
Dr월에너지요구량.냉방요구량공조 = 0
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
'MsgBox("냉방요구량" & Dr월에너지요구량.냉방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
|
||||
End If
|
||||
End If
|
||||
Next '(3)
|
||||
|
||||
Dim CAir As New CAirHandling
|
||||
If i_count_month = 0 Then
|
||||
CAir.Calc_Max_Power(i_count_HeatCool) '//AIR HANDLING 모듈 에 존재함..역시 내용이 크다 ㅠ_ㅠ
|
||||
End If
|
||||
|
||||
Next '(2)
|
||||
Next '(1)
|
||||
|
||||
Work_msg("에너지분석데이터 집계중...")
|
||||
Frm_Work.ProgressBar1.Maximum = 13
|
||||
Frm_Work.ProgressBar1.Minimum = 0
|
||||
Frm_Work.ProgressBar1.Value = 0
|
||||
Frm_Work.TopMost = True
|
||||
Frm_Work.Show()
|
||||
'//요구량 계산이 완료되었으므로 Summary 계산한다. (이것이 없어서 소요량이 오류났음)
|
||||
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다.
|
||||
Work_plus()
|
||||
Dr.Calc()
|
||||
Next
|
||||
DSETR.AcceptChanges()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' (main2)소요량 계산
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Public Function Calc_Useage() As Boolean
|
||||
'Dim d_op_month As Integer
|
||||
Dim theta_e_month As Decimal
|
||||
Dim d_full_mth As Integer
|
||||
|
||||
Work_msg("소요량계산중...")
|
||||
Frm_Work.ProgressBar1.Maximum = 12
|
||||
Frm_Work.ProgressBar1.Minimum = 0
|
||||
Frm_Work.ProgressBar1.Value = 0
|
||||
Frm_Work.TopMost = True
|
||||
Frm_Work.Show()
|
||||
|
||||
For i_count_month As Short = 1 To 12 '//월별로 난/냉방 소요량을 계산
|
||||
Work_msg("소요량계산중..." & "(" & i_count_month & "/12)") : Work_plus()
|
||||
'===============================================2010.2.21 수정
|
||||
'd_op_month = d_op(i_count_month)
|
||||
d_full_mth = CInt(Calc.Pub.d_full(i_count_month))
|
||||
'===============================================2010.2.21 수정
|
||||
theta_e_month = Calc.Pub.theta_e(i_count_month)
|
||||
|
||||
'///난방
|
||||
Calc.Heating.Calc_WaterheatingSystem(i_count_month, d_full_mth, theta_e_month) '//급탕소요량 '========2010.2.21 수정
|
||||
Calc.AirHandling.Calc_AirHandling(i_count_month, d_full_mth) '//환기? '========2010.2.21 수정
|
||||
If Result.E분석(i_count_month).난방에너지요구량 <> 0 Then Calc.Heating.Calc_HeatingSystem(i_count_month, theta_e_month) '//난방소요량
|
||||
|
||||
'///냉방
|
||||
If Result.E분석(i_count_month).냉방에너지요구량 <> 0 Then Calc.Cooling.Calc_CoolingSystem(i_count_month, theta_e_month)
|
||||
Next
|
||||
DSETR.AcceptChanges()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
826
ArinWarev1/ECO2_2020.vbproj
Normal file
826
ArinWarev1/ECO2_2020.vbproj
Normal file
@@ -0,0 +1,826 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D5C51BDE-68E5-42BC-B648-DB9CCF044703}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<StartupObject>Eco2Ar.My.MyApplication</StartupObject>
|
||||
<RootNamespace>Eco2Ar</RootNamespace>
|
||||
<AssemblyName>Eco2Ar</AssemblyName>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<TargetZone>LocalIntranet</TargetZone>
|
||||
<GenerateManifests>false</GenerateManifests>
|
||||
<SignManifests>false</SignManifests>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
<ManifestCertificateThumbprint>283B51AD9210178E1628176E6D96B5102FED9775</ManifestCertificateThumbprint>
|
||||
<ManifestKeyFile>ArinWareT4_1_TemporaryKey.pfx</ManifestKeyFile>
|
||||
<DelaySign>false</DelaySign>
|
||||
<IsWebBootstrapper>true</IsWebBootstrapper>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
<ApplicationIcon>002.ico</ApplicationIcon>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile />
|
||||
<PublishUrl>ftp://tindevil.com/www/mynetapp/t4/</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Web</InstallFrom>
|
||||
<UpdateEnabled>true</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<InstallUrl>http://tindevil.com/mynetapp/t4/</InstallUrl>
|
||||
<SupportUrl>http://tindevil.com</SupportUrl>
|
||||
<ProductName>Energy%28Test Version%29</ProductName>
|
||||
<PublisherName>Arinware</PublisherName>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>index.htm</WebPage>
|
||||
<ApplicationRevision>33</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>..\..\..\..\..\eco2\debug_2016\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355</NoWarn>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<WarningsAsErrors>
|
||||
</WarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>Full</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>c:\eco2\debug_2016\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355</NoWarn>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<WarningsAsErrors>
|
||||
</WarningsAsErrors>
|
||||
<DefineConstants>MDI=true</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FarPoint.CalcEngine, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.Excel, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.PDF, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.PluginCalendar.WinForms, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.Win, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.Win.Chart, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FarPoint.Win.Spread, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Interop.Excel, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Interop.Excel.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Interop.VBIDE, Version=5.3.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Interop.VBIDE.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<Reference Include="Microsoft.ReportViewer.WinForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="ArinNet" />
|
||||
<Import Include="CEnergy" />
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Drawing" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Windows.Forms" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ApplicationEvents.vb" />
|
||||
<Compile Include="Calculator\Result\C1차소요량.vb" />
|
||||
<Compile Include="Calculator\Result\CCo2발생량.vb" />
|
||||
<Compile Include="Calculator\Result\C범용.vb" />
|
||||
<Compile Include="Calculator\Result\CResult.vb" />
|
||||
<Compile Include="Calculator\CShared.vb" />
|
||||
<Compile Include="Calculator\Result\C사용면적.vb" />
|
||||
<Compile Include="Calculator\Result\CZones.vb" />
|
||||
<Compile Include="Calculator\Result\C생산에너지.vb" />
|
||||
<Compile Include="Calculator\Result\C에너지소요량.vb" />
|
||||
<Compile Include="Calculator\Result\C에너지분석.vb" />
|
||||
<Compile Include="Calculator\Result\C에너지요구량.vb" />
|
||||
<Compile Include="Calculator\CSummary.vb" />
|
||||
<Compile Include="Calculator\Result\C최대냉난방부하.vb" />
|
||||
<Compile Include="DataSet\Calculator_ALT\CZone_ALT.vb" />
|
||||
<Compile Include="DataSet\DS.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>DS.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataSet\DS.vb">
|
||||
<DependentUpon>DS.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataSet\DS2.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>DS2.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_import.Designer.vb">
|
||||
<DependentUpon>Frm_import.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_import.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\fSelectWeatherGroup.Designer.vb">
|
||||
<DependentUpon>fSelectWeatherGroup.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\fSelectWeatherGroup.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\fSelectArea.Designer.vb">
|
||||
<DependentUpon>fSelectArea.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\fSelectArea.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\frm_monuse.Designer.vb">
|
||||
<DependentUpon>frm_monuse.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\frm_monuse.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Frm_Export.Designer.vb">
|
||||
<DependentUpon>Frm_Export.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Frm_Export.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Frm_Upload.Designer.vb">
|
||||
<DependentUpon>Frm_Upload.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Frm_Upload.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_설계개선.Designer.vb">
|
||||
<DependentUpon>Report_설계개선.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_설계개선.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Frm_History.Designer.vb">
|
||||
<DependentUpon>Frm_History.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Frm_History.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Module\CMenu.vb" />
|
||||
<Compile Include="UserControls\YkCtl.Designer.vb">
|
||||
<DependentUpon>YkCtl.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\YkCtl.vb">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_DisplayGubun.Designer.vb">
|
||||
<DependentUpon>Frm_DisplayGubun.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_DisplayGubun.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Filter.Designer.vb">
|
||||
<DependentUpon>Frm_Filter.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Filter.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Work.Designer.vb">
|
||||
<DependentUpon>Frm_Work.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Work.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_Total.Designer.vb">
|
||||
<DependentUpon>Report_Total.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_Total.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_ResultMon.Designer.vb">
|
||||
<DependentUpon>Frm_v20091231_ResultMon.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_ResultMon.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_ResultMax.Designer.vb">
|
||||
<DependentUpon>Frm_v20091231_ResultMax.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_ResultMax.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_buha.Designer.vb">
|
||||
<DependentUpon>Frm_v20091231_buha.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_buha.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_RepResult_Admin.Designer.vb">
|
||||
<DependentUpon>Frm_RepResult_Admin.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_RepResult_Admin.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_그래프.Designer.vb">
|
||||
<DependentUpon>Report_그래프.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_그래프.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Desc.Designer.vb">
|
||||
<DependentUpon>Frm_Desc.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Desc.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_Graph_auth.Designer.vb">
|
||||
<DependentUpon>Report_Graph_auth.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_Graph_auth.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_nBunbae.Designer.vb">
|
||||
<DependentUpon>Frm_nBunbae.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_nBunbae.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Warning.Designer.vb">
|
||||
<DependentUpon>Frm_Warning.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Warning.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Calc.Designer.vb">
|
||||
<DependentUpon>Frm_Calc.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Calc.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_YK.Designer.vb">
|
||||
<DependentUpon>Frm_YK.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_YK.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_pyonga.Designer.vb">
|
||||
<DependentUpon>Report_pyonga.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Report\Report_pyonga.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Module\CLang.vb" />
|
||||
<Compile Include="DataSet\DSR.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>DSR.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataSet\DSR.vb">
|
||||
<DependentUpon>DSR.xsd</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Calculator\CCooling.vb" />
|
||||
<Compile Include="Calculator\CHeating.vb" />
|
||||
<Compile Include="Calculator\CAirHandling.vb" />
|
||||
<Compile Include="Calculator\Calculator.vb" />
|
||||
<Compile Include="Module\Enum.vb" />
|
||||
<Compile Include="Calculator\CRenewable.vb" />
|
||||
<Compile Include="Calculator\CZone.vb" />
|
||||
<Compile Include="Forms_Basic\Frm_Intro.Designer.vb">
|
||||
<DependentUpon>Frm_Intro.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Intro.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Module\CForm.Designer.vb">
|
||||
<DependentUpon>CForm.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Module\CForm.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Module\Pub.vb" />
|
||||
<Compile Include="MdiMain.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MdiMain.Designer.vb">
|
||||
<DependentUpon>MdiMain.vb</DependentUpon>
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_profile.Designer.vb">
|
||||
<DependentUpon>Frm_v20091231_profile.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_profile.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Zone.Designer.vb">
|
||||
<DependentUpon>Frm_Zone.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Zone.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_kongjo.Designer.vb">
|
||||
<DependentUpon>Frm_kongjo.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_kongjo.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_kongkub.Designer.vb">
|
||||
<DependentUpon>Frm_kongkub.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_kongkub.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Nanbang.Designer.vb">
|
||||
<DependentUpon>Frm_Nanbang.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Nanbang.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_NaengBang.Designer.vb">
|
||||
<DependentUpon>Frm_NaengBang.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_NaengBang.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Bunbae.Designer.vb">
|
||||
<DependentUpon>Frm_Bunbae.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_Bunbae.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_New.Designer.vb">
|
||||
<DependentUpon>Frm_New.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_New.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_Myoun.Designer.vb">
|
||||
<DependentUpon>Frm_v20091231_Myoun.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_Myoun.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Common.Designer.vb">
|
||||
<DependentUpon>Frm_Common.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_Common.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_Weather.Designer.vb">
|
||||
<DependentUpon>Frm_v20091231_Weather.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Input\Frm_v20091231_Weather.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_About.Designer.vb">
|
||||
<DependentUpon>Frm_About.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_About.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\ArinDv.Designer.vb">
|
||||
<DependentUpon>ArinDv.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\ArinDv.vb">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\MyCmb.Designer.vb">
|
||||
<DependentUpon>MyCmb.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\MyCmb.vb">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\MyTb.Designer.vb">
|
||||
<DependentUpon>MyTb.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\MyTb.vb">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_FileInfo.Designer.vb">
|
||||
<DependentUpon>Frm_FileInfo.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Forms_Basic\Frm_FileInfo.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_DisplayGubun.resx">
|
||||
<DependentUpon>Frm_DisplayGubun.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_Filter.resx">
|
||||
<DependentUpon>Frm_Filter.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_import.resx">
|
||||
<DependentUpon>Frm_import.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_Work.resx">
|
||||
<DependentUpon>Frm_Work.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\fSelectWeatherGroup.resx">
|
||||
<DependentUpon>fSelectWeatherGroup.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\fSelectArea.resx">
|
||||
<DependentUpon>fSelectArea.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\frm_monuse.resx">
|
||||
<DependentUpon>frm_monuse.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Frm_Export.resx">
|
||||
<DependentUpon>Frm_Export.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Frm_Upload.resx">
|
||||
<DependentUpon>Frm_Upload.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\평가서.rdlc" />
|
||||
<EmbeddedResource Include="Forms_Report\Report_Total.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>Report_Total.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_v20091231_ResultMon.resx">
|
||||
<DependentUpon>Frm_v20091231_ResultMon.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_v20091231_ResultMax.resx">
|
||||
<DependentUpon>Frm_v20091231_ResultMax.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_v20091231_buha.resx">
|
||||
<DependentUpon>Frm_v20091231_buha.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_RepResult_Admin.resx">
|
||||
<DependentUpon>Frm_RepResult_Admin.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_그래프.resx">
|
||||
<DependentUpon>Report_그래프.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\그래프.rdlc" />
|
||||
<EmbeddedResource Include="Forms_Input\Frm_Desc.resx">
|
||||
<DependentUpon>Frm_Desc.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_total.rdlc" />
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_Intro.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>Frm_Intro.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_Graph_auth.resx">
|
||||
<DependentUpon>Report_Graph_auth.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_Graph_auth.rdlc" />
|
||||
<EmbeddedResource Include="Forms_Input\Frm_nBunbae.resx">
|
||||
<DependentUpon>Frm_nBunbae.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_Warning.resx">
|
||||
<DependentUpon>Frm_Warning.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_Calc.resx">
|
||||
<DependentUpon>Frm_Calc.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_YK.resx">
|
||||
<DependentUpon>Frm_YK.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_pyonga.resx">
|
||||
<DependentUpon>Report_pyonga.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_설계개선.resx">
|
||||
<DependentUpon>Report_설계개선.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Report\Report_설계개선.rdlc" />
|
||||
<EmbeddedResource Include="Frm_History.resx">
|
||||
<DependentUpon>Frm_History.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Module\CForm.resx">
|
||||
<DependentUpon>CForm.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="My Project\licenses.licx" />
|
||||
<EmbeddedResource Include="MdiMain.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>MdiMain.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_v20091231_profile.resx">
|
||||
<DependentUpon>Frm_v20091231_profile.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_Zone.resx">
|
||||
<DependentUpon>Frm_Zone.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_kongjo.resx">
|
||||
<DependentUpon>Frm_kongjo.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_kongkub.resx">
|
||||
<DependentUpon>Frm_kongkub.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_Nanbang.resx">
|
||||
<DependentUpon>Frm_Nanbang.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_NaengBang.resx">
|
||||
<DependentUpon>Frm_NaengBang.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_Bunbae.resx">
|
||||
<DependentUpon>Frm_Bunbae.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_New.resx">
|
||||
<DependentUpon>Frm_New.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_v20091231_Myoun.resx">
|
||||
<DependentUpon>Frm_v20091231_Myoun.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_Common.resx">
|
||||
<DependentUpon>Frm_Common.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Input\Frm_v20091231_Weather.resx">
|
||||
<DependentUpon>Frm_v20091231_Weather.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_About.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>Frm_About.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms_Basic\Frm_FileInfo.resx">
|
||||
<DependentUpon>Frm_FileInfo.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="DataSet\DS.xsc">
|
||||
<DependentUpon>DS.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="DataSet\DS.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSDataSetGenerator</Generator>
|
||||
<LastGenOutput>DS.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="DataSet\DS.xss">
|
||||
<DependentUpon>DS.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="DataSet\DS2.xsc">
|
||||
<DependentUpon>DS2.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="DataSet\DS2.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSDataSetGenerator</Generator>
|
||||
<LastGenOutput>DS2.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="DataSet\DS2.xss">
|
||||
<DependentUpon>DS2.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="login.dat">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\user_24.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\ref_24.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\user_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\group_24.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\adfav_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\addbk_24.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\addbk_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\wiz_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\paste_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\del_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\edit_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="002.ico" />
|
||||
<Content Include="Template\Sample.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<BaseApplicationManifest Include="My Project\app.manifest" />
|
||||
<None Include="DataSet\DSR.xsc">
|
||||
<DependentUpon>DSR.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="DataSet\DSR.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSDataSetGenerator</Generator>
|
||||
<LastGenOutput>DSR.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="DataSet\DSR.xss">
|
||||
<DependentUpon>DSR.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="Resources\save_16.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 2.0%28x86%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.0%28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="001_B.ico" />
|
||||
<Content Include="9-8.ico" />
|
||||
<None Include="Resources\폼배경.jpg" />
|
||||
<None Include="Resources\건물개요.jpg" />
|
||||
<None Include="ECO2.png" />
|
||||
<Content Include="icon5.ico" />
|
||||
<None Include="Resources\select_by_difference.png" />
|
||||
<None Include="Resources\page_copy.png" />
|
||||
<Content Include="단축키.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="ReadMe.txt" />
|
||||
<None Include="Calculator\CD.cd" />
|
||||
<None Include="Calculator\CD_RESULT.cd" />
|
||||
<None Include="Resources\default.png" />
|
||||
<None Include="Resources\apps_32.png" />
|
||||
<None Include="Resources\new_32.png" />
|
||||
<None Include="Resources\remov_32.png" />
|
||||
<None Include="Resources\cancl_32.png" />
|
||||
<Content Include="Template\ReadMe.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="UpdateList.txt" />
|
||||
<Content Include="Forms_Input\ReadMe.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<None Include="upload.xlsx">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="방위2.png" />
|
||||
<None Include="방위.png" />
|
||||
<None Include="방위.jpg" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PublishFile Include="ADODB">
|
||||
<Visible>False</Visible>
|
||||
<Group>
|
||||
</Group>
|
||||
<TargetPath>
|
||||
</TargetPath>
|
||||
<PublishState>Include</PublishState>
|
||||
<IncludeHash>True</IncludeHash>
|
||||
<FileType>Assembly</FileType>
|
||||
</PublishFile>
|
||||
<PublishFile Include="Microsoft.ReportViewer.ProcessingObjectModel">
|
||||
<Visible>False</Visible>
|
||||
<Group>
|
||||
</Group>
|
||||
<TargetPath>
|
||||
</TargetPath>
|
||||
<PublishState>Include</PublishState>
|
||||
<IncludeHash>True</IncludeHash>
|
||||
<FileType>Assembly</FileType>
|
||||
</PublishFile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ArinLogin\ArinLogin.vbproj">
|
||||
<Project>{8B6E4D7F-B484-471A-A419-2FE3451D26A3}</Project>
|
||||
<Name>ArinLogin</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ArinLog\ArinLog.vbproj">
|
||||
<Project>{e9e16a98-8f8d-4848-a27e-4571c184fb1a}</Project>
|
||||
<Name>ArinLog</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ArinNet\ArinNet.vbproj">
|
||||
<Project>{F0FB4304-F995-446A-99B7-0896A5E07A72}</Project>
|
||||
<Name>ArinNet</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\CEnergy\ArinClassV2\CEnergy.vbproj">
|
||||
<Project>{2AF28E8C-84F1-4D56-9592-3B0EBDE8DF14}</Project>
|
||||
<Name>CEnergy</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -322,6 +322,7 @@ Partial Class Frm_V20091231_Weather
|
||||
Me.dv = New CEnergy.arindv()
|
||||
Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn()
|
||||
Me.건물위치DataGridViewTextBoxColumn = New System.Windows.Forms.DataGridViewTextBoxColumn()
|
||||
Me.TabPage4 = New System.Windows.Forms.TabPage()
|
||||
Label39 = New System.Windows.Forms.Label()
|
||||
Label247 = New System.Windows.Forms.Label()
|
||||
Label248 = New System.Windows.Forms.Label()
|
||||
@@ -1430,6 +1431,7 @@ Partial Class Frm_V20091231_Weather
|
||||
Me.TabControl3.Controls.Add(Me.TabPage10)
|
||||
Me.TabControl3.Controls.Add(Me.TabPage2)
|
||||
Me.TabControl3.Controls.Add(Me.TabPage3)
|
||||
Me.TabControl3.Controls.Add(Me.TabPage4)
|
||||
Me.TabControl3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TabControl3.Location = New System.Drawing.Point(193, 0)
|
||||
Me.TabControl3.Name = "TabControl3"
|
||||
@@ -1496,7 +1498,7 @@ Partial Class Frm_V20091231_Weather
|
||||
Me.TableLayoutPanel7.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 102.0!))
|
||||
Me.TableLayoutPanel7.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 102.0!))
|
||||
Me.TableLayoutPanel7.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 96.0!))
|
||||
Me.TableLayoutPanel7.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 147.0!))
|
||||
Me.TableLayoutPanel7.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 148.0!))
|
||||
Me.TableLayoutPanel7.Controls.Add(Me.tb_w12, 3, 5)
|
||||
Me.TableLayoutPanel7.Controls.Add(Label64, 2, 5)
|
||||
Me.TableLayoutPanel7.Controls.Add(Label77, 2, 4)
|
||||
@@ -1530,7 +1532,7 @@ Partial Class Frm_V20091231_Weather
|
||||
Me.TableLayoutPanel7.RowStyles.Add(New System.Windows.Forms.RowStyle())
|
||||
Me.TableLayoutPanel7.RowStyles.Add(New System.Windows.Forms.RowStyle())
|
||||
Me.TableLayoutPanel7.RowStyles.Add(New System.Windows.Forms.RowStyle())
|
||||
Me.TableLayoutPanel7.Size = New System.Drawing.Size(452, 169)
|
||||
Me.TableLayoutPanel7.Size = New System.Drawing.Size(453, 169)
|
||||
Me.TableLayoutPanel7.TabIndex = 122
|
||||
'
|
||||
'tb_w12
|
||||
@@ -3856,6 +3858,15 @@ Partial Class Frm_V20091231_Weather
|
||||
Me.건물위치DataGridViewTextBoxColumn.Name = "건물위치DataGridViewTextBoxColumn"
|
||||
Me.건물위치DataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable
|
||||
'
|
||||
'TabPage4
|
||||
'
|
||||
Me.TabPage4.Location = New System.Drawing.Point(4, 22)
|
||||
Me.TabPage4.Name = "TabPage4"
|
||||
Me.TabPage4.Size = New System.Drawing.Size(935, 507)
|
||||
Me.TabPage4.TabIndex = 7
|
||||
Me.TabPage4.Text = "풍속"
|
||||
Me.TabPage4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Frm_V20091231_Weather
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 12.0!)
|
||||
@@ -4156,4 +4167,5 @@ Partial Class Frm_V20091231_Weather
|
||||
Friend WithEvents Label13 As Label
|
||||
Friend WithEvents ToolStripButton13 As ToolStripButton
|
||||
Friend WithEvents ToolStripButton8 As ToolStripButton
|
||||
Friend WithEvents TabPage4 As System.Windows.Forms.TabPage
|
||||
End Class
|
||||
|
||||
@@ -412,48 +412,18 @@
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="bsWGDep3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1397, 17</value>
|
||||
</metadata>
|
||||
<metadata name="area2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dvc_area2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="area3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsWGDep2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 56</value>
|
||||
</metadata>
|
||||
<metadata name="bsWGDep1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>131, 56</value>
|
||||
</metadata>
|
||||
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>91, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DS1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DS1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsw_ilsa.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>155, 17</value>
|
||||
</metadata>
|
||||
<metadata name="code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsw_ilsa.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>155, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>655, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>655, 17</value>
|
||||
</metadata>
|
||||
@@ -532,15 +502,6 @@
|
||||
<metadata name="bsw_temp.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>252, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DataGridViewTextBoxColumn9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsw_temp.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>252, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>811, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>811, 17</value>
|
||||
</metadata>
|
||||
@@ -619,15 +580,6 @@
|
||||
<metadata name="bsw_supdo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>360, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DataGridViewTextBoxColumn10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsw_supdo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>360, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>967, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>967, 17</value>
|
||||
</metadata>
|
||||
@@ -706,15 +658,6 @@
|
||||
<metadata name="bsw_cha.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>473, 17</value>
|
||||
</metadata>
|
||||
<metadata name="DataGridViewTextBoxColumn11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsw_cha.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>473, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1241, 17</value>
|
||||
</metadata>
|
||||
<metadata name="BindingNavigator2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1241, 17</value>
|
||||
</metadata>
|
||||
@@ -787,15 +730,30 @@
|
||||
P0ilegWKIwMchCbSyQAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="bsWGDep3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1397, 17</value>
|
||||
</metadata>
|
||||
<metadata name="area2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dvc_area2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="area3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsWGDep2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 56</value>
|
||||
</metadata>
|
||||
<metadata name="bsWGDep1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>131, 56</value>
|
||||
</metadata>
|
||||
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1123, 17</value>
|
||||
</metadata>
|
||||
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>83</value>
|
||||
</metadata>
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' 지정되도록 할 수 있습니다.
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.2017.0122.0007")>
|
||||
<Assembly: AssemblyFileVersion("1.2017.0122.0007")>
|
||||
<Assembly: AssemblyVersion("1.2017.0122.0009")>
|
||||
<Assembly: AssemblyFileVersion("1.2017.0122.0009")>
|
||||
|
||||
@@ -2481,7 +2481,7 @@
|
||||
<row><td>Custom</td><td>Express</td><td><ISProjectDataFolder></td><td>Default</td><td>2</td><td>1033</td><td>0</td><td>2</td><td>Intel</td><td/><td>1033</td><td>0</td><td>100</td><td>0</td><td>1024</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>75805</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>DVD-10</td><td>Express</td><td><ISProjectDataFolder></td><td>Default</td><td>3</td><td>1033</td><td>0</td><td>2</td><td>Intel</td><td/><td>1033</td><td>0</td><td>8.75</td><td>1</td><td>2048</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>75805</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>DVD-18</td><td>Express</td><td><ISProjectDataFolder></td><td>Default</td><td>3</td><td>1033</td><td>0</td><td>2</td><td>Intel</td><td/><td>1033</td><td>0</td><td>15.83</td><td>1</td><td>2048</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>75805</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>DVD-5</td><td>Express</td><td>C:\eco2\Setup_2020_200825_Weather66_r7</td><td>Default</td><td>3</td><td>1042</td><td>0</td><td>1</td><td>Intel</td><td/><td>1042</td><td>0</td><td>4.38</td><td>1</td><td>2048</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>75805</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>DVD-5</td><td>Express</td><td>C:\eco2\Setup_ECO2_2020_20170122_9</td><td>Default</td><td>3</td><td>1042</td><td>0</td><td>1</td><td>Intel</td><td/><td>1042</td><td>0</td><td>4.38</td><td>1</td><td>2048</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>75805</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>DVD-9</td><td>Express</td><td><ISProjectDataFolder></td><td>Default</td><td>3</td><td>1033</td><td>0</td><td>2</td><td>Intel</td><td/><td>1033</td><td>0</td><td>7.95</td><td>1</td><td>2048</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>75805</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>SingleImage</td><td>Express</td><td>C:\eco2\Setup_2016_191020_guest_patch</td><td>PackageName</td><td>1</td><td>1042</td><td>0</td><td>1</td><td>Intel</td><td/><td>1042</td><td>0</td><td>0</td><td>0</td><td>0</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>108701</td><td/><td/><td/><td>3</td></row>
|
||||
<row><td>WebDeployment</td><td>Express</td><td><ISProjectDataFolder></td><td>PackageName</td><td>4</td><td>1033</td><td>2</td><td>1</td><td>Intel</td><td/><td>1033</td><td>0</td><td>0</td><td>0</td><td>0</td><td/><td>0</td><td/><td>MediaLocation</td><td/><td>http://</td><td/><td/><td/><td/><td>124941</td><td/><td/><td/><td>3</td></row>
|
||||
|
||||
Reference in New Issue
Block a user