Dartで三相交流電力の抵抗、電流、電圧、電力を計算してみました。
## 【Dart】三相交流電力の各種計算
– | 詳細記事 |
---|---|
詳細① | 【3相3線式とは】電気回路図、電流・電圧 |
詳細② | 【消費電力】R、RL、RLC回路、三相3線式 |
import 'dart:math'; class AcPhase3 { AcPhase3() { } El_P3p_Cos(double El, double P3p, double Cos, String wire) { var dst = {}; double Pp, Ep, Il, Ip, Zp, Rp, Xp; dst["El"] = El; dst["P3p"] = P3p; dst["Cos"] = Cos; dst["Pp"] = Pp = P3p / 3; // delta if(wire == "delta"){ dst["Ep"] = Ep = El; dst["Il"] = Il = P3p / (sqrt(3) * El * Cos); dst["Ip"] = Ip = Il / sqrt(3); } // star結線 if(wire == "star"){ dst["Ep"] = Ep = El / sqrt(3); dst["Il"] = Il = P3p / (sqrt(3) * El * Cos); dst["Ip"] = Ip = Il; } dst["Zp"] = Zp = Ep / Ip; dst["Rp"] = Rp = Zp * Cos; dst["Xp"] = Xp = sqrt(Zp*Zp - Rp*Rp); return dst; } // 入力が(線間電圧、抵抗、リアクタンス)の場合 El_Rp_Xp(double El, double Rp, double Xp, String wire){ var dst = {}; double P3p, Pp, Ep, Il, Ip, Zp, Cos; dst["El"] = El; dst["Rp"] = Rp; dst["Xp"] = Xp; // Δ結線 if(wire == "delta"){ dst["Ep"] = Ep = El; } // star結線 if(wire == "star"){ dst["Ep"] = Ep = El / sqrt(3); } dst["Zp"] = Zp = sqrt(Rp*Rp + Xp*Xp); dst["Cos"] = Cos = Rp/ Zp; dst["Pp"] = Pp = (Ep*Ep) / Rp; dst["P3p"] = P3p = Pp * 3; dst["Il"] = Il = P3p / (sqrt(3) * El * Cos); dst["Ip"] = Ip = Il; return dst; } // 入力が(線電流、インピーダンス、力率)の場合 Il_Zp_Cos(double Il, double Zp, double Cos, String wire){ var dst = {}; double P3p, Pp, Ep, El, Ip, Rp, Xp; dst["Il"] = Il; dst["Zp"] = Zp; dst["Cos"] = Cos; dst["Rp"] = Rp = Zp * Cos; dst["Xp"] = Xp = sqrt(Zp*Zp - Rp*Rp); // Δ結線 if(wire == "delta"){ dst["Ip"] = Ip = Il / sqrt(3); dst["Ep"] = Ep = Zp * Ip; dst["El"] = El = Ep; } // star結線 if(wire == "star"){ dst["Ip"] = Ip = Il; dst["Ep"] = Ep = Zp * Ip; dst["El"] = El = Ep * sqrt(3); } dst["Pp"] = Pp = Ep * Ip * Cos; dst["P3p"] = P3p = Pp * 3; return dst; } // 入力が(線電流、抵抗、リアクタンス)の場合 Il_Rp_Xp(double Il, double Rp, double Xp, String wire){ var dst = {}; double P3p, Pp, Ep, El, Ip, Zp, Cos; dst["Il"] = Il; dst["Rp"] = Rp; dst["Xp"] = Xp; dst["Zp"] = Zp = sqrt(Rp*Rp + Xp*Xp); // Δ結線 if(wire == "delta"){ dst["Ip"] = Ip = Il / sqrt(3); dst["Ep"] = Ep = Zp * Ip; dst["El"] = El = Ep; } // star結線 if(wire == "star"){ dst["Ip"] = Ip = Il; dst["Ep"] = Ep = Zp * Ip; dst["El"] = El = Ep * sqrt(3); } dst["Pp"] = Pp = Rp * Ip*Ip; dst["P3p"] = P3p = Pp * 3; dst["Cos"] = Cos = Rp / Zp; return dst; } // 入力が(線間電圧、線電流、力率)の場合 El_Il_Cos(double El, double Il, double Cos, String wire){ var dst = {}; double P3p, Pp, Ep, Ip, Zp, Rp, Xp; dst["Il"] = Il; dst["El"] = El; dst["Cos"] = Cos; // Δ結線 if(wire == "delta"){ dst["Ep"] = Ep = El; dst["Ip"] = Ip = Il / sqrt(3); } // star結線 if(wire == "star"){ dst["Ep"] = Ep = El / sqrt(3); dst["Ip"] = Ip = Il; } dst["Zp"] = Zp = Ep / Ip; dst["Rp"] = Rp = Zp * Cos; dst["Pp"] = Pp = Rp * Ip*Ip; dst["Xp"] = Xp = sqrt(Zp*Zp - Rp*Rp); dst["P3p"] = P3p = Pp * 3; return dst; } // 入力が(線間電圧、消費電力、力率)の場合 Il_P3p_Cos(double Il, double P3p, double Cos, String wire){ var dst = {}; double Pp, Ep, El, Ip, Zp, Rp, Xp; dst["Il"] = Il; dst["P3p"] = P3p; dst["Cos"] = Cos; dst["Pp"] = Pp = P3p / 3; // Δ結線 if(wire == "delta"){ dst["Ip"] = Ip = Il / sqrt(3); dst["Zp"] = Zp = P3p /(3 * Ip*Ip * Cos); dst["Ep"] = Ep = Zp * Ip; dst["El"] = El = Ep; } // star結線 if(wire == "star"){ dst["Ip"] = Ip = Il; dst["Zp"] = Zp = P3p /(3 * Ip*Ip * Cos); dst["Ep"] = Ep = Zp * Ip; dst["El"] = El = Ep * sqrt(3); } dst["Rp"] = Rp = Zp * Cos; dst["Xp"] = Xp = sqrt(Zp*Zp - Rp*Rp); return dst; } } void main() { var ac3 = AcPhase3(); var result = ac3.El_P3p_Cos(480, 2000000, 1, "delta"); print(result); /* {El: 480.0, P3p: 2000000.0, Cos: 1.0, Pp: 666666.6666666666, Ep: 480.0, Il: 2405.626121623441, Ip: 1388.8888888888891, Zp: 0.34559999999999996, Rp: 0.34559999999999996, Xp: 0.0} */ }
– | 関連記事 |
---|---|
1 | ■【Flutter入門】iOS、Android、Windowsアプリ開発 |
2 | 【Dart入門】基礎文法とサンプルコード集 |
コメント