Electromechanical Class Reference

Calculates the electromechanical transient based on disturbances (e.g. system fault). More...

#include <Electromechanical.h>

Inheritance diagram for Electromechanical:
ElectricCalculation

Public Member Functions

 Electromechanical (wxWindow *parent, std::vector< Element *> elementList, SimulationData data)
 
bool RunStabilityCalculation ()
 
wxString GetErrorMessage () const
 
std::vector< double > GetTimeVector () const
 
- 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. More...
 
virtual bool GetYBus (std::vector< std::vector< std::complex< double > > > &yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)
 Get the admittance matrix from the list of elements (use GetElementsFromList first). More...
 
virtual bool InvertMatrix (std::vector< std::vector< std::complex< double > > > matrix, std::vector< std::vector< std::complex< double > > > &inverse)
 Invert a matrix. More...
 
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. More...
 
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)
 
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)
 
const std::vector< Bus * > GetBusList () const
 Get the buses of the system (use GetElementsFromList first). More...
 
const std::vector< Capacitor * > GetCapacitorList () const
 Get the capacitors of the system (use GetElementsFromList first). More...
 
const std::vector< IndMotor * > GetIndMotorList () const
 Get the induction motors of the system (use GetElementsFromList first). More...
 
const std::vector< Inductor * > GetInductorList () const
 Get the inductors of the system (use GetElementsFromList first). More...
 
const std::vector< Line * > GetLineList () const
 Get the lines of the system (use GetElementsFromList first). More...
 
const std::vector< Load * > GetLoadList () const
 Get the loads of the system (use GetElementsFromList first). More...
 
const std::vector< SyncGenerator * > GetSyncGeneratorList () const
 Get the synchronous generators of the system (use GetElementsFromList first). More...
 
const std::vector< SyncMotor * > GetSyncMotorList () const
 Get the synchronous motors of the system (use GetElementsFromList first). More...
 
const std::vector< Transformer * > GetTransformerList () const
 Get the transformers of the system (use GetElementsFromList first). More...
 

Public Attributes

std::vector< double > m_wErrorVector
 
std::vector< double > m_deltaErrorVector
 
std::vector< double > m_transEdErrorVector
 
std::vector< double > m_transEqErrorVector
 
std::vector< double > m_numItVector
 
std::vector< double > m_sdCVector
 
std::vector< double > m_sqCVector
 

Protected Member Functions

void SetEventTimeList ()
 
bool HasEvent (double currentTime)
 
void SetEvent (double currentTime)
 
bool EventTrigger (double eventTime, double currentTime)
 
void InsertSyncMachinesOnYBus ()
 
std::complex< double > GetSyncMachineAdmittance (SyncGenerator *generator)
 
bool InitializeDynamicElements ()
 
bool CalculateMachinesCurrents ()
 
void CalculateIntegrationConstants (SyncGenerator *syncGenerator, double id, double iq, double k=1.0)
 
bool SolveSynchronousMachines ()
 
void SetSyncMachinesModel ()
 
SyncMachineModelData GetSyncMachineModelData (SyncGenerator *syncMachine)
 
double CalculateSyncMachineIntVariables (SyncGenerator *syncGenerator, double id, double iq, double sd, double sq, double pe, double k=1.0)
 
bool CalculateSyncMachineNonIntVariables (SyncGenerator *syncGenerator, double &id, double &iq, double &sd, double &sq, double &pe, double k=1.0)
 
void CalculateReferenceSpeed ()
 
bool CalculateSyncMachineSaturation (SyncGenerator *syncMachine, double &id, double &iq, double &sd, double &sq, bool updateCurrents=true, double k=1.0)
 
void SaveData ()
 

Protected Attributes

wxWindow * m_parent = NULL
 
wxString m_errorMsg = _("Unknown error")
 
double m_systemFreq = 60.0
 
double m_refSpeed = 2.0 * M_PI * 60.0
 
bool m_useCOI = false
 
std::vector< std::vector< std::complex< double > > > m_yBus
 
std::vector< std::vector< std::complex< double > > > m_yBusU
 
std::vector< std::vector< std::complex< double > > > m_yBusL
 
std::vector< std::complex< double > > m_vBus
 
std::vector< std::complex< double > > m_iBus
 
double m_powerSystemBase = 100e6
 
double m_simTime = 10.0
 
double m_plotTime = 1e-2
 
double m_timeStep = 1e-2
 
double m_ctrlTimeStepMultiplier = 0.1
 
double m_tolerance = 1e-8
 
int m_maxIterations = 100
 
double m_saturationTolerance = 1e-8
 
std::vector< double > m_eventTimeList
 
std::vector< bool > m_eventOccurrenceList
 
std::vector< double > m_timeVector
 
double m_wError = 0.0
 
double m_sdC = 1.0
 
double m_sqC = 1.0
 
double m_numIt = 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
 

Detailed Description

Calculates the electromechanical transient based on disturbances (e.g. system fault).

Author
Thales Lima Oliveira thale.nosp@m.s@uf.nosp@m.u.br
Date
23/09/2017

Definition at line 51 of file Electromechanical.h.


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