示例#1
0
    void ChangeParam(CtrlAction action, Animator animator)
    {
        switch (action.type)
        {
        case ParamType.Boolean:
            animator.SetBool(action.paramName, action.targetBool);
            break;

        case ParamType.Trigger:
            if (action.targetBool)
            {
                animator.SetTrigger(action.paramName);
            }
            else
            {
                animator.ResetTrigger(action.paramName);
            }
            break;

        case ParamType.Integer:
            animator.SetInteger(action.paramName, Mathf.RoundToInt(action.targetValue));
            break;

        case ParamType.Floating:
            animator.SetFloat(action.paramName, action.targetValue);
            break;
        }
    }
示例#2
0
        public void AcquireCtrlDecisionsList()
        {
            m_ctrlDecisionList = new List <CtrlAction>();
            m_remedialVSA      = new List <VoltageSecurityAssessor>();

            for (int i = 0; i < Math.Pow(2, m_numOfCapBanks); i++)
            {
                VoltageSecurityAssessor vsa = new VoltageSecurityAssessor()
                {
                    BaseVoltage = m_baseVoltage,
                    //InputFrame = m_inputFrame,
                    TreeIndex        = i,
                    TreeFilePath     = Path.Combine(m_trainedTreeFolder, $"DecisionTreeModel_ControlForLowVoltage_{i}_train"),
                    VoltMeasMagFrame = m_voltMeasMagFrame
                };

                vsa.Assess();

                if ((vsa.AssessResult == "SECURE") && (vsa.TreeIndex != m_capBankCombinationIndex))
                {
                    CtrlAction ctrlact = new CtrlAction()
                    {
                        Index        = vsa.TreeIndex,
                        CtrlTreeName = $"DecisionTreeModel_ControlForLowVoltage_{i}_train",
                        CurrentCapBankCombinationArray = m_capBankCombinationArray,
                        CtrlCapBankCominationArray     = ConvertCapBankCombinationIndexToArray(vsa.TreeIndex, m_numOfCapBanks)
                    };

                    ctrlact.Initialize();
                    m_ctrlDecisionList.Add(ctrlact);
                }

                m_remedialVSA.Add(vsa);
            }
        }
示例#3
0
 public void Initialize()
 {
     m_ctrlDecisionList        = new List <CtrlAction>();
     m_capBankCombinationArray = GetCapBankCombinationArray(m_inputFrame);
     m_capBankCombinationIndex = GetCapBankCombinationIndex();
     m_numOfCapBanks           = m_capBankCombinationArray.Count();
     m_voltMeasMagFrame        = ConvertInputDataToArray(m_inputFrame);
     m_numOfBuses       = m_voltMeasMagFrame.Count();
     m_trainedTreeName  = $"DecisionTreeModel_ControlForLowVoltage_{m_capBankCombinationIndex}_train";
     m_selectedDecision = new CtrlAction();
 }
示例#4
0
        //public void getActionCount(CtrlAction ctrlact)
        //{

        //    int[] TempCounter = new int[NumOfCapBanks];
        //    TempCounter[0] = Math.Abs(m_inputFrame.StateSnB34CapBkrV - ctrlact.CtrlCapBankCominationArray[0]);
        //    TempCounter[1] = Math.Abs(m_inputFrame.StateSnB44CapBkrV - ctrlact.CtrlCapBankCominationArray[1]);
        //    TempCounter[2] = Math.Abs(m_inputFrame.StateSnB45CapBkrV - ctrlact.CtrlCapBankCominationArray[2]);
        //    TempCounter[3] = Math.Abs(m_inputFrame.StateSnB45CapBkrV - ctrlact.CtrlCapBankCominationArray[3]);
        //    TempCounter[4] = Math.Abs(m_inputFrame.StateSnB48CapBkrV - ctrlact.CtrlCapBankCominationArray[4]);
        //    TempCounter[5] = Math.Abs(m_inputFrame.StateSnB105CapBkrV - ctrlact.CtrlCapBankCominationArray[5]);

        //    ctrlact.ActionsCount = TempCounter.Sum();
        //}


        public void SelectPriorCtrlDecision()
        {
            if (m_ctrlDecisionList.Count != 0)
            {
                //sort the control
                m_ctrlDecisionList.Sort((x, y) => x.ActionsCount.CompareTo(y.ActionsCount));
                m_selectedDecision = m_ctrlDecisionList[0];
            }
            else
            {
                m_selectedDecision.CtrlActionMessage = $"UNAVAILABLE";
            }
        }