diff options
author | Thales1330 <thaleslima.ufu@gmail.com> | 2016-12-06 13:26:46 -0200 |
---|---|---|
committer | Thales1330 <thaleslima.ufu@gmail.com> | 2016-12-06 13:26:46 -0200 |
commit | e282ec268db0d17a1d53f813c5fff9473d25e797 (patch) | |
tree | 517e01b8685248f04548513091e7040a1b36ec0b /Project/Transformer.h | |
parent | d4efffcdedbb41596eecd0882a1cef76f6afc435 (diff) | |
parent | e266f5811403beea13c9cc5399c55db4a34fdd3c (diff) | |
download | PSP.git-e282ec268db0d17a1d53f813c5fff9473d25e797.tar.gz PSP.git-e282ec268db0d17a1d53f813c5fff9473d25e797.tar.xz PSP.git-e282ec268db0d17a1d53f813c5fff9473d25e797.zip |
Merge remote-tracking branch 'refs/remotes/origin/wip/currentState'
Diffstat (limited to 'Project/Transformer.h')
-rw-r--r-- | Project/Transformer.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Project/Transformer.h b/Project/Transformer.h new file mode 100644 index 0000000..8c958a1 --- /dev/null +++ b/Project/Transformer.h @@ -0,0 +1,81 @@ +#ifndef TRANSFORMER_H +#define TRANSFORMER_H + +#include "Branch.h" + +class TransformerForm; + +enum TransformerConnection { + GWYE_GWYE = 0, + WYE_GWYE, + GWYE_WYE, + WYE_WYE, + DELTA_GWYE, + DELTA_WYE, + GWYE_DELTA, + WYE_DELTA, + DELTA_DELTA +}; + +struct TransformerElectricalData { + // General + wxString name = ""; + double primaryNominalVoltage = 138.0; + ElectricalUnit primaryNominalVoltageUnit = UNIT_kV; + double secondaryNominalVoltage = 138.0; + ElectricalUnit secondaryNominalVoltageUnit = UNIT_kV; + int baseVoltage = 0; + double nominalPower = 100.0; + ElectricalUnit nominalPowerUnit = UNIT_MVA; + double resistance = 0.0; + ElectricalUnit resistanceUnit = UNIT_PU; + double indReactance = 1.0; + ElectricalUnit indReactanceUnit = UNIT_PU; + TransformerConnection connection = GWYE_GWYE; + double turnsRatio = 1.0; + double phaseShift = 0.0; + bool useTransformerPower = false; + + // Power flow (p.u.) + std::complex<double> current[2] = {std::complex<double>(0.0, 0.0), std::complex<double>(0.0, 0.0)}; + std::complex<double> powerFlow[2] = {std::complex<double>(0.0, 0.0), std::complex<double>(0.0, 0.0)}; + + // Fault + double zeroResistance = 0.0; + double zeroIndReactance = 1.0; + double primaryGrndResistance = 0.0; + double primaryGrndReactance = 0.0; + double secondaryGrndResistance = 0.0; + double secondaryGrndReactance = 0.0; +}; + +class Transformer : public Branch +{ + public: + Transformer(); + Transformer(wxString name); + virtual ~Transformer(); + + virtual bool AddParent(Element* parent, wxPoint2DDouble position); + virtual bool Contains(wxPoint2DDouble position) const; + virtual void Draw(wxPoint2DDouble translation, double scale) const; + virtual bool Intersects(wxRect2DDouble rect) const; + virtual void Rotate(bool clockwise = true); + virtual void Move(wxPoint2DDouble position); + virtual void MoveNode(Element* parent, wxPoint2DDouble position); + virtual void StartMove(wxPoint2DDouble position); + virtual bool GetContextMenu(wxMenu& menu); + virtual void RotateNode(Element* parent, bool clockwise); + virtual bool SetNodeParent(Element* parent); + virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection); + virtual bool ShowForm(wxWindow* parent, Element* element); + virtual TransformerElectricalData GetElectricalData() { return m_electricalData; } + virtual void SetElectricaData(TransformerElectricalData electricalData) { m_electricalData = electricalData; } + virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit); + + protected: + void UpdatePowerFlowArrowsPosition(); + TransformerElectricalData m_electricalData; +}; + +#endif // TRANSFORMER_H |