PMSM_VShape(Geo_PMSM_MagnetVShape geo) { this.geo = geo; gmc = geo.buildGMC(); OutputFolder = ".\\out\\"; OutputFileResult = OutputFolder + "result.txt"; }
/// <summary> /// Make a GMC, All lengths are converted from mm to m /// </summary> /// <returns></returns> public GeneralMagnetCircuit buildGMC() { if (!isPointsCoordCalculated) { CalcPointsCoordinates(); } /////assign for shorten variables //material double Br = MaterialParams.Br; double mu_0 = MaterialParams.mu_0; double mu_M = MaterialParams.mu_M; double Bsat = MaterialParams.Bsat; double Hc = MaterialParams.Hc; //coeff double Kc = Coeffs.Kc; //rotor double lm = RotorParams.lm; double Rrotor = RotorParams.Rrotor; int p = RotorParams.p; double wFe = RotorParams.wFe; double alphaM = RotorParams.alphaM; double wFe2 = RotorParams.wFe2; double wb2min = RotorParams.wb2min; //stator int Q = StatorParams.Q; double Dstator = StatorParams.Dstator; double Rinstator = StatorParams.Rinstator; double L = StatorParams.L; double wy = StatorParams.wy; double ly = StatorParams.ly; double lz = StatorParams.lz; double wz = StatorParams.wz; //calc sizes of barrier and bridge double bf = Math.Sqrt(Math.Pow(xF - xB, 2) + Math.Pow(yF - yB, 2)); double af = Math.Sqrt(Math.Pow(xF - xA, 2) + Math.Pow(yF - yA, 2)); double wm = (yB - yC) / Math.Sin(RotorParams.alphaM); double wb2 = yD + yC; double lb2 = xC - xD; double lFe = RotorParams.wFe2 + bf; double lFe2 = af; double wb1 = af / 2; double lb1 = bf; ///// create GMC GeneralMagnetCircuit gmc = new GeneralMagnetCircuit(); // start calculation permeance if (Kc == 0) { Kc = 1;//default carter coefficient } double delta = Rinstator - Rrotor; double wslot = 2 * Rinstator * Math.PI / Q - wz; int Nz = Q / (2 * p); double wd = (Rrotor + delta / 2) * 2 * Math.PI / (2 * p); // magnet parameters gmc.phiR = Br * 2 * wm * L * 1e-6; gmc.PM = mu_0 * mu_M * 2 * wm * L / lm * 1e-3; gmc.Fc = Hc * lm * 1e-3; // airgap gmc.Pd = mu_0 * wd * L / (delta * Kc) * 1e-3; // leakage path parameters gmc.phiHFe = Bsat * 2 * wFe * L * 1e-6; gmc.PFe = mu_0 * 2 * wFe * L / lFe * 1e-3; double Pb1 = mu_0 * wb1 * L / lb1; double Pb2 = mu_0 * wb2 * L / lb2; gmc.Pb = (Pb1 + Pb2) * 1e-3; // stator teeth and yoke ly = 0.5 * (Dstator - wy) * Math.PI / (2 * p); gmc.Sz = Nz * wz * L * 1e-6; gmc.Sy = 2 * wy * L * 1e-6; gmc.lz = lz * 1e-3; gmc.ly = ly * 1e-3; gmc.Pslot = mu_0 * wslot * L / lz * 1e-3; // steel characteristic gmc.Barray = MaterialParams.B; gmc.Harray = MaterialParams.H; return(gmc); }