-
Notifications
You must be signed in to change notification settings - Fork 124
Closed
Description
Background
For an experiment, we want to reimplement this grid, which follows the IEEE9 node example:

The grid specifications are given as follows:

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

Problem Description
When we try to reimplement this grid in GridCal, using the attached code, we get this output:
# 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!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
