/// <summary> /// Creates a new winding with no sections and adds it to the list of windings. /// </summary> /// <param name="name">Name of the winding.</param> /// <param name="windingOrder">Order of the winding in the coil.</param> /// <param name="windingNumber">Used for system determination.</param> /// <param name="fullCapacity">Are the taps are rated for full capcity or not.</param> /// <param name="isPrimary">Is the winding primary or secondary.</param> /// <param name="kva">Rated kVA of the winding.</param> /// <param name="nominalVoltage">Nominal line voltage of the winding.</param> /// <param name="voltages">List of voltages of the winding.</param> /// <param name="phase">Phase of the winding.</param> /// <param name="connection">Connection of the winding.</param> public void AddNewWinding(string name, int windingOrder, int windingNumber, bool fullCapacity, bool isPrimary, double kva, double nominalVoltage, double[] voltages, Phase phase, Connection connection) { Winding winding = new Winding(name, windingOrder, windingNumber, fullCapacity, isPrimary, kva * 1000, nominalVoltage, phase, connection, voltages); BaseWindings.Add(winding); }
/// <summary> /// Constructor. /// /// Note: For a <paramref name="wireMaterial"/> of <see cref="Data.Constants.WireMaterial.COPPER"/> or <see cref="Data.Constants.WireMaterial.ALUMINUM"/> the current density minimum and maximum work as expected. /// If <paramref name="wireMaterial"/> is <see cref="Data.Constants.WireMaterial.ANY"/> then for the Aluminum wire the maximum current density is capped at 1300, and for the Copper wire the minimum durrent density is capped at 1000. /// /// </summary> /// <param name="winding">Winding to add the section to.</param> /// <param name="order">Order of the section in the coil.</param> /// <param name="startVoltage">Starting voltage of the section.</param> /// <param name="endVoltage">Ending voltage of the section.</param> /// <param name="bulgeFactor">Bulge factor of the section.</param> /// <param name="margin">Margin of the section.</param> /// <param name="layerPaper">Total thickness of insulation between layers.</param> /// <param name="wrap">Total thickness of wrap after the section.</param> /// <param name="cdMin">Minimum current density for wires to pass.</param> /// <param name="cdMax">Maximum current density for wires to pass.</param> /// <param name="wireMaterial">Wire materials to iterate.</param> /// <param name="wireShape">Wire shapes to iterate.</param> /// <param name="bifilars">Bifilar ranges to iterate.</param> /// <param name="wireShapes">Optional parameter used to specify which cominatiopn of wire shapes for iterate over.</param> public Section(Winding winding, int order, double startVoltage, double endVoltage, double bulgeFactor, double margin, double layerPaper, double wrap, double cdMin, double cdMax, WireMaterial wireMaterial, WireShape wireShape, Bifilar[] bifilars, WireShape[] wireShapes = null) { this.Winding = winding; this.SectionOrder = order; this.WindingName = winding.Name; this.Name = "Section " + order; this.StartingVoltage = startVoltage; this.EndingVoltage = endVoltage; this.BulgeFactor = bulgeFactor; this.Margin = margin; this.LayerPaper = layerPaper; this.Wrap = wrap; this.CurrentDensityMinimum = cdMin; this.CurrentDensityMaximum = cdMax; this.IterateWireMaterial = wireMaterial; this.IterateWireShape = wireShape; this.BifilarRange = bifilars; this.IterateWireShapes = wireShapes; this.Ducts = new List <Duct>(); }
/// <summary> /// Copy constructor. /// /// Creates a new winding copy of given winding parameter. /// </summary> /// <param name="winding">Winding to copy.</param> protected internal Winding(Winding winding) { this.Name = winding.Name; this.WindingOrder = winding.WindingOrder; this.Index = winding.Index; this.Core = winding.Core; this.Tube = winding.Tube; this.FullCapacity = winding.FullCapacity; this.IsPrimary = winding.IsPrimary; this.RatedVA = winding.RatedVA; this.CalcedVA = winding.CalcedVA; this.NominalVoltage = winding.NominalVoltage; this.Phase = winding.Phase; this.Connection = winding.Connection; this.TapVoltages = winding.TapVoltages; this.Sections = new List <Section>(); foreach (Section s in winding.Sections) { this.Sections.Add(new Section(s)); } this.SetSectionsToSelf(); }
/// <summary> /// Add winding to list. /// </summary> /// <param name="winding">Winding to add.</param> public void AddWinding(Winding winding) { BaseWindings.Add(winding); }
/// <summary> /// Creates a new section and adds it to the given winding. /// </summary> /// <param name="winding">Winding to add section to.</param> /// <param name="order">Order of the section.</param> /// <param name="startVoltage">Starting voltage of the section.</param> /// <param name="endVoltage">Ending voltage of the section.</param> /// <param name="bulgeFactor">Bulge factor of the section.</param> /// <param name="margin">Margin of the section.</param> /// <param name="layerPaper">Total layer paper thickness of the section.</param> /// <param name="wrap">Total wrap thickness of the section.</param> /// <param name="cdMin">Minimum current density to find wires with.</param> /// <param name="cdMax">Maximum current density to find wires with.</param> /// <param name="wireMaterial">Material to find wires with.</param> /// <param name="wireShape">Shape to find wires with.</param> /// <param name="bifilars">Bifilars to find wires with.</param> public void AddSection(Winding winding, int order, double startVoltage, double endVoltage, double bulgeFactor, double margin, double layerPaper, double wrap, double cdMin, double cdMax, WireMaterial wireMaterial, WireShape wireShape, Bifilar[] bifilars) { winding.Sections.Add(new Section(winding, order, startVoltage, endVoltage, bulgeFactor, margin, layerPaper, wrap, cdMin, cdMax, wireMaterial, wireShape, bifilars)); }