/// <summary> /// 获取模糊值最大的range /// </summary> public FuzzyRange Max(float inputVal) { float maxVal = float.NegativeInfinity; FuzzyRange ret = null; foreach (var range in _ranges) { float val = range.Calc(inputVal); if (val > maxVal) { maxVal = val; ret = range; } } return(ret); }
// 模糊逻辑NOT public static float FuzzyNOT(FuzzyRange A, FuzzyRange B) { return(1 - A.Value); }
// 模糊逻辑AND public static float FuzzyAND(FuzzyRange A, FuzzyRange B) { return(Math.Min(A.Value, B.Value)); }
// 模糊逻辑OR public static float FuzzyOR(FuzzyRange A, FuzzyRange B) { return(Math.Max(A.Value, B.Value)); }