/// <summary> /// Convert from dq to abc /// </summary> /// <param name="d"></param> /// <param name="q"></param> /// <param name="theta"></param> /// <returns></returns> public static Fabc dq_abc(double d, double q, double theta) { Fabc fabc = new Fabc(); fabc.a = Math.Cos(theta) * d - Math.Sin(theta) * q; fabc.b = Math.Cos(theta - 2 * Math.PI / 3) * d - Math.Sin(theta - 2 * Math.PI / 3) * q; fabc.c = Math.Cos(theta + 2 * Math.PI / 3) * d - Math.Sin(theta + 2 * Math.PI / 3) * q; return(fabc); }
/// <summary> /// Convert abc to dq /// Theta is radian /// </summary> /// <param name="fabc">fabc</param> /// <param name="theta">Angle from 0a to 0d (counter clockwise)</param> /// <returns></returns> public static Fdq abc_dq(Fabc fabc, double theta) { return(abc_dq(fabc.a, fabc.b, fabc.c, theta)); }