summaryrefslogtreecommitdiffstats
path: root/Project/PowerQuality.h
blob: ad47884e15378ea2543f3c2a13ff06a48ce69024 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef POWERQUALITY_H
#define POWERQUALITY_H

#include "ElectricCalculation.h"

#include <wx/intl.h>  //_()
#include <wx/string.h>

/**
 * @class PowerQuality
 * @author Thales Lima Oliveira <thales@ufu.br>
 * @date 24/04/2019
 * @brief Responsible for the power quality calculations.
 * @file PowerQuality.h
 */
class PowerQuality : public ElectricCalculation
{
   public:
    struct HarmonicYbus {
        double order;
        std::vector<std::vector<std::complex<double> > > yBus;
    };

    PowerQuality();
    PowerQuality(std::vector<Element*> elementList);
    ~PowerQuality();
    
    virtual void CalculateHarmonicYbusList(double systemPowerBase = 100e6);

    virtual bool CalculateDistortions(double systemPowerBase = 100e6);
    virtual std::vector<double> GetHarmonicOrdersList();

   protected:
    std::vector<HarmonicYbus> m_harmYbusList;
};

#endif  // POWERQUALITY_H