Menu

losses

Beginners
2023-05-19
2023-06-07
  • Marcos Ruy Soares Gaudio

    how do i get the total losses of an IEEE 123 bus network? and how do you calculate the losses across the network

     
  • Marcos Ruy Soares Gaudio

    import py_dss_interface

    dss = py_dss_interface.DSSDLL(r"C:\Program Files\OpenDSS")
    dss_file = r"C:\Program Files\OpenDSS\IEEETestCases\123Bus\IEEE123Master.dss"
    dss.text("compile [{}]".format(dss_file))

    dss.text("solve")

    dss.text("show losses")
    losses_text = dss.text("show losses")
    total_losses = None

    for line in losses_text.split("\n"):
    if line.startswith("Total Losses"):
    total_losses = float(line.split(":")[1].strip().split()[0])
    break

    if total_losses is not None:

    print("Perdas Totais: {:.2f} kW".format(total_losses))
    
    
    
    lines = dss.lines_all_names()
    line_losses = {}
    for line in lines:
        dss.text("select line {}".format(line))
        losses_text = dss.text("show losses")
        losses = float(losses_text.split(":")[1].strip().split()[0])
        line_losses[line] = losses
    
    
    transformers = dss.transformers_all_Names()
    transformer_losses = {}
    for transformer in transformers:
        dss.text("select transformer {}".format(transformer))
        losses_text = dss.text("show losses")
        losses = float(losses_text.split(":")[1].strip().split()[0])
        transformer_losses[transformer] = losses
    
    
    generators = dss.generators_all_names()
    generator_losses = {}
    for generator in generators:
        dss.text("select generator {}".format(generator))
        losses_text = dss.text("show losses")
        losses = float(losses_text.split(":")[1].strip().split()[0])
        generator_losses[generator] = losses
    
    
    print("Perdas das Linhas:")
    for line, losses in line_losses.items():
        print(f"  {line}: {losses:.2f} kW")
    
    print("Perdas dos Transformadores:")
    for transformer, losses in transformer_losses.items():
        print(f"  {transformer}: {losses:.2f} kW")
    
    print("Perdas dos Geradores:")
    for generator, losses in generator_losses.items():
        print(f"  {generator}: {losses:.2f} kW")
    

    else:
    print("Não foi possível obter as perdas totais da rede.")

    I tried to run this code but it has some errors that I am not able to fix

     
  • Paulo Radatz

    Paulo Radatz - 2023-05-19

    Hey Marcos,

    I see that you are using SnapShot mode. Here are some code using py-dss-interface 1.0.2 that can help you to get the losses (BTW: I will release a new py-dss-interface version this weekend, so the code below would need a few changes) :

    print("\nParte 4 - Item 2")
    print(f"a")
    print(f"Plosses = {dss.circuit_losses()[0] / 10 ** 3} kW")
    print(f"b")
    print(f"Qlosses = {dss.circuit_losses()[1] / 10 ** 3} kvar")
    print(f"c")
    print(f"Plinelosses = {dss.circuit_line_losses()[0]} kW")
    print(f"Qlinelosses = {dss.circuit_line_losses()[1]} kvar")
    print(f"d")
    print(f"Ptransformerlosses = {dss.circuit_losses()[0] / 10 ** 3 - dss.circuit_line_losses()[0]} kW")
    print(f"Qtransformerlosses = {dss.circuit_losses()[1] / 10 ** 3 - dss.circuit_line_losses()[1]} kvar")
    print(f"e")
    dss.text(f"compile [{dss_file}]")
    dss.text("New EnergyMeter.Feeder element=Line.L115 terminal=1")
    dss.text("solve")
    dss.meters_write_name("Feeder")
    dss.meters_sample()
    register_names = dss.meters_register_names()
    register_values = dss.meters_register_values()
    print(f"a")
    print(f"Plosses = {register_values[register_names.index('Zone Losses kWh')]} kW")
    print(f"b")
    print(f"Qlosses = {register_values[register_names.index('Zone Losses kvarh')]} kvar")
    print(f"c")
    print(f"Plinelosses = {register_values[register_names.index('Line Losses')]} kW")
    print(f"d")
    print(f"Ptransformerlosses = {register_values[register_names.index('Transformer Losses')]} kW")

    Hope it helps.

    Paulo Radatz

     
  • Marcos Ruy Soares Gaudio

    Thank you for your help

     

Log in to post a comment.

MongoDB Logo MongoDB