In essense the distribution network can be seen as a series of nodes and links. Nodes primary responsibility is to act as an aggregation point for the links that are attached to it, and to hold the current and voltage values that will be used in the matrix calculations done in the link.
Three types of nodes are defined in this file. Nodes are simply a basic object that exports the voltages for each phase. Triplex nodes export voltages for 3 lines; line1_voltage, line2_voltage, lineN_voltage.
All node objects export a phase property that is a set of phases and may be set using the bitwise or operator (A|B|C for a 3 phase line).
The types of nodes are supported
PQ buses are nodes that have both constant real and reactive power injectionsPV buses are for nodes that have constant real power injection but can control reactive power injectionSWING buses are nodes that are designated to absorb the residual error and for generators that can control both real and reactive power injectionsThree bus types are supported, PQ, PV, and SWING:
where
If Q exceeds the Q limits [Qmin, Qmax] then the angle is fixed to the correspond limit and the bus is solved as a PQ bus.
where
Modules | |
| GLM file loader | |
| Load objects represent static loads and export both voltages and current. | |
| Triplex_node | |
Functions | |
| int | node::create (void) |
| EXPORT int | create_node (OBJECT **obj, OBJECT *parent) |
| REQUIRED: allocate and initialize an object. | |
| int | node::init (OBJECT *parent=NULL) |
| EXPORT int | init_node (OBJECT *obj) |
| Object initialization is called once after all object have been created. | |
| int | node::isa (char *classname) |
| EXPORT int | isa_node (OBJECT *obj, char *classname) |
| node::node (MODULE *mod) | |
| TIMESTAMP | node::postsync (TIMESTAMP t0) |
| TIMESTAMP | node::presync (TIMESTAMP t0) |
| TIMESTAMP | node::sync (TIMESTAMP t0) |
| EXPORT TIMESTAMP | sync_node (OBJECT *obj, TIMESTAMP t0) |
| EXPORT TIMESTAMP | sync_node (OBJECT *obj, TIMESTAMP t0, PASSCONFIG pass) |
| Sync is called when the clock needs to advance on the bottom-up pass (PC_BOTTOMUP). | |
| node::~node () | |
Variables | |
| static node * | node::defaults = NULL |
| static CLASS * | node::oclass = NULL |
| static CLASS * | node::pclass = NULL |
REQUIRED: allocate and initialize an object.
| obj | a pointer to a pointer of the last object in the list | |
| parent | a pointer to the parent of this object |
Definition at line 169 of file node.cpp.
References gl_create_object, gl_error, gl_set_parent, OBJECTDATA, and oclass.
| EXPORT int init_node | ( | OBJECT * | obj | ) |
Object initialization is called once after all object have been created.
| parent | a pointer to this object's parent |
Definition at line 194 of file node.cpp.
References powerflow_object::get_id(), powerflow_object::get_name(), GL_THROW, init(), OBJECTDATA, and s_object_list::parent.
| EXPORT TIMESTAMP sync_node | ( | OBJECT * | obj, | |
| TIMESTAMP | t0, | |||
| PASSCONFIG | pass | |||
| ) |
Sync is called when the clock needs to advance on the bottom-up pass (PC_BOTTOMUP).
| t0 | this objects current timestamp | |
| t1 | the timestamp which the object should move forward to |
Definition at line 214 of file node.cpp.
References s_object_list::clock, powerflow_object::get_id(), powerflow_object::get_name(), gl_error, OBJECTDATA, PC_BOTTOMUP, PC_POSTTOPDOWN, PC_PRETOPDOWN, postsync(), presync(), sync(), TS_INVALID, and TS_NEVER.