Skip to content

Refactor DistibutionAlgorithm to segregate different algorithms #415

Description

@daniel-zullo-frequenz

What's needed?

There is a need to differentiate between two types of algorithms currently present in the DistributionAlgorithm implementation. This distinction is necessary to prevent confusion and improve clarity.

Proposed solution

To address this issue, the following improvements can be implemented:

  1. Transform DistributionAlgorithm into an abstract base class.
  2. Introduce two new subclasses: SoCBalancingAlgorithm and BlindDivisionAlgorithm and BlindAverageAlgorithm (name to be defined).

Additionally, it is suggested to reorganize the power package hierarchy by adding another level. This would result in classes such as power.distribution.Algorithm, power.distribution.SoCBalancingAlgorithm, etc. This restructure enables convenient usage like from ...power import distribution, distribution.SoCBalancingAlgorithm.

Additional context

For more detailed context, please refer to the initial discussion at #365 (comment)

Activity

  1. added
    part:❓We need to figure out which part is affected
    priority:❓We need to figure out how soon this should be addressed
    type:enhancementNew feature or enhancement visitble to users
    on May 30, 2023
  2. changed the title [-]Refactor DistibutionAlgorithm to segregate different distribution algorithms[/-] [+]Refactor DistibutionAlgorithm to segregate different algorithms[/+] on May 30, 2023
  3. added this to the post-v1.0 milestone on Aug 8, 2023
  4. added
    part:power-managementAffects the management of battery power and distribution
    and removed
    priority:❓We need to figure out how soon this should be addressed
    part:❓We need to figure out which part is affected
    on Aug 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    part:power-managementAffects the management of battery power and distributiontype:enhancementNew feature or enhancement visitble to users

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions