Fixes several issues revolving the station optimization
Speed up the process of finding intersections between station sets
Fix issue where the quick solver added charge a second time when the schedule was already partly electrified
Timeseries calculation of the quick solver now calculates every opportunity charge event
Fix issue where the low-soc-event generation did not behave as expected
Fix issue where the upper_soc_threshold drifted over rotations
Fix issue where finding low_soc using the relative_soc was not working properly in mixed soc cases, e.g.
A rotation starts with 0.2
the next trip consumes 0.6 soc resulting in an end soc of -0.4 (this was is recognized as non problematic, if edge cases of inbetween soc dependant charge events are disregarded)
the next trip consumes 0,6. soc resulting in and end soc of -1 (this was properly recognized as a low-soc-event since its lower than -0.2 -1 = -0.8.
if a charge event afterwards lifted the soc above the rotation start value of 0.2 this was not reflected in a lifted lower soc threshold. e.g. if the vehicle was charged to +1.0, afterwards the low-soc-threshold should change to +0.0.
this is fixed by raising and clipping socs from the start to the value of desired_soc_deps if rel_soc=True
Added tests to verify fast timeseries calculation and joining of subsets
Other changes
Minor cleanup of logging
add warning cache so logger does not get flodded if rotations dont end at electrified station
add method to set optimizer config to default values
Fixes several issues revolving the station optimization
Other changes