Exemplo n.º 1
0
 /// <summary>
 /// Constructor method to initialize flags
 /// </summary>
 public IslandingAnalyzer()
 {
     m_islandingFlag = IslandingFlag.NoIslandingConditionExists;
     m_locationFlag  = LocationFlag.NoIslandingCondition;
     m_severityFlag  = SeverityFlag.LowSeverity;
     m_stabilityFlag = StabilityFlag.Stable;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Islanding Detection and Location Judgement
        ///
        /// Decision Tree Splitting Points Data
        ///
        /// DT_1 Islanding Judgement: Full loop DVP
        ///
        /// DT_1 Location: Yorktown
        ///
        /// DT_1 Location: Chesterfield
        ///
        /// DT_1 Location: Chesapeake
        /// </summary>
        /// <param name="data">
        /// A column matrix of processed data
        /// prepared for the decision tree
        /// </param>
        public void islandingJudgment(double[] data)
        {
            if ((data[50] <= 1.052513 && data[8] > 1.027590 && data[84] > -0.503139 &&
                 (data[52] <= 1.052598 || (data[52] > 1.052598 && data[4] > 1.057792))) ||
                (data[50] > 1.052513 && ((data[4] <= 1.058394 && data[63] <= 0.062944) ||
                                         (data[4] > 1.058394 && data[0] <= 1.047624))))
            {
                m_islandingFlag = IslandingFlag.IslandingConditionExists;

                if (m_islandingFlag == IslandingFlag.IslandingConditionExists)
                {
                    /// Location determination
                    if (data[55] > -0.169610 && data[84] <= 0.547558 &&
                        ((data[70] <= -4.106833 && data[0] > 1.045549 &&
                          (data[69] > -0.801558 || (data[69] <= -0.801558 &&
                                                    data[0] <= 1.045994))) || (data[70] > -4.106833 &&
                                                                               data[61] > 0.03 && data[63] <= 0.462647 && data[70] <= -3.876851)))
                    {
                        /// Yorktown
                        m_locationFlag = LocationFlag.Yorktown;
                    }
                    else if (data[55] <= -0.17 && data[8] <= 1.04)
                    {
                        /// Chesterfield
                        m_locationFlag = LocationFlag.Chesterfield;
                    }
                    else if (data[55] > -0.169010 && (data[84] > 0.547558 ||
                                                      (data[84] <= 0.547558 && data[70] > -4.106833 &&
                                                       data[61] > 0.032730 && data[63] > 0.462647 && data[0] <= 1.044399)))
                    {
                        /// Chesapeake
                        m_locationFlag = LocationFlag.Chesapeake;
                    }
                    else
                    {
                        /// Undetermined
                        m_locationFlag = LocationFlag.Undetermined;
                    }
                }
            }
            else
            {
                m_islandingFlag = IslandingFlag.NoIslandingConditionExists;
                m_locationFlag  = LocationFlag.NoIslandingCondition;
            }
        }