Coverage for agentlib_flexquant/data_structures/globals.py: 96%
24 statements
« prev ^ index » next coverage.py v7.4.4, created at 2025-08-01 15:10 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2025-08-01 15:10 +0000
1"""Script containing global variables"""
3from typing import Literal
6PREP_TIME = "prep_time"
7MARKET_TIME = "market_time"
8FLEX_EVENT_DURATION = "flex_event_duration"
9PROFILE_DEVIATION_WEIGHT = "profile_deviation_weight"
10PROFILE_COMFORT_WEIGHT = "profile_comfort_weight"
11TIME_STEP = "time_step"
12PREDICTION_HORIZON = "prediction_horizon"
13FlexibilityOffer = "FlexibilityOffer"
15FlexibilityDirections = Literal["positive", "negative"]
17POWER_ALIAS_BASE = "_P_el_base"
18POWER_ALIAS_NEG = "_P_el_neg"
19POWER_ALIAS_POS = "_P_el_pos"
20STORED_ENERGY_ALIAS_BASE = "_E_stored_base"
21STORED_ENERGY_ALIAS_NEG = "_E_stored_neg"
22STORED_ENERGY_ALIAS_POS = "_E_stored_pos"
24SHADOW_MPC_COST_FUNCTION = ("return ca.if_else(self.time < self.prep_time.sym + "
25 "self.market_time.sym, obj_std, ca.if_else(self.time < "
26 "(self.prep_time.sym + self.flex_event_duration.sym + "
27 "self.market_time.sym), obj_flex, obj_std))")
29full_trajectory_suffix: str = "_full"
30full_trajectory_prefix: str = "_"
33def return_baseline_cost_function(power_variable, comfort_variable):
34 if comfort_variable:
35 cost_func = ("return ca.if_else(self.in_provision.sym, "
36 "ca.if_else(self.time < self.rel_start.sym, obj_std, "
37 "ca.if_else(self.time >= self.rel_end.sym, obj_std, "
38 f"sum([self.profile_deviation_weight*(self.{power_variable} - "
39 f"self._P_external)**2, "
40 f"self.{comfort_variable}**2 * self.profile_comfort_weight]))),obj_std)")
41 else:
42 cost_func = ("return ca.if_else(self.in_provision.sym, "
43 "ca.if_else(self.time < self.rel_start.sym, obj_std, "
44 "ca.if_else(self.time >= self.rel_end.sym, obj_std, "
45 f"sum([self.profile_deviation_weight*(self.{power_variable} - "
46 f"self._P_external)**2]))),obj_std)")
47 return cost_func