示例#1
0
        /// <summary>
        /// Returns the nominal (Item1), min (Item2), and max (Item3) allowed HBM Peak Current to be within JS-001 specification
        /// </summary>
        /// <param name="hbmVoltage">The voltage of the HBM pulse waveform (polarity is ignored, absolute value will be used)</param>
        /// <returns>The nominal (Item1), min (Item2), and max (Item3) allowed HBM Peak Current to be within JS-001 specification</returns>
        internal static Tuple <double, double, double> HBMPeakCurrentNominalMinMax(double hbmVoltage)
        {
            double absHBMVoltage = System.Math.Abs(hbmVoltage);

            HBM500OhmJS001WaveformCharacteristicsSet set = HBM500OhmJS001WaveformCharacteristics.GenerateSetForHBMVoltage(absHBMVoltage);

            return(new Tuple <double, double, double>(
                       DoubleRangeExtensions.CenterOfRange(set.PeakCurrent.Item1, set.PeakCurrent.Item2),
                       set.PeakCurrent.Item1,
                       set.PeakCurrent.Item2));
        }
        /// <summary>
        /// Calculates the Peak Current (Ips) related values
        /// </summary>
        private void CalculatePeakCurrent()
        {
            // Calculate the (absolute) Peak Current DataPoint
            DataPoint absolutePeakCurrentDataPoint = this.AbsoluteWaveform.Maximum();

            // Convert to the signed Peak Current DataPoint
            this.PeakCurrentDataPoint = absolutePeakCurrentDataPoint.InvertYValueIfNegativePolarity(this.WaveformIsPositivePolarity);

            // Extract the Peak Current value
            this.PeakCurrentValue = this.PeakCurrentDataPoint.Y;

            // Determine the min and max allowed values for the Peak Current to be passing
            Tuple <double, double, double> nomMinMaxPeakCurrent = HBM500OhmJS001WaveformCharacteristics.HBMPeakCurrentNominalMinMax(this.SignedVoltage);

            this.PeakCurrentAllowedMinimum = nomMinMaxPeakCurrent.Item2.InvertValueIfNegativePolarity(this.WaveformIsPositivePolarity);
            this.PeakCurrentAllowedMaximum = nomMinMaxPeakCurrent.Item3.InvertValueIfNegativePolarity(this.WaveformIsPositivePolarity);

            // Determine if the Peak Current is passing
            this.PeakCurrentIsPassing = DoubleRangeExtensions.BetweenInclusive(this.PeakCurrentAllowedMinimum, this.PeakCurrentAllowedMaximum, this.PeakCurrentValue);
        }