Ejemplo n.º 1
0
        private ComplexNumber ToComplexNumber(CycleDataGroup cycleDataGroup, int cycle)
        {
            Angle  angle     = cycleDataGroup.Phase[cycle].Value;
            double magnitude = cycleDataGroup.RMS[cycle].Value;

            return(new ComplexNumber(angle, magnitude));
        }
Ejemplo n.º 2
0
            public PhaseTiming(DataSeries waveform, CycleDataGroup cycleDataGroup, BreakerTiming breakerTiming, double systemFrequency, double openBreakerThreshold)
            {
                m_waveform        = waveform;
                m_cycleDataGroup  = cycleDataGroup;
                m_systemFrequency = systemFrequency;
                m_timeCleared     = FindBreakerOpen(breakerTiming.TimeEnergized.Index, openBreakerThreshold);

                if ((object)m_timeCleared != null)
                {
                    m_timing = (m_timeCleared.Time - breakerTiming.TimeEnergized.Time).TotalSeconds * systemFrequency;
                }
                else
                {
                    m_timing = double.NaN;
                }
            }
Ejemplo n.º 3
0
 private XElement GetCycleElement(string name, CycleDataGroup cycleDataGroup, int cycleIndex)
 {
     return(new XElement(name,
                         new XElement("RMSMagnitude", cycleDataGroup.RMS[cycleIndex].Value.ToString(DoubleFormat)),
                         new XElement("PhaseAngle", new Angle(cycleDataGroup.Phase[cycleIndex].Value).ToDegrees().ToString(DoubleFormat))));
 }
Ejemplo n.º 4
0
        private IEnumerable <COMTRADEChannelData> ToAnalogChannelCollection(int cycleDataGroupIndex, string channelKey, CycleDataGroup cycleDataGroup)
        {
            // Get the RMS channel data from the given cycle data group
            COMTRADEChannelData rmsChannelData = new COMTRADEChannelData()
            {
                GroupOrder           = 2,
                LoadOrder            = cycleDataGroupIndex,
                OriginalChannelIndex = -1,
                Name  = channelKey + " RMS",
                Units = GetUnits(channelKey),
                Data  = cycleDataGroup.RMS
            };

            // Get the phase angle channel data from the given cycle group
            COMTRADEChannelData phaseChannelData = new COMTRADEChannelData()
            {
                GroupOrder           = 3,
                LoadOrder            = cycleDataGroupIndex,
                OriginalChannelIndex = -1,
                Name  = channelKey + " phase angle",
                Units = string.Empty,
                Data  = cycleDataGroup.Phase
            };

            // Return the channel data obtained from the given cycle group
            return(new COMTRADEChannelData[] { rmsChannelData, phaseChannelData });
        }