【Dart】三相交流電力の抵抗、電流、電圧、電力を計算

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入門】基礎文法とサンプルコード集
Dart
西住工房

コメント

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