Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion pygridsim/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,9 @@ def results(self, queries: list[str], export_path=""):

Args:
queries (list[str]):
A list of queries to the circuit ("Voltages", "Losses", "TotalPower")
A list of queries to the circuit: one of ("Voltages", "Losses", "TotalPower")
or partial queries ("RealLoss", "ReactiveLoss", "RealPower", "ReactivePower")
that query one component of Losses/TotalPower
export_path (str, optional):
The file path to export results. If empty, results are not exported.
Defaults to "".
Expand Down
25 changes: 19 additions & 6 deletions pygridsim/results.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,33 @@


def _query_solution(query):
match query:
case "Voltages":
query_fix = query.lower().replace(" ", "")
vector_losses = altdss.Losses()
vector_power = altdss.TotalPower()
match query_fix:
case "voltages":
bus_vmags = {}
for bus_name, bus_vmag in zip(altdss.BusNames(), altdss.BusVMag()):
bus_vmags[bus_name] = float(bus_vmag)
return bus_vmags
case "Losses":
vector_losses = altdss.Losses()
case "losses" | "loss":
losses = {}
losses["Active Power Loss"] = vector_losses.real
losses["Reactive Power Loss"] = vector_losses.imag
return losses
case "TotalPower":
return altdss.TotalPower()
case "totalpower" | "power":
power = {}
power["Active Power"] = vector_power.real
power["Reactive Power"] = vector_power.imag
return power
case "activeloss" | "activepowerloss" | "realloss" | "realpowerloss":
return vector_losses.real
case "reactiveloss" | "reactivepowerloss":
return vector_losses.imag
case "activepower" | "realpower":
return vector_power.real
case "reactivepower":
return vector_power.imag
case _:
return "Invalid"

Expand Down
13 changes: 13 additions & 0 deletions tests/test_circuit.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,19 @@ def test_011_configs(self):
with self.assertRaises(Exception):
circuit.update_source(source_type=SourceType.TURBINE)

def test_012_all_results(self):
circuit = PyGridSim()
circuit.update_source()
circuit.add_load_nodes()
circuit.add_generators(num=2, gen_type="small")
circuit.add_lines([("source", "load0"), ("generator0", "load0")])
circuit.solve()
# Should be flexible with capitalization, spaces
queries = ["Voltages", "losses", "Total Power"]
# Add "partial" queries to just parts of losses/total power
queries += ["realpowerloss", "reactive Loss", "Active Power", "reactivepower"]
print(circuit.results(queries))


class TestCustomizedCircuit(unittest.TestCase):
"""
Expand Down