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;
};
コメント