How to create reactive power capability curve for solar plant in PSS/E?
I am trying to plot solar PV reactive power capability curve. However, I am not get expected. Anyone can share python codes or any useful material for it? I use following codes for it. Thank you in advance.
case_file=r"C:\Users\SMIB.sav"
psspy.case(case_file)
# Set parameters
step_size = 0.3 # MW increment for active power
p_min = 0.0 # Minimum active power (MW)
p_max = 3.0 # Maximum active power (MW)
voltage_target = 1.0 # Voltage magnitude at the point of connection (p.u.)
inverter_bus = 200 # Bus where the solar inverters are connected
poi_bus = 100
# Prepare results file
output_file = "pq_capability_curve.csv"
with open(output_file, mode='w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["P (MW)", "Qmin (MVAR)", "Qmax (MVAR)"])
# Loop through active power steps
for p in np.arange(p_min, p_max + step_size, step_size):
# Set active power output
psspy.machine_chng_2(inverter_bus, "1", realar1=p, realar2=1.8)
# Set voltage at the point of connection
psspy.bus_chng_3(poi_bus, realar1=voltage_target)
# Solve power flow with Q maximized
ierr = psspy.fnsl([0, 0, 0, 1, 1, 0, 99, 0])
if ierr == 0:
q_max = psspy.busdat(inverter_bus, 'QGEN')[1]
else:
q_max = None
# Solve power flow with Q minimized
psspy.machine_chng_2(inverter_bus, "1", realar1=p, realar2=-1.8)
ierr = psspy.fnsl([0, 0, 0, 1, 1, 0, 99, 0])
if ierr == 0:
q_min = psspy.busdat(inverter_bus, 'QGEN')[1]
else:
q_min = None
# Write results to file
with open(output_file, mode='a', newline='') as file:
writer = csv.writer(file)
writer.writerow([p, q_min, q_max])
print(f"P-Q capability curve data saved to {output_file}")