-
Notifications
You must be signed in to change notification settings - Fork 5
feat: Add documantation for OpenDSS node type #105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
--- | ||
hide_table_of_contents: true | ||
--- | ||
|
||
# OpenDSS | ||
|
||
[OpenDSS](https://sourceforge.net/projects/electricdss/) is an electric power distribution system simulator (DSS) designed to support distributed energy resource (DER) grid integration and grid modernization. | ||
This node-type runs OpenDSS within VILLASnode and enables VILLASnode to exchange data with OpenDSS. | ||
|
||
## Prerequisites | ||
|
||
This node-type requires OpenDSS shared library. | ||
The documentation for compiling the library can be found in the [OpenDSS documentation](https://opendss.epri.com/OpenDSSC.html). | ||
Alternatively, the script found at `packaging/deps.sh` can be used. Please refer to the [installation document](../installation.md). | ||
|
||
## Implementation | ||
|
||
The Implementation of this node type is limited to only sending the data to set the values of certain element including: | ||
|
||
- **Load:** Voltage(kV), Active Power(kW), Apparent Power(kVA), Power Factor(Pf) | ||
- **Generator:** Voltage(kV), Active Power(kW), Apparent Power(kVA), Power Factor(Pf) | ||
- **ISource:** Current(Amps), Phase angle(AngleDeg), Frequency(f) | ||
|
||
For the output, VILLASnode will read the data from a monitor element for each time step. | ||
The input and output data needed to be transported by [`path`](../config/paths.md) from/to other nodes. | ||
|
||
The source code of the node-type is available here: | ||
https://github.com/VILLASframework/node/blob/master/lib/nodes/opendss.cpp | ||
|
||
## Configuration {#config} | ||
|
||
For input data the name, element type and type of data are needed to be provived. | ||
However, for output data only the name of the monitor element is needed. | ||
|
||
import ApiSchema from '@theme/ApiSchema'; | ||
|
||
<ApiSchema id="node" example pointer="#/components/schemas/opendss" /> | ||
|
||
## Example | ||
|
||
``` url="external/node/etc/examples/nodes/opendss.conf" title="node/etc/examples/nodes/opendss.conf" | ||
nodes = { | ||
opendss_node = { | ||
type = "opendss" | ||
|
||
# Path to OpenDSS file | ||
file_path = "OpenDSS_file/sample.DSS" | ||
|
||
# Example input configuration. Input data will be used to set Active power and power factor | ||
# of load element name load1 and Active power of the generator element name gen1. | ||
# Element name are deleared in OpenDSS file. | ||
# Available input type and data: | ||
# - load: kV, kW, kVA, Pf | ||
# - generator: kV, kW, kVA, Pf | ||
# - isource: Amps, AngleDeg, f | ||
in = { | ||
list = ( | ||
{name = "load1", type = "load", data = ("kW", "Pf")}, | ||
{name = "gen1", type = "generator", data = ("kW")} | ||
) | ||
} | ||
|
||
# Example output configuration. Output data will be read from monitor name load1_power and load1_v. | ||
# Monitor name are declared in OpenDSS file. | ||
out = { | ||
list = ["load1_power", "load1_v"] | ||
} | ||
} | ||
|
||
udp_node = { | ||
type = "socket" | ||
|
||
layer = "udp" | ||
|
||
format = "villas.human" | ||
|
||
in = { | ||
address = "*:12000" | ||
} | ||
out = { | ||
address = "127.0.0.1:12001" | ||
} | ||
} | ||
|
||
file_node1 = { | ||
type = "file" | ||
|
||
uri = "load.dat" | ||
|
||
in = { | ||
epoch_mode = "direct" | ||
epoch = 10 | ||
rate = 2 | ||
buffer_size = 0 | ||
} | ||
} | ||
} | ||
|
||
paths = ( | ||
{ | ||
# Get input for file node type | ||
in = "file_node1" | ||
out = "opendss_node" | ||
hooks = ( { type = "print" } ) | ||
}, | ||
{ | ||
# Output to udp node type | ||
in = "opendss_node" | ||
out = "udp_node" | ||
hooks = ( { type = "print" } ) | ||
} | ||
) | ||
``` |
Submodule node
updated
1128 files
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we incorporate the OpenDSS example model into the VILLASnode repo and add a link here?