|
@@ -34,34 +34,41 @@ class VAVController(EquipmentController):
|
|
|
buffer_list = []
|
|
|
strategy = await self.get_strategy()
|
|
|
for space in self._equipment.spaces:
|
|
|
- target_list.append(space.temperature_target)
|
|
|
- realtime_list.append(space.realtime_temperature)
|
|
|
- if strategy == 'Plan B':
|
|
|
- for eq in space.equipment:
|
|
|
- logger.info(eq)
|
|
|
- if isinstance(eq, FCU):
|
|
|
- buffer = (4 - eq.air_valve_speed) / 4
|
|
|
- buffer_list.append(buffer)
|
|
|
- break
|
|
|
+ if not np.isnan(space.temperature_target):
|
|
|
+ target_list.append(space.temperature_target)
|
|
|
+ realtime_list.append(space.realtime_temperature)
|
|
|
+ if strategy == 'Plan B':
|
|
|
+ for eq in space.equipment:
|
|
|
+ logger.info(eq)
|
|
|
+ if isinstance(eq, FCU):
|
|
|
+ buffer = (4 - eq.air_valve_speed) / 4
|
|
|
+ buffer_list.append(buffer)
|
|
|
+ break
|
|
|
total_target = buffer_list + target_list
|
|
|
total_realtime = buffer_list + realtime_list
|
|
|
- target_result = np.array(total_target).sum() / len(target_list)
|
|
|
- realtime_result = np.array(total_realtime).sum() / len(realtime_list)
|
|
|
- self._equipment.setting_temperature = target_result
|
|
|
+ if total_target and total_realtime:
|
|
|
+ target_result = np.array(total_target).sum() / len(target_list)
|
|
|
+ realtime_result = np.array(total_realtime).sum() / len(realtime_list)
|
|
|
+ self._equipment.setting_temperature = target_result
|
|
|
+ else:
|
|
|
+ target_result, realtime_result = np.NAN, np.NAN
|
|
|
|
|
|
return target_result, realtime_result
|
|
|
|
|
|
async def get_supply_air_flow_set(self) -> float:
|
|
|
temperature_set, temperature_realtime = await self.get_temperature()
|
|
|
- temperature_supply = self._equipment.supply_air_temperature
|
|
|
- if np.isnan(temperature_supply):
|
|
|
- temperature_supply = 19.0
|
|
|
- logger.info(f'supply air flow: {self._equipment.supply_air_flow}')
|
|
|
- logger.info(f'supply air temperature: {temperature_supply}')
|
|
|
- logger.info(f'set temperature: {temperature_set}')
|
|
|
- logger.info(f'realtime temperature: {temperature_realtime}')
|
|
|
- supply_air_flow_set = self._equipment.supply_air_flow * ((temperature_supply - temperature_realtime)
|
|
|
- / (temperature_supply - temperature_set))
|
|
|
+ if np.isnan(temperature_set) or np.isnan(temperature_realtime):
|
|
|
+ supply_air_flow_set = 0.0
|
|
|
+ else:
|
|
|
+ temperature_supply = self._equipment.supply_air_temperature
|
|
|
+ if np.isnan(temperature_supply):
|
|
|
+ temperature_supply = 19.0
|
|
|
+ logger.info(f'supply air flow: {self._equipment.supply_air_flow}')
|
|
|
+ logger.info(f'supply air temperature: {temperature_supply}')
|
|
|
+ logger.info(f'set temperature: {temperature_set}')
|
|
|
+ logger.info(f'realtime temperature: {temperature_realtime}')
|
|
|
+ supply_air_flow_set = self._equipment.supply_air_flow * ((temperature_supply - temperature_realtime)
|
|
|
+ / (temperature_supply - temperature_set))
|
|
|
self._equipment.supply_air_flow_set = supply_air_flow_set
|
|
|
|
|
|
return supply_air_flow_set
|