예제 #1
0
        /// <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);
        }
예제 #2
0
 /// <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>();
 }
예제 #3
0
        /// <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();
        }
예제 #4
0
 /// <summary>
 /// Add winding to list.
 /// </summary>
 /// <param name="winding">Winding to add.</param>
 public void AddWinding(Winding winding)
 {
     BaseWindings.Add(winding);
 }
예제 #5
0
 /// <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));
 }