Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FuzzyRule.h>
- #include <FuzzyComposition.h>
- #include <Fuzzy.h>
- #include <FuzzyRuleConsequent.h>
- #include <FuzzyOutput.h>
- #include <FuzzyInput.h>
- #include <FuzzyIO.h>
- #include <FuzzySet.h>
- #include <FuzzyRuleAntecedent.h>
- Fuzzy* fuzzy = new Fuzzy();
- // for BMI
- FuzzySet* BMI_L = new FuzzySet(0, 0, 0, 25);
- FuzzySet* BMI_O = new FuzzySet(25, 27.5, 27.5, 30);
- FuzzySet* BMI_H = new FuzzySet(30, 40, 40, 40);
- // for CHO
- FuzzySet* CHO_L = new FuzzySet(340, 340, 340, 390);
- FuzzySet* CHO_O = new FuzzySet(390, 415, 415, 440);
- FuzzySet* CHO_H = new FuzzySet(440, 490, 490, 490);
- // for Weight
- FuzzySet* WEIGHT_VL = new FuzzySet(71, 71, 71, 75);
- FuzzySet* WEIGHT_L = new FuzzySet(75, 77.5, 77.5, 80);
- FuzzySet* WEIGHT_O1 = new FuzzySet(80, 82.5, 82.5, 85);
- FuzzySet* WEIGHT_O2 = new FuzzySet(85, 87.5, 87.5, 90);
- FuzzySet* WEIGHT_H = new FuzzySet(90, 92.5, 92.5, 95);
- FuzzySet* WEIGHT_VH = new FuzzySet(95, 97.5, 97.5, 100);
- // for Insulin
- FuzzySet* insulin_A = new FuzzySet(25, 25, 25, 30.5);
- FuzzySet* insulin_B = new FuzzySet(30.5, 33, 33, 35.5);
- FuzzySet* insulin_C = new FuzzySet(35.5, 39.5, 39.5, 43.5);
- FuzzySet* insulin_D = new FuzzySet(43.5, 46.5, 46.5, 49.5);
- FuzzySet* insulin_E = new FuzzySet(49.5, 55, 55, 55);
- void setup()
- {
- Serial.begin(9600);
- // ==================================================
- // Fuzzy input for BMI
- FuzzyInput* BMI = new FuzzyInput(1);
- BMI->addFuzzySet(BMI_L);
- BMI->addFuzzySet(BMI_O);
- BMI->addFuzzySet(BMI_H);
- fuzzy->addFuzzyInput(BMI);
- // Fuzzy input for CHO
- FuzzyInput* CHO = new FuzzyInput(2);
- CHO->addFuzzySet(CHO_L);
- CHO->addFuzzySet(CHO_O);
- CHO->addFuzzySet(CHO_H);
- fuzzy->addFuzzyInput(CHO);
- // Fuzzy input for weight
- FuzzyInput* WEIGHT = new FuzzyInput(3);
- WEIGHT->addFuzzySet(WEIGHT_VL);
- WEIGHT->addFuzzySet(WEIGHT_L);
- WEIGHT->addFuzzySet(WEIGHT_O1);
- WEIGHT->addFuzzySet(WEIGHT_O2);
- WEIGHT->addFuzzySet(WEIGHT_H);
- WEIGHT->addFuzzySet(WEIGHT_VH);
- fuzzy->addFuzzyInput(WEIGHT);
- // ==================================================
- // Fuzzy output insulin
- FuzzyOutput* insuline = new FuzzyOutput(1);
- FuzzySet* insulin_A = new FuzzySet(25, 25, 25, 30.5); // add values
- insuline->addFuzzySet(insulin_A);
- FuzzySet* insulin_B = new FuzzySet(30.5, 33, 33, 35.5); // add values
- insuline->addFuzzySet(insulin_B);
- FuzzySet* insulin_C = new FuzzySet(35.5, 39.5, 39.5, 43.5); // add values
- insuline->addFuzzySet(insulin_C);
- FuzzySet* insulin_D = new FuzzySet(43.5, 46.5, 46.5, 49.5); // add values
- insuline->addFuzzySet(insulin_D);
- FuzzySet* insulin_E = new FuzzySet(49.5, 55, 55, 55); // add values
- insuline->addFuzzySet(insulin_E);
- fuzzy->addFuzzyOutput(insuline);
- //================================= rule - 1 ==============================
- FuzzyRuleAntecedent* ID01_BMIandCHO = new FuzzyRuleAntecedent();
- ID01_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID01_WEIGHT = new FuzzyRuleAntecedent();
- ID01_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID01_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID01_IF_BMIandCHOandWEIGHT->joinWithAND(ID01_BMIandCHO, ID01_WEIGHT);
- FuzzyRuleConsequent* ID01_THEN_INSULIN = new FuzzyRuleConsequent();
- ID01_THEN_INSULIN->addOutput(insulin_A);
- FuzzyRule* fuzzyRule1 = new FuzzyRule(1, ID01_IF_BMIandCHOandWEIGHT, ID01_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule1);
- //================================= rule - 2 ==============================
- FuzzyRuleAntecedent* ID02_BMIandCHO = new FuzzyRuleAntecedent();
- ID02_BMIandCHO->joinWithAND(BMI_L, CHO_O);
- FuzzyRuleAntecedent* ID02_WEIGHT = new FuzzyRuleAntecedent();
- ID02_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID02_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID02_IF_BMIandCHOandWEIGHT->joinWithAND(ID02_BMIandCHO, ID02_WEIGHT);
- FuzzyRuleConsequent* ID02_THEN_INSULIN = new FuzzyRuleConsequent();
- ID02_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule2 = new FuzzyRule(2, ID02_IF_BMIandCHOandWEIGHT, ID02_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule2);
- //================================= rule - 3 ==============================
- FuzzyRuleAntecedent* ID03_BMIandCHO = new FuzzyRuleAntecedent();
- ID03_BMIandCHO->joinWithAND(BMI_L, CHO_H);
- FuzzyRuleAntecedent* ID03_WEIGHT = new FuzzyRuleAntecedent();
- ID03_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID03_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID03_IF_BMIandCHOandWEIGHT->joinWithAND(ID03_BMIandCHO, ID03_WEIGHT);
- FuzzyRuleConsequent* ID03_THEN_INSULIN = new FuzzyRuleConsequent();
- ID03_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule3 = new FuzzyRule(3, ID03_IF_BMIandCHOandWEIGHT, ID03_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule3);
- //================================= rule - 4 ==============================
- FuzzyRuleAntecedent* ID04_BMIandCHO = new FuzzyRuleAntecedent();
- ID04_BMIandCHO->joinWithAND(BMI_O, CHO_L);
- FuzzyRuleAntecedent* ID04_WEIGHT = new FuzzyRuleAntecedent();
- ID04_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID04_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID04_IF_BMIandCHOandWEIGHT->joinWithAND(ID04_BMIandCHO, ID04_WEIGHT);
- FuzzyRuleConsequent* ID04_THEN_INSULIN = new FuzzyRuleConsequent();
- ID04_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule4 = new FuzzyRule(4, ID04_IF_BMIandCHOandWEIGHT, ID04_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule4);
- //================================= rule - 5 ==============================
- FuzzyRuleAntecedent* ID05_BMIandCHO = new FuzzyRuleAntecedent();
- ID05_BMIandCHO->joinWithAND(BMI_O, CHO_O);
- FuzzyRuleAntecedent* ID05_WEIGHT = new FuzzyRuleAntecedent();
- ID05_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID05_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID05_IF_BMIandCHOandWEIGHT->joinWithAND(ID05_BMIandCHO, ID05_WEIGHT);
- FuzzyRuleConsequent* ID05_THEN_INSULIN = new FuzzyRuleConsequent();
- ID05_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule5 = new FuzzyRule(5, ID05_IF_BMIandCHOandWEIGHT, ID05_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule5);
- //================================= rule - 6 ==============================
- FuzzyRuleAntecedent* ID06_BMIandCHO = new FuzzyRuleAntecedent();
- ID06_BMIandCHO->joinWithAND(BMI_O, CHO_H);
- FuzzyRuleAntecedent* ID06_WEIGHT = new FuzzyRuleAntecedent();
- ID06_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID06_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID06_IF_BMIandCHOandWEIGHT->joinWithAND(ID06_BMIandCHO, ID06_WEIGHT);
- FuzzyRuleConsequent* ID06_THEN_INSULIN = new FuzzyRuleConsequent();
- ID06_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule6 = new FuzzyRule(6, ID06_IF_BMIandCHOandWEIGHT, ID06_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule6);
- //================================= rule - 7 ==============================
- FuzzyRuleAntecedent* ID07_BMIandCHO = new FuzzyRuleAntecedent();
- ID07_BMIandCHO->joinWithAND(BMI_H, CHO_L);
- FuzzyRuleAntecedent* ID07_WEIGHT = new FuzzyRuleAntecedent();
- ID07_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID07_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID07_IF_BMIandCHOandWEIGHT->joinWithAND(ID07_BMIandCHO, ID07_WEIGHT);
- FuzzyRuleConsequent* ID07_THEN_INSULIN = new FuzzyRuleConsequent();
- ID07_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule7 = new FuzzyRule(7, ID07_IF_BMIandCHOandWEIGHT, ID07_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule7);
- //================================= rule - 8 ==============================
- FuzzyRuleAntecedent* ID08_BMIandCHO = new FuzzyRuleAntecedent();
- ID08_BMIandCHO->joinWithAND(BMI_H, CHO_O);
- FuzzyRuleAntecedent* ID08_WEIGHT = new FuzzyRuleAntecedent();
- ID08_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID08_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID08_IF_BMIandCHOandWEIGHT->joinWithAND(ID08_BMIandCHO, ID08_WEIGHT);
- FuzzyRuleConsequent* ID08_THEN_INSULIN = new FuzzyRuleConsequent();
- ID08_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule8 = new FuzzyRule(8, ID08_IF_BMIandCHOandWEIGHT, ID08_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule8);
- //================================= rule - 9 ==============================
- FuzzyRuleAntecedent* ID09_BMIandCHO = new FuzzyRuleAntecedent();
- ID09_BMIandCHO->joinWithAND(BMI_H, CHO_H);
- FuzzyRuleAntecedent* ID09_WEIGHT = new FuzzyRuleAntecedent();
- ID09_WEIGHT->joinSingle(WEIGHT_VL);
- FuzzyRuleAntecedent* ID09_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID09_IF_BMIandCHOandWEIGHT->joinWithAND(ID09_BMIandCHO, ID09_WEIGHT);
- FuzzyRuleConsequent* ID09_THEN_INSULIN = new FuzzyRuleConsequent();
- ID09_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule9 = new FuzzyRule(9, ID09_IF_BMIandCHOandWEIGHT, ID09_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule9);
- //================================= rule - 10 ==============================
- FuzzyRuleAntecedent* ID10_BMIandCHO = new FuzzyRuleAntecedent();
- ID10_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID10_WEIGHT = new FuzzyRuleAntecedent();
- ID10_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID10_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID10_IF_BMIandCHOandWEIGHT->joinWithAND(ID10_BMIandCHO, ID10_WEIGHT);
- FuzzyRuleConsequent* ID10_THEN_INSULIN = new FuzzyRuleConsequent();
- ID10_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule10 = new FuzzyRule(10, ID10_IF_BMIandCHOandWEIGHT, ID10_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule10);
- //================================= rule - 11 ==============================
- FuzzyRuleAntecedent* ID11_BMIandCHO = new FuzzyRuleAntecedent();
- ID11_BMIandCHO->joinWithAND(BMI_L, CHO_O);
- FuzzyRuleAntecedent* ID11_WEIGHT = new FuzzyRuleAntecedent();
- ID11_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID11_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID11_IF_BMIandCHOandWEIGHT->joinWithAND(ID11_BMIandCHO, ID11_WEIGHT);
- FuzzyRuleConsequent* ID11_THEN_INSULIN = new FuzzyRuleConsequent();
- ID11_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule11 = new FuzzyRule(11, ID11_IF_BMIandCHOandWEIGHT, ID11_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule11);
- //================================= rule - 12 ==============================
- FuzzyRuleAntecedent* ID12_BMIandCHO = new FuzzyRuleAntecedent();
- ID12_BMIandCHO->joinWithAND(BMI_L, CHO_H);
- FuzzyRuleAntecedent* ID12_WEIGHT = new FuzzyRuleAntecedent();
- ID12_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID12_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID12_IF_BMIandCHOandWEIGHT->joinWithAND(ID12_BMIandCHO, ID12_WEIGHT);
- FuzzyRuleConsequent* ID12_THEN_INSULIN = new FuzzyRuleConsequent();
- ID12_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule12 = new FuzzyRule(12, ID12_IF_BMIandCHOandWEIGHT, ID12_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule12);
- //================================= rule - 13 ==============================
- FuzzyRuleAntecedent* ID13_BMIandCHO = new FuzzyRuleAntecedent();
- ID13_BMIandCHO->joinWithAND(BMI_O, CHO_L);
- FuzzyRuleAntecedent* ID13_WEIGHT = new FuzzyRuleAntecedent();
- ID13_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID13_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID13_IF_BMIandCHOandWEIGHT->joinWithAND(ID13_BMIandCHO, ID13_WEIGHT);
- FuzzyRuleConsequent* ID13_THEN_INSULIN = new FuzzyRuleConsequent();
- ID13_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule13 = new FuzzyRule(13, ID13_IF_BMIandCHOandWEIGHT, ID13_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule13);
- //================================= rule - 14 ==============================
- FuzzyRuleAntecedent* ID14_BMIandCHO = new FuzzyRuleAntecedent();
- ID14_BMIandCHO->joinWithAND(BMI_O, CHO_O);
- FuzzyRuleAntecedent* ID14_WEIGHT = new FuzzyRuleAntecedent();
- ID14_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID14_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID14_IF_BMIandCHOandWEIGHT->joinWithAND(ID14_BMIandCHO, ID14_WEIGHT);
- FuzzyRuleConsequent* ID14_THEN_INSULIN = new FuzzyRuleConsequent();
- ID14_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule14 = new FuzzyRule(14, ID14_IF_BMIandCHOandWEIGHT, ID14_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule14);
- //================================= rule - 15 ==============================
- FuzzyRuleAntecedent* ID15_BMIandCHO = new FuzzyRuleAntecedent();
- ID15_BMIandCHO->joinWithAND(BMI_O, CHO_H);
- FuzzyRuleAntecedent* ID15_WEIGHT = new FuzzyRuleAntecedent();
- ID15_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID15_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID15_IF_BMIandCHOandWEIGHT->joinWithAND(ID15_BMIandCHO, ID15_WEIGHT);
- FuzzyRuleConsequent* ID15_THEN_INSULIN = new FuzzyRuleConsequent();
- ID15_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule15 = new FuzzyRule(15, ID15_IF_BMIandCHOandWEIGHT, ID15_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule15);
- //================================= rule - 16 ==============================
- FuzzyRuleAntecedent* ID16_BMIandCHO = new FuzzyRuleAntecedent();
- ID16_BMIandCHO->joinWithAND(BMI_H, CHO_L);
- FuzzyRuleAntecedent* ID16_WEIGHT = new FuzzyRuleAntecedent();
- ID16_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID16_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID16_IF_BMIandCHOandWEIGHT->joinWithAND(ID16_BMIandCHO, ID16_WEIGHT);
- FuzzyRuleConsequent* ID16_THEN_INSULIN = new FuzzyRuleConsequent();
- ID16_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule16 = new FuzzyRule(16, ID16_IF_BMIandCHOandWEIGHT, ID16_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule16);
- //================================= rule - 17 ==============================
- FuzzyRuleAntecedent* ID17_BMIandCHO = new FuzzyRuleAntecedent();
- ID17_BMIandCHO->joinWithAND(BMI_H, CHO_O);
- FuzzyRuleAntecedent* ID17_WEIGHT = new FuzzyRuleAntecedent();
- ID17_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID17_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID17_IF_BMIandCHOandWEIGHT->joinWithAND(ID17_BMIandCHO, ID17_WEIGHT);
- FuzzyRuleConsequent* ID17_THEN_INSULIN = new FuzzyRuleConsequent();
- ID17_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule17 = new FuzzyRule(17, ID17_IF_BMIandCHOandWEIGHT, ID17_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule17);
- //================================= rule - 18 ==============================
- FuzzyRuleAntecedent* ID18_BMIandCHO = new FuzzyRuleAntecedent();
- ID18_BMIandCHO->joinWithAND(BMI_H, CHO_H);
- FuzzyRuleAntecedent* ID18_WEIGHT = new FuzzyRuleAntecedent();
- ID18_WEIGHT->joinSingle(WEIGHT_L);
- FuzzyRuleAntecedent* ID18_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID18_IF_BMIandCHOandWEIGHT->joinWithAND(ID18_BMIandCHO, ID18_WEIGHT);
- FuzzyRuleConsequent* ID18_THEN_INSULIN = new FuzzyRuleConsequent();
- ID18_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule18 = new FuzzyRule(18, ID18_IF_BMIandCHOandWEIGHT, ID18_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule18);
- //================================= rule - 19 ==============================
- FuzzyRuleAntecedent* ID19_BMIandCHO = new FuzzyRuleAntecedent();
- ID19_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID19_WEIGHT = new FuzzyRuleAntecedent();
- ID19_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID19_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID19_IF_BMIandCHOandWEIGHT->joinWithAND(ID19_BMIandCHO, ID19_WEIGHT);
- FuzzyRuleConsequent* ID19_THEN_INSULIN = new FuzzyRuleConsequent();
- ID19_THEN_INSULIN->addOutput(insulin_A);
- FuzzyRule* fuzzyRule19 = new FuzzyRule(19, ID19_IF_BMIandCHOandWEIGHT, ID19_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule19);
- //================================= rule - 20 ==============================
- FuzzyRuleAntecedent* ID20_BMIandCHO = new FuzzyRuleAntecedent();
- ID20_BMIandCHO->joinWithAND(BMI_L, CHO_O);
- FuzzyRuleAntecedent* ID20_WEIGHT = new FuzzyRuleAntecedent();
- ID20_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID20_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID20_IF_BMIandCHOandWEIGHT->joinWithAND(ID20_BMIandCHO, ID20_WEIGHT);
- FuzzyRuleConsequent* ID20_THEN_INSULIN = new FuzzyRuleConsequent();
- ID20_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule20 = new FuzzyRule(20, ID20_IF_BMIandCHOandWEIGHT, ID20_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule20);
- //================================= rule - 21 ==============================
- FuzzyRuleAntecedent* ID21_BMIandCHO = new FuzzyRuleAntecedent();
- ID21_BMIandCHO->joinWithAND(BMI_L, CHO_H);
- FuzzyRuleAntecedent* ID21_WEIGHT = new FuzzyRuleAntecedent();
- ID21_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID21_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID21_IF_BMIandCHOandWEIGHT->joinWithAND(ID21_BMIandCHO, ID21_WEIGHT);
- FuzzyRuleConsequent* ID21_THEN_INSULIN = new FuzzyRuleConsequent();
- ID21_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule21 = new FuzzyRule(21, ID21_IF_BMIandCHOandWEIGHT, ID21_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule21);
- //================================= rule - 22 ==============================
- FuzzyRuleAntecedent* ID22_BMIandCHO = new FuzzyRuleAntecedent();
- ID22_BMIandCHO->joinWithAND(BMI_O, CHO_L);
- FuzzyRuleAntecedent* ID22_WEIGHT = new FuzzyRuleAntecedent();
- ID22_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID22_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID22_IF_BMIandCHOandWEIGHT->joinWithAND(ID22_BMIandCHO, ID22_WEIGHT);
- FuzzyRuleConsequent* ID22_THEN_INSULIN = new FuzzyRuleConsequent();
- ID22_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule22 = new FuzzyRule(22, ID22_IF_BMIandCHOandWEIGHT, ID22_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule22);
- //================================= rule - 23 ==============================
- FuzzyRuleAntecedent* ID23_BMIandCHO = new FuzzyRuleAntecedent();
- ID23_BMIandCHO->joinWithAND(BMI_O, CHO_O);
- FuzzyRuleAntecedent* ID23_WEIGHT = new FuzzyRuleAntecedent();
- ID23_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID23_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID23_IF_BMIandCHOandWEIGHT->joinWithAND(ID23_BMIandCHO, ID23_WEIGHT);
- FuzzyRuleConsequent* ID23_THEN_INSULIN = new FuzzyRuleConsequent();
- ID23_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule23 = new FuzzyRule(23, ID23_IF_BMIandCHOandWEIGHT, ID23_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule23);
- //================================= rule - 24 ==============================
- FuzzyRuleAntecedent* ID24_BMIandCHO = new FuzzyRuleAntecedent();
- ID24_BMIandCHO->joinWithAND(BMI_O, CHO_H);
- FuzzyRuleAntecedent* ID24_WEIGHT = new FuzzyRuleAntecedent();
- ID24_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID24_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID24_IF_BMIandCHOandWEIGHT->joinWithAND(ID24_BMIandCHO, ID24_WEIGHT);
- FuzzyRuleConsequent* ID24_THEN_INSULIN = new FuzzyRuleConsequent();
- ID24_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule24 = new FuzzyRule(24, ID24_IF_BMIandCHOandWEIGHT, ID24_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule24);
- //================================= rule - 25 ==============================
- FuzzyRuleAntecedent* ID25_BMIandCHO = new FuzzyRuleAntecedent();
- ID25_BMIandCHO->joinWithAND(BMI_H, CHO_L);
- FuzzyRuleAntecedent* ID25_WEIGHT = new FuzzyRuleAntecedent();
- ID25_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID25_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID25_IF_BMIandCHOandWEIGHT->joinWithAND(ID25_BMIandCHO, ID25_WEIGHT);
- FuzzyRuleConsequent* ID25_THEN_INSULIN = new FuzzyRuleConsequent();
- ID25_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule25 = new FuzzyRule(25, ID25_IF_BMIandCHOandWEIGHT, ID25_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule25);
- //================================= rule - 26 ==============================
- FuzzyRuleAntecedent* ID26_BMIandCHO = new FuzzyRuleAntecedent();
- ID26_BMIandCHO->joinWithAND(BMI_H, CHO_O);
- FuzzyRuleAntecedent* ID26_WEIGHT = new FuzzyRuleAntecedent();
- ID26_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID26_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID26_IF_BMIandCHOandWEIGHT->joinWithAND(ID26_BMIandCHO, ID26_WEIGHT);
- FuzzyRuleConsequent* ID26_THEN_INSULIN = new FuzzyRuleConsequent();
- ID26_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule26 = new FuzzyRule(26, ID26_IF_BMIandCHOandWEIGHT, ID26_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule26);
- //================================= rule - 27 ==============================
- FuzzyRuleAntecedent* ID27_BMIandCHO = new FuzzyRuleAntecedent();
- ID27_BMIandCHO->joinWithAND(BMI_H, CHO_H);
- FuzzyRuleAntecedent* ID27_WEIGHT = new FuzzyRuleAntecedent();
- ID27_WEIGHT->joinSingle(WEIGHT_O1);
- FuzzyRuleAntecedent* ID27_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID27_IF_BMIandCHOandWEIGHT->joinWithAND(ID27_BMIandCHO, ID27_WEIGHT);
- FuzzyRuleConsequent* ID27_THEN_INSULIN = new FuzzyRuleConsequent();
- ID27_THEN_INSULIN->addOutput(insulin_E);
- FuzzyRule* fuzzyRule27 = new FuzzyRule(27, ID27_IF_BMIandCHOandWEIGHT, ID27_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule27);
- //================================= rule - 28 ==============================
- FuzzyRuleAntecedent* ID28_BMIandCHO = new FuzzyRuleAntecedent();
- ID28_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID28_WEIGHT = new FuzzyRuleAntecedent();
- ID28_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID28_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID28_IF_BMIandCHOandWEIGHT->joinWithAND(ID28_BMIandCHO, ID28_WEIGHT);
- FuzzyRuleConsequent* ID28_THEN_INSULIN = new FuzzyRuleConsequent();
- ID28_THEN_INSULIN->addOutput(insulin_A);
- FuzzyRule* fuzzyRule28 = new FuzzyRule(28, ID28_IF_BMIandCHOandWEIGHT, ID28_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule28);
- //================================= rule - 29 ==============================
- FuzzyRuleAntecedent* ID29_BMIandCHO = new FuzzyRuleAntecedent();
- ID29_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID29_WEIGHT = new FuzzyRuleAntecedent();
- ID29_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID29_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID29_IF_BMIandCHOandWEIGHT->joinWithAND(ID29_BMIandCHO, ID29_WEIGHT);
- FuzzyRuleConsequent* ID29_THEN_INSULIN = new FuzzyRuleConsequent();
- ID29_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule29 = new FuzzyRule(29, ID29_IF_BMIandCHOandWEIGHT, ID29_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule29);
- //================================= rule - 30 ==============================
- FuzzyRuleAntecedent* ID30_BMIandCHO = new FuzzyRuleAntecedent();
- ID30_BMIandCHO->joinWithAND(BMI_L, CHO_H);
- FuzzyRuleAntecedent* ID30_WEIGHT = new FuzzyRuleAntecedent();
- ID30_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID30_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID30_IF_BMIandCHOandWEIGHT->joinWithAND(ID30_BMIandCHO, ID30_WEIGHT);
- FuzzyRuleConsequent* ID30_THEN_INSULIN = new FuzzyRuleConsequent();
- ID30_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule30 = new FuzzyRule(30, ID30_IF_BMIandCHOandWEIGHT, ID30_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule30);
- //================================= rule - 31 ==============================
- FuzzyRuleAntecedent* ID31_BMIandCHO = new FuzzyRuleAntecedent();
- ID31_BMIandCHO->joinWithAND(BMI_O, CHO_L);
- FuzzyRuleAntecedent* ID31_WEIGHT = new FuzzyRuleAntecedent();
- ID31_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID31_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID31_IF_BMIandCHOandWEIGHT->joinWithAND(ID31_BMIandCHO, ID31_WEIGHT);
- FuzzyRuleConsequent* ID31_THEN_INSULIN = new FuzzyRuleConsequent();
- ID31_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule31 = new FuzzyRule(31, ID31_IF_BMIandCHOandWEIGHT, ID31_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule31);
- //================================= rule - 32 ==============================
- FuzzyRuleAntecedent* ID32_BMIandCHO = new FuzzyRuleAntecedent();
- ID32_BMIandCHO->joinWithAND(BMI_O, CHO_O);
- FuzzyRuleAntecedent* ID32_WEIGHT = new FuzzyRuleAntecedent();
- ID32_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID32_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID32_IF_BMIandCHOandWEIGHT->joinWithAND(ID32_BMIandCHO, ID32_WEIGHT);
- FuzzyRuleConsequent* ID32_THEN_INSULIN = new FuzzyRuleConsequent();
- ID32_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule32 = new FuzzyRule(32, ID32_IF_BMIandCHOandWEIGHT, ID32_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule32);
- //================================= rule - 33 ==============================
- FuzzyRuleAntecedent* ID33_BMIandCHO = new FuzzyRuleAntecedent();
- ID33_BMIandCHO->joinWithAND(BMI_O, CHO_H);
- FuzzyRuleAntecedent* ID33_WEIGHT = new FuzzyRuleAntecedent();
- ID33_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID33_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID33_IF_BMIandCHOandWEIGHT->joinWithAND(ID33_BMIandCHO, ID33_WEIGHT);
- FuzzyRuleConsequent* ID33_THEN_INSULIN = new FuzzyRuleConsequent();
- ID33_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule33 = new FuzzyRule(33, ID33_IF_BMIandCHOandWEIGHT, ID33_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule33);
- //================================= rule - 34 ==============================
- FuzzyRuleAntecedent* ID34_BMIandCHO = new FuzzyRuleAntecedent();
- ID34_BMIandCHO->joinWithAND(BMI_H, CHO_L);
- FuzzyRuleAntecedent* ID34_WEIGHT = new FuzzyRuleAntecedent();
- ID34_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID34_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID34_IF_BMIandCHOandWEIGHT->joinWithAND(ID34_BMIandCHO, ID34_WEIGHT);
- FuzzyRuleConsequent* ID34_THEN_INSULIN = new FuzzyRuleConsequent();
- ID34_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule34 = new FuzzyRule(34, ID34_IF_BMIandCHOandWEIGHT, ID34_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule34);
- //================================= rule - 35 ==============================
- FuzzyRuleAntecedent* ID35_BMIandCHO = new FuzzyRuleAntecedent();
- ID35_BMIandCHO->joinWithAND(BMI_H, CHO_O);
- FuzzyRuleAntecedent* ID35_WEIGHT = new FuzzyRuleAntecedent();
- ID35_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID35_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID35_IF_BMIandCHOandWEIGHT->joinWithAND(ID35_BMIandCHO, ID35_WEIGHT);
- FuzzyRuleConsequent* ID35_THEN_INSULIN = new FuzzyRuleConsequent();
- ID35_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule35 = new FuzzyRule(35, ID35_IF_BMIandCHOandWEIGHT, ID35_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule35);
- //================================= rule - 36 ==============================
- FuzzyRuleAntecedent* ID36_BMIandCHO = new FuzzyRuleAntecedent();
- ID36_BMIandCHO->joinWithAND(BMI_H, CHO_H);
- FuzzyRuleAntecedent* ID36_WEIGHT = new FuzzyRuleAntecedent();
- ID36_WEIGHT->joinSingle(WEIGHT_O2);
- FuzzyRuleAntecedent* ID36_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID36_IF_BMIandCHOandWEIGHT->joinWithAND(ID36_BMIandCHO, ID36_WEIGHT);
- FuzzyRuleConsequent* ID36_THEN_INSULIN = new FuzzyRuleConsequent();
- ID36_THEN_INSULIN->addOutput(insulin_E);
- FuzzyRule* fuzzyRule36 = new FuzzyRule(36, ID36_IF_BMIandCHOandWEIGHT, ID36_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule36);
- //================================= rule - 37 ==============================
- FuzzyRuleAntecedent* ID37_BMIandCHO = new FuzzyRuleAntecedent();
- ID37_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID37_WEIGHT = new FuzzyRuleAntecedent();
- ID37_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID37_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID37_IF_BMIandCHOandWEIGHT->joinWithAND(ID37_BMIandCHO, ID37_WEIGHT);
- FuzzyRuleConsequent* ID37_THEN_INSULIN = new FuzzyRuleConsequent();
- ID37_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule37 = new FuzzyRule(37, ID37_IF_BMIandCHOandWEIGHT, ID37_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule37);
- //================================= rule - 38 ==============================
- FuzzyRuleAntecedent* ID38_BMIandCHO = new FuzzyRuleAntecedent();
- ID38_BMIandCHO->joinWithAND(BMI_L, CHO_O);
- FuzzyRuleAntecedent* ID38_WEIGHT = new FuzzyRuleAntecedent();
- ID38_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID38_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID38_IF_BMIandCHOandWEIGHT->joinWithAND(ID38_BMIandCHO, ID38_WEIGHT);
- FuzzyRuleConsequent* ID38_THEN_INSULIN = new FuzzyRuleConsequent();
- ID38_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule38 = new FuzzyRule(38, ID38_IF_BMIandCHOandWEIGHT, ID38_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule38);
- //================================= rule - 39 ==============================
- FuzzyRuleAntecedent* ID39_BMIandCHO = new FuzzyRuleAntecedent();
- ID39_BMIandCHO->joinWithAND(BMI_L, CHO_H);
- FuzzyRuleAntecedent* ID39_WEIGHT = new FuzzyRuleAntecedent();
- ID39_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID39_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID39_IF_BMIandCHOandWEIGHT->joinWithAND(ID39_BMIandCHO, ID39_WEIGHT);
- FuzzyRuleConsequent* ID39_THEN_INSULIN = new FuzzyRuleConsequent();
- ID39_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule39 = new FuzzyRule(39, ID39_IF_BMIandCHOandWEIGHT, ID39_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule39);
- //================================= rule - 40 ==============================
- FuzzyRuleAntecedent* ID40_BMIandCHO = new FuzzyRuleAntecedent();
- ID40_BMIandCHO->joinWithAND(BMI_O, CHO_L);
- FuzzyRuleAntecedent* ID40_WEIGHT = new FuzzyRuleAntecedent();
- ID40_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID40_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID40_IF_BMIandCHOandWEIGHT->joinWithAND(ID40_BMIandCHO, ID40_WEIGHT);
- FuzzyRuleConsequent* ID40_THEN_INSULIN = new FuzzyRuleConsequent();
- ID40_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule40 = new FuzzyRule(40, ID40_IF_BMIandCHOandWEIGHT, ID40_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule40);
- //================================= rule - 41 ==============================
- FuzzyRuleAntecedent* ID41_BMIandCHO = new FuzzyRuleAntecedent();
- ID41_BMIandCHO->joinWithAND(BMI_O, CHO_O);
- FuzzyRuleAntecedent* ID41_WEIGHT = new FuzzyRuleAntecedent();
- ID41_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID41_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID41_IF_BMIandCHOandWEIGHT->joinWithAND(ID41_BMIandCHO, ID41_WEIGHT);
- FuzzyRuleConsequent* ID41_THEN_INSULIN = new FuzzyRuleConsequent();
- ID41_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule41 = new FuzzyRule(41, ID41_IF_BMIandCHOandWEIGHT, ID41_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule41);
- //================================= rule - 42 ==============================
- FuzzyRuleAntecedent* ID42_BMIandCHO = new FuzzyRuleAntecedent();
- ID42_BMIandCHO->joinWithAND(BMI_O, CHO_H);
- FuzzyRuleAntecedent* ID42_WEIGHT = new FuzzyRuleAntecedent();
- ID42_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID42_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID42_IF_BMIandCHOandWEIGHT->joinWithAND(ID42_BMIandCHO, ID42_WEIGHT);
- FuzzyRuleConsequent* ID42_THEN_INSULIN = new FuzzyRuleConsequent();
- ID42_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule42 = new FuzzyRule(42, ID42_IF_BMIandCHOandWEIGHT, ID42_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule42);
- //================================= rule - 43 ==============================
- FuzzyRuleAntecedent* ID43_BMIandCHO = new FuzzyRuleAntecedent();
- ID43_BMIandCHO->joinWithAND(BMI_H, CHO_L);
- FuzzyRuleAntecedent* ID43_WEIGHT = new FuzzyRuleAntecedent();
- ID43_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID43_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID43_IF_BMIandCHOandWEIGHT->joinWithAND(ID43_BMIandCHO, ID43_WEIGHT);
- FuzzyRuleConsequent* ID43_THEN_INSULIN = new FuzzyRuleConsequent();
- ID43_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule43 = new FuzzyRule(43, ID43_IF_BMIandCHOandWEIGHT, ID43_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule43);
- //================================= rule - 44 ==============================
- FuzzyRuleAntecedent* ID44_BMIandCHO = new FuzzyRuleAntecedent();
- ID44_BMIandCHO->joinWithAND(BMI_H, CHO_O);
- FuzzyRuleAntecedent* ID44_WEIGHT = new FuzzyRuleAntecedent();
- ID44_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID44_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID44_IF_BMIandCHOandWEIGHT->joinWithAND(ID44_BMIandCHO, ID44_WEIGHT);
- FuzzyRuleConsequent* ID44_THEN_INSULIN = new FuzzyRuleConsequent();
- ID44_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule44 = new FuzzyRule(44, ID44_IF_BMIandCHOandWEIGHT, ID44_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule44);
- //================================= rule - 45 ==============================
- FuzzyRuleAntecedent* ID45_BMIandCHO = new FuzzyRuleAntecedent();
- ID45_BMIandCHO->joinWithAND(BMI_H, CHO_H);
- FuzzyRuleAntecedent* ID45_WEIGHT = new FuzzyRuleAntecedent();
- ID45_WEIGHT->joinSingle(WEIGHT_H);
- FuzzyRuleAntecedent* ID45_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID45_IF_BMIandCHOandWEIGHT->joinWithAND(ID45_BMIandCHO, ID45_WEIGHT);
- FuzzyRuleConsequent* ID45_THEN_INSULIN = new FuzzyRuleConsequent();
- ID45_THEN_INSULIN->addOutput(insulin_E);
- FuzzyRule* fuzzyRule45 = new FuzzyRule(45, ID45_IF_BMIandCHOandWEIGHT, ID45_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule45);
- //================================= rule - 46 ==============================
- FuzzyRuleAntecedent* ID46_BMIandCHO = new FuzzyRuleAntecedent();
- ID46_BMIandCHO->joinWithAND(BMI_L, CHO_L);
- FuzzyRuleAntecedent* ID46_WEIGHT = new FuzzyRuleAntecedent();
- ID46_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID46_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID46_IF_BMIandCHOandWEIGHT->joinWithAND(ID46_BMIandCHO, ID46_WEIGHT);
- FuzzyRuleConsequent* ID46_THEN_INSULIN = new FuzzyRuleConsequent();
- ID46_THEN_INSULIN->addOutput(insulin_B);
- FuzzyRule* fuzzyRule46 = new FuzzyRule(46, ID46_IF_BMIandCHOandWEIGHT, ID46_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule46);
- //================================= rule - 47 ==============================
- FuzzyRuleAntecedent* ID47_BMIandCHO = new FuzzyRuleAntecedent();
- ID47_BMIandCHO->joinWithAND(BMI_L, CHO_O);
- FuzzyRuleAntecedent* ID47_WEIGHT = new FuzzyRuleAntecedent();
- ID47_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID47_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID47_IF_BMIandCHOandWEIGHT->joinWithAND(ID47_BMIandCHO, ID47_WEIGHT);
- FuzzyRuleConsequent* ID47_THEN_INSULIN = new FuzzyRuleConsequent();
- ID47_THEN_INSULIN->addOutput(insulin_C);
- FuzzyRule* fuzzyRule47 = new FuzzyRule(47, ID47_IF_BMIandCHOandWEIGHT, ID47_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule47);
- //================================= rule - 48 ==============================
- FuzzyRuleAntecedent* ID48_BMIandCHO = new FuzzyRuleAntecedent();
- ID48_BMIandCHO->joinWithAND(BMI_L, CHO_H);
- FuzzyRuleAntecedent* ID48_WEIGHT = new FuzzyRuleAntecedent();
- ID48_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID48_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID48_IF_BMIandCHOandWEIGHT->joinWithAND(ID48_BMIandCHO, ID48_WEIGHT);
- FuzzyRuleConsequent* ID48_THEN_INSULIN = new FuzzyRuleConsequent();
- ID48_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule48 = new FuzzyRule(48, ID48_IF_BMIandCHOandWEIGHT, ID48_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule48);
- //================================= rule - 49 ==============================
- FuzzyRuleAntecedent* ID49_BMIandCHO = new FuzzyRuleAntecedent();
- ID49_BMIandCHO->joinWithAND(BMI_O, CHO_L);
- FuzzyRuleAntecedent* ID49_WEIGHT = new FuzzyRuleAntecedent();
- ID49_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID49_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID49_IF_BMIandCHOandWEIGHT->joinWithAND(ID49_BMIandCHO, ID49_WEIGHT);
- FuzzyRuleConsequent* ID49_THEN_INSULIN = new FuzzyRuleConsequent();
- ID49_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule49 = new FuzzyRule(49, ID49_IF_BMIandCHOandWEIGHT, ID49_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule49);
- //================================= rule - 50 ==============================
- FuzzyRuleAntecedent* ID50_BMIandCHO = new FuzzyRuleAntecedent();
- ID50_BMIandCHO->joinWithAND(BMI_O, CHO_O);
- FuzzyRuleAntecedent* ID50_WEIGHT = new FuzzyRuleAntecedent();
- ID50_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID50_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID50_IF_BMIandCHOandWEIGHT->joinWithAND(ID50_BMIandCHO, ID50_WEIGHT);
- FuzzyRuleConsequent* ID50_THEN_INSULIN = new FuzzyRuleConsequent();
- ID50_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule50 = new FuzzyRule(50, ID50_IF_BMIandCHOandWEIGHT, ID50_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule50);
- //================================= rule - 51 ==============================
- FuzzyRuleAntecedent* ID51_BMIandCHO = new FuzzyRuleAntecedent();
- ID51_BMIandCHO->joinWithAND(BMI_O, CHO_H);
- FuzzyRuleAntecedent* ID51_WEIGHT = new FuzzyRuleAntecedent();
- ID51_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID51_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID51_IF_BMIandCHOandWEIGHT->joinWithAND(ID51_BMIandCHO, ID51_WEIGHT);
- FuzzyRuleConsequent* ID51_THEN_INSULIN = new FuzzyRuleConsequent();
- ID51_THEN_INSULIN->addOutput(insulin_E);
- FuzzyRule* fuzzyRule51 = new FuzzyRule(51, ID51_IF_BMIandCHOandWEIGHT, ID51_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule51);
- //================================= rule - 52 ==============================
- FuzzyRuleAntecedent* ID52_BMIandCHO = new FuzzyRuleAntecedent();
- ID52_BMIandCHO->joinWithAND(BMI_H, CHO_L);
- FuzzyRuleAntecedent* ID52_WEIGHT = new FuzzyRuleAntecedent();
- ID52_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID52_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID52_IF_BMIandCHOandWEIGHT->joinWithAND(ID52_BMIandCHO, ID52_WEIGHT);
- FuzzyRuleConsequent* ID52_THEN_INSULIN = new FuzzyRuleConsequent();
- ID52_THEN_INSULIN->addOutput(insulin_D);
- FuzzyRule* fuzzyRule52 = new FuzzyRule(52, ID52_IF_BMIandCHOandWEIGHT, ID52_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule52);
- //================================= rule - 53 ==============================
- FuzzyRuleAntecedent* ID53_BMIandCHO = new FuzzyRuleAntecedent();
- ID53_BMIandCHO->joinWithAND(BMI_H, CHO_O);
- FuzzyRuleAntecedent* ID53_WEIGHT = new FuzzyRuleAntecedent();
- ID53_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID53_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID53_IF_BMIandCHOandWEIGHT->joinWithAND(ID53_BMIandCHO, ID53_WEIGHT);
- FuzzyRuleConsequent* ID53_THEN_INSULIN = new FuzzyRuleConsequent();
- ID53_THEN_INSULIN->addOutput(insulin_E);
- FuzzyRule* fuzzyRule53 = new FuzzyRule(53, ID53_IF_BMIandCHOandWEIGHT, ID53_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule53);
- //================================= rule - 54 ==============================
- FuzzyRuleAntecedent* ID54_BMIandCHO = new FuzzyRuleAntecedent();
- ID54_BMIandCHO->joinWithAND(BMI_H, CHO_H);
- FuzzyRuleAntecedent* ID54_WEIGHT = new FuzzyRuleAntecedent();
- ID54_WEIGHT->joinSingle(WEIGHT_VH);
- FuzzyRuleAntecedent* ID54_IF_BMIandCHOandWEIGHT = new FuzzyRuleAntecedent();
- ID54_IF_BMIandCHOandWEIGHT->joinWithAND(ID54_BMIandCHO, ID54_WEIGHT);
- FuzzyRuleConsequent* ID54_THEN_INSULIN = new FuzzyRuleConsequent();
- ID54_THEN_INSULIN->addOutput(insulin_E);
- FuzzyRule* fuzzyRule54 = new FuzzyRule(54, ID54_IF_BMIandCHOandWEIGHT, ID54_THEN_INSULIN);
- fuzzy->addFuzzyRule(fuzzyRule54);
- }
- void loop()
- {
- fuzzy->setInput(1, 28);
- fuzzy->setInput(2, 466);
- fuzzy->setInput(3, 72);
- fuzzy->fuzzify();
- Serial.print("BMI level = ");
- Serial.print(BMI_L->getPertinence()); Serial.print(", ");
- Serial.print(BMI_O->getPertinence()); Serial.print(", ");
- Serial.println(BMI_H->getPertinence());
- Serial.print("CHO level = ");
- Serial.print(CHO_L->getPertinence()); Serial.print(", ");
- Serial.print(CHO_O->getPertinence()); Serial.print(", ");
- Serial.println(CHO_H->getPertinence());
- Serial.print("WEIGHT level = ");
- Serial.print(WEIGHT_VL->getPertinence()); Serial.print(", ");
- Serial.print(WEIGHT_L->getPertinence()); Serial.print(", ");
- Serial.print(WEIGHT_O1->getPertinence()); Serial.print(", ");
- Serial.print(WEIGHT_O2->getPertinence()); Serial.print(", ");
- Serial.print(WEIGHT_H->getPertinence()); Serial.print(", ");
- Serial.println(WEIGHT_VH->getPertinence());
- // Serial.print("INSULIN level = ");
- // Serial.print(insulin_A->getPertinence()); Serial.print(", ");
- // Serial.print(insulin_B->getPertinence()); Serial.print(", ");
- // Serial.print(insulin_C->getPertinence()); Serial.print(", ");
- // Serial.print(insulin_D->getPertinence()); Serial.print(", ");
- // Serial.print(insulin_E->getPertinence()); Serial.print(", ");
- float output = fuzzy->defuzzify(1);
- Serial.print("Insulin dose = ");
- Serial.println(output);
- delay(100000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement