solve_time_series#

popo.powerflow.solve_time_series(dss, transformers, horizon, start_step=0, step_minutes=30, max_control_iterations=200, buses=None, customers=None)#

Step the circuit, recording each monitored transformer and the feeder head.

Active and reactive power are read at the transformer’s secondary winding, which is what its rating applies to, and voltage at the bus it feeds, which is what the customer sees.

The start step matters on a cooling-dominated feeder. A window in January understates peak loading where demand is summer-peaking, so a probe that cannot start in summer will report that the thermal constraint never binds when it has simply not been asked about the season in which it does.

Parameters:
  • dss (Any) – An opendssdirect module with a compiled circuit.

  • transformers (Sequence[Transformer] | DataFrame) – Monitored transformers, as objects with name, rating_kva and low_voltage_bus, or a frame with those columns.

  • horizon (int) – Number of steps to solve.

  • start_step (int) – Step offset at which to begin, in units of step_minutes.

  • step_minutes (int) – Length of one step.

  • max_control_iterations (int) – Iteration limit for the inverter control loop.

  • buses (Sequence[str] | None) – Buses to record a voltage trace at, e.g. the customer buses from popo.network.residential_loads(). None records none.

  • customers (Mapping[str, Sequence[str]] | None) – Each monitored transformer’s customer buses, e.g. from popo.network.transformer_customers(). When given, every transformer’s row also carries v_cust_min_pu, v_cust_p05_pu and v_cust_max_pu: the minimum, 5th percentile and maximum of its customers’ phase voltages, where EN 50160 and ANSI C84.1 apply.

Return type:

SolveReport

Returns:

A SolveReport carrying the records and the convergence count, and the per-bus traces in bus_records when buses is given.