Power System Platform
2024w23a
|
Calculate the power flow. More...
#include <PowerFlow.h>
Public Member Functions | |
PowerFlow (std::vector< Element * > elementList) | |
virtual bool | InitPowerFlow (std::vector< BusType > &busType, std::vector< std::complex< double > > &voltage, std::vector< std::complex< double > > &power, std::vector< std::complex< double > > &loadPower, std::vector< ReactiveLimits > &reactiveLimit, double systemPowerBase=100e6, double initAngle=0.0) |
virtual bool | RunGaussSeidel (double systemPowerBase=100e6, int maxIteration=5000, double error=1e-6, double initAngle=0.0, double accFactor=1.0) |
virtual bool | RunNewtonRaphson (double systemPowerBase=100e6, int maxIteration=5000, double error=1e-6, double initAngle=0.0, double inertia=1.0) |
virtual bool | RunGaussNewton (double systemPowerBase=100e6, int maxIteration=5000, double error=1e-6, double initAngle=0.0, double accFactor=1.0, double gaussTol=1e-2, double inertia=1.0) |
virtual wxString | GetErrorMessage () |
virtual int | GetIterations () |
Public Member Functions inherited from ElectricCalculation | |
ElectricCalculation () | |
Constructor. | |
~ElectricCalculation () | |
Destructor. | |
virtual void | GetElementsFromList (std::vector< Element * > elementList) |
Separate the power elements from a generic list. | |
virtual bool | GetYBus (std::vector< std::vector< std::complex< double > > > &yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false, bool usePowerFlowVoltagesOnImpedances=false) |
Get the admittance matrix from the list of elements (use GetElementsFromList first). | |
virtual bool | InvertMatrix (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::vector< std::complex< double > > > &inverse) |
Invert a matrix. | |
virtual void | UpdateElementsPowerFlow (std::vector< std::complex< double > > voltage, std::vector< std::complex< double > > power, std::vector< BusType > busType, std::vector< ReactiveLimits > reactiveLimit, double systemPowerBase) |
Update the elements after the power flow calculation. | |
void | ABCtoDQ0 (std::complex< double > complexValue, double angle, double &dValue, double &qValue) |
void | DQ0toABC (double dValue, double qValue, double angle, std::complex< double > &complexValue) |
std::vector< std::complex< double > > | GaussianElimination (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::complex< double > > array) |
std::vector< double > | GaussianElimination (std::vector< std::vector< double > > matrix, std::vector< double > array) |
Machines::SyncMachineModel | GetMachineModel (SyncGenerator *generator) |
std::vector< std::complex< double > > | ComplexMatrixTimesVector (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::complex< double > > vector) |
void | GetLUDecomposition (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::vector< std::complex< double > > > &matrixL, std::vector< std::vector< std::complex< double > > > &matrixU) |
std::vector< std::complex< double > > | LUEvaluate (std::vector< std::vector< std::complex< double > > > u, std::vector< std::vector< std::complex< double > > > l, std::vector< std::complex< double > > b) |
bool | GetParentBus (Element *childElement, Bus *&parentBus) |
bool | GetParentBus (Element *childElement, Bus *&parentBus1, Bus *&parentBus2) |
const std::vector< PowerElement * > | GetPowerElementList () const |
Get the power elements of the system (use GetElementsFromList first). | |
const std::vector< Bus * > | GetBusList () const |
Get the buses of the system (use GetElementsFromList first). | |
const std::vector< Capacitor * > | GetCapacitorList () const |
Get the capacitors of the system (use GetElementsFromList first). | |
const std::vector< IndMotor * > | GetIndMotorList () const |
Get the induction motors of the system (use GetElementsFromList first). | |
const std::vector< Inductor * > | GetInductorList () const |
Get the inductors of the system (use GetElementsFromList first). | |
const std::vector< Line * > | GetLineList () const |
Get the lines of the system (use GetElementsFromList first). | |
const std::vector< Load * > | GetLoadList () const |
Get the loads of the system (use GetElementsFromList first). | |
const std::vector< SyncGenerator * > | GetSyncGeneratorList () const |
Get the synchronous generators of the system (use GetElementsFromList first). | |
const std::vector< SyncMotor * > | GetSyncMotorList () const |
Get the synchronous motors of the system (use GetElementsFromList first). | |
const std::vector< Transformer * > | GetTransformerList () const |
Get the transformers of the system (use GetElementsFromList first). | |
const std::vector< HarmCurrent * > | GetHarmCurrentList () const |
Get the harmonic current source of the system (use GetElementsFromList first). | |
Protected Member Functions | |
void | GetNumPVPQ (std::vector< BusType > busType, int &numPQ, int &numPV) |
std::vector< std::vector< double > > | CalculateJacobianMatrix (std::vector< std::complex< double > > voltage, std::vector< std::complex< double > > power, std::vector< BusType > busType, int numPV, int numPQ) |
bool | CheckReactiveLimits (std::vector< BusType > &busType, std::vector< ReactiveLimits > &reactiveLimit, std::vector< std::complex< double > > power, std::vector< std::complex< double > > loadPower) |
double | GaussSeidel (std::vector< BusType > busType, std::vector< std::complex< double > > &voltage, std::vector< std::complex< double > > oldVoltage, std::vector< std::complex< double > > &power, double accFactor) |
void | NewtonRaphson (std::vector< BusType > busType, std::vector< std::complex< double > > &voltage, std::vector< std::complex< double > > power, int numPV, int numPQ, std::vector< double > dPdQ, double inertia) |
bool | CalculateMotorsReactivePower (std::vector< std::complex< double > > voltage, std::vector< std::complex< double > > &power) |
Protected Member Functions inherited from ElectricCalculation | |
void | GetNextConnection (const unsigned int &checkBusNumber, const std::vector< std::vector< std::complex< double > > > &yBus, std::vector< bool > &connToSlack) |
Protected Attributes | |
std::vector< std::vector< std::complex< double > > > | m_yBus |
wxString | m_errorMsg = "" |
int | m_numberOfBuses = 0 |
int | m_iterations = 0 |
Protected Attributes inherited from ElectricCalculation | |
std::vector< PowerElement * > | m_powerElementList |
std::vector< Bus * > | m_busList |
std::vector< Capacitor * > | m_capacitorList |
std::vector< IndMotor * > | m_indMotorList |
std::vector< Inductor * > | m_inductorList |
std::vector< Line * > | m_lineList |
std::vector< Load * > | m_loadList |
std::vector< SyncGenerator * > | m_syncGeneratorList |
std::vector< SyncMotor * > | m_syncMotorList |
std::vector< Transformer * > | m_transformerList |
std::vector< HarmCurrent * > | m_harmCurrentList |
Calculate the power flow.