Distribution Battery#

pydantic model gdm.distribution.components.DistributionBattery#

Data model for battery system in distribution system models.

field active_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Current active power output of the battery.')] [Required]#

Current active power output of the battery.

field bus: Annotated[DistributionBus, FieldInfo(annotation=NoneType, required=True, description='Distribution bus to which this battery is connected to.')] [Required]#

Distribution bus to which this battery is connected to.

field controller: Annotated[InverterController | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Controller settings to control output of the inverter')] = None#

Controller settings to control output of the inverter

field equipment: Annotated[BatteryEquipment, FieldInfo(annotation=NoneType, required=True, description='Battery model.')] [Required]#

Battery model.

field feeder: Annotated[DistributionFeeder | None, Field(None, description='Name of the feeder.')] = None#

Name of the feeder.

field in_service: Annotated[bool, Field(True, description='Is the component in service?')] = True#

Is the component in service?

field inverter: Annotated[InverterEquipment, FieldInfo(annotation=NoneType, required=True, description='Inverter equipment for the distribution battery system.')] [Required]#

Inverter equipment for the distribution battery system.

field name: Annotated[str, Field(frozen=True)] [Required]#
field phases: Annotated[list[Phase], FieldInfo(annotation=NoneType, required=True, description='List of phases at which this battery is connected to in the same order.')] [Required]#

List of phases at which this battery is connected to in the same order.

field reactive_power: Annotated[ReactivePower, FieldInfo(annotation=NoneType, required=True, description='Current reactive power output of the battery.')] [Required]#

Current reactive power output of the battery.

field substation: Annotated[DistributionSubstation | None, Field(None, description='Name of the substation.')] = None#

Name of the substation.

field uuid: UUID [Optional]#
classmethod aggregate(instances: list[DistributionBattery], bus: DistributionBus, name: str, split_phase_mapping: dict[str, set[Phase]]) DistributionBattery#

Aggregates multiple DistributionBattery instances into a single instance.

This method combines the properties of multiple DistributionBattery instances connected to the same bus into a single DistributionBattery instance. It calculates the aggregate phases, equipment ratings, and efficiencies based on the provided instances.

Parameters:
  • instances (list[DistributionBattery]) – List of DistributionBattery instances to be aggregated.

  • bus (DistributionBus) – The bus to which the aggregated battery is connected.

  • name (str) – The name for the aggregated DistributionBattery.

  • split_phase_mapping (dict[str, set[Phase]]) – Mapping of battery names to their respective split phases.

Returns:

A new DistributionBattery instance representing the aggregate of the provided instances.

Return type:

DistributionBattery

validator validate_controller_types  »  all fields#