Summary
We need a way to communicate voltage and current between a branch and something other than a bus.
Rationale
For co-simulation we want to communicate voltage and current between two instances of GridKit over a "network". Presently, the Branch class reads/writes these directly as owned by a BusBase, so we need to devise an alternate means of access.
Description
The "best" way to do this is somewhat open-ended. Here are my ideas (in no particular order):
- A new type (inherits from
BusBase) that would substitute for one of the buses on the branch
- implementation of
Branch does not change
- new class enables external access through signal nodes
- A new branch type (inherits from
Component) that uses signals instead of buses
- "true" bus would be connected through
BusToSignalAdapter
- duplicates
Branch behavior
- Modify existing
Branch type to be able to use signals
- Add some logic to prioritize using signals if they are connected. If not, use the bus pointer as before.
In all of these cases the external communication is happening (from the system's perspective) through signal nodes. This is reflecting my expectation of the design the co-simulation will develop into...in which *.case.json files will remain useful as they are now (declaring signals that can be used externally) and adding (either in the case file or a new co-simulation configuration file) the ability to specify which signals are used for network communication.
Additional information
No response
Summary
We need a way to communicate voltage and current between a branch and something other than a bus.
Rationale
For co-simulation we want to communicate voltage and current between two instances of GridKit over a "network". Presently, the
Branchclass reads/writes these directly as owned by aBusBase, so we need to devise an alternate means of access.Description
The "best" way to do this is somewhat open-ended. Here are my ideas (in no particular order):
BusBase) that would substitute for one of the buses on the branchBranchdoes not changeComponent) that uses signals instead of busesBusToSignalAdapterBranchbehaviorBranchtype to be able to use signalsIn all of these cases the external communication is happening (from the system's perspective) through signal nodes. This is reflecting my expectation of the design the co-simulation will develop into...in which
*.case.jsonfiles will remain useful as they are now (declaring signals that can be used externally) and adding (either in the case file or a new co-simulation configuration file) the ability to specify which signals are used for network communication.Additional information
No response