Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions examples/Network/CoSim/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ gridkit_example_add_file(TwoBusCoSimServer.solo.case.json)
gridkit_example_add_file(TwoBusCoSimServer.solver.json)
gridkit_example_add_file(ThreeBusCoSimClient.case.json)
gridkit_example_add_file(ThreeBusCoSimServer.case.json)
gridkit_example_add_file(IEEE39Generator.case.json)
gridkit_example_add_file(IEEE39Grid.case.json)
gridkit_example_add_file(run_cosim.sh)

add_executable(CoSimClient CoSimClient.cpp)
Expand All @@ -30,3 +32,15 @@ add_test(
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

set_tests_properties(CoSimExample PROPERTIES TIMEOUT 30)

add_test(
NAME IEEE39CoSimExample
COMMAND bash run_cosim.sh IEEE39Generator.case.json IEEE39Grid.case.json
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(
IEEE39CoSimExample
PROPERTIES TIMEOUT
30
RESOURCE_LOCK
cosim_port_8800)
set_tests_properties(CoSimExample PROPERTIES RESOURCE_LOCK cosim_port_8800)
13 changes: 7 additions & 6 deletions examples/Network/CoSim/CoSimClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,15 +236,16 @@ int main(int argc, const char* argv[])
auto data = parseSystemModelData(filepath);
auto sys = SystemModel<ScalarT, IdxT>(data);

auto client = CoSimClient<ScalarT, IdxT>(sys,
sys.getSignalNode(1),
sys.getSignalNode(2),
sys.getSignalNode(3),
sys.getSignalNode(4));
const bool ieee39 = filepath.filename() == "IEEE39Grid.case.json";
auto client = CoSimClient<ScalarT, IdxT>(sys,
sys.getSignalNode(ieee39 ? 30 : 1),
sys.getSignalNode(ieee39 ? 31 : 2),
sys.getSignalNode(ieee39 ? 32 : 3),
sys.getSignalNode(ieee39 ? 33 : 4));
Comment thread
superwhiskers marked this conversation as resolved.
Resolved
sys.allocate();
client.configure();

RealT dt = 1.0 / 16.0 / 60.0;
RealT dt = ieee39 ? 1.0 / 2.0 / 60.0 : 1.0 / 16.0 / 60.0;
Comment thread
superwhiskers marked this conversation as resolved.
Resolved

client.runSimulation(0.0, 0.1, dt);

Expand Down
11 changes: 6 additions & 5 deletions examples/Network/CoSim/CoSimServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,11 +217,12 @@ int main(int argc, const char* argv[])
auto data = parseSystemModelData(filepath);
auto sys = SystemModel<ScalarT, IdxT>(data);

auto server = CoSimServer<ScalarT, IdxT>(sys,
sys.getSignalNode(1),
sys.getSignalNode(2),
sys.getSignalNode(3),
sys.getSignalNode(4));
const bool ieee39 = filepath.filename() == "IEEE39Generator.case.json";
auto server = CoSimServer<ScalarT, IdxT>(sys,
sys.getSignalNode(ieee39 ? 32 : 1),
sys.getSignalNode(ieee39 ? 33 : 2),
sys.getSignalNode(ieee39 ? 30 : 3),
sys.getSignalNode(ieee39 ? 31 : 4));
server.start();

return 0;
Expand Down
167 changes: 167 additions & 0 deletions examples/Network/CoSim/IEEE39Generator.case.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
{
"header": {
"format_version": 0.2,
"format_revision": 0,
"case_name": "IEEE39Generator",
"case_description": "IEEE39 case generator partition at bus 39",
"case_comments": ""
},
"params": {
"freq_base": 60.0,
"va_base": 100000000.0
},
"buses": [
{
"number": 39,
"class": "SignalVoltageIn",
"name": "39",
"init": {
"Vr": 1.014553036142942,
"Vi": -0.1777134713972648
},
"params": {
"kv": 1.0
},
"mon": [
"Vm"
],
"ports_in": {
"vr": 30,
"vi": 31
},
"ports_out": {
"ir": 32,
"ii": 33
}
}
],
"signals": [
{
"signal_id": 27,
"name": "39_1_efd"
},
{
"signal_id": 28,
"name": "39_1_speed"
},
{
"signal_id": 29,
"name": "39_1_vs"
},
{
"signal_id": 30,
"name": "vr"
},
{
"signal_id": 31,
"name": "vi"
},
{
"signal_id": 32,
"name": "ir"
},
{
"signal_id": 33,
"name": "ii"
}
],
"devices": [
{
"class": "Genrou",
"id": "39_1_genrou",
"ports": {
"bus": 39,
"efd": 27,
"speed": 28
},
"params": {
"p0": 10.0,
"q0": 0.7360381484031677,
"H": 25.0,
"D": 0.0,
"Ra": 0.0,
"Tdop": 7.0,
"Tdopp": 0.05000000074505806,
"Tqop": 0.699999988079071,
"Tqopp": 0.03500000014901161,
"Xd": 0.4000000059604645,
"Xdp": 0.11999999731779099,
"Xdpp": 0.07999999821186066,
"Xq": 0.3799999952316284,
"Xqp": 0.1599999964237213,
"Xqpp": 0.07999999821186066,
"Xl": 0.05999999865889549,
"S10": 0.0,
"S12": 0.0,
"mva": 2000.0
},
"mon": [
"omega"
]
},
{
"class": "Esdc1a",
"id": "39_1_esdc1a",
"ports": {
"bus": 39,
"speed": 28,
"vs": 29,
"efd": 27
},
"params": {
"Tr": 0.009999999776482582,
"Ka": 200.0,
"Ta": 0.014999999664723873,
"Tb": 10.0,
"Tc": 1.0,
"Vrmax": 5.0,
"Vrmin": -5.0,
"Ke": 1.0,
"Te": 0.009999999776482582,
"Kf": 0.0,
"Tf1": 0.009999999776482582,
"Spdmlt": false,
"E1": 0.0,
"Se1": 0.0,
"E2": 0.0,
"Se2": 0.0,
"UEL": 2,
"exclim": false
}
},
{
"class": "Ieeest",
"id": "39_1_ieeest",
"ports": {
"input": 28,
"output": 29
},
"params": {
"A1": 0.0,
"A2": 0.0,
"A3": 0.0,
"A4": 0.0,
"A5": 0.0,
"A6": 0.0,
"T1": 5.0,
"T2": 0.6000000238418579,
"T3": 3.0,
"T4": 0.5,
"T5": 10.0,
"T6": 10.0,
"Ks": 1.0,
"Lsmin": -0.20000000298023224,
"Lsmax": 0.20000000298023224,
"Vcl": 0.0,
"Vcu": 0.0,
"Tdelay": 0.0
}
}
],
"monitors": [
{
"file_name": "IEEE39Generator.csv",
"format": "csv"
}
]
}
Loading
Loading