594 lines
18 KiB
JSON
594 lines
18 KiB
JSON
{
|
|
"file_format_version": 1,
|
|
"format_version": 1,
|
|
"id": "3b6780c7-488b-471e-a784-392db7632090",
|
|
"name": "main_node",
|
|
"root": {
|
|
"50e6ef97-f686-4400-bc01-e5a352e8cc22": {
|
|
"name": "some_bondgraph",
|
|
"interface": {
|
|
"ports": {}
|
|
},
|
|
"parameters": {},
|
|
"implementation": {
|
|
"implementation_type": "graph",
|
|
"graph": {
|
|
"components": {
|
|
"43b3aee6-0b38-429b-9c6d-d38fc097297f": {
|
|
"name": "C",
|
|
"interface": {
|
|
"ports": {
|
|
"c87881f1-23b4-4a69-b586-8e3c7bf6e21e": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "input",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "preferred_effort_out"
|
|
},
|
|
"c62de8eb-e13b-4849-bea5-c8cc5332269e": {
|
|
"port_type": "signal",
|
|
"name": "state",
|
|
"direction": "output",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"value_type": "real",
|
|
"quantity": "",
|
|
"unit": ""
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"parameter-d056bc27": {
|
|
"name": "c",
|
|
"value": "1",
|
|
"value_type": "real",
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"quantity": null,
|
|
"unit": null,
|
|
"description": null
|
|
}
|
|
},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [],
|
|
"initial_equations": [
|
|
"state = 0;"
|
|
],
|
|
"equations": [
|
|
"der(state) = p.f;",
|
|
"p.e = state/c;"
|
|
]
|
|
}
|
|
},
|
|
"9ee2f42b-5ed1-446d-8790-c2a1df6b61d3": {
|
|
"name": "j1",
|
|
"interface": {
|
|
"ports": {
|
|
"4306701a-6b1b-4d19-b8ff-45dbfa04f2d3": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "input",
|
|
"multiplicity": true,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "single_flow_in"
|
|
}
|
|
}
|
|
},
|
|
"parameters": {},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [
|
|
"parameter Real s[$p_N$] = $p_S$;",
|
|
"Real f;"
|
|
],
|
|
"initial_equations": [],
|
|
"equations": [
|
|
"f = s[1] * p[1].f;",
|
|
"sum(s[i] * p[i].e for i in 1:$p_N$) = 0;",
|
|
"for i in 2:$p_N$ loop",
|
|
" s[i] * p[i].f = s[i-1] * p[i-1].f;",
|
|
"end for;"
|
|
]
|
|
}
|
|
},
|
|
"5a8b2e8d-489f-467b-8282-7e344dfad576": {
|
|
"name": "R",
|
|
"interface": {
|
|
"ports": {
|
|
"0ac7d4ea-77f7-4c0d-8e37-406ef66e4740": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "input",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "indifferent"
|
|
},
|
|
"d1f5aab2-7bff-4b1e-8697-98fb6c3d8f02": {
|
|
"port_type": "signal",
|
|
"name": "power",
|
|
"direction": "output",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "Dissipated power",
|
|
"value_type": "real",
|
|
"quantity": null,
|
|
"unit": null
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"parameter-d056bc27": {
|
|
"name": "r",
|
|
"value": "1",
|
|
"value_type": "real",
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"quantity": null,
|
|
"unit": null,
|
|
"description": null
|
|
}
|
|
},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [],
|
|
"initial_equations": [],
|
|
"equations": [
|
|
"p.e = r*p.f;",
|
|
"power = p.e*p.f;"
|
|
]
|
|
}
|
|
},
|
|
"2804f2f1-6123-4a53-aff1-87a3a8202711": {
|
|
"name": "Se",
|
|
"interface": {
|
|
"ports": {
|
|
"5b6a8a0c-0875-402c-bd74-11d086aac372": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "output",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "fixed_effort_out"
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"parameter-d056bc27": {
|
|
"name": "e",
|
|
"value": "1",
|
|
"value_type": "real",
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"quantity": null,
|
|
"unit": null,
|
|
"description": null
|
|
}
|
|
},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [
|
|
"Real f;"
|
|
],
|
|
"initial_equations": [],
|
|
"equations": [
|
|
"p.e = e;",
|
|
"f = p.f;"
|
|
]
|
|
}
|
|
},
|
|
"9f392c28-6bef-4b10-9305-93e250747007": {
|
|
"name": "j0",
|
|
"interface": {
|
|
"ports": {
|
|
"497b1f74-1186-471f-976a-36b07a451caf": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "input",
|
|
"multiplicity": true,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "single_effort_in"
|
|
}
|
|
}
|
|
},
|
|
"parameters": {},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [
|
|
"Real e;"
|
|
],
|
|
"initial_equations": [],
|
|
"equations": [
|
|
"e = p[1].e;",
|
|
"sum(p[i].f for i in 1:$p_N$) = 0;",
|
|
"for i in 2:$p_N$ loop",
|
|
" p[i].e = p[i-1].e;",
|
|
"end for;"
|
|
]
|
|
}
|
|
},
|
|
"77701f68-b14c-4b98-8929-c5fba0261962": {
|
|
"name": "R0",
|
|
"interface": {
|
|
"ports": {
|
|
"4a3f69f2-b305-4305-92e3-3998634ff226": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "input",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "indifferent"
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"parameter-d056bc27": {
|
|
"name": "r",
|
|
"value": "10",
|
|
"value_type": "real",
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"quantity": null,
|
|
"unit": null,
|
|
"description": null
|
|
}
|
|
},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [],
|
|
"initial_equations": [],
|
|
"equations": [
|
|
"p.e = r*p.f;"
|
|
]
|
|
}
|
|
},
|
|
"033b930e-bf79-403a-8b0b-a159f3c81ce9": {
|
|
"name": "I",
|
|
"interface": {
|
|
"ports": {
|
|
"0b9036b1-e4e4-437e-8c35-f5bb391b6cbd": {
|
|
"port_type": "bond",
|
|
"name": "p",
|
|
"direction": "input",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"domain": "power",
|
|
"causality_preference": "preferred_flow_out"
|
|
},
|
|
"fb25f35d-4c0c-4cfa-92d4-1a18a71e2c11": {
|
|
"port_type": "signal",
|
|
"name": "state",
|
|
"direction": "output",
|
|
"multiplicity": false,
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"description": "",
|
|
"value_type": "real",
|
|
"quantity": "",
|
|
"unit": ""
|
|
}
|
|
}
|
|
},
|
|
"parameters": {
|
|
"parameter-d056bc27": {
|
|
"name": "i",
|
|
"value": "1",
|
|
"value_type": "real",
|
|
"matrix_size": [
|
|
1,
|
|
1
|
|
],
|
|
"quantity": null,
|
|
"unit": null,
|
|
"description": null
|
|
}
|
|
},
|
|
"implementation": {
|
|
"implementation_type": "equation",
|
|
"declarations": [],
|
|
"initial_equations": [
|
|
"state = 0;"
|
|
],
|
|
"equations": [
|
|
"der(state) = p.e;",
|
|
"p.f = state/i;"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"connections": {
|
|
"7e293c73-1e07-4d4c-b750-6f43870c71c4": {
|
|
"connection_type": "bond",
|
|
"source": "5b6a8a0c-0875-402c-bd74-11d086aac372",
|
|
"target": "4306701a-6b1b-4d19-b8ff-45dbfa04f2d3",
|
|
"causality": "effort_out",
|
|
"undesired": false
|
|
},
|
|
"66414b62-ca76-4be6-8da4-72551f8ffc0e": {
|
|
"connection_type": "bond",
|
|
"source": "497b1f74-1186-471f-976a-36b07a451caf",
|
|
"target": "4a3f69f2-b305-4305-92e3-3998634ff226",
|
|
"causality": "flow_out",
|
|
"undesired": false
|
|
},
|
|
"8aaa96b3-45ed-4674-8f7a-06b28178a5c8": {
|
|
"connection_type": "bond",
|
|
"source": "4306701a-6b1b-4d19-b8ff-45dbfa04f2d3",
|
|
"target": "c87881f1-23b4-4a69-b586-8e3c7bf6e21e",
|
|
"causality": "flow_out",
|
|
"undesired": false
|
|
},
|
|
"ff606583-d31f-4638-93f7-926163db2665": {
|
|
"connection_type": "bond",
|
|
"source": "4306701a-6b1b-4d19-b8ff-45dbfa04f2d3",
|
|
"target": "0ac7d4ea-77f7-4c0d-8e37-406ef66e4740",
|
|
"causality": "effort_out",
|
|
"undesired": false
|
|
},
|
|
"1f52dc5a-1847-4982-aabc-2538cf99a86f": {
|
|
"connection_type": "bond",
|
|
"source": "497b1f74-1186-471f-976a-36b07a451caf",
|
|
"target": "0b9036b1-e4e4-437e-8c35-f5bb391b6cbd",
|
|
"causality": "effort_out",
|
|
"undesired": false
|
|
},
|
|
"5af42b61-2317-48a8-b32b-0e2dfd88368e": {
|
|
"connection_type": "bond",
|
|
"source": "4306701a-6b1b-4d19-b8ff-45dbfa04f2d3",
|
|
"target": "497b1f74-1186-471f-976a-36b07a451caf",
|
|
"causality": "flow_out",
|
|
"undesired": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {
|
|
"icon_database": {
|
|
"format_version": 1,
|
|
"icons": {
|
|
"43b3aee6-0b38-429b-9c6d-d38fc097297f": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-32,
|
|
-32
|
|
],
|
|
"width": 64.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "C"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"c87881f1-23b4-4a69-b586-8e3c7bf6e21e": [
|
|
-8,
|
|
-8
|
|
],
|
|
"c62de8eb-e13b-4849-bea5-c8cc5332269e": [
|
|
16,
|
|
-32
|
|
]
|
|
}
|
|
},
|
|
"5a8b2e8d-489f-467b-8282-7e344dfad576": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-32,
|
|
-32
|
|
],
|
|
"width": 64.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "R"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"0ac7d4ea-77f7-4c0d-8e37-406ef66e4740": [
|
|
-8,
|
|
-8
|
|
],
|
|
"d1f5aab2-7bff-4b1e-8697-98fb6c3d8f02": [
|
|
16,
|
|
-32
|
|
]
|
|
}
|
|
},
|
|
"77701f68-b14c-4b98-8929-c5fba0261962": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-32,
|
|
-32
|
|
],
|
|
"width": 64.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "R"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"4a3f69f2-b305-4305-92e3-3998634ff226": [
|
|
-8,
|
|
-8
|
|
]
|
|
}
|
|
},
|
|
"033b930e-bf79-403a-8b0b-a159f3c81ce9": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-32,
|
|
-32
|
|
],
|
|
"width": 64.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "I"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"0b9036b1-e4e4-437e-8c35-f5bb391b6cbd": [
|
|
-8,
|
|
-8
|
|
],
|
|
"fb25f35d-4c0c-4cfa-92d4-1a18a71e2c11": [
|
|
16,
|
|
-32
|
|
]
|
|
}
|
|
},
|
|
"9ee2f42b-5ed1-446d-8790-c2a1df6b61d3": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-32,
|
|
-32
|
|
],
|
|
"width": 64.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "1"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"4306701a-6b1b-4d19-b8ff-45dbfa04f2d3": [
|
|
-8,
|
|
-8
|
|
]
|
|
}
|
|
},
|
|
"9f392c28-6bef-4b10-9305-93e250747007": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-32,
|
|
-32
|
|
],
|
|
"width": 64.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "0"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"497b1f74-1186-471f-976a-36b07a451caf": [
|
|
-8,
|
|
-8
|
|
]
|
|
}
|
|
},
|
|
"2804f2f1-6123-4a53-aff1-87a3a8202711": {
|
|
"shapes": {
|
|
"2a5bf670-c821-442b-9d46-1b07faa70722": {
|
|
"layer": 0,
|
|
"type": "text",
|
|
"pos": [
|
|
-48,
|
|
-32
|
|
],
|
|
"width": 96.0,
|
|
"height": 64.0,
|
|
"color": "#000000ff",
|
|
"bold": true,
|
|
"italic": false,
|
|
"size": 64.0,
|
|
"text": "Se"
|
|
}
|
|
},
|
|
"port_positions": {
|
|
"5b6a8a0c-0875-402c-bd74-11d086aac372": [
|
|
-8,
|
|
-8
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|