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; } }
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); } }
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(); }
//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"; } }