Harmony
HARMONic stabilitY assessment of PE-penetrated power systems
Loading...
Searching...
No Matches
Impedance Class Reference

Series impedance for each phase with diagonal (or matrix) Z entries. More...

#include <Impedance.h>

Inheritance diagram for Impedance:
Collaboration diagram for Impedance:

Public Member Functions

 Impedance (const std::string &symbol, const std::string &location, int pins, DenseMatrix values)
 Construct from a symbolic dense impedance matrix.
 
 Impedance (const std::string &symbol, const std::string &location, int pins, const std::vector< double > &values)
 Construct from per-phase real impedance values.
 
 Impedance (const std::string &symbol, const std::string &location, int pins, const double values)
 Single scalar impedance applied to all diagonal entries.
 
 Impedance (const std::string &symbol, const std::string &location, int pins, const std::vector< complex< double > > &values)
 Per-phase complex impedance vector.
 
 Impedance (const std::string &symbol, const std::string &location, int pins, const complex< double > values)
 Single complex impedance for all diagonal entries.
 
 ~Impedance ()
 
- Public Member Functions inherited from Impedance_base
 Impedance_base (const string &symbol, const std::string &location, int pins1, int pins2)
 Construct an impedance element with symmetric pin topology.
 
 ~Impedance_base ()
 
void computePowerFlow (std::map< std::string, double > &branchData, std::map< std::string, double > &globalParams) const override
 Compute branch power-flow quantities (override in derived classes).
 
- Public Member Functions inherited from Element
 Element (const std::string &symbol, const std::string &location, int inputPins, int outputPins)
 Construct an element with symbol, location, and pin counts.
 
virtual ~Element ()
 Virtual destructor for derived-class cleanup.
 
int getInputPins () const
 Get the number of input pins/phases.
 
int getOutputPins () const
 Get the number of output pins/phases.
 
void setInputPins (int pins)
 Set the number of input pins/phases.
 
void setOutputPins (int pins)
 Set the number of output pins/phases.
 
void setTransformation (bool flag)
 Enable or disable coordinate transformation for this element.
 
std::string getElementSymbol () const
 Get the element type symbol.
 
std::vector< Bus * > getBuses ()
 Collect all buses connected to this element.
 
int getBusIndex (Bus *bus)
 Find the terminal index associated with a given bus.
 
BusgetOtherBus (Bus *)
 Get the bus connected at the opposite terminal from a given bus.
 
const std::map< Bus *, int > & getConnections () const
 Const access to the bus-to-terminal connection map.
 
std::map< Bus *, int > getConnections ()
 Copy of the bus-to-terminal connection map.
 
string getElementLocation () const
 Get the element's grid or partition location label.
 
void attachBus (Bus *, int)
 Attach a bus to a specific element terminal.
 
void printElementInfo () const
 Print basic element metadata (symbol, input/output pin counts).
 
virtual void printElementValues ()
 Print extended element-specific values (override in derived classes).
 
void writeFile (double start_frequency, double end_frequency, int number_of_points)
 Write Y-parameter matrix samples over a frequency sweep to a file.
 
void plotYParameters (double start_frequency, double end_frequency, int number_of_points)
 Plot Y-parameter matrix entries versus frequency.
 
virtual void plotEigenvalues ()
 Plot eigenvalues of the element model (override in state-space elements).
 
virtual void plotParticipationFactors ()
 Plot participation factors (override in state-space elements).
 
virtual std::vector< std::vector< complex< double > > > compute_y_parameters (double frequency)
 Compute complex Y-parameters at a single frequency.
 
virtual DenseMatrix get_y_parameters ()
 Get the symbolic or stored Y-parameter matrix.
 
virtual std::vector< std::vector< complex< double > > > apply_transformation (std::vector< std::vector< complex< double > > > &Y1, std::vector< std::vector< complex< double > > > &Y2)
 Apply a coordinate or coupling transformation to Y-parameter blocks.
 
virtual void writeMNAmatrix (SymEngine::DenseMatrix &, std::unordered_map< Bus *, int > &, int, std::map< Element *, std::vector< RCP< const Basic > > > &)
 Stamp this element into the symbolic MNA matrix (override in derived classes).
 
virtual int getNumberOfInternalStates () const
 Number of internal state variables for dynamic elements.
 
virtual int getNumberOfPlantStates () const
 Number of plant states exposed for simulation (may differ from internal states).
 
virtual std::vector< MatrixXcd > simulateInputStep (const std::vector< MatrixXcd > &states, int nKeep) const
 Simulate a step response given input states (override in dynamic elements).
 
virtual std::vector< RCP< const Basic > > getVirtualInputSymbols () const
 Return symbolic names for virtual inputs used in stamping.
 
virtual map_basic_basic getParameterSubstitutions () const
 Return parameter substitutions for symbolic evaluation.
 
std::map< std::string, double > getOPFInfo () const
 Get stored OPF-related metadata for this element.
 
void setOPFInfo (std::map< std::string, double > &info)
 Store OPF-related metadata for this element.
 

Additional Inherited Members

- Protected Attributes inherited from Element
bool transformation = false
 
std::string element_symbol
 
std::string element_location
 
int input_pins
 
int output_pins
 
std::map< Bus *, int > connections
 
std::map< std::string, double > element_OPF_info = {}
 
DenseMatrix Y_matrix
 

Detailed Description

Series impedance for each phase with diagonal (or matrix) Z entries.

Accepts SymEngine DenseMatrix, per-phase vectors, scalars, or complex values. Used for AC branches (R+jX) and DC resistive links.

Constructor & Destructor Documentation

◆ Impedance() [1/5]

Impedance::Impedance ( const std::string &  symbol,
const std::string &  location,
int  pins,
DenseMatrix  values 
)

Construct from a symbolic dense impedance matrix.

Parameters
symbolElement designator.
locationGrid area tag (e.g. AC1, DC1).
pinsNumber of phases / conductors.
valuesSymEngine matrix of impedance entries.

References j, and Element::Y_matrix.

◆ Impedance() [2/5]

Impedance::Impedance ( const std::string &  symbol,
const std::string &  location,
int  pins,
const std::vector< double > &  values 
)

Construct from per-phase real impedance values.

Parameters
valuesOne value (all diagonals) or pins diagonal entries.

References j, and Element::Y_matrix.

◆ Impedance() [3/5]

Impedance::Impedance ( const std::string &  symbol,
const std::string &  location,
int  pins,
const double  values 
)

Single scalar impedance applied to all diagonal entries.

References j, and Element::Y_matrix.

◆ Impedance() [4/5]

Impedance::Impedance ( const std::string &  symbol,
const std::string &  location,
int  pins,
const std::vector< complex< double > > &  values 
)

Per-phase complex impedance vector.

References addSym(), j, and Element::Y_matrix.

◆ Impedance() [5/5]

Impedance::Impedance ( const std::string &  symbol,
const std::string &  location,
int  pins,
const complex< double >  values 
)

Single complex impedance for all diagonal entries.

References addSym(), j, and Element::Y_matrix.

◆ ~Impedance()

Impedance::~Impedance ( )

The documentation for this class was generated from the following files: