private ComplexNumber ToComplexNumber(CycleDataGroup cycleDataGroup, int cycle) { Angle angle = cycleDataGroup.Phase[cycle].Value; double magnitude = cycleDataGroup.RMS[cycle].Value; return(new ComplexNumber(angle, magnitude)); }
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; } }
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)))); }
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 }); }