Skip to content
This repository has been archived by the owner on Dec 28, 2024. It is now read-only.

Version for git without covee powerflow #2

Merged
merged 8 commits into from
Jun 21, 2022
Prev Previous commit
Next Next commit
MPC solved with flexibility
Signed-off-by: Edoardo De Din <ededin@eonerc.rwth-aachen.de>
  • Loading branch information
edoardo-dedin committed Jun 21, 2022
commit ae643177afe7aebc2541d82f5e722fd512d15e75
427 changes: 427 additions & 0 deletions Control_MPC_main.py

Large diffs are not rendered by default.

37 changes: 27 additions & 10 deletions Control_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from pypower.ext2int import ext2int
import random

from control_strategies.Quadratic_Control_Centralized_OSQP import Quadratic_Control as Control
from control_strategies.Quadratic_Control_Centralized_DualAscent import Quadratic_Control as Control

from cases.LV_SOGNO import LV_SOGNO as case

Expand Down Expand Up @@ -62,7 +62,9 @@ def system_info(ppc):
name=dict(color='blue')))
logging.info("Program Start")

if bool(os.getenv('MQTT_ENABLED')):
external_mqtt = "no"

if bool(os.getenv('MQTT_ENABLED')) and external_mqtt == "yes":
mqtt_url = str(os.getenv('MQTTURL'))
mqtt_port = int(os.getenv('MQTTPORT'))
mqtt_user = str(os.getenv('MQTTUSER'))
Expand Down Expand Up @@ -144,7 +146,7 @@ def api_cntr_input(data, uuid, name, *args):
mqttObj.attachSubscriber("/voltage_control/measuremnts/pv","json","pv_input_dict")
# Receive pmu_meas
dmuObj.addElm("pmu_meas", {})
mqttObj.attachSubscriber("/edgeflex/edgepmu0/ch0/amplitude","json","pmu_input")
mqttObj.attachSubscriber("/edgeflex/edgepmu0/ch0","json","pmu_input")
########################################################################################################
######################### Section for Sending Signal #################################################
########################################################################################################
Expand All @@ -155,10 +157,11 @@ def api_cntr_input(data, uuid, name, *args):


active_nodes = list(np.array(np.matrix(ppc["gen"])[:,0]).flatten())
active_nodes = active_nodes[1:len(active_nodes)]
active_nodes = [3,4,5,6,8,9,10,12,13,14,15,16,17,18,19]#active_nodes[1:len(active_nodes)]
active_nodes_old = active_nodes
reactive_power = [0.0]*len(active_nodes)
active_power = [0.0]*len(active_nodes)
voltage_value_old = [0.0]*len(active_nodes)
active_ESS = active_nodes
active_ESS_old = active_ESS
active_power_ESS = [0.0]*len(active_ESS)
Expand All @@ -177,8 +180,11 @@ def api_cntr_input(data, uuid, name, *args):
# logging.debug(voltage_meas)

pmu_received = dmuObj.getDataSubset("pmu_input")
logging.debug("pmu_input")
logging.debug(pmu_received)
if pmu_received:
logging.debug("pmu_input")
logging.debug(pmu_received[0]["amplitude"])
else:
pass

pv_input_value = dmuObj.getDataSubset("pv_input_dict")
pv_input_meas = pv_input_value.get("pv_input_measurements", None)
Expand All @@ -203,7 +209,7 @@ def api_cntr_input(data, uuid, name, *args):
pv_nodes = list(map(lambda x: x.replace('node_',''),list(voltage_meas.keys())))
pv_nodes = [float(i)-1 for i in pv_nodes]

print("active_nodes", active_nodes)
# print("active_nodes", active_nodes)
keys = ['node_'+str(int(item+1)) for item in active_nodes]
pv_active = (dict(zip(keys, [None]*len(active_nodes)))).keys()
num_pv = len(list(pv_active))
Expand All @@ -213,19 +219,30 @@ def api_cntr_input(data, uuid, name, *args):
pv_input = {item:pv_input_meas[item] for item in pv_active}
v_ess = {item:voltage_meas['node_'+str(int(item)+1)] for item in active_ESS}

v_gen = list(v_gen.values())
if str(os.getenv('MQTT_ENABLED')) == "true":
v_gen = list(v_gen.values())[:-1]
v_gen.extend([pmu_received[0]["amplitude"]/115.0])
else:
v_gen = list(v_gen.values())

pv_input = list(pv_input.values())
v_ess = list(v_ess.values())

print("voltage node",v_gen)

################### re-initialize if new set of active nodes ###########################
if active_nodes != active_nodes_old or active_ESS != active_ESS_old:
control = Control(grid_data, active_nodes)
[R,X] = control.initialize_control()
active_nodes_old = active_nodes
active_ESS_old = active_ESS

# if v_gen != voltage_value_old:
[active_power,reactive_power,active_power_ESS] = control.control_(pv_input, active_power, reactive_power, R, X, active_nodes, v_gen, active_power_ESS, v_ess)
active_power_ESS = [0.0]*len(active_ESS)
voltage_value_old = v_gen
# else:
# pass

# updating dictionaries
k = 0
Expand All @@ -242,14 +259,14 @@ def api_cntr_input(data, uuid, name, *args):
dmuObj.setDataSubset({"reactive_power":reactive_power_dict},"reactive_power_dict")
dmuObj.setDataSubset({"active_power_ESS":active_power_ESS_dict},"active_power_ESS_dict")

# print("Reactive Power", reactive_power_dict)
print("Reactive Power", reactive_power_dict)
# print("Active Power", active_power_dict)
# print("Active Power ESS", active_power_ESS_dict)

else:
pass

time.sleep(0.3)
time.sleep(0.5)

except (KeyboardInterrupt, SystemExit):
print('simulation finished')
Expand Down
73 changes: 73 additions & 0 deletions Flex_sim.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import numpy as np
import csv
import os
import coloredlogs, logging, threading
from submodules.dmu.dmu import dmu
from submodules.dmu.httpSrv import httpSrv
from submodules.dmu.mqttClient import mqttClient
import time
import sys
import requests
import json
import csv

coloredlogs.install(level='DEBUG',
fmt='%(asctime)s %(levelname)-8s %(name)s[%(process)d] %(message)s',
field_styles=dict(
asctime=dict(color='green'),
hostname=dict(color='magenta'),
levelname=dict(color='white', bold=True),
programname=dict(color='cyan'),
name=dict(color='blue')))
logging.info("Program Start")

if bool(os.getenv('MQTT_ENABLED')):
mqtt_url = str(os.getenv('MQTTURL'))
mqtt_port = int(os.getenv('MQTTPORT'))
mqtt_user = str(os.getenv('MQTTUSER'))
mqtt_password = str(os.getenv('MQTTPASS'))
else:
mqtt_url = "mqtt"
mqtt_port = 1883
mqtt_password = ""
mqtt_user = ""

############################ Start the Server #######################################################

''' Initialize objects '''
dmuObj = dmu()

''' Start mqtt client '''
mqttObj = mqttClient(mqtt_url, dmuObj, mqtt_port, mqtt_user, mqtt_password)

time.sleep(2.0)
#######################################################################################################

flex_offer = {"variables": [],"flex_output": {}}
flex_request_dict = {}

# Receive flexibility_request
dmuObj.addElm("flex_values", {})
mqttObj.attachSubscriber("/edgeflex/goflex/flex_request","json","flex_values")

# Send flexibility_output
dmuObj.addElm("flex_input", {})
mqttObj.attachPublisher("/edgeflex/goflex/flex_result","json","flex_input")

while True:
flex_request = dmuObj.getDataSubset("flex_values")
if flex_request:
flex_output = {}
print(flex_request)
for i in flex_request["variables"]:
if flex_request["flex_dict"][i]:
logging.info("flexibility request " + str(i) + " = " + str(flex_request["flex_dict"][i]))
logging.info(" ")
time.sleep(2)
###################### PREPARE THE ANSWER ###########
flex_output = {"variable":["active_power"],"active_power": {"vector_position":[2,3],"prediction": 1,"flex_value": [0.2,0.2]}}
print(flex_output)
dmuObj.setDataSubset(flex_output,"flex_input")
time.sleep(0.5)
break

108 changes: 54 additions & 54 deletions cases/LV_SOGNO.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,24 +46,24 @@ def LV_SOGNO():
[20, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[21, 1, 0.160, 0.080, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[22, 1, 0.040, 0.020, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[23, 1, 0.2764, 0.008, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[24, 1, 0.4316, 0.013, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[25, 1, 0.7275, 0.022, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[26, 1, 0.5481, 0.016, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[27, 1, 0.040, 0.020, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[28, 1, 0.5868, 0.018, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[29, 1, 0.020, 0.010, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[30, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[31, 1, 0.0329, 0.010, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[32, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[33, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[34, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[35, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[36, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[37, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[38, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[39, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
[40, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN]
# [23, 1, 0.2764, 0.008, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [24, 1, 0.4316, 0.013, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [25, 1, 0.7275, 0.022, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [26, 1, 0.5481, 0.016, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [27, 1, 0.040, 0.020, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [28, 1, 0.5868, 0.018, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [29, 1, 0.020, 0.010, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [30, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [31, 1, 0.0329, 0.010, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [32, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [33, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [34, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [35, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [36, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [37, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [38, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [39, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN] ,
# [40, 1, 0.4753, 0.014, 0.000, 0.000, 1, 1, 0, baseKV, 1, VMAX, VMIN]
])

## generator data
Expand Down Expand Up @@ -92,24 +92,24 @@ def LV_SOGNO():
[20, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[21, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[22, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[23, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[24, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[25, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[26, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[27, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[28, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[29, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[30, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[31, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[32, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[33, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[34, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[35, 1.600, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[36, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[37, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[38, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[39, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[40, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
# [23, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [24, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [25, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [26, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [27, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [28, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [29, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [30, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [31, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [32, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [33, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [34, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [35, 1.600, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [36, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [37, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [38, 0.30, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [39, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
# [40, 0.20, 0, 200, -200, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

])

Expand Down Expand Up @@ -137,24 +137,24 @@ def LV_SOGNO():
[19, 20, 0.0008150625 , 0.000307125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[20, 21, 0.000336375 , 0.00012675, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[21, 22, 0.00025875 , 0.0000975, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[22, 23, 0.0004528125 , 0.000170625, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[23, 24, 0.0004269375 , 0.000160875, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[24, 25, 0.00087975 , 0.0003315, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[25, 26, 0.0009315 , 0.000351, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[23, 27, 0.0013584375 , 0.000511875, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[27, 28, 0.0000388125 , 0.000014625, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[27, 29, 0.0006856875 , 0.000258375, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[27, 30, 0.00098325 , 0.0003705, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[27, 31, 0.0007115625 , 0.000268125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[30, 32, 0.00098325 , 0.0003705, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[30, 33, 0.0007245 , 0.000273, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[33, 34, 0.000414 , 0.000156, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[31, 35, 0.000905625 , 0.00034125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[35, 36, 0.000802125 , 0.00030225, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[35, 37, 0.000336375 , 0.00012675, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[37, 38, 0.0006598125 , 0.000248625, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[38, 39, 0.0005304375 , 0.000199875, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
[39, 40, 0.0008150625 , 0.000307125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360]
# [22, 23, 0.0004528125 , 0.000170625, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [23, 24, 0.0004269375 , 0.000160875, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [24, 25, 0.00087975 , 0.0003315, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [25, 26, 0.0009315 , 0.000351, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [23, 27, 0.0013584375 , 0.000511875, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [27, 28, 0.0000388125 , 0.000014625, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [27, 29, 0.0006856875 , 0.000258375, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [27, 30, 0.00098325 , 0.0003705, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [27, 31, 0.0007115625 , 0.000268125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [30, 32, 0.00098325 , 0.0003705, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [30, 33, 0.0007245 , 0.000273, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [33, 34, 0.000414 , 0.000156, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [31, 35, 0.000905625 , 0.00034125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [35, 36, 0.000802125 , 0.00030225, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [35, 37, 0.000336375 , 0.00012675, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [37, 38, 0.0006598125 , 0.000248625, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [38, 39, 0.0005304375 , 0.000199875, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360],
# [39, 40, 0.0008150625 , 0.000307125, 0.01E-008, 300, 300, 300, 0, 0, 1, -360, 360]
])

##----- OPF Data -----##
Expand Down
Loading