上下限阈值,在很多情况下都存在,现在将从中单独的抽取出来。
一般存在如下的关系:
简单的文字描述为:
- 当前处于Status_A下,当Value > Value_Max 时,状态才有Status_A迁移至Status_B;
- 当前处于Status_B下,当Value < Value_Min 时,状态才由Status_B迁移至Status_A。
(备注:该问题解决了值的波动对系统的影响。)
假如:Value_Min 和 Value_Max在无限接近,极端情况下就和为Value_Temp.
有:
Status_A --> Status_B : Value > Value_Temp
Status_B --> Status_A : Value < Value_Temp
设定:Value_Range为变化量。
当Value = Value_Temp时,此时若Value 在 [Value_Temp - Value_Range,Value_Temp + Value_Range]波动时,状态在A,B之间来回切换。
系统对Value的变化检测过于敏感。(PS:有时候敏感了也不是什么好事,当然,不敏感也不是什么好事!)
上,下线阈值:
需要注意的事情:
- 当前所处的状态;
- 上限阈值;
- 下限阈值。
用代码来表示最基本的:
//Time:2015-09-08 //StatusA,StatusB,Value_Min,Value_B,Status_Now,Value_Now //参考本文图 if(Value_Now > Value_Max) { Status_Now = Status_B;//状态迁移 } else if(Value_Now < Value_Min) { Status_Now = Status_A;//状态迁移 } else { ;//Keep }
以上的例子只是用作状态来说明问题,在实际运用中可适配很多情况,比如等级等。
(待完善:状态/等级较多时候的计算)。
时间: 2024-11-02 15:07:34