/// <summary> /// Devuelve los sistemas de fases que utiliza la aplicación. /// </summary> /// <returns>Los sistemas de fases que utiliza la aplicación.</returns> public static IEnumerable <SistemaFases> GetApplicationSystemPhases() { SistemaFases[] sistemas = new SistemaFases[12]; TensionVal[] tensiones = new TensionVal[] { TensionVal.T_220, TensionVal.T_480, TensionVal.T_208, TensionVal.T_440 }; SistemaFases sys; for (int index = 0, i = 1; index < sistemas.Length; index++, i++) { if (index < 4) { sys = new SistemaTrifasico(); } else if (index < 8) { sys = new SistemaBifasico(); } else { sys = new SistemaMonofasico(); } sys.SetTension(tensiones[i - 1]); sistemas[index] = sys; if (i % 4 == 0) { i = 1; } } return(sistemas); }
/// <summary> /// Inicializa una nueva instancia de la <see cref="Tension"/>. /// </summary> /// <param name="tension">El valor de la tensión.</param> /// <param name="fases">El número de fases del sistema</param> public Tension(TensionVal tension, int fases) { this.Sistema = null; this.Value = (int)tension; int tn = (int)(Math.Round((double)this.Value / Math.Sqrt(3))); if (fases == 1) { this.Value = tn; this.TensionAlNeutro = tn; } else { this.TensionAlNeutro = tn; } }
/// <summary> /// Inicializa una nueva instancia de la <see cref="Tension"/>. /// </summary> /// <param name="tension">El valor de la tensión.</param> /// <param name="sistema">El sistema de fases.</param> public Tension(TensionVal tension, SistemaFases sistema) { this.Sistema = sistema; this.Value = (int)tension; int tn = (int)(Math.Round((double)this.Value / Math.Sqrt(3))); if (sistema.Fases == 1) { this.Value = tn; this.TensionAlNeutro = tn; } else { this.TensionAlNeutro = tn; } }
/// <summary> /// Devuelve el indice del sistema /// </summary> /// <param name="sistema">El sistema a extraer el indice</param> /// <returns>El indice del sistema</returns> public static int GetIndexOfSystem(this SistemaFases sistema) { TensionVal[] tensiones = new TensionVal[] { TensionVal.T_220, TensionVal.T_480, TensionVal.T_208, TensionVal.T_440 }; int tIndex = tensiones.ToList().IndexOf((TensionVal)sistema.Tension.Value); if (sistema.Fases == 3) { tIndex += 0; } else if (sistema.Fases == 2) { tIndex += 4; } else { tIndex += 7; } return(tIndex); }
/// <summary> /// Crea un sistema mediante un indice de selección /// </summary> /// <param name="sysIndex">El indice del sistema</param> /// <returns>El indice del sistema</returns> public static SistemaFases GetSystem(this int sysIndex) { SistemaFases sys; TensionVal[] tensiones = new TensionVal[] { TensionVal.T_220, TensionVal.T_480, TensionVal.T_208, TensionVal.T_440 }; if (sysIndex < 4) { sys = new SistemaTrifasico(); } else if (sysIndex < 8) { sys = new SistemaBifasico(); sysIndex -= 4; } else { sys = new SistemaMonofasico(); sysIndex -= 8; } sys.SetTension(tensiones[sysIndex]); return(sys); }
/// <summary> /// Establece el valor de la tensión /// </summary> /// <returns>El valor de la tensión</returns> public void SetTension(TensionVal val) { this.Tension = new Tension(val, this); }