private void SetInputs() { moisture.InputValue = trackBarMoisture.Value; moisture.Fuzzify("Moist"); temperature.InputValue = trackBarTemperature.Value; temperature.Fuzzify("Warm"); }
private void HotPush_Click(object sender, EventArgs e) { hflag = Math.Abs(DispenseHottrackBar.Value - 15); mtML = Convert.ToDouble(MainTanktextBox.Text); tmt = Convert.ToDouble(TMainTanktextBox.Text); rs = Convert.ToDouble(HotTankRefilSpeedtextBox.Text); htML = Convert.ToDouble(HotTanktextBox.Text); tht = Convert.ToDouble(THotTanktextBox.Text); myhottank.InputValue = htML; myhottank.Fuzzify("L"); mythottank.InputValue = tht; mythottank.Fuzzify("HOT"); setFuzzyEngine(); fe0.Consequent = "HEAT"; double rounded = Math.Round(fe0.Defuzzify(), 2); HeatertextBox.Text = "" + rounded + " Watts"; HotTanktextBox.Text = "" + (htML -= hflag); THotTanktextBox.Text = "" + (Math.Round((htML * 4.2 * tht + rs * 4.2 * tmt) / (htML * 4.2 + rs * 4.2), 2)); if (htML + rs > 500) { rs = 0; HotTankRefilSpeedtextBox.Text = "" + 0; } else { htML += rs; } HotTanktextBox.Text = "" + htML; mtML -= rs; MainTanktextBox.Text = "" + mtML; }
static public string BuildCellModel() { LinguisticVariable nourishment = new LinguisticVariable("Nourishment"); nourishment.MembershipFunctionCollection.Add(new MembershipFunction("Hungry", 0, 0, 20, 40)); nourishment.MembershipFunctionCollection.Add(new MembershipFunction("Nominal", 30, 50, 50, 70)); nourishment.MembershipFunctionCollection.Add(new MembershipFunction("Bloated", 50, 80, 100, 100)); LinguisticVariable health = new LinguisticVariable("Health"); health.MembershipFunctionCollection.Add(new MembershipFunction("Sick", 0, 0, 10, 20)); health.MembershipFunctionCollection.Add(new MembershipFunction("Functional", 10, 20, 40, 50)); health.MembershipFunctionCollection.Add(new MembershipFunction("Healthy", 40, 50, 70, 80)); health.MembershipFunctionCollection.Add(new MembershipFunction("Sporty", 70, 80, 100, 100)); LinguisticVariable shelter = new LinguisticVariable("Shelter"); shelter.MembershipFunctionCollection.Add(new MembershipFunction("Shacks", 0, 0, 10, 20)); shelter.MembershipFunctionCollection.Add(new MembershipFunction("Barebones", 10, 20, 40, 50)); shelter.MembershipFunctionCollection.Add(new MembershipFunction("Confortable", 40, 50, 70, 80)); shelter.MembershipFunctionCollection.Add(new MembershipFunction("Luxorious", 70, 80, 100, 100)); LinguisticVariable trust = new LinguisticVariable("Trust"); trust.MembershipFunctionCollection.Add(new MembershipFunction("Hate", 0, 0, 20, 40)); trust.MembershipFunctionCollection.Add(new MembershipFunction("Meh", 30, 50, 50, 70)); trust.MembershipFunctionCollection.Add(new MembershipFunction("Awe", 50, 80, 100, 100)); LinguisticVariable mood = new LinguisticVariable("Mood"); mood.MembershipFunctionCollection.Add(new MembershipFunction("Angry", 0, 0, 10, 20)); mood.MembershipFunctionCollection.Add(new MembershipFunction("Pissed", 10, 20, 40, 50)); mood.MembershipFunctionCollection.Add(new MembershipFunction("OK", 40, 50, 70, 80)); mood.MembershipFunctionCollection.Add(new MembershipFunction("Happy", 70, 80, 100, 100)); FuzzyEngine fuzzyEngine = new FuzzyEngine(); fuzzyEngine.LinguisticVariableCollection.Add(nourishment); //fuzzyEngine.LinguisticVariableCollection.Add(peacefulness); fuzzyEngine.LinguisticVariableCollection.Add(mood); fuzzyEngine.Consequent = "Mood"; fuzzyEngine.FuzzyRuleCollection.Add(new FuzzyRule("IF (Nourishment IS Bloated) AND (Peacefulness IS Low) THEN Mood IS Pissed")); fuzzyEngine.FuzzyRuleCollection.Add(new FuzzyRule("IF (Nourishment IS Bloated) AND (Peacefulness IS High) THEN Mood IS OK")); fuzzyEngine.FuzzyRuleCollection.Add(new FuzzyRule("IF (Nourishment IS Nominal) AND (Peacefulness IS Low) THEN Mood IS Angry")); fuzzyEngine.FuzzyRuleCollection.Add(new FuzzyRule("IF (Nourishment IS Nominal) AND (Peacefulness IS High) THEN Mood IS Happy")); fuzzyEngine.FuzzyRuleCollection.Add(new FuzzyRule("IF (Nourishment IS Hungry) THEN Mood IS Angry")); nourishment.InputValue = 5; //peacefulness.InputValue = 80; double angryness = fuzzyEngine.Defuzzify(); mood.InputValue = angryness; return(mood.Fuzzify() + " (" + angryness.ToString() + ")"); }
private void runSimulation() { road1.InputValue = Convert.ToDouble(road1Cars.Text); road2.InputValue = Convert.ToDouble(road2Cars.Text); road3.InputValue = Convert.ToDouble(road3Cars.Text); road4.InputValue = Convert.ToDouble(road4Cars.Text); road1.Fuzzify("High"); road4.Fuzzify("High"); road2.Fuzzify("High"); road3.Fuzzify("High"); nextGreen.Fuzzify("Uncertain"); double result = roadSelection.Defuzzify(); Console.WriteLine("Starting..."); Console.WriteLine(result); if (result >= 3 && result < 7) { state = 1; } else if (result >= 8 && result < 9) { state = 2; } else if (result >= 9.5 && result < 10) { state = 3; } else if (result >= 11 && result < 12) { state = 4; } else { setLights(); } Console.WriteLine(state); setTLights(state); switch (state) { case 1: while (!(road1Cars.Text.Equals("0"))) { road1Cars.Text = Convert.ToString(Convert.ToInt32(road1Cars.Text) - random.Next(6, 10)); if (Convert.ToInt32(road1Cars.Text) < 0) { road1Cars.Text = "0"; } road2Cars.Text = Convert.ToString(Convert.ToInt32(road2Cars.Text) + random.Next(0, 5)); road3Cars.Text = Convert.ToString(Convert.ToInt32(road3Cars.Text) + random.Next(0, 5)); road4Cars.Text = Convert.ToString(Convert.ToInt32(road4Cars.Text) + random.Next(0, 5)); Thread.Sleep(100); } break; case 2: while (!(road2Cars.Text.Equals("0"))) { road1Cars.Text = Convert.ToString(Convert.ToInt32(road1Cars.Text) + random.Next(0, 5)); road2Cars.Text = Convert.ToString(Convert.ToInt32(road2Cars.Text) - random.Next(6, 10)); if (Convert.ToInt32(road2Cars.Text) < 0) { road2Cars.Text = "0"; } road3Cars.Text = Convert.ToString(Convert.ToInt32(road3Cars.Text) + random.Next(0, 5)); road4Cars.Text = Convert.ToString(Convert.ToInt32(road4Cars.Text) + random.Next(0, 5)); Thread.Sleep(100); } break; case 3: while (!(road3Cars.Text.Equals("0"))) { road1Cars.Text = Convert.ToString(Convert.ToInt32(road1Cars.Text) + random.Next(0, 5)); road2Cars.Text = Convert.ToString(Convert.ToInt32(road2Cars.Text) + random.Next(0, 5)); road3Cars.Text = Convert.ToString(Convert.ToInt32(road3Cars.Text) - random.Next(6, 7)); if (Convert.ToInt32(road3Cars.Text) < 0) { road3Cars.Text = "0"; } road4Cars.Text = Convert.ToString(Convert.ToInt32(road4Cars.Text) + random.Next(0, 5)); Thread.Sleep(100); } break; case 4: while (!(road4Cars.Text.Equals("0"))) { road1Cars.Text = Convert.ToString(Convert.ToInt32(road1Cars.Text) + random.Next(0, 5)); road2Cars.Text = Convert.ToString(Convert.ToInt32(road2Cars.Text) + random.Next(0, 5)); road3Cars.Text = Convert.ToString(Convert.ToInt32(road3Cars.Text) + random.Next(0, 5)); road4Cars.Text = Convert.ToString(Convert.ToInt32(road4Cars.Text) - random.Next(6, 7)); if (Convert.ToInt32(road4Cars.Text) < 0) { road4Cars.Text = "0"; } Thread.Sleep(100); } break; } Console.WriteLine(road1Cars.Text); Console.WriteLine(road2Cars.Text); Console.WriteLine(road3Cars.Text); Console.WriteLine(road4Cars.Text); }