|
DPsim
|
Base class for composite power components. More...
#include <CompositePowerComp.h>
Public Types | |
| using | Type = VarType |
| using | Ptr = std::shared_ptr<CompositePowerComp<VarType>> |
| using | List = std::vector<Ptr> |
Public Types inherited from CPS::MNASimPowerComp< VarType > | |
| using | Type = VarType |
| using | Ptr = std::shared_ptr<MNASimPowerComp<VarType>> |
| using | List = std::vector<Ptr> |
Public Types inherited from CPS::SimPowerComp< VarType > | |
| typedef VarType | Type |
| typedef std::shared_ptr< SimPowerComp< VarType > > | Ptr |
| typedef std::vector< Ptr > | List |
Public Types inherited from CPS::TopologicalPowerComp | |
| enum | Behaviour { Initialization , MNASimulation , PFSimulation } |
| typedef std::shared_ptr< TopologicalPowerComp > | Ptr |
| typedef std::vector< Ptr > | List |
Public Types inherited from CPS::IdentifiedObject | |
| typedef std::shared_ptr< IdentifiedObject > | Ptr |
| typedef std::vector< Ptr > | List |
Public Types inherited from CPS::MNAInterface | |
| typedef std::shared_ptr< MNAInterface > | Ptr |
| typedef std::vector< Ptr > | List |
Public Member Functions | |
| CompositePowerComp (String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel) | |
| Basic constructor that takes UID, name and log level. | |
| CompositePowerComp (String name, Bool hasPreStep=true, Bool hasPostStep=true, Logger::Level logLevel=Logger::Level::off) | |
| Basic constructor that takes name and log level and sets the UID to name as well. | |
| virtual | ~CompositePowerComp ()=default |
| Destructor - does not do anything. | |
| void | addMNASubComponent (typename SimPowerComp< VarType >::Ptr subc, MNA_SUBCOMP_TASK_ORDER preStepOrder, MNA_SUBCOMP_TASK_ORDER postStepOrder, Bool contributeToRightVector) |
| Add a new subcomponent implementing MNA methods. | |
| void | mnaCompInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) override |
| Initializes variables of components. | |
| void | mnaCompApplySystemMatrixStamp (SparseMatrixRow &systemMatrix) override |
| Stamps system matrix. | |
| void | mnaCompApplyRightSideVectorStamp (Matrix &rightVector) override |
| Stamps right side (source) vector. | |
| void | mnaCompPreStep (Real time, Int timeStepCount) override |
| MNA pre step operations. | |
| void | mnaCompPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) override |
| MNA post step operations. | |
| void | mnaCompAddPreStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override |
| Add MNA pre step dependencies. | |
| void | mnaCompAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override |
| Add MNA post step dependencies. | |
| virtual void | mnaParentInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) |
| virtual void | mnaParentApplySystemMatrixStamp (SparseMatrixRow &systemMatrix) |
| virtual void | mnaParentApplyRightSideVectorStamp (Matrix &rightVector) |
| virtual void | mnaParentPreStep (Real time, Int timeStepCount) |
| virtual void | mnaParentPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) |
| virtual void | mnaParentAddPreStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) |
| virtual void | mnaParentAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) |
Public Member Functions inherited from CPS::MNASimPowerComp< VarType > | |
| MNASimPowerComp (String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel) | |
| Basic constructor that takes UID, name and log level. | |
| MNASimPowerComp (String name, Bool hasPreStep=true, Bool hasPostStep=true, Logger::Level logLevel=Logger::Level::off) | |
| Basic constructor that takes name and log level and sets the UID to name as well. | |
| virtual | ~MNASimPowerComp ()=default |
| Destructor - does not do anything. | |
| void | mnaInitialize (Real omega, Real timeStep) final |
| Initializes variables of components. | |
| void | mnaInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) final |
| void | mnaApplySystemMatrixStamp (SparseMatrixRow &systemMatrix) final |
| Stamps system matrix. | |
| void | mnaApplyRightSideVectorStamp (Matrix &rightVector) final |
| Stamps right side (source) vector. | |
| void | mnaUpdateVoltage (const Matrix &leftVector) final |
| Update interface voltage from MNA system result. | |
| void | mnaUpdateCurrent (const Matrix &leftVector) final |
| Update interface current from MNA system result. | |
| void | mnaPreStep (Real time, Int timeStepCount) final |
| MNA pre step operations. | |
| void | mnaPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) final |
| void | mnaAddPreStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) final |
| Add MNA pre step dependencies. | |
| void | mnaAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) final |
| void | mnaInitializeHarm (Real omega, Real timeStep, std::vector< Attribute< Matrix >::Ptr > leftVector) final |
| void | mnaApplySystemMatrixStampHarm (SparseMatrixRow &systemMatrix, Int freqIdx) final |
| Stamps system matrix considering the frequency index. | |
| void | mnaApplyRightSideVectorStampHarm (Matrix &sourceVector) final |
| Stamps right side (source) vector considering the frequency index. | |
| void | mnaApplyRightSideVectorStampHarm (Matrix &sourceVector, Int freqIdx) final |
| virtual void | mnaCompInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) |
| virtual void | mnaCompUpdateVoltage (const Matrix &leftVector) |
| virtual void | mnaCompUpdateCurrent (const Matrix &leftVector) |
| virtual void | mnaCompPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) |
| virtual void | mnaCompAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) |
| virtual void | mnaCompInitializeHarm (Real omega, Real timeStep, std::vector< Attribute< Matrix >::Ptr > leftVector) |
| virtual void | mnaCompApplySystemMatrixStampHarm (SparseMatrixRow &systemMatrix, Int freqIdx) |
| virtual void | mnaCompApplyRightSideVectorStampHarm (Matrix &sourceVector) |
| virtual void | mnaCompApplyRightSideVectorStampHarm (Matrix &sourceVector, Int freqIdx) |
| const Task::List & | mnaTasks () const final |
| Return list of MNA tasks. | |
| Attribute< Matrix >::Ptr | getRightVector () const final |
Public Member Functions inherited from CPS::SimPowerComp< VarType > | |
| SimPowerComp (String uid, String name, Logger::Level logLevel=Logger::Level::off) | |
| Basic constructor that takes UID, name and log level. | |
| SimPowerComp (String name, Logger::Level logLevel=Logger::Level::off) | |
| Basic constructor that takes name and log level and sets the UID to name as well. | |
| virtual | ~SimPowerComp () |
| Destructor - does not do anything. | |
| virtual SimPowerComp< VarType >::Ptr | clone (String name) |
| Returns a modified copy of the component with the given suffix added to the name and without. | |
| UInt | terminalNumber () |
| Returns nominal number of Terminals for this component type. | |
| UInt | terminalNumberConnected () |
| Returns the number of connected Terminals. | |
| Bool | hasUnconnectedTerminals () |
| void | checkForUnconnectedTerminals () |
| SimTerminal< VarType >::List | terminals () |
| Return list of Terminal pointers. | |
| SimTerminal< VarType >::Ptr | terminal (UInt index) |
| Get pointer to Terminal. | |
| TopologicalTerminal::List | topologicalTerminals () |
| Returns the list of terminals as TopologicalTerminal pointers. | |
| void | setTerminalNumber (UInt num) |
| void | setTerminals (typename SimTerminal< VarType >::List terminals) |
| void | setTerminalAt (typename SimTerminal< VarType >::Ptr terminal, UInt terminalPosition) |
| Sets Terminal at index terminalPosition. | |
| void | updateMatrixNodeIndices () |
| Update the "cached" mMatrixNodeIndices and mMatrixNodeIndexIsGround members. | |
| UInt | nodeNumber () |
| Returns the actual number of Nodes / Terminals that are already set to valid Nodes. | |
| SimNode< VarType >::Ptr | node (UInt index) |
| Get pointer to node. | |
| UInt | matrixNodeIndex (UInt nodeIndex) |
| UInt | matrixNodeIndex (UInt nodeIndex, UInt phaseIndex) |
| std::vector< UInt > | matrixNodeIndices (UInt index) |
| TODO replace with access to mMatrixNodeIndices. | |
| TopologicalNode::List | topologicalNodes () |
| Get nodes as base type TopologicalNode. | |
| UInt | virtualNodesNumber () |
| Returns nominal number of virtual nodes for this component type. | |
| Bool | hasVirtualNodes () |
| Returns true if virtual node number is greater than zero. | |
| Bool | hasSubComponents () |
| Returns true if subcomponents included in this component. | |
| SimPowerComp< VarType >::List | subComponents () |
| Get list of subcomponents. | |
| SimNode< VarType >::List & | virtualNodes () |
| SimNode< VarType >::Ptr | virtualNode (UInt index) |
| Get pointer to virtual node. | |
| std::vector< UInt > | virtualMatrixNodeIndices (UInt index) |
| Get vector of simulation node numbers from virtual Node. | |
| UInt | virtualSimNode (UInt nodeIndex, UInt phaseIndex=0) |
| Get simulation node number from virtual node. | |
| const MatrixVar< VarType > & | intfCurrent () |
| const MatrixVar< VarType > & | intfVoltage () |
| MatrixComp | initialVoltage (UInt index) |
| Complex | initialSingleVoltage (UInt index) |
| Bool | terminalNotGrounded (UInt index) |
| void | setIntfCurrent (MatrixVar< VarType > current) |
| void | setIntfVoltage (MatrixVar< VarType > voltage) |
| void | setVirtualNodeNumber (UInt num) |
| void | setVirtualNodeAt (typename SimNode< VarType >::Ptr virtualNode, UInt nodeNum) |
| Sets the virtual node at index nodeNum. | |
| void | connect (typename SimNode< VarType >::List nodes) |
| Sets all nodes and checks for nominal number of Nodes for this Component. | |
| virtual void | initialize (Matrix frequencies) |
| Initialize components with correct network frequencies. | |
| virtual void | initializeFromNodesAndTerminals (Real frequency) |
| Initializes Component variables according to power flow data stored in Nodes. | |
Public Member Functions inherited from CPS::TopologicalPowerComp | |
| TopologicalPowerComp (String uid, String name, Logger::Level logLevel=Logger::Level::off) | |
| Basic constructor that takes UID, name and log level. | |
| TopologicalPowerComp (String name, Logger::Level logLevel=Logger::Level::off) | |
| Basic constructor that takes name and log level and sets the UID to name as well. | |
| virtual | ~TopologicalPowerComp () |
| Destructor - does not do anything. | |
| void | setBehaviour (Behaviour behaviour) |
| Set behavior of component, e.g. initialization. | |
Public Member Functions inherited from CPS::IdentifiedObject | |
| IdentifiedObject (const String &uid, const String &name) | |
| IdentifiedObject (const String &name) | |
| AttributeBase::Ptr | attribute (const String &name) const |
| Return pointer to an attribute. | |
| template<typename T> | |
| Attribute< T >::Ptr | attributeTyped (const String &name) const |
| Return pointer to an attribute. | |
| const AttributeBase::Map & | attributes () const |
| String | name () |
| String | uid () |
| Returns unique id. | |
| String | type () |
| Get component type (cross-platform) | |
| virtual String | description () |
Public Member Functions inherited from CPS::MNAInterface | |
| virtual void | mnaInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector)=0 |
| virtual void | mnaPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector)=0 |
| MNA post step operations. | |
| virtual void | mnaAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector)=0 |
| Add MNA post step dependencies. | |
| virtual void | mnaInitializeHarm (Real omega, Real timeStep, std::vector< Attribute< Matrix >::Ptr > leftVector)=0 |
| Initializes variables of components. | |
Additional Inherited Members | |
Public Attributes inherited from CPS::MNASimPowerComp< VarType > | |
| Attribute< Matrix >::Ptr | mRightVector |
| Task::List | mMnaTasks |
| List of tasks that relate to using MNA for this component (usually pre-step and/or post-step) | |
Public Attributes inherited from CPS::SimPowerComp< VarType > | |
| const Attribute< MatrixVar< VarType > >::Ptr | mIntfVoltage |
| Voltage between terminals. | |
| const Attribute< MatrixVar< VarType > >::Ptr | mIntfCurrent |
| Current through component. | |
Public Attributes inherited from CPS::IdentifiedObject | |
| const Attribute< String >::Ptr | mName |
| Human readable name. | |
| const Attribute< String >::Ptr | mUID |
| Unique identifier. | |
Protected Attributes inherited from CPS::SimPowerComp< VarType > | |
| SimTerminal< VarType >::List | mTerminals |
| List of Terminals. | |
| SimNode< VarType >::List | mVirtualNodes |
| List of virtual nodes. | |
| Matrix | mFrequencies |
| List of considered network frequencies. | |
| UInt | mNumFreqs = 0 |
| Number of network frequencies. | |
| PhaseType | mPhaseType = PhaseType::Single |
| std::vector< std::shared_ptr< SimPowerComp< VarType > > > | mSubComponents |
| std::vector< UInt > | mMatrixNodeIndices |
| "Cached" list of simulation nodes (to avoid shared_ptr accesses during simulation) | |
| std::vector< bool > | mMatrixNodeIndexIsGround |
| "Cached" flags for whether the connected nodes are grounded | |
Protected Attributes inherited from CPS::TopologicalPowerComp | |
| UInt | mNumTerminals = 0 |
| Determines the number of Terminals which can be connected to network Nodes. | |
| UInt | mNumVirtualNodes = 0 |
| Determines the number of virtual or internal Nodes. | |
| Logger::Log | mSLog |
| Component logger. | |
| Logger::Level | mLogLevel |
| Component logger control for internal variables. | |
| Behaviour | mBehaviour = Behaviour::MNASimulation |
| bool | mParametersSet = false |
| Flag indicating that parameters are set via setParameters() function. | |
Protected Attributes inherited from CPS::IdentifiedObject | |
| AttributeList::Ptr | mAttributes = AttributeList::make() |
| Attribute List. | |
Base class for composite power components.
Definition at line 16 of file CompositePowerComp.h.
| using CPS::CompositePowerComp< VarType >::List = std::vector<Ptr> |
Definition at line 30 of file CompositePowerComp.h.
| using CPS::CompositePowerComp< VarType >::Ptr = std::shared_ptr<CompositePowerComp<VarType>> |
Definition at line 29 of file CompositePowerComp.h.
| using CPS::CompositePowerComp< VarType >::Type = VarType |
Definition at line 28 of file CompositePowerComp.h.
|
inline |
Basic constructor that takes UID, name and log level.
Definition at line 33 of file CompositePowerComp.h.
|
inline |
Basic constructor that takes name and log level and sets the UID to name as well.
Definition at line 39 of file CompositePowerComp.h.
| void CompositePowerComp::addMNASubComponent | ( | typename SimPowerComp< VarType >::Ptr | subc, |
| MNA_SUBCOMP_TASK_ORDER | preStepOrder, | ||
| MNA_SUBCOMP_TASK_ORDER | postStepOrder, | ||
| Bool | contributeToRightVector ) |
Add a new subcomponent implementing MNA methods.
| subc | The new subcomponent |
| preStepOrder | When to execute the subcomponent's pre-step in relation to the parent |
| postStepOrder | When to execute the subcomponent's post-step in relation to the parent |
Definition at line 8 of file CompositePowerComp.cpp.
|
override |
Add MNA post step dependencies.
Definition at line 120 of file CompositePowerComp.cpp.
|
overridevirtual |
Add MNA pre step dependencies.
Reimplemented from CPS::MNASimPowerComp< VarType >.
Definition at line 107 of file CompositePowerComp.cpp.
|
overridevirtual |
Stamps right side (source) vector.
Reimplemented from CPS::MNASimPowerComp< VarType >.
Definition at line 72 of file CompositePowerComp.cpp.
|
overridevirtual |
Stamps system matrix.
Reimplemented from CPS::MNASimPowerComp< VarType >.
Reimplemented in CPS::DP::Ph1::Transformer, CPS::EMT::Ph3::Transformer, and CPS::SP::Ph1::Transformer.
Definition at line 63 of file CompositePowerComp.cpp.
|
override |
Initializes variables of components.
Definition at line 49 of file CompositePowerComp.cpp.
|
override |
MNA post step operations.
Definition at line 95 of file CompositePowerComp.cpp.
|
overridevirtual |
MNA pre step operations.
Reimplemented from CPS::MNASimPowerComp< VarType >.
Definition at line 84 of file CompositePowerComp.cpp.
|
inlinevirtual |
Definition at line 107 of file CompositePowerComp.h.
|
inlinevirtual |
Reimplemented in CPS::DP::Ph1::AvVoltageSourceInverterDQ, CPS::DP::Ph1::NetworkInjection, CPS::DP::Ph1::PiLine, CPS::DP::Ph1::RXLoad, CPS::DP::Ph1::RXLoadSwitch, CPS::DP::Ph1::SynchronGeneratorIdeal, CPS::DP::Ph1::SynchronGeneratorTrStab, CPS::DP::Ph1::Transformer, CPS::EMT::Ph3::AvVoltageSourceInverterDQ, CPS::EMT::Ph3::NetworkInjection, CPS::EMT::Ph3::PiLine, CPS::EMT::Ph3::SynchronGeneratorIdeal, CPS::EMT::Ph3::Transformer, CPS::SP::Ph1::AvVoltageSourceInverterDQ, CPS::SP::Ph1::NetworkInjection, CPS::SP::Ph1::SynchronGeneratorTrStab, and CPS::SP::Ph1::Transformer.
Definition at line 101 of file CompositePowerComp.h.
|
inlinevirtual |
Reimplemented in CPS::DP::Ph1::NetworkInjection, CPS::EMT::Ph3::NetworkInjection, and CPS::SP::Ph1::NetworkInjection.
Definition at line 90 of file CompositePowerComp.h.
|
inlinevirtual |
Definition at line 87 of file CompositePowerComp.h.
|
inlinevirtual |
Definition at line 83 of file CompositePowerComp.h.
|
inlinevirtual |
Definition at line 96 of file CompositePowerComp.h.
|
inlinevirtual |
Reimplemented in CPS::DP::Ph1::AvVoltageSourceInverterDQ, CPS::DP::Ph1::NetworkInjection, CPS::DP::Ph1::PiLine, CPS::DP::Ph1::PQLoadCS, CPS::DP::Ph1::RxLine, CPS::DP::Ph1::RXLoad, CPS::DP::Ph1::RXLoadSwitch, CPS::DP::Ph1::SynchronGeneratorIdeal, CPS::DP::Ph1::SynchronGeneratorTrStab, CPS::DP::Ph1::Transformer, CPS::EMT::Ph3::AvVoltageSourceInverterDQ, CPS::EMT::Ph3::NetworkInjection, CPS::EMT::Ph3::PiLine, CPS::EMT::Ph3::RxLine, CPS::EMT::Ph3::RXLoad, CPS::EMT::Ph3::SynchronGeneratorIdeal, CPS::EMT::Ph3::SynchronGeneratorTrStab, CPS::EMT::Ph3::Transformer, CPS::SP::Ph1::AvVoltageSourceInverterDQ, CPS::SP::Ph1::NetworkInjection, CPS::SP::Ph1::SynchronGeneratorTrStab, and CPS::SP::Ph1::Transformer.
Definition at line 93 of file CompositePowerComp.h.