Skip to content

Cannot reproduce IEEE-9 loadflow results #354

@fhjgch

Description

@fhjgch

Background

For an experiment, we want to reimplement this grid, which follows the IEEE9 node example:
Image

The grid specifications are given as follows:
Image

According to this text book, the resulting power flow solution should be:
Image

Problem Description

When we try to reimplement this grid in GridCal, using the attached code, we get this output:

Image



# ieee9 grid
grid9 = gce.MultiCircuit('IEEE-9', Sbase=100)

# Add the buses and the generators and loads attached
bus1 = gce.Bus('Bus 1', Vnom=17.16, is_slack=True)#
grid9.add_bus(bus1)
gen1 = gce.Generator('Slack Generator', P=0.0, vset=0.0746)#14.145#1.0
grid9.add_generator(bus1, gen1)
bus2 = gce.Bus('Bus 2', Vnom=18.45)#18.45
#grid9.add_load(bus2, gce.Load('Gen 2', P=-163))
gen2 = gce.Generator('Gen2', P=163, Sbase=100, vset=0.08022)#14.145
grid9.add_bus(bus2)
grid9.add_generator(bus2, gen2)
bus3 = gce.Bus('Bus 3', Vnom=14.145)#
grid9.add_bus(bus3)
gen3 = gce.Generator('Gen3', P=85,  vset=0.0615)#
#grid9.add_load(bus3, gce.Load('Gen 3', P=-85))
grid9.add_generator(bus3, gen3)
bus4 = gce.Bus('Bus 4', Vnom=230)
grid9.add_bus(bus4)
bus5 = gce.Bus('Bus 5', Vnom=230)
grid9.add_bus(bus5)
grid9.add_load(bus5, gce.Load('Load 1', P=125, Q=50))
bus6 = gce.Bus('Bus 6', Vnom=230)
grid9.add_bus(bus6)
grid9.add_load(bus6, gce.Load('Load 2', P=90, Q=30))
bus7 = gce.Bus('Bus 7', Vnom=230)
grid9.add_bus(bus7)
bus8 = gce.Bus('Bus 8', Vnom=230)
grid9.add_bus(bus8)
grid9.add_load(bus8, gce.Load('Load 3', P=100, Q=35))
bus9 = gce.Bus('Bus 9', Vnom=230)
grid9.add_bus(bus9)

# add Lines connecting the buses
tr1 = gce.Transformer2W(bus4,
                                         bus1,
                                         'T1',
                                         HV=230,
                                         LV=16.5,#,
                                         short_circuit_voltage=14.3,
                                         r=0,
                                         x=0.2889,
                                         rate=247.5,
                                         tap_phase=0)#2.618
tr2 = gce.Transformer2W(bus7,
                                         bus2,
                                         'T2',
                                         HV=230,
                                         LV=18,
                                         short_circuit_voltage=12,
                                         r=0,
                                         x=0.3125,
                                         rate=192,
                                         tap_phase=0)#2.618
tr3 = gce.Transformer2W(bus9,
                                         bus3,
                                         'T3',
                                         HV=230,
                                         LV=13.8,
                                         short_circuit_voltage=7.5,
                                         r=0,
                                         x=0.293,
                                         rate=128,
                                         tap_phase=0)#2.618
grid9.add_transformer2w(tr1)#0.5236 => 30°#2.618
grid9.add_transformer2w(tr2)#2.618#2.618#0.5236
grid9.add_transformer2w(tr3)#0.5236
grid9.add_line(gce.Line(bus_from=bus4,
                        bus_to=bus5,
                        name='line 4-5',
                        r=0.050095,
                        x=0.425331,
                        b=0.035232,
                        contingency_enabled=False))
grid9.add_line(gce.Line(bus_from=bus4,
                        bus_to=bus6,
                        name='line 4-6',
                        r=0.085066,
                        x=0.460302,
                        b=0.031576,
                        contingency_enabled=False))
grid9.add_line(gce.Line(bus_from=bus5,
                        bus_to=bus7,
                        name='line 5-7',
                        r=0.159735,
                        x=0.805293,
                        b=0.061158,
                        contingency_enabled=False))
grid9.add_line(gce.Line(bus_from=bus7,
                        bus_to=bus8,
                        name='line 7-8',
                        r=0.194707,
                        x=0.849716,
                        b=0.071462,
                        contingency_enabled=False))
grid9.add_line(gce.Line(bus_from=bus6,
                        bus_to=bus9,
                        name='line 6-9',
                        r=0.042533,
                        x=0.360113,
                        b=0.028917,
                        contingency_enabled=False))
grid9.add_line(gce.Line(bus_from=bus8,
                        bus_to=bus9,
                        name='line 8-9',
                        r=0.059546,
                        x=0.503781,
                        b=0.041880,
                        contingency_enabled=False))
## Powerflow
options = gce.PowerFlowOptions(gce.SolverType.NR,
                               retry_with_other_methods=False,
                               tolerance=1e-4,
                               control_q=False,
                               control_taps_phase=False,
                               control_taps_modules=False,
                               apply_temperature_correction=False,
                               verbose=False)


drv = gce.InputsAnalysisDriver(grid=grid9)
mdl = drv.results.mdl(gce.ResultTypes.AreaAnalysis)
df = mdl.to_df()
print(df)



power_flow = gce.PowerFlowDriver(grid9, options)
power_flow.run()
print(grid9.name)
print('Converged:', power_flow.results.converged, 'error:', power_flow.results.error)
resultsDF = power_flow.results.get_bus_df()
print(resultsDF)

We see that the voltages at the buses are far from the expected result. What are we missing in our implementation in order to reproduce the results from the book?
Thank you very much in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions