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

1"""Script containing global variables""" 

2 

3from typing import Literal 

4 

5 

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" 

14 

15FlexibilityDirections = Literal["positive", "negative"] 

16 

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" 

23 

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))") 

28 

29full_trajectory_suffix: str = "_full" 

30full_trajectory_prefix: str = "_" 

31 

32 

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