This commit is contained in:
ykh
2024-12-30 23:04:30 +09:00
parent c01051f024
commit 8f89991a09
45 changed files with 7567 additions and 1033 deletions

View File

@@ -137,7 +137,7 @@
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -163,7 +163,7 @@
Me.난방LPG * Result.E변환계수.지역난방 + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -174,7 +174,7 @@
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -346,7 +346,7 @@
Me.냉방LPG * Result.E변환계수.LPG + Me.냉방지역난방열 * Result.E변환계수.지역난방 + _
Me.냉방지역냉방열 * Result.E변환계수.지역냉방 + Me.냉방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.냉방전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -522,7 +522,7 @@
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -556,7 +556,7 @@
Me.급탕LPG * Result.E변환계수.지역난방 + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -566,7 +566,7 @@
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -740,7 +740,7 @@
Dim a As Decimal = Result.생산E(0).태양광전력생산량
Dim b As Decimal = Result.생산E(0).풍력전력생산량
Dim c As Decimal = Result.생산E(0).열병합전력생산량
Dim sumdata As Decimal = a + b + c
Dim sumdata As Decimal = a + b + c + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite
Return R - (sumdata) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.조명전력 * Result.E변환계수.전력
Catch ex As Exception
@@ -783,7 +783,7 @@
If MIdx = 0 Then
Dim R As Decimal = 환기전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / _
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.환기전력 * Result.E변환계수.전력
Catch ex As Exception

View File

@@ -268,6 +268,9 @@ Public Class C사용면적
pLog.Add(String.Format(">> Zone({0})Row Offset={1}", Dr존.code, offset))
Dim 면적별범위값 As Char = Pub.면적별범위값(Dr존.면적)
'//냉난방(HC) 이거나 난방(H)일경우 난방면적 누적
If Dr존.냉난방방식.IndexOf("") <> -1 OrElse Dr존.냉난방공조.IndexOf("") <> -1 Then
A_H += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
@@ -282,12 +285,16 @@ Public Class C사용면적
'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)
If Dr프로필.code <> "0010" OrElse Dr프로필.code <> "0025" OrElse Dr프로필.code <> "0026" Then
If Dr프로필.code <> "0027" 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존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
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))
@@ -306,8 +313,13 @@ Public Class C사용면적
'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)
If Dr프로필.code <> "0010" OrElse Dr프로필.code <> "0025" OrElse Dr프로필.code <> "0026" Then
If Dr프로필.code <> "0027" 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존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
Else
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.196 / 0.314), 3) '//전산실 용도에 따른 냉방 가중치 적용
End If
@@ -320,17 +332,64 @@ Public Class C사용면적
'//급탕요구량이 있다면 급탕면적 누적
If TOSG(Dr프로필.일일급탕요구량) > 0 Then
Dim 프로필급탕요구량 As Decimal = TOSG(Dr프로필.일일급탕요구량)
If Dr프로필.설명.StartsWith("00") OrElse Dr프로필.설명.StartsWith("27") Then
Dim 면적별범위 As Char = Pub.면적별범위값(TOSG(Dr존.면적))
프로필급탕요구량 = Pub.프로필급탕요구량(면적별범위) / TOSG(Dr존.면적)
End If
If 프로필급탕요구량 > 0 Then
A_W += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then
If 건물용도 < 10 Then '//주거용
A_W_wf = A_W
'Select Case 면적별범위값
' Case "A"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.458
' Case "B"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.618
' Case "C"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.729
' Case "D"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1
' Case "E"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.258
' Case "F"c
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.475
' Case Else
' A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.643
'End Select
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)
If Dr프로필.code <> "0027" Then
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(프로필급탕요구량 * (day_year / (30 * 250)), 3)
Else
'//주거용 오피스텔
Select Case 면적별범위값
Case "A"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.804
Case "B"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.025
Case "C"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.21
Case "D"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66
Case "E"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.088
Case "F"c
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.448
Case Else
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.727
End Select
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_W={1},A_W_wf={2}", Dr존.code, A_W, A_W_wf))
@@ -347,7 +406,13 @@ Public Class 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_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
If Dr프로필.code <> "0027" Then
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
Else
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_L={1},A_L_wf={2}", Dr존.code, A_L, A_L_wf))
@@ -362,7 +427,13 @@ Public Class 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_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)
If Dr프로필.code <> "0027" Then
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
Else
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_V={1},A_V_wf={2}", Dr존.code, A_V, A_V_wf))

View File

@@ -58,7 +58,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력태양광"))
Return TOSG(DR(0).전력태양광) ''("전력태양광"))
End If
End If
End Get
@@ -72,6 +72,8 @@ Public Class C생산에너지
End If
End Set
End Property
Property 태양광전력생산량_offsite() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
@@ -86,7 +88,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력태양광offsite"))
Return TOSG(DR(0).전력태양광offsite) '("전력태양광offsite"))
End If
End If
End Get
@@ -96,10 +98,43 @@ Public Class C생산에너지
MsgBox(ErrMsg)
Else
' MsgBox("태양광기록(" & Mon & ")")
DR(0)("전력태양광offsite") = value
DR(0).전력태양광offsite = value
End If
End Set
End Property
Property 연료전지전력생산량_offsite() 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).연료전지전력생산량_offsite
Next
Return Res
Else
Return TOSG(DR(0).연료전지전력생산량_offsite) '0'("연료전지전력offsite"))
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).연료전지전력생산량_offsite = value
End If
End Set
End Property
Property 풍력전력생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
@@ -114,7 +149,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력풍력"))
Return TOSG(DR(0).전력풍력) '("전력풍력"))
End If
End If
End Get
@@ -142,7 +177,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력풍력offsite"))
Return TOSG(DR(0).전력풍력offsite) '("전력풍력offsite"))
End If
End If
End Get
@@ -171,7 +206,7 @@ Public Class C생산에너지
Next
Return Res
Else
Return TOSG(DR(0)("전력열병합"))
Return TOSG(DR(0).전력열병합) '("전력열병합"))
End If
End If
End Get

View File

@@ -67,11 +67,11 @@
Me.급탕보조 = I60
If (I4 + I5 + I6 + I7 + I8 <> 0) Then
Me.난방S = IH - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I4
Me.냉방S = IC - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I5
Me.조명S = IL - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I6
Me.급탕S = IW - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I7
Me.환기S = IV - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I8
Me.난방S = IH - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I4
Me.냉방S = IC - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I5
Me.조명S = IL - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I6
Me.급탕S = IW - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I7
Me.환기S = IV - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).풍력전력생산량 + Result.생산E(0).열병합전력생산량 + Result.생산E(0).태양광전력생산량_offsite + Result.생산E(0).연료전지전력생산량_offsite) / (I4 + I5 + I6 + I7 + I8) * I8
End If
End Sub