-
Notifications
You must be signed in to change notification settings - Fork 22
Description
I have a question based on the following example:
How is information about the current water temperature received so that it can be assigned to a group (cold, hot).
In this code I have given only the water temperature ranges (hot, cold). And how to send information to this range about the current temperature and start the fuzzy logic process
Thanks in advance
var water = new LinguisticVariable("Water");
var cold = water.MembershipFunctions.AddTrapezoid("Cold", 0, 0, 20, 40);
var warm = water.MembershipFunctions.AddTriangle("Warm", 30, 50, 70);
var hot = water.MembershipFunctions.AddTrapezoid("Hot", 50, 80, 100, 100);
var power = new LinguisticVariable("Power");
var low = power.MembershipFunctions.AddTriangle("Low", 0, 25, 50);
var high = power.MembershipFunctions.AddTriangle("High", 25, 50, 75);
IFuzzyEngine fuzzyEngine = new FuzzyEngineFactory().Default();
var rule1 = Rule.If(water.Is(cold).Or(water.Is(warm))).Then(power.Is(high));
var rule2 = Rule.If(water.Is(hot)).Then(power.Is(low));
fuzzyEngine.Rules.Add(rule1, rule2);
var result = fuzzyEngine.Defuzzify(new { water = 60 });