25enum TransformerConnection {
40 double primaryNominalVoltage = 138.0;
41 ElectricalUnit primaryNominalVoltageUnit = ElectricalUnit::UNIT_kV;
42 double secondaryNominalVoltage = 138.0;
43 ElectricalUnit secondaryNominalVoltageUnit = ElectricalUnit::UNIT_kV;
45 double nominalPower = 100.0;
46 ElectricalUnit nominalPowerUnit = ElectricalUnit::UNIT_MVA;
47 double resistance = 0.0;
48 ElectricalUnit resistanceUnit = ElectricalUnit::UNIT_PU;
49 double indReactance = 1.0;
50 ElectricalUnit indReactanceUnit = ElectricalUnit::UNIT_PU;
51 TransformerConnection connection = GWYE_GWYE;
52 double turnsRatio = 1.0;
53 double phaseShift = 0.0;
54 bool useTransformerPower =
false;
57 std::complex<double> current[2] = {std::complex<double>(0.0, 0.0), std::complex<double>(0.0, 0.0)};
58 std::complex<double> powerFlow[2] = {std::complex<double>(0.0, 0.0), std::complex<double>(0.0, 0.0)};
61 double zeroResistance = 0.0;
62 double zeroIndReactance = 1.0;
63 double primaryGrndResistance = 0.0;
64 double primaryGrndReactance = 0.0;
65 double secondaryGrndResistance = 0.0;
66 double secondaryGrndReactance = 0.0;
69 std::complex<double> faultCurrent[2][3];
72 std::vector<int> harmonicOrder;
73 std::vector< std::complex<double> > harmonicCurrent[2];
92 virtual bool Contains(wxPoint2DDouble position)
const;
94 virtual void DrawDC(
GUIColour* guiColour,wxPoint2DDouble translation,
double scale, wxGraphicsContext* gc)
const;
95 virtual void DrawDC(
GUIColour* guiColour,wxPoint2DDouble translation,
double scale, wxDC& dc)
const;
96 virtual bool Intersects(wxRect2DDouble rect)
const;
97 virtual void Rotate(
bool clockwise =
true);
98 virtual void Move(wxPoint2DDouble position);
100 virtual void StartMove(wxPoint2DDouble position);
106 virtual bool ShowForm(wxWindow* parent,
Element* element, wxWindow* workspace =
nullptr);
111 virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit);
112 virtual void SetBestPositionAndRotation();
114 virtual rapidxml::xml_node<>* SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode);
115 virtual bool OpenElement(rapidxml::xml_node<>* elementNode, std::vector<Element*> parentList);
118 void UpdatePowerFlowArrowsPosition();
PowerFlowDirection
Direction of power flow arrows.
Abstract class for branch power elements.
Base class of all elements of the program. This class is responsible for manage graphical and his dat...