# Licensed under a 3-clause BSD style license - see LICENSE.rst
"""
Derived parameter MSIDs related to thermal subsystems.
"""
import numpy as np
from . import base
[docs]class DerivedParameterThermal(base.DerivedParameter):
content_root = "thermal"
[docs] def fix_bus_5_and_bus_6(self, data):
# These zones cannot be commanded if Bus 5 or Bus 6 is disabled
bus_5_and_6_zones = [
"4OHTRZ27",
"4OHTRZ28",
"4OHTRZ43",
"4OHTRZ45",
"4OHTRZ47",
"4OHTRZ49",
"4OHTRZ52",
"4OHTRZ53",
"4OHTRZ29",
"4OHTRZ35",
"4OHTRZ42",
"4OHTRZ44",
"4OHTRZ46",
"4OHTRZ48",
"4OHTRZ50",
"4OHTRZ54",
]
for msid in bus_5_and_6_zones:
if msid in data.keys():
# Heater must be off if either bus is disabled
disa = (data["4S1PWR05"].vals == "DISA") | (
data["4S1PWR06"].vals == "DISA"
)
data[msid].vals[disa] = 0
[docs] def fix_4OHTRZ50(self, data):
# This is the first period when zone 50 became stuck on, up until it
# became temporarily unstuck in 2006:363.
stuck1 = (data.times > 188439810.759) & (data.times < 283792685.184)
# Zone 50 became stuck again on day 2006:364.
stuck2 = data.times > 283844996.184
stuck = stuck1 | stuck2
data["4OHTRZ50"].vals[stuck] = 1
# --------------------------------------------
[docs]class DP_EE_AXIAL(DerivedParameterThermal):
rootparams = [
"OHRTHR58",
"OHRTHR12",
"OHRTHR36",
"OHRTHR56",
"OHRTHR57",
"OHRTHR55",
"OHRTHR35",
"OHRTHR37",
"OHRTHR34",
"OHRTHR13",
"OHRTHR10",
"OHRTHR11",
]
time_step = 32.8
[docs] def calc(self, data):
HYPAVE = (
data["OHRTHR12"].vals
+ data["OHRTHR13"].vals
+ data["OHRTHR36"].vals
+ data["OHRTHR37"].vals
+ data["OHRTHR57"].vals
+ data["OHRTHR58"].vals
) / 6
PARAVE = (
data["OHRTHR10"].vals
+ data["OHRTHR11"].vals
+ data["OHRTHR34"].vals
+ data["OHRTHR35"].vals
+ data["OHRTHR55"].vals
+ data["OHRTHR56"].vals
) / 6
HAAG = PARAVE - HYPAVE
DTAXIAL = np.abs(1.0 * HAAG)
EE_AXIAL = DTAXIAL * 0.0034
return EE_AXIAL
# --------------------------------------------
[docs]class DP_EE_BULK(DerivedParameterThermal):
rootparams = [
"OHRTHR10",
"OHRTHR58",
"OHRTHR52",
"OHRTHR53",
"OHRTHR56",
"OHRTHR57",
"OHRTHR54",
"OHRTHR55",
"OHRTHR12",
"OHRTHR35",
"OHRTHR11",
"OHRTHR08",
"OHRTHR09",
"OHRTHR31",
"OHRTHR33",
"OHRTHR34",
"OHRTHR13",
"OHRTHR36",
"OHRTHR37",
]
time_step = 32.8
[docs] def calc(self, data):
P_SUM = (
data["OHRTHR10"].vals
+ data["OHRTHR11"].vals
+ data["OHRTHR34"].vals
+ data["OHRTHR35"].vals
+ data["OHRTHR55"].vals
+ data["OHRTHR56"].vals
)
H_SUM = (
data["OHRTHR12"].vals
+ data["OHRTHR13"].vals
+ data["OHRTHR36"].vals
+ data["OHRTHR37"].vals
+ data["OHRTHR57"].vals
+ data["OHRTHR58"].vals
)
CAP_SUM = (
data["OHRTHR08"].vals
+ data["OHRTHR09"].vals
+ data["OHRTHR31"].vals
+ data["OHRTHR33"].vals
+ data["OHRTHR52"].vals
+ data["OHRTHR53"].vals
+ data["OHRTHR54"].vals
)
HMCSAVE = (CAP_SUM + P_SUM + H_SUM) / 19.0
DTBULK = np.abs(1.0 * HMCSAVE - 69.8)
EE_BULK = DTBULK * 0.0267
return EE_BULK
# --------------------------------------------
[docs]class DP_EE_DIAM(DerivedParameterThermal):
"""Kodak diametrical encircled energy"""
rootparams = ["OHRMGRD6", "OHRMGRD3"]
time_step = 32.8
[docs] def calc(self, data):
VAL2 = np.abs(1.0 * data["OHRMGRD6"].vals)
VAL1 = np.abs(1.0 * data["OHRMGRD3"].vals)
DTDIAM = np.max([VAL1, VAL2], axis=0)
EE_DIAM = DTDIAM * 0.401
return EE_DIAM
# --------------------------------------------
[docs]class DP_EE_RADIAL(DerivedParameterThermal):
rootparams = [
"OHRTHR52",
"OHRTHR53",
"OHRTHR54",
"OHRTHR31",
"OHRTHR09",
"OHRTHR08",
"OHRTHR33",
]
time_step = 32.8
[docs] def calc(self, data):
CAPIAVE = (
data["OHRTHR09"].vals + data["OHRTHR53"].vals + data["OHRTHR54"].vals
) / 3
CAPOAVE = (
data["OHRTHR08"].vals
+ data["OHRTHR31"].vals
+ data["OHRTHR33"].vals
+ data["OHRTHR52"].vals
) / 4
HARG = CAPOAVE - CAPIAVE
DTRADIAL = np.abs(1.0 * HARG)
EE_RADIAL = DTRADIAL * 0.0127
return EE_RADIAL
# --------------------------------------------
[docs]class DP_EE_THERM(DerivedParameterThermal):
rootparams = [
"OHRTHR37",
"OHRTHR58",
"OHRMGRD6",
"OHRMGRD3",
"OHRTHR35",
"OHRTHR52",
"OHRTHR53",
"OHRTHR56",
"OHRTHR57",
"OHRTHR54",
"OHRTHR55",
"OHRTHR12",
"OHRTHR36",
"OHRTHR08",
"OHRTHR09",
"OHRTHR31",
"OHRTHR33",
"OHRTHR34",
"OHRTHR13",
"OHRTHR10",
"OHRTHR11",
]
time_step = 32.8
[docs] def calc(self, data):
CAP_SUM = (
data["OHRTHR08"].vals
+ data["OHRTHR09"].vals
+ data["OHRTHR31"].vals
+ data["OHRTHR33"].vals
+ data["OHRTHR52"].vals
+ data["OHRTHR53"].vals
+ data["OHRTHR54"].vals
)
CAPIAVE = (
data["OHRTHR09"].vals + data["OHRTHR53"].vals + data["OHRTHR54"].vals
) / 3
P_SUM = (
data["OHRTHR10"].vals
+ data["OHRTHR11"].vals
+ data["OHRTHR34"].vals
+ data["OHRTHR35"].vals
+ data["OHRTHR55"].vals
+ data["OHRTHR56"].vals
)
CAPOAVE = (
data["OHRTHR08"].vals
+ data["OHRTHR31"].vals
+ data["OHRTHR33"].vals
+ data["OHRTHR52"].vals
) / 4
H_SUM = (
data["OHRTHR12"].vals
+ data["OHRTHR13"].vals
+ data["OHRTHR36"].vals
+ data["OHRTHR37"].vals
+ data["OHRTHR57"].vals
+ data["OHRTHR58"].vals
)
PARAVE = (
data["OHRTHR10"].vals
+ data["OHRTHR11"].vals
+ data["OHRTHR34"].vals
+ data["OHRTHR35"].vals
+ data["OHRTHR55"].vals
+ data["OHRTHR56"].vals
) / 6
HYPAVE = (
data["OHRTHR12"].vals
+ data["OHRTHR13"].vals
+ data["OHRTHR36"].vals
+ data["OHRTHR37"].vals
+ data["OHRTHR57"].vals
+ data["OHRTHR58"].vals
) / 6
VAL1 = np.abs(1.0 * data["OHRMGRD3"].vals)
VAL2 = np.abs(1.0 * data["OHRMGRD6"].vals)
HAAG = PARAVE - HYPAVE
HARG = CAPOAVE - CAPIAVE
HMCSAVE = (CAP_SUM + P_SUM + H_SUM) / 19.0
DTAXIAL = np.abs(1.0 * HAAG)
DTRADIAL = np.abs(1.0 * HARG)
DTDIAM = np.max([VAL1, VAL2], axis=0)
DTBULK = np.abs(1.0 * HMCSAVE - 69.8)
EE_RADIAL = DTRADIAL * 0.0127
EE_AXIAL = DTAXIAL * 0.0034
EE_BULK = DTBULK * 0.0267
EE_DIAM = DTDIAM * 0.401
EE_THERM = EE_BULK + EE_AXIAL + EE_RADIAL + EE_DIAM
return EE_THERM
# --------------------------------------------
[docs]class DP_HAAG(DerivedParameterThermal):
rootparams = [
"OHRTHR58",
"OHRTHR12",
"OHRTHR56",
"OHRTHR57",
"OHRTHR55",
"OHRTHR13",
"OHRTHR36",
"OHRTHR37",
"OHRTHR34",
"OHRTHR35",
"OHRTHR10",
"OHRTHR11",
]
time_step = 32.8
[docs] def calc(self, data):
HYPAVE = (
data["OHRTHR12"].vals
+ data["OHRTHR13"].vals
+ data["OHRTHR36"].vals
+ data["OHRTHR37"].vals
+ data["OHRTHR57"].vals
+ data["OHRTHR58"].vals
) / 6
PARAVE = (
data["OHRTHR10"].vals
+ data["OHRTHR11"].vals
+ data["OHRTHR34"].vals
+ data["OHRTHR35"].vals
+ data["OHRTHR55"].vals
+ data["OHRTHR56"].vals
) / 6
HAAG = PARAVE - HYPAVE
return HAAG
# --------------------------------------------
[docs]class DP_HARG(DerivedParameterThermal):
rootparams = [
"OHRTHR52",
"OHRTHR53",
"OHRTHR54",
"OHRTHR31",
"OHRTHR09",
"OHRTHR08",
"OHRTHR33",
]
time_step = 32.8
[docs] def calc(self, data):
CAPIAVE = (
data["OHRTHR09"].vals + data["OHRTHR53"].vals + data["OHRTHR54"].vals
) / 3
CAPOAVE = (
data["OHRTHR08"].vals
+ data["OHRTHR31"].vals
+ data["OHRTHR33"].vals
+ data["OHRTHR52"].vals
) / 4
HARG = CAPOAVE - CAPIAVE
return HARG
# --------------------------------------------
[docs]class DP_HMAX35(DerivedParameterThermal):
rootparams = [
"OHRTHR52",
"OHRTHR53",
"OHRTHR50",
"OHRTHR51",
"OHRTHR56",
"OHRTHR55",
"OHRTHR23",
"OHRTHR22",
"OHRTHR30",
"OHRTHR33",
"OHRTHR12",
"OHRTHR13",
"OHRTHR10",
"OHRTHR11",
"OHRTHR36",
"OHRTHR37",
"OHRTHR49",
"OHRTHR45",
"OHRTHR44",
"OHRTHR47",
"OHRTHR46",
"OHRTHR42",
"OHRTHR29",
"OHRTHR02",
"OHRTHR05",
"OHRTHR04",
"OHRTHR07",
"OHRTHR06",
"OHRTHR09",
"OHRTHR08",
"OHRTHR21",
"OHRTHR27",
"OHRTHR26",
"OHRTHR25",
"OHRTHR24",
"OHRTHR03",
]
time_step = 32.8
[docs] def calc(self, data):
HMAX35 = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
HMAX35 = np.max([HMAX35, data[names].vals], axis=0)
return HMAX35
# --------------------------------------------
[docs]class DP_HMCSAVE(DerivedParameterThermal):
rootparams = [
"OHRTHR10",
"OHRTHR58",
"OHRTHR52",
"OHRTHR53",
"OHRTHR56",
"OHRTHR57",
"OHRTHR54",
"OHRTHR55",
"OHRTHR12",
"OHRTHR35",
"OHRTHR11",
"OHRTHR08",
"OHRTHR09",
"OHRTHR31",
"OHRTHR33",
"OHRTHR34",
"OHRTHR13",
"OHRTHR36",
"OHRTHR37",
]
time_step = 32.8
[docs] def calc(self, data):
P_SUM = (
data["OHRTHR10"].vals
+ data["OHRTHR11"].vals
+ data["OHRTHR34"].vals
+ data["OHRTHR35"].vals
+ data["OHRTHR55"].vals
+ data["OHRTHR56"].vals
)
H_SUM = (
data["OHRTHR12"].vals
+ data["OHRTHR13"].vals
+ data["OHRTHR36"].vals
+ data["OHRTHR37"].vals
+ data["OHRTHR57"].vals
+ data["OHRTHR58"].vals
)
CAP_SUM = (
data["OHRTHR08"].vals
+ data["OHRTHR09"].vals
+ data["OHRTHR31"].vals
+ data["OHRTHR33"].vals
+ data["OHRTHR52"].vals
+ data["OHRTHR53"].vals
+ data["OHRTHR54"].vals
)
HMCSAVE = (CAP_SUM + P_SUM + H_SUM) / 19.0
return HMCSAVE
# --------------------------------------------
[docs]class DP_HMIN35(DerivedParameterThermal):
rootparams = [
"OHRTHR52",
"OHRTHR53",
"OHRTHR50",
"OHRTHR51",
"OHRTHR56",
"OHRTHR55",
"OHRTHR23",
"OHRTHR08",
"OHRTHR30",
"OHRTHR33",
"OHRTHR12",
"OHRTHR13",
"OHRTHR36",
"OHRTHR11",
"OHRTHR10",
"OHRTHR37",
"OHRTHR49",
"OHRTHR45",
"OHRTHR44",
"OHRTHR47",
"OHRTHR46",
"OHRTHR42",
"OHRTHR29",
"OHRTHR02",
"OHRTHR05",
"OHRTHR04",
"OHRTHR07",
"OHRTHR06",
"OHRTHR09",
"OHRTHR22",
"OHRTHR21",
"OHRTHR27",
"OHRTHR26",
"OHRTHR25",
"OHRTHR24",
"OHRTHR03",
]
time_step = 32.8
[docs] def calc(self, data):
HMIN35 = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
HMIN35 = np.min([HMIN35, data[names].vals], axis=0)
return HMIN35
# --------------------------------------------
[docs]class DP_HRMA_AVE(DerivedParameterThermal):
rootparams = [
"OHRTHR52",
"OHRTHR53",
"OHRTHR50",
"OHRTHR51",
"OHRTHR56",
"OHRTHR55",
"OHRTHR09",
"OHRTHR08",
"OHRTHR30",
"OHRTHR33",
"OHRTHR12",
"OHRTHR13",
"OHRTHR10",
"OHRTHR11",
"OHRTHR36",
"OHRTHR37",
"OHRTHR49",
"OHRTHR45",
"OHRTHR44",
"OHRTHR47",
"OHRTHR46",
"OHRTHR42",
"OHRTHR29",
"OHRTHR02",
"OHRTHR05",
"OHRTHR04",
"OHRTHR07",
"OHRTHR06",
"OHRTHR23",
"OHRTHR22",
"OHRTHR21",
"OHRTHR27",
"OHRTHR26",
"OHRTHR25",
"OHRTHR24",
"OHRTHR03",
]
time_step = 32.8
[docs] def calc(self, data):
HSUM = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
HSUM = HSUM + data[names].vals
HRMA_AVE = HSUM / 36
return HRMA_AVE
# --------------------------------------------
[docs]class DP_HRMHCHK(DerivedParameterThermal):
rootparams = [
"OHRTHR52",
"OHRTHR53",
"OHRTHR50",
"OHRTHR51",
"OHRTHR56",
"OHRTHR55",
"OHRTHR09",
"OHRTHR08",
"OHRTHR30",
"OHRTHR33",
"OHRTHR12",
"OHRTHR13",
"OHRTHR10",
"OHRTHR11",
"OHRTHR36",
"OHRTHR37",
"OHRTHR49",
"OHRTHR45",
"OHRTHR44",
"OHRTHR47",
"OHRTHR46",
"OHRTHR42",
"OHRTHR03",
"OHRTHR02",
"OHRTHR05",
"OHRTHR04",
"OHRTHR07",
"OHRTHR06",
"OHRTHR23",
"OHRTHR22",
"OHRTHR21",
"OHRTHR27",
"OHRTHR26",
"OHRTHR25",
"OHRTHR24",
"OHRTHR29",
]
time_step = 32.8
[docs] def calc(self, data):
HMIN35 = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
HMIN35 = np.min([HMIN35, data[names].vals], axis=0)
HMAX35 = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
HMAX35 = np.max([HMAX35, data[names].vals], axis=0)
HRMHCHK = HMAX35 - HMIN35
return HRMHCHK
# --------------------------------------------
[docs]class DP_OBAAG(DerivedParameterThermal):
rootparams = [
"4RT704T",
"4RT705T",
"4RT708T",
"4RT707T",
"4RT709T",
"4RT711T",
"4RT700T",
"4RT702T",
"4RT701T",
"4RT703T",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
"OOBTHR62",
"OOBTHR63",
"4RT706T",
"4RT710T",
]
time_step = 32.8
[docs] def calc(self, data):
AVE2 = (
data["4RT705T"].vals
+ data["4RT706T"].vals
+ data["4RT707T"].vals
+ data["4RT708T"].vals
+ data["4RT709T"].vals
+ data["4RT710T"].vals
+ data["4RT711T"].vals
)
AVE1 = (
data["OOBTHR62"].vals
+ data["OOBTHR63"].vals
+ data["4RT700T"].vals
+ data["4RT701T"].vals
+ data["4RT702T"].vals
+ data["4RT703T"].vals
+ data["4RT704T"].vals
)
DIAVE = (
data["OOBTHR31"].vals + data["OOBTHR33"].vals + data["OOBTHR34"].vals
) / 3
AXAVE = (AVE1 + AVE2) / 14
OBAAG = AXAVE - DIAVE
return OBAAG
# --------------------------------------------
[docs]class DP_OBAAGW(DerivedParameterThermal):
rootparams = [
"4RT705T",
"4RT707T",
"4RT709T",
"4RT711T",
"4RT701T",
"4RT703T",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
]
time_step = 32.8
[docs] def calc(self, data):
AFT_FIT = (
data["OOBTHR31"].vals + data["OOBTHR33"].vals + data["OOBTHR34"].vals
) / 3
FWD_FIT = (
data["4RT701T"].vals
+ data["4RT703T"].vals
+ data["4RT705T"].vals
+ data["4RT707T"].vals
+ data["4RT709T"].vals
+ data["4RT711T"].vals
) / 6
OBAAGW = FWD_FIT - AFT_FIT
return OBAAGW
# --------------------------------------------
[docs]class DP_OBACAVE(DerivedParameterThermal):
rootparams = [
"OOBTHR19",
"OOBTHR18",
"OOBTHR15",
"OOBTHR14",
"OOBTHR17",
"OOBTHR11",
"OOBTHR10",
"OOBTHR13",
"OOBTHR12",
"OOBTHR30",
"OOBTHR08",
"OOBTHR09",
"OOBTHR24",
"OOBTHR25",
"OOBTHR26",
"OOBTHR27",
"OOBTHR20",
"OOBTHR21",
"OOBTHR22",
"OOBTHR23",
"OOBTHR28",
"OOBTHR29",
]
time_step = 32.8
[docs] def calc(self, data):
MIDCONE = (
data["OOBTHR19"].vals
+ data["OOBTHR20"].vals
+ data["OOBTHR21"].vals
+ data["OOBTHR22"].vals
+ data["OOBTHR23"].vals
+ data["OOBTHR24"].vals
+ data["OOBTHR25"].vals
)
AFTCONE = (
data["OOBTHR26"].vals
+ data["OOBTHR27"].vals
+ data["OOBTHR28"].vals
+ data["OOBTHR29"].vals
+ data["OOBTHR30"].vals
)
FWDCONE = (
data["OOBTHR08"].vals
+ data["OOBTHR09"].vals
+ data["OOBTHR10"].vals
+ data["OOBTHR11"].vals
+ data["OOBTHR12"].vals
+ data["OOBTHR13"].vals
+ data["OOBTHR14"].vals
+ data["OOBTHR15"].vals
+ data["OOBTHR17"].vals
+ data["OOBTHR18"].vals
)
OBACAVE = (FWDCONE + MIDCONE + AFTCONE) / 22
return OBACAVE
# --------------------------------------------
[docs]class DP_OBACAVEW(DerivedParameterThermal):
rootparams = [
"4RT705T",
"OOBTHR19",
"4RT707T",
"OOBTHR15",
"OOBTHR14",
"4RT711T",
"OOBTHR11",
"OOBTHR10",
"OOBTHR13",
"4RT701T",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
"OOBTHR30",
"OOBTHR18",
"4RT709T",
"4RT703T",
"OOBTHR17",
"OOBTHR08",
"OOBTHR09",
"OOBTHR24",
"OOBTHR25",
"OOBTHR26",
"OOBTHR27",
"OOBTHR20",
"OOBTHR21",
"OOBTHR22",
"OOBTHR23",
"OOBTHR12",
"OOBTHR28",
"OOBTHR29",
]
time_step = 32.8
[docs] def calc(self, data):
FWD_FIT = (
data["4RT701T"].vals
+ data["4RT703T"].vals
+ data["4RT705T"].vals
+ data["4RT707T"].vals
+ data["4RT709T"].vals
+ data["4RT711T"].vals
) / 6
AFTCONE = (
data["OOBTHR26"].vals
+ data["OOBTHR27"].vals
+ data["OOBTHR28"].vals
+ data["OOBTHR29"].vals
+ data["OOBTHR30"].vals
)
AFT_FIT = (
data["OOBTHR31"].vals + data["OOBTHR33"].vals + data["OOBTHR34"].vals
) / 3
MIDCONE = (
data["OOBTHR19"].vals
+ data["OOBTHR20"].vals
+ data["OOBTHR21"].vals
+ data["OOBTHR22"].vals
+ data["OOBTHR23"].vals
+ data["OOBTHR24"].vals
+ data["OOBTHR25"].vals
)
FWDCONE = (
data["OOBTHR08"].vals
+ data["OOBTHR09"].vals
+ data["OOBTHR10"].vals
+ data["OOBTHR11"].vals
+ data["OOBTHR12"].vals
+ data["OOBTHR13"].vals
+ data["OOBTHR14"].vals
+ data["OOBTHR15"].vals
+ data["OOBTHR17"].vals
+ data["OOBTHR18"].vals
)
OBACAVE = (FWDCONE + MIDCONE + AFTCONE) / 22
OBACAVEW = (OBACAVE * 148.0 - FWD_FIT * 70.0 - AFT_FIT * 29.0) / 49.0
return OBACAVEW
# --------------------------------------------
[docs]class DP_OBADIG(DerivedParameterThermal):
rootparams = [
"OOBTHR08",
"OOBTHR19",
"OOBTHR31",
"OOBTHR13",
"OOBTHR26",
"OOBTHR34",
"OOBTHR33",
"OOBTHR22",
"OOBTHR23",
"OOBTHR60",
"OOBTHR61",
"OOBTHR28",
"OOBTHR29",
]
time_step = 32.8
[docs] def calc(self, data):
MZSAVE = (
data["OOBTHR08"].vals
+ data["OOBTHR19"].vals
+ data["OOBTHR26"].vals
+ data["OOBTHR31"].vals
+ data["OOBTHR60"].vals
) / 5
PZSAVE = (
data["OOBTHR13"].vals
+ data["OOBTHR22"].vals
+ data["OOBTHR23"].vals
+ data["OOBTHR28"].vals
+ data["OOBTHR29"].vals
+ data["OOBTHR61"].vals
+ data["OOBTHR33"].vals
+ data["OOBTHR34"].vals
) / 8
OBADIG = MZSAVE - PZSAVE
return OBADIG
# --------------------------------------------
[docs]class DP_OBADIGW(DerivedParameterThermal):
rootparams = [
"OOBTHR08",
"4RT705T",
"OOBTHR19",
"4RT707T",
"OOBTHR22",
"4RT711T",
"OOBTHR13",
"4RT701T",
"OOBTHR26",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
"OOBTHR23",
"OOBTHR60",
"OOBTHR61",
"OOBTHR28",
"OOBTHR29",
]
time_step = 32.8
[docs] def calc(self, data):
FWD_FIT_PZ = (data["4RT705T"].vals + data["4RT707T"].vals) / 2.0 * 70.0
AFT_FIT_MZ = data["OOBTHR31"].vals * 29.0
PZSAVE = (
data["OOBTHR13"].vals
+ data["OOBTHR22"].vals
+ data["OOBTHR23"].vals
+ data["OOBTHR28"].vals
+ data["OOBTHR29"].vals
+ data["OOBTHR61"].vals
+ data["OOBTHR33"].vals
+ data["OOBTHR34"].vals
) / 8
MZSAVE = (
data["OOBTHR08"].vals
+ data["OOBTHR19"].vals
+ data["OOBTHR26"].vals
+ data["OOBTHR31"].vals
+ data["OOBTHR60"].vals
) / 5
AFT_FIT_PZ = (data["OOBTHR33"].vals + data["OOBTHR34"].vals) / 2 * 29.0
FWD_FIT_MZ = (data["4RT701T"].vals + data["4RT711T"].vals) / 2.0 * 70.0
OBADIG = MZSAVE - PZSAVE
OBADIGW = (
OBADIG * 148.0 - (FWD_FIT_MZ - FWD_FIT_PZ) - (AFT_FIT_MZ - AFT_FIT_PZ)
) / 49.0
return OBADIGW
# --------------------------------------------
[docs]class DP_OBA_AVE(DerivedParameterThermal):
rootparams = [
"OOBTHR19",
"OOBTHR18",
"OOBTHR15",
"OOBTHR14",
"OOBTHR17",
"OOBTHR11",
"OOBTHR10",
"OOBTHR13",
"OOBTHR12",
"OOBTHR37",
"OOBTHR36",
"OOBTHR35",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
"OOBTHR30",
"OOBTHR39",
"OOBTHR38",
"OOBTHR08",
"OOBTHR09",
"OOBTHR24",
"OOBTHR25",
"OOBTHR26",
"OOBTHR27",
"OOBTHR20",
"OOBTHR21",
"OOBTHR22",
"OOBTHR23",
"OOBTHR46",
"OOBTHR44",
"OOBTHR45",
"OOBTHR28",
"OOBTHR29",
"OOBTHR40",
"OOBTHR41",
]
time_step = 32.8
[docs] def calc(self, data):
OSUM = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
OSUM = OSUM + data[names].vals
OBA_AVE = OSUM / 35
return OBA_AVE
# --------------------------------------------
[docs]class DP_OMAX34(DerivedParameterThermal):
rootparams = [
"OOBTHR19",
"OOBTHR18",
"OOBTHR15",
"OOBTHR14",
"OOBTHR17",
"OOBTHR11",
"OOBTHR10",
"OOBTHR13",
"OOBTHR12",
"OOBTHR37",
"OOBTHR36",
"OOBTHR35",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
"OOBTHR30",
"OOBTHR39",
"OOBTHR38",
"OOBTHR28",
"OOBTHR08",
"OOBTHR09",
"OOBTHR24",
"OOBTHR25",
"OOBTHR26",
"OOBTHR27",
"OOBTHR20",
"OOBTHR21",
"OOBTHR22",
"OOBTHR23",
"OOBTHR46",
"OOBTHR45",
"OOBTHR42",
"OOBTHR29",
"OOBTHR40",
"OOBTHR41",
]
time_step = 32.8
[docs] def calc(self, data):
OMAX34 = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
OMAX34 = np.max([OMAX34, data[names].vals], axis=0)
return OMAX34
# --------------------------------------------
[docs]class DP_OMIN34(DerivedParameterThermal):
rootparams = [
"OOBTHR19",
"OOBTHR18",
"OOBTHR15",
"OOBTHR14",
"OOBTHR17",
"OOBTHR11",
"OOBTHR10",
"OOBTHR13",
"OOBTHR12",
"OOBTHR37",
"OOBTHR36",
"OOBTHR35",
"OOBTHR34",
"OOBTHR33",
"OOBTHR31",
"OOBTHR30",
"OOBTHR39",
"OOBTHR38",
"OOBTHR28",
"OOBTHR08",
"OOBTHR09",
"OOBTHR24",
"OOBTHR25",
"OOBTHR26",
"OOBTHR27",
"OOBTHR20",
"OOBTHR21",
"OOBTHR22",
"OOBTHR23",
"OOBTHR46",
"OOBTHR45",
"OOBTHR42",
"OOBTHR29",
"OOBTHR40",
"OOBTHR41",
]
time_step = 32.8
[docs] def calc(self, data):
OMIN34 = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
OMIN34 = np.min([OMIN34, data[names].vals], axis=0)
return OMIN34
# --------------------------------------------
[docs]class DP_P01(DerivedParameterThermal):
"""Zone 1 heater power"""
rootparams = ["ELBV", "4OHTRZ01"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P01 = data["4OHTRZ01"].vals * VSQUARED / 110.2
return P01
# --------------------------------------------
[docs]class DP_P02(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ02"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P02 = data["4OHTRZ02"].vals * VSQUARED / 109.7
return P02
# --------------------------------------------
[docs]class DP_P03(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ03"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P03 = data["4OHTRZ03"].vals * VSQUARED / 109.4
return P03
# --------------------------------------------
[docs]class DP_P04(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ04"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P04 = data["4OHTRZ04"].vals * VSQUARED / 175.9
return P04
# --------------------------------------------
[docs]class DP_P05(DerivedParameterThermal):
rootparams = ["4OHTRZ05", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P05 = data["4OHTRZ05"].vals * VSQUARED / 175.7
return P05
# --------------------------------------------
[docs]class DP_P06(DerivedParameterThermal):
rootparams = ["4OHTRZ06", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P06 = data["4OHTRZ06"].vals * VSQUARED / 175.6
return P06
# --------------------------------------------
[docs]class DP_P07(DerivedParameterThermal):
rootparams = ["4OHTRZ07", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P07 = data["4OHTRZ07"].vals * VSQUARED / 135.8
return P07
# --------------------------------------------
[docs]class DP_P08(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ08"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P08 = data["4OHTRZ08"].vals * VSQUARED / 36.1
return P08
# --------------------------------------------
[docs]class DP_P09(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ09"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P09 = data["4OHTRZ09"].vals * VSQUARED / 32.6
return P09
# --------------------------------------------
[docs]class DP_P10(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ10"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P10 = data["4OHTRZ10"].vals * VSQUARED / 34.9
return P10
# --------------------------------------------
[docs]class DP_P11(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ11"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P11 = data["4OHTRZ11"].vals * VSQUARED / 39.4
return P11
# --------------------------------------------
[docs]class DP_P12(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ12"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P12 = data["4OHTRZ12"].vals * VSQUARED / 40.3
return P12
# --------------------------------------------
[docs]class DP_P13(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ13"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P13 = data["4OHTRZ13"].vals * VSQUARED / 39.7
return P13
# --------------------------------------------
[docs]class DP_P14(DerivedParameterThermal):
rootparams = ["4OHTRZ14", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P14 = data["4OHTRZ14"].vals * VSQUARED / 41.2
return P14
# --------------------------------------------
[docs]class DP_P15(DerivedParameterThermal):
rootparams = ["4OHTRZ15", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P15 = data["4OHTRZ15"].vals * VSQUARED / 40.5
return P15
# --------------------------------------------
[docs]class DP_P16(DerivedParameterThermal):
rootparams = ["4OHTRZ16", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P16 = data["4OHTRZ16"].vals * VSQUARED / 41.3
return P16
# --------------------------------------------
[docs]class DP_P17(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ17"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P17 = data["4OHTRZ17"].vals * VSQUARED / 116.0
return P17
# --------------------------------------------
[docs]class DP_P18(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ18"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P18 = data["4OHTRZ18"].vals * VSQUARED / 115.7
return P18
# --------------------------------------------
[docs]class DP_P19(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ19"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P19 = data["4OHTRZ19"].vals * VSQUARED / 95.3
return P19
# --------------------------------------------
[docs]class DP_P20(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ20"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P20 = data["4OHTRZ20"].vals * VSQUARED / 379.0
return P20
# --------------------------------------------
[docs]class DP_P23(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ23"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P23 = data["4OHTRZ23"].vals * VSQUARED / 386.0
return P23
# --------------------------------------------
[docs]class DP_P24(DerivedParameterThermal):
rootparams = ["4OHTRZ24", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P24 = data["4OHTRZ24"].vals * VSQUARED / 385.8
return P24
# --------------------------------------------
[docs]class DP_P25(DerivedParameterThermal):
rootparams = ["4OHTRZ25", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P25 = data["4OHTRZ25"].vals * VSQUARED / 383.0
return P25
# --------------------------------------------
[docs]class DP_P26(DerivedParameterThermal):
rootparams = ["4OHTRZ26", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P26 = data["4OHTRZ26"].vals * VSQUARED / 383.5
return P26
# --------------------------------------------
[docs]class DP_P27(DerivedParameterThermal):
rootparams = ["4OHTRZ27", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P27 = data["4OHTRZ27"].vals * VSQUARED / 383.0
return P27
# --------------------------------------------
[docs]class DP_P28(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ28", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P28 = data["4OHTRZ28"].vals * VSQUARED / 382.3
return P28
# --------------------------------------------
[docs]class DP_P29(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ29", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P29 = data["4OHTRZ29"].vals * VSQUARED / 384.0
return P29
# --------------------------------------------
[docs]class DP_P30(DerivedParameterThermal):
rootparams = ["4OHTRZ30", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P30 = data["4OHTRZ30"].vals * VSQUARED / 383.0
return P30
# --------------------------------------------
[docs]class DP_P31(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ31"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P31 = data["4OHTRZ31"].vals * VSQUARED / 32.2
return P31
# --------------------------------------------
[docs]class DP_P32(DerivedParameterThermal):
rootparams = ["4OHTRZ32", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P32 = data["4OHTRZ32"].vals * VSQUARED / 28.6
return P32
# --------------------------------------------
[docs]class DP_P33(DerivedParameterThermal):
rootparams = ["4OHTRZ33", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P33 = data["4OHTRZ33"].vals * VSQUARED / 36.9
return P33
# --------------------------------------------
[docs]class DP_P34(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ34"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P34 = data["4OHTRZ34"].vals * VSQUARED / 28.0
return P34
# --------------------------------------------
[docs]class DP_P35(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ35", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P35 = data["4OHTRZ35"].vals * VSQUARED / 32.2
return P35
# --------------------------------------------
[docs]class DP_P36(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ36"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P36 = data["4OHTRZ36"].vals * VSQUARED / 44.3
return P36
# --------------------------------------------
[docs]class DP_P37(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ37"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P37 = data["4OHTRZ37"].vals * VSQUARED / 32.1
return P37
# --------------------------------------------
[docs]class DP_P38(DerivedParameterThermal):
rootparams = ["4OHTRZ38", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P38 = data["4OHTRZ38"].vals * VSQUARED / 27.8
return P38
# --------------------------------------------
[docs]class DP_P39(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ39"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P39 = data["4OHTRZ39"].vals * VSQUARED / 36.8
return P39
# --------------------------------------------
[docs]class DP_P40(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ40"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P40 = data["4OHTRZ40"].vals * VSQUARED / 28.3
return P40
# --------------------------------------------
[docs]class DP_P41(DerivedParameterThermal):
rootparams = ["4OHTRZ41", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P41 = data["4OHTRZ41"].vals * VSQUARED / 61.7
return P41
# --------------------------------------------
[docs]class DP_P42(DerivedParameterThermal):
rootparams = ["4OHTRZ42", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P42 = data["4OHTRZ42"].vals * VSQUARED / 51.7
return P42
# --------------------------------------------
[docs]class DP_P43(DerivedParameterThermal):
rootparams = ["4OHTRZ43", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P43 = data["4OHTRZ43"].vals * VSQUARED / 36.8
return P43
# --------------------------------------------
[docs]class DP_P44(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ44", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P44 = data["4OHTRZ44"].vals * VSQUARED / 36.9
return P44
# --------------------------------------------
[docs]class DP_P45(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ45", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P45 = data["4OHTRZ45"].vals * VSQUARED / 36.8
return P45
# --------------------------------------------
[docs]class DP_P46(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ46", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P46 = data["4OHTRZ46"].vals * VSQUARED / 36.5
return P46
# --------------------------------------------
[docs]class DP_P47(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ47", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P47 = data["4OHTRZ47"].vals * VSQUARED / 52.3
return P47
# --------------------------------------------
[docs]class DP_P48(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ48", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P48 = data["4OHTRZ48"].vals * VSQUARED / 79.5
return P48
# --------------------------------------------
[docs]class DP_P49(DerivedParameterThermal):
rootparams = ["4OHTRZ49", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P49 = data["4OHTRZ49"].vals * VSQUARED / 34.8
return P49
# --------------------------------------------
[docs]class DP_P50(DerivedParameterThermal):
rootparams = ["4OHTRZ50", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_4OHTRZ50(data)
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P50 = data["4OHTRZ50"].vals * VSQUARED / 35.2
return P50
# --------------------------------------------
[docs]class DP_P51(DerivedParameterThermal):
rootparams = ["4OHTRZ51", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P51 = data["4OHTRZ51"].vals * VSQUARED / 35.4
return P51
# --------------------------------------------
[docs]class DP_P52(DerivedParameterThermal):
rootparams = ["4OHTRZ52", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P52 = data["4OHTRZ52"].vals * VSQUARED / 34.4
return P52
# --------------------------------------------
[docs]class DP_P53(DerivedParameterThermal):
rootparams = ["4OHTRZ53", "ELBV", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P53 = data["4OHTRZ53"].vals * VSQUARED / 94.1
return P53
# --------------------------------------------
[docs]class DP_P54(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ54", "4S1PWR05", "4S1PWR06"]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P54 = data["4OHTRZ54"].vals * VSQUARED / 124.4
return P54
# --------------------------------------------
[docs]class DP_P55(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ55"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P55 = data["4OHTRZ55"].vals * VSQUARED / 126.8
return P55
# --------------------------------------------
[docs]class DP_P57(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ57"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P57 = data["4OHTRZ57"].vals * VSQUARED / 142.3
return P57
# --------------------------------------------
[docs]class DP_P58(DerivedParameterThermal):
rootparams = ["4OHTRZ58", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P58 = data["4OHTRZ58"].vals * VSQUARED / 83.7
return P58
# --------------------------------------------
[docs]class DP_P59(DerivedParameterThermal):
rootparams = ["4OHTRZ59", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P59 = data["4OHTRZ59"].vals * VSQUARED / 29.7
return P59
# --------------------------------------------
[docs]class DP_P60(DerivedParameterThermal):
rootparams = ["4OHTRZ60", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P60 = data["4OHTRZ60"].vals * VSQUARED / 30.7
return P60
# --------------------------------------------
[docs]class DP_P61(DerivedParameterThermal):
rootparams = ["4OHTRZ61", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P61 = data["4OHTRZ61"].vals * VSQUARED / 33.7
return P61
# --------------------------------------------
[docs]class DP_P62(DerivedParameterThermal):
rootparams = ["4OHTRZ62", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P62 = data["4OHTRZ62"].vals * VSQUARED / 36.1
return P62
# --------------------------------------------
[docs]class DP_P63(DerivedParameterThermal):
rootparams = ["4OHTRZ63", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P63 = data["4OHTRZ63"].vals * VSQUARED / 36.1
return P63
# --------------------------------------------
[docs]class DP_P64(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ64"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P64 = data["4OHTRZ64"].vals * VSQUARED / 44.1
return P64
# --------------------------------------------
[docs]class DP_P65(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ65"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P65 = data["4OHTRZ65"].vals * VSQUARED / 37.5
return P65
# --------------------------------------------
[docs]class DP_P66(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ66"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P66 = data["4OHTRZ66"].vals * VSQUARED / 29.8
return P66
# --------------------------------------------
[docs]class DP_P67(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ67"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P67 = data["4OHTRZ67"].vals * VSQUARED / 52.0
return P67
# --------------------------------------------
[docs]class DP_P68(DerivedParameterThermal):
rootparams = ["4OHTRZ68", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P68 = data["4OHTRZ68"].vals * VSQUARED / 29.0
return P68
# --------------------------------------------
[docs]class DP_P69(DerivedParameterThermal):
rootparams = ["4OHTRZ69", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P69 = data["4OHTRZ69"].vals * VSQUARED / 37.5
return P69
# --------------------------------------------
[docs]class DP_P75(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ75"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P75 = data["4OHTRZ75"].vals * VSQUARED / 130.2
return P75
# --------------------------------------------
[docs]class DP_P76(DerivedParameterThermal):
rootparams = ["4OHTRZ76", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P76 = data["4OHTRZ76"].vals * VSQUARED / 133.4
return P76
# --------------------------------------------
[docs]class DP_P77(DerivedParameterThermal):
rootparams = ["4OHTRZ77", "ELBV"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P77 = data["4OHTRZ77"].vals * VSQUARED / 131.5
return P77
# --------------------------------------------
[docs]class DP_P78(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ78"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P78 = data["4OHTRZ78"].vals * VSQUARED / 133.2
return P78
# --------------------------------------------
[docs]class DP_P79(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ79"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P79 = data["4OHTRZ79"].vals * VSQUARED / 133.1
return P79
# --------------------------------------------
[docs]class DP_P80(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ80"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P80 = data["4OHTRZ80"].vals * VSQUARED / 133.0
return P80
# --------------------------------------------
[docs]class DP_PABH(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ53",
"4OHTRZ54",
"4OHTRZ55",
"4OHTRZ57",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P53 = data["4OHTRZ53"].vals * VSQUARED / 94.1
P54 = data["4OHTRZ54"].vals * VSQUARED / 124.4
P55 = data["4OHTRZ55"].vals * VSQUARED / 126.8
P57 = data["4OHTRZ57"].vals * VSQUARED / 142.3
PABH = P53 + P54 + P55 + P57
return PABH
# --------------------------------------------
[docs]class DP_PAFTCONE(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ48",
"4OHTRZ49",
"4OHTRZ50",
"4OHTRZ51",
"4OHTRZ52",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_4OHTRZ50(data)
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P48 = data["4OHTRZ48"].vals * VSQUARED / 79.5
P49 = data["4OHTRZ49"].vals * VSQUARED / 34.8
P50 = data["4OHTRZ50"].vals * VSQUARED / 35.2
P51 = data["4OHTRZ51"].vals * VSQUARED / 35.4
P52 = data["4OHTRZ52"].vals * VSQUARED / 34.4
PAFTCONE = P48 + P49 + P50 + P51 + P52
return PAFTCONE
# --------------------------------------------
[docs]class DP_PAFTCYL(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ66", "4OHTRZ67", "4OHTRZ68"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P66 = data["4OHTRZ66"].vals * VSQUARED / 29.8
P67 = data["4OHTRZ67"].vals * VSQUARED / 52.0
P68 = data["4OHTRZ68"].vals * VSQUARED / 29.0
PAFTCYL = P66 + P67 + P68
return PAFTCYL
# --------------------------------------------
[docs]class DP_PAHP(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ11", "4OHTRZ12", "4OHTRZ13"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P11 = data["4OHTRZ11"].vals * VSQUARED / 39.4
P12 = data["4OHTRZ12"].vals * VSQUARED / 40.3
P13 = data["4OHTRZ13"].vals * VSQUARED / 39.7
PAHP = P11 + P12 + P13
return PAHP
# --------------------------------------------
[docs]class DP_PCONE(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ61", "4OHTRZ62", "4OHTRZ63"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P61 = data["4OHTRZ61"].vals * VSQUARED / 33.7
P62 = data["4OHTRZ62"].vals * VSQUARED / 36.1
P63 = data["4OHTRZ63"].vals * VSQUARED / 36.1
PCONE = P61 + P62 + P63
return PCONE
# --------------------------------------------
[docs]class DP_PFAP(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ01",
"4OHTRZ02",
"4OHTRZ03",
"4OHTRZ04",
"4OHTRZ05",
"4OHTRZ06",
"4OHTRZ07",
]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P01 = data["4OHTRZ01"].vals * VSQUARED / 110.2
P02 = data["4OHTRZ02"].vals * VSQUARED / 109.7
P03 = data["4OHTRZ03"].vals * VSQUARED / 109.4
P04 = data["4OHTRZ04"].vals * VSQUARED / 175.9
P05 = data["4OHTRZ05"].vals * VSQUARED / 175.7
P06 = data["4OHTRZ06"].vals * VSQUARED / 175.6
P07 = data["4OHTRZ07"].vals * VSQUARED / 135.8
PFAP = P01 + P02 + P03 + P04 + P05 + P06 + P07
return PFAP
# --------------------------------------------
[docs]class DP_PFWDCONE(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ31",
"4OHTRZ32",
"4OHTRZ33",
"4OHTRZ34",
"4OHTRZ35",
"4OHTRZ36",
"4OHTRZ37",
"4OHTRZ38",
"4OHTRZ39",
"4OHTRZ40",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P31 = data["4OHTRZ31"].vals * VSQUARED / 32.2
P32 = data["4OHTRZ32"].vals * VSQUARED / 28.6
P33 = data["4OHTRZ33"].vals * VSQUARED / 36.9
P34 = data["4OHTRZ34"].vals * VSQUARED / 28.0
P35 = data["4OHTRZ35"].vals * VSQUARED / 32.2
P36 = data["4OHTRZ36"].vals * VSQUARED / 44.3
P37 = data["4OHTRZ37"].vals * VSQUARED / 32.1
P38 = data["4OHTRZ38"].vals * VSQUARED / 27.8
P39 = data["4OHTRZ39"].vals * VSQUARED / 36.8
P40 = data["4OHTRZ40"].vals * VSQUARED / 28.3
PFWDCONE = P31 + P32 + P33 + P34 + P35 + P36 + P37 + P38 + P39 + P40
return PFWDCONE
# --------------------------------------------
[docs]class DP_PFWDCYL(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ58", "4OHTRZ59", "4OHTRZ60"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P58 = data["4OHTRZ58"].vals * VSQUARED / 83.7
P59 = data["4OHTRZ59"].vals * VSQUARED / 29.7
P60 = data["4OHTRZ60"].vals * VSQUARED / 30.7
PFWDCYL = P58 + P59 + P60
return PFWDCYL
# --------------------------------------------
[docs]class DP_PHRMA(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ01",
"4OHTRZ02",
"4OHTRZ03",
"4OHTRZ04",
"4OHTRZ05",
"4OHTRZ06",
"4OHTRZ07",
"4OHTRZ08",
"4OHTRZ09",
"4OHTRZ10",
"4OHTRZ11",
"4OHTRZ12",
"4OHTRZ13",
"4OHTRZ14",
"4OHTRZ15",
"4OHTRZ16",
"4OHTRZ17",
"4OHTRZ18",
"4OHTRZ19",
"4OHTRZ20",
"4OHTRZ23",
"4OHTRZ24",
]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P01 = data["4OHTRZ01"].vals * VSQUARED / 110.2
P02 = data["4OHTRZ02"].vals * VSQUARED / 109.7
P03 = data["4OHTRZ03"].vals * VSQUARED / 109.4
P04 = data["4OHTRZ04"].vals * VSQUARED / 175.9
P05 = data["4OHTRZ05"].vals * VSQUARED / 175.7
P06 = data["4OHTRZ06"].vals * VSQUARED / 175.6
P07 = data["4OHTRZ07"].vals * VSQUARED / 135.8
P08 = data["4OHTRZ08"].vals * VSQUARED / 36.1
P09 = data["4OHTRZ09"].vals * VSQUARED / 32.6
P10 = data["4OHTRZ10"].vals * VSQUARED / 34.9
P11 = data["4OHTRZ11"].vals * VSQUARED / 39.4
P12 = data["4OHTRZ12"].vals * VSQUARED / 40.3
P13 = data["4OHTRZ13"].vals * VSQUARED / 39.7
P14 = data["4OHTRZ14"].vals * VSQUARED / 41.2
P15 = data["4OHTRZ15"].vals * VSQUARED / 40.5
P16 = data["4OHTRZ16"].vals * VSQUARED / 41.3
P17 = data["4OHTRZ17"].vals * VSQUARED / 116.0
P18 = data["4OHTRZ18"].vals * VSQUARED / 115.7
P19 = data["4OHTRZ19"].vals * VSQUARED / 95.3
P20 = data["4OHTRZ20"].vals * VSQUARED / 379.0
P23 = data["4OHTRZ23"].vals * VSQUARED / 386.0
P24 = data["4OHTRZ24"].vals * VSQUARED / 385.8
PHRMA = (
P01
+ P02
+ P03
+ P04
+ P05
+ P06
+ P07
+ P08
+ P09
+ P10
+ P11
+ P12
+ P13
+ P14
+ P15
+ P16
+ P17
+ P18
+ P19
+ P20
+ P23
+ P24
)
return PHRMA
# --------------------------------------------
[docs]class DP_PHRMASTRUTS(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ25",
"4OHTRZ26",
"4OHTRZ27",
"4OHTRZ28",
"4OHTRZ29",
"4OHTRZ30",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P25 = data["4OHTRZ25"].vals * VSQUARED / 383.0
P26 = data["4OHTRZ26"].vals * VSQUARED / 383.5
P27 = data["4OHTRZ27"].vals * VSQUARED / 383.0
P28 = data["4OHTRZ28"].vals * VSQUARED / 382.3
P29 = data["4OHTRZ29"].vals * VSQUARED / 384.0
P30 = data["4OHTRZ30"].vals * VSQUARED / 383.0
PHRMASTRUTS = P25 + P26 + P27 + P28 + P29 + P30
return PHRMASTRUTS
# --------------------------------------------
[docs]class DP_PIC(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ23", "4OHTRZ24"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P23 = data["4OHTRZ23"].vals * VSQUARED / 386.0
P24 = data["4OHTRZ24"].vals * VSQUARED / 385.8
PIC = P23 + P24
return PIC
# --------------------------------------------
[docs]class DP_PMIDCONE(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ41",
"4OHTRZ42",
"4OHTRZ43",
"4OHTRZ44",
"4OHTRZ45",
"4OHTRZ46",
"4OHTRZ47",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P41 = data["4OHTRZ41"].vals * VSQUARED / 61.7
P42 = data["4OHTRZ42"].vals * VSQUARED / 51.7
P43 = data["4OHTRZ43"].vals * VSQUARED / 36.8
P44 = data["4OHTRZ44"].vals * VSQUARED / 36.9
P45 = data["4OHTRZ45"].vals * VSQUARED / 36.8
P46 = data["4OHTRZ46"].vals * VSQUARED / 36.5
P47 = data["4OHTRZ47"].vals * VSQUARED / 52.3
PMIDCONE = P41 + P42 + P43 + P44 + P45 + P46 + P47
return PMIDCONE
# --------------------------------------------
[docs]class DP_PMNT(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ14", "4OHTRZ15", "4OHTRZ16"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P14 = data["4OHTRZ14"].vals * VSQUARED / 41.2
P15 = data["4OHTRZ15"].vals * VSQUARED / 40.5
P16 = data["4OHTRZ16"].vals * VSQUARED / 41.3
PMNT = P14 + P15 + P16
return PMNT
# --------------------------------------------
[docs]class DP_POBAT(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ25",
"4OHTRZ26",
"4OHTRZ27",
"4OHTRZ28",
"4OHTRZ29",
"4OHTRZ30",
"4OHTRZ31",
"4OHTRZ32",
"4OHTRZ33",
"4OHTRZ34",
"4OHTRZ35",
"4OHTRZ36",
"4OHTRZ37",
"4OHTRZ38",
"4OHTRZ39",
"4OHTRZ40",
"4OHTRZ41",
"4OHTRZ42",
"4OHTRZ43",
"4OHTRZ44",
"4OHTRZ45",
"4OHTRZ46",
"4OHTRZ47",
"4OHTRZ48",
"4OHTRZ49",
"4OHTRZ50",
"4OHTRZ51",
"4OHTRZ52",
"4OHTRZ53",
"4OHTRZ54",
"4OHTRZ55",
"4OHTRZ57",
"4OHTRZ75",
"4OHTRZ76",
"4OHTRZ77",
"4OHTRZ78",
"4OHTRZ79",
"4OHTRZ80",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_4OHTRZ50(data)
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P75 = data["4OHTRZ75"].vals * VSQUARED / 130.2
P76 = data["4OHTRZ76"].vals * VSQUARED / 133.4
P77 = data["4OHTRZ77"].vals * VSQUARED / 131.5
P78 = data["4OHTRZ78"].vals * VSQUARED / 133.2
P79 = data["4OHTRZ79"].vals * VSQUARED / 133.1
P80 = data["4OHTRZ80"].vals * VSQUARED / 133.0
P25 = data["4OHTRZ25"].vals * VSQUARED / 383.0
P26 = data["4OHTRZ26"].vals * VSQUARED / 383.5
P27 = data["4OHTRZ27"].vals * VSQUARED / 383.0
P28 = data["4OHTRZ28"].vals * VSQUARED / 382.3
P29 = data["4OHTRZ29"].vals * VSQUARED / 384.0
P30 = data["4OHTRZ30"].vals * VSQUARED / 383.0
P31 = data["4OHTRZ31"].vals * VSQUARED / 32.2
P32 = data["4OHTRZ32"].vals * VSQUARED / 28.6
P33 = data["4OHTRZ33"].vals * VSQUARED / 36.9
P34 = data["4OHTRZ34"].vals * VSQUARED / 28.0
P35 = data["4OHTRZ35"].vals * VSQUARED / 32.2
P36 = data["4OHTRZ36"].vals * VSQUARED / 44.3
P37 = data["4OHTRZ37"].vals * VSQUARED / 32.1
P38 = data["4OHTRZ38"].vals * VSQUARED / 27.8
P39 = data["4OHTRZ39"].vals * VSQUARED / 36.8
P40 = data["4OHTRZ40"].vals * VSQUARED / 28.3
P41 = data["4OHTRZ41"].vals * VSQUARED / 61.7
P42 = data["4OHTRZ42"].vals * VSQUARED / 51.7
P43 = data["4OHTRZ43"].vals * VSQUARED / 36.8
P44 = data["4OHTRZ44"].vals * VSQUARED / 36.9
P45 = data["4OHTRZ45"].vals * VSQUARED / 36.8
P46 = data["4OHTRZ46"].vals * VSQUARED / 36.5
P47 = data["4OHTRZ47"].vals * VSQUARED / 52.3
P48 = data["4OHTRZ48"].vals * VSQUARED / 79.5
P49 = data["4OHTRZ49"].vals * VSQUARED / 34.8
P50 = data["4OHTRZ50"].vals * VSQUARED / 35.2
P51 = data["4OHTRZ51"].vals * VSQUARED / 35.4
P52 = data["4OHTRZ52"].vals * VSQUARED / 34.4
P53 = data["4OHTRZ53"].vals * VSQUARED / 94.1
P54 = data["4OHTRZ54"].vals * VSQUARED / 124.4
P55 = data["4OHTRZ55"].vals * VSQUARED / 126.8
P57 = data["4OHTRZ57"].vals * VSQUARED / 142.3
PSTRUTS = P75 + P76 + P77 + P78 + P79 + P80 + P25 + P26 + P27 + P28 + P29 + P30
POBACONE = (
P31
+ P32
+ P33
+ P34
+ P35
+ P36
+ P37
+ P38
+ P39
+ P40
+ P41
+ P42
+ P43
+ P44
+ P45
+ P46
+ P47
+ P48
+ P49
+ P50
+ P51
+ P52
+ P53
+ P54
+ P55
+ P57
)
POBAT = PSTRUTS + POBACONE
return POBAT
# --------------------------------------------
[docs]class DP_POC(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ17", "4OHTRZ18", "4OHTRZ19"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P17 = data["4OHTRZ17"].vals * VSQUARED / 116.0
P18 = data["4OHTRZ18"].vals * VSQUARED / 115.7
P19 = data["4OHTRZ19"].vals * VSQUARED / 95.3
POC = P17 + P18 + P19
return POC
# --------------------------------------------
[docs]class DP_PPL10(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ08", "4OHTRZ09", "4OHTRZ10"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P08 = data["4OHTRZ08"].vals * VSQUARED / 36.1
P09 = data["4OHTRZ09"].vals * VSQUARED / 32.6
P10 = data["4OHTRZ10"].vals * VSQUARED / 34.9
PPL10 = P08 + P09 + P10
return PPL10
# --------------------------------------------
[docs]class DP_PRADVNT(DerivedParameterThermal):
rootparams = ["ELBV", "4OHTRZ64", "4OHTRZ65", "4OHTRZ69"]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P64 = data["4OHTRZ64"].vals * VSQUARED / 44.1
P65 = data["4OHTRZ65"].vals * VSQUARED / 37.5
P69 = data["4OHTRZ69"].vals * VSQUARED / 37.5
PRADVNT = P64 + P65 + P69
return PRADVNT
# --------------------------------------------
[docs]class DP_PSCSTRUTS(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ75",
"4OHTRZ76",
"4OHTRZ77",
"4OHTRZ78",
"4OHTRZ79",
"4OHTRZ80",
]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P75 = data["4OHTRZ75"].vals * VSQUARED / 130.2
P76 = data["4OHTRZ76"].vals * VSQUARED / 133.4
P77 = data["4OHTRZ77"].vals * VSQUARED / 131.5
P78 = data["4OHTRZ78"].vals * VSQUARED / 133.2
P79 = data["4OHTRZ79"].vals * VSQUARED / 133.1
P80 = data["4OHTRZ80"].vals * VSQUARED / 133.0
PSCSTRUTS = P75 + P76 + P77 + P78 + P79 + P80
return PSCSTRUTS
# --------------------------------------------
[docs]class DP_PTFTE(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ58",
"4OHTRZ59",
"4OHTRZ60",
"4OHTRZ61",
"4OHTRZ62",
"4OHTRZ63",
"4OHTRZ64",
"4OHTRZ65",
"4OHTRZ66",
"4OHTRZ67",
"4OHTRZ68",
"4OHTRZ69",
]
time_step = 0.25625
[docs] def calc(self, data):
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P58 = data["4OHTRZ58"].vals * VSQUARED / 83.7
P59 = data["4OHTRZ59"].vals * VSQUARED / 29.7
P60 = data["4OHTRZ60"].vals * VSQUARED / 30.7
P61 = data["4OHTRZ61"].vals * VSQUARED / 33.7
P62 = data["4OHTRZ62"].vals * VSQUARED / 36.1
P63 = data["4OHTRZ63"].vals * VSQUARED / 36.1
P64 = data["4OHTRZ64"].vals * VSQUARED / 44.1
P65 = data["4OHTRZ65"].vals * VSQUARED / 37.5
P66 = data["4OHTRZ66"].vals * VSQUARED / 29.8
P67 = data["4OHTRZ67"].vals * VSQUARED / 52.0
P68 = data["4OHTRZ68"].vals * VSQUARED / 29.0
P69 = data["4OHTRZ69"].vals * VSQUARED / 37.5
PTFTE = P58 + P59 + P60 + P61 + P62 + P63 + P64 + P65 + P66 + P67 + P68 + P69
return PTFTE
# --------------------------------------------
[docs]class DP_PTOTAL(DerivedParameterThermal):
rootparams = [
"ELBV",
"4OHTRZ01",
"4OHTRZ02",
"4OHTRZ03",
"4OHTRZ04",
"4OHTRZ05",
"4OHTRZ06",
"4OHTRZ07",
"4OHTRZ08",
"4OHTRZ09",
"4OHTRZ10",
"4OHTRZ11",
"4OHTRZ12",
"4OHTRZ13",
"4OHTRZ14",
"4OHTRZ15",
"4OHTRZ16",
"4OHTRZ17",
"4OHTRZ18",
"4OHTRZ19",
"4OHTRZ20",
"4OHTRZ23",
"4OHTRZ24",
"4OHTRZ25",
"4OHTRZ26",
"4OHTRZ27",
"4OHTRZ28",
"4OHTRZ29",
"4OHTRZ30",
"4OHTRZ31",
"4OHTRZ32",
"4OHTRZ33",
"4OHTRZ34",
"4OHTRZ35",
"4OHTRZ36",
"4OHTRZ37",
"4OHTRZ38",
"4OHTRZ39",
"4OHTRZ40",
"4OHTRZ41",
"4OHTRZ42",
"4OHTRZ43",
"4OHTRZ44",
"4OHTRZ45",
"4OHTRZ46",
"4OHTRZ47",
"4OHTRZ48",
"4OHTRZ49",
"4OHTRZ50",
"4OHTRZ51",
"4OHTRZ52",
"4OHTRZ53",
"4OHTRZ54",
"4OHTRZ55",
"4OHTRZ57",
"4OHTRZ58",
"4OHTRZ59",
"4OHTRZ60",
"4OHTRZ61",
"4OHTRZ62",
"4OHTRZ63",
"4OHTRZ64",
"4OHTRZ65",
"4OHTRZ66",
"4OHTRZ67",
"4OHTRZ68",
"4OHTRZ69",
"4OHTRZ75",
"4OHTRZ76",
"4OHTRZ77",
"4OHTRZ78",
"4OHTRZ79",
"4OHTRZ80",
"4S1PWR05",
"4S1PWR06",
]
time_step = 0.25625
[docs] def calc(self, data):
self.fix_4OHTRZ50(data)
self.fix_bus_5_and_bus_6(data)
VSQUARED = data["ELBV"].vals * data["ELBV"].vals
P01 = data["4OHTRZ01"].vals * VSQUARED / 110.2
P02 = data["4OHTRZ02"].vals * VSQUARED / 109.7
P03 = data["4OHTRZ03"].vals * VSQUARED / 109.4
P04 = data["4OHTRZ04"].vals * VSQUARED / 175.9
P05 = data["4OHTRZ05"].vals * VSQUARED / 175.7
P06 = data["4OHTRZ06"].vals * VSQUARED / 175.6
P07 = data["4OHTRZ07"].vals * VSQUARED / 135.8
P08 = data["4OHTRZ08"].vals * VSQUARED / 36.1
P09 = data["4OHTRZ09"].vals * VSQUARED / 32.6
P10 = data["4OHTRZ10"].vals * VSQUARED / 34.9
P11 = data["4OHTRZ11"].vals * VSQUARED / 39.4
P12 = data["4OHTRZ12"].vals * VSQUARED / 40.3
P13 = data["4OHTRZ13"].vals * VSQUARED / 39.7
P14 = data["4OHTRZ14"].vals * VSQUARED / 41.2
P15 = data["4OHTRZ15"].vals * VSQUARED / 40.5
P16 = data["4OHTRZ16"].vals * VSQUARED / 41.3
P17 = data["4OHTRZ17"].vals * VSQUARED / 116.0
P18 = data["4OHTRZ18"].vals * VSQUARED / 115.7
P19 = data["4OHTRZ19"].vals * VSQUARED / 95.3
P20 = data["4OHTRZ20"].vals * VSQUARED / 379.0
P23 = data["4OHTRZ23"].vals * VSQUARED / 386.0
P24 = data["4OHTRZ24"].vals * VSQUARED / 385.8
P31 = data["4OHTRZ31"].vals * VSQUARED / 32.2
P32 = data["4OHTRZ32"].vals * VSQUARED / 28.6
P33 = data["4OHTRZ33"].vals * VSQUARED / 36.9
P34 = data["4OHTRZ34"].vals * VSQUARED / 28.0
P35 = data["4OHTRZ35"].vals * VSQUARED / 32.2
P36 = data["4OHTRZ36"].vals * VSQUARED / 44.3
P37 = data["4OHTRZ37"].vals * VSQUARED / 32.1
P38 = data["4OHTRZ38"].vals * VSQUARED / 27.8
P39 = data["4OHTRZ39"].vals * VSQUARED / 36.8
P40 = data["4OHTRZ40"].vals * VSQUARED / 28.3
P41 = data["4OHTRZ41"].vals * VSQUARED / 61.7
P42 = data["4OHTRZ42"].vals * VSQUARED / 51.7
P43 = data["4OHTRZ43"].vals * VSQUARED / 36.8
P44 = data["4OHTRZ44"].vals * VSQUARED / 36.9
P45 = data["4OHTRZ45"].vals * VSQUARED / 36.8
P46 = data["4OHTRZ46"].vals * VSQUARED / 36.5
P47 = data["4OHTRZ47"].vals * VSQUARED / 52.3
P48 = data["4OHTRZ48"].vals * VSQUARED / 79.5
P49 = data["4OHTRZ49"].vals * VSQUARED / 34.8
P50 = data["4OHTRZ50"].vals * VSQUARED / 35.2
P51 = data["4OHTRZ51"].vals * VSQUARED / 35.4
P52 = data["4OHTRZ52"].vals * VSQUARED / 34.4
P53 = data["4OHTRZ53"].vals * VSQUARED / 94.1
P54 = data["4OHTRZ54"].vals * VSQUARED / 124.4
P55 = data["4OHTRZ55"].vals * VSQUARED / 126.8
P57 = data["4OHTRZ57"].vals * VSQUARED / 142.3
P58 = data["4OHTRZ58"].vals * VSQUARED / 83.7
P59 = data["4OHTRZ59"].vals * VSQUARED / 29.7
P60 = data["4OHTRZ60"].vals * VSQUARED / 30.7
P61 = data["4OHTRZ61"].vals * VSQUARED / 33.7
P62 = data["4OHTRZ62"].vals * VSQUARED / 36.1
P63 = data["4OHTRZ63"].vals * VSQUARED / 36.1
P64 = data["4OHTRZ64"].vals * VSQUARED / 44.1
P65 = data["4OHTRZ65"].vals * VSQUARED / 37.5
P66 = data["4OHTRZ66"].vals * VSQUARED / 29.8
P67 = data["4OHTRZ67"].vals * VSQUARED / 52.0
P68 = data["4OHTRZ68"].vals * VSQUARED / 29.0
P69 = data["4OHTRZ69"].vals * VSQUARED / 37.5
P75 = data["4OHTRZ75"].vals * VSQUARED / 130.2
P76 = data["4OHTRZ76"].vals * VSQUARED / 133.4
P77 = data["4OHTRZ77"].vals * VSQUARED / 131.5
P78 = data["4OHTRZ78"].vals * VSQUARED / 133.2
P79 = data["4OHTRZ79"].vals * VSQUARED / 133.1
P80 = data["4OHTRZ80"].vals * VSQUARED / 133.0
P25 = data["4OHTRZ25"].vals * VSQUARED / 383.0
P26 = data["4OHTRZ26"].vals * VSQUARED / 383.5
P27 = data["4OHTRZ27"].vals * VSQUARED / 383.0
P28 = data["4OHTRZ28"].vals * VSQUARED / 382.3
P29 = data["4OHTRZ29"].vals * VSQUARED / 384.0
P30 = data["4OHTRZ30"].vals * VSQUARED / 383.0
PHRMA = (
P01
+ P02
+ P03
+ P04
+ P05
+ P06
+ P07
+ P08
+ P09
+ P10
+ P11
+ P12
+ P13
+ P14
+ P15
+ P16
+ P17
+ P18
+ P19
+ P20
+ P23
+ P24
)
POBACONE = (
P31
+ P32
+ P33
+ P34
+ P35
+ P36
+ P37
+ P38
+ P39
+ P40
+ P41
+ P42
+ P43
+ P44
+ P45
+ P46
+ P47
+ P48
+ P49
+ P50
+ P51
+ P52
+ P53
+ P54
+ P55
+ P57
)
PTFTE = P58 + P59 + P60 + P61 + P62 + P63 + P64 + P65 + P66 + P67 + P68 + P69
PSTRUTS = P75 + P76 + P77 + P78 + P79 + P80 + P25 + P26 + P27 + P28 + P29 + P30
POBAT = PSTRUTS + POBACONE
PTOTAL = PHRMA + POBAT + PTFTE
return PTOTAL
# --------------------------------------------
[docs]class DP_SUNANGLE(DerivedParameterThermal):
rootparams = ["AOSARES1"]
time_step = 0.25625
[docs] def calc(self, data):
SUNANGLE = 90 - data["AOSARES1"].vals
return SUNANGLE
# --------------------------------------------
[docs]class DP_TABMAX(DerivedParameterThermal):
rootparams = ["OOBTHR47", "OOBTHR42", "OOBTHR43"]
time_step = 32.8
[docs] def calc(self, data):
TABMAX = np.max(
[data["OOBTHR42"].vals, data["OOBTHR43"].vals, data["OOBTHR47"].vals],
axis=0,
)
return TABMAX
# --------------------------------------------
[docs]class DP_TABMIN(DerivedParameterThermal):
rootparams = ["OOBTHR47", "OOBTHR42", "OOBTHR43"]
time_step = 32.8
[docs] def calc(self, data):
TABMIN = np.min(
[data["OOBTHR42"].vals, data["OOBTHR43"].vals, data["OOBTHR47"].vals],
axis=0,
)
return TABMIN
# --------------------------------------------
[docs]class DP_TELAB_AVE(DerivedParameterThermal):
rootparams = ["OOBTHR47", "OOBTHR42", "OOBTHR43"]
time_step = 32.8
[docs] def calc(self, data):
TELAB_AVE = (
data["OOBTHR42"].vals + data["OOBTHR43"].vals + data["OOBTHR47"].vals
) / 3
return TELAB_AVE
# --------------------------------------------
[docs]class DP_TELHS_AVE(DerivedParameterThermal):
rootparams = [
"OOBTHR02",
"OOBTHR03",
"OOBTHR06",
"OOBTHR07",
"OOBTHR04",
"OOBTHR05",
]
time_step = 32.8
[docs] def calc(self, data):
TELHS_AVE = (
data["OOBTHR02"].vals
+ data["OOBTHR03"].vals
+ data["OOBTHR04"].vals
+ data["OOBTHR05"].vals
+ data["OOBTHR06"].vals
+ data["OOBTHR07"].vals
) / 6
return TELHS_AVE
# --------------------------------------------
[docs]class DP_TELSS_AVE(DerivedParameterThermal):
rootparams = [
"OOBTHR51",
"OOBTHR50",
"OOBTHR53",
"OOBTHR52",
"OOBTHR54",
"OOBTHR49",
]
time_step = 32.8
[docs] def calc(self, data):
TELSS_AVE = (
data["OOBTHR49"].vals
+ data["OOBTHR50"].vals
+ data["OOBTHR51"].vals
+ data["OOBTHR52"].vals
+ data["OOBTHR53"].vals
+ data["OOBTHR54"].vals
) / 6
return TELSS_AVE
# --------------------------------------------
[docs]class DP_THSMAX(DerivedParameterThermal):
rootparams = [
"OOBTHR02",
"OOBTHR03",
"OOBTHR06",
"OOBTHR07",
"OOBTHR04",
"OOBTHR05",
]
time_step = 32.8
[docs] def calc(self, data):
THSMAX = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
THSMAX = np.max([THSMAX, data[names].vals], axis=0)
return THSMAX
# --------------------------------------------
[docs]class DP_THSMIN(DerivedParameterThermal):
rootparams = [
"OOBTHR02",
"OOBTHR03",
"OOBTHR06",
"OOBTHR07",
"OOBTHR04",
"OOBTHR05",
]
time_step = 32.8
[docs] def calc(self, data):
THSMIN = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
THSMIN = np.min([THSMIN, data[names].vals], axis=0)
return THSMIN
# --------------------------------------------
[docs]class DP_TILT_AXIAL(DerivedParameterThermal):
rootparams = ["OOBAGRD3"]
time_step = 32.8
[docs] def calc(self, data):
TILT_AXIAL = np.abs(data["OOBAGRD3"].vals) * 0.1084
return TILT_AXIAL
# --------------------------------------------
[docs]class DP_TILT_BULK(DerivedParameterThermal):
rootparams = ["OHRTHR43", "OHRTHR42"]
time_step = 32.8
[docs] def calc(self, data):
TILT_BULK = (
np.abs((data["OHRTHR42"].vals + data["OHRTHR43"].vals) / 2.0 - 70.0)
* 0.0704
)
return TILT_BULK
# --------------------------------------------
[docs]class DP_TILT_DIAM(DerivedParameterThermal):
rootparams = ["OOBAGRD6"]
time_step = 32.8
[docs] def calc(self, data):
TILT_DIAM = np.abs(1.0 * data["OOBAGRD6"].vals) * 0.3032
return TILT_DIAM
# --------------------------------------------
[docs]class DP_TILT_MAX(DerivedParameterThermal):
rootparams = ["OOBAGRD6", "OOBAGRD3", "OHRTHR43", "OHRTHR42"]
time_step = 32.8
[docs] def calc(self, data):
TILT_DIAM = np.abs(1.0 * data["OOBAGRD6"].vals) * 0.3032
TILT_BULK = (
np.abs((data["OHRTHR42"].vals + data["OHRTHR43"].vals) / 2.0 - 70.0)
* 0.0704
)
TILT_AXIAL = np.abs(data["OOBAGRD3"].vals) * 0.1084
TILT_MAX = TILT_BULK + TILT_AXIAL + TILT_DIAM
return TILT_MAX
# --------------------------------------------
# --------------------------------------------
[docs]class DP_TSSMAX(DerivedParameterThermal):
rootparams = [
"OOBTHR51",
"OOBTHR50",
"OOBTHR53",
"OOBTHR52",
"OOBTHR54",
"OOBTHR49",
]
time_step = 32.8
[docs] def calc(self, data):
TSSMAX = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
TSSMAX = np.max([TSSMAX, data[names].vals], axis=0)
return TSSMAX
# --------------------------------------------
[docs]class DP_TSSMIN(DerivedParameterThermal):
rootparams = [
"OOBTHR51",
"OOBTHR50",
"OOBTHR53",
"OOBTHR52",
"OOBTHR54",
"OOBTHR49",
]
time_step = 32.8
[docs] def calc(self, data):
TSSMIN = data[self.rootparams[0]].vals
for names in self.rootparams[1:]:
TSSMIN = np.min([TSSMIN, data[names].vals], axis=0)
return TSSMIN
# --------------------------------------------
[docs]class DP_HADG(DerivedParameterThermal):
rootparams = ["OHRMGRD3", "OHRMGRD6"]
time_step = 32.8
[docs] def calc(self, data):
HADG = np.max(
(np.abs(data["OHRMGRD3"].vals), np.abs(data["OHRMGRD6"].vals)), axis=0
)
return HADG
# --------------------------------------------
[docs]class DP_ABH_DUTYCYCLE(DerivedParameterThermal):
rootparams = [
"4OHTRZ53",
"4OHTRZ54",
"4OHTRZ55",
"4OHTRZ57",
"4S1PWR05",
"4S1PWR06",
]
time_step = 32.8
[docs] def calc(self, data):
self.fix_bus_5_and_bus_6(data)
RTOTAL = 1.0 / (1 / 94.1 + 1 / 124.3 + 1 / 126.8 + 1 / 142.3)
DC1 = (
np.abs(data["4OHTRZ53"].vals) / 94.1 + np.abs(data["4OHTRZ54"].vals) / 124.3
)
DC2 = (
np.abs(data["4OHTRZ55"].vals) / 126.8
+ np.abs(data["4OHTRZ57"].vals) / 142.3
)
ABH_DUTYCYCLE = RTOTAL * (DC1 + DC2)
return ABH_DUTYCYCLE