C++で1線地絡時の起誘導電流の大きさを求める

1線地絡時の起誘導電圧は

\begin{align}
\dot{V}_{m}=j \omega \left ( M D \right ) \dot{I}_{0}=j 2 \pi f \left ( M D \right ) \dot{I}_{0}
\end{align}

で与えられる。大きさを考えれば

\begin{align}
V_{m}=\omega \left ( M D \right ) I_{0}= 2 \pi f \left ( M D \right ) I_{0}
\end{align}

となるので1線地絡時の起誘導電流は

\begin{align}
I_{0} = \frac{V_{m}}{\omega \left ( M D \right ) I_{0}}
\end{align}

で得られる。今回はこれをC++で計算する。実行結果

I  -> 0.265258[A]

ソースコード。

main.cpp

#include <iostream>
#include "InductiveInterference.h"

int main() {

    InductiveInterference wire1("wire1", 2 * M_PI * 60, 1, 1);
    wire1.setInducingVoltage(100);
    wire1.showInducingCurrent();

    return 0;
}

InductiveInterference.h

#pragma once
#include<iostream>

class InductiveInterference
{
public:
    InductiveInterference(std::string name,
        double omega, double M, double D) {
        m_name = name;

        m_omega = omega;
        m_M = M;
        m_D = D;

        m_I0 = 0.0;
        m_Vm = 0.0;
    }
    ~InductiveInterference() {
    }

    void setInducingCurrent(double I0) {
        m_I0 = I0;
    }
    void setInducingVoltage(double Vm) {
        m_Vm = Vm;
    }
    double getInducingCurrent(void) {

        return m_Vm / (m_omega * m_M * m_D);
    }
    void showInducingCurrent(void) {
        std::cout << "I  -> " << getInducingCurrent() << "[A]" << std::endl;
    }
private:
    std::string m_name;

    double m_omega;
    double m_M;
    double m_D;

    double m_I0;
    double m_Vm;
};

コメント

タイトルとURLをコピーしました