Exemplo n.º 1
0
 private void SetInputs()
 {
     moisture.InputValue = trackBarMoisture.Value;
     moisture.Fuzzify("Moist");
     temperature.InputValue = trackBarTemperature.Value;
     temperature.Fuzzify("Warm");
 }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
    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() + ")");
    }
Exemplo n.º 4
0
        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);
        }