Advertisement
Guest User

Untitled

a guest
Oct 24th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. import random
  4. import skfuzzy as fuzz
  5. from skfuzzy import control as ctrl
  6.  
  7. file1 = open("s1.txt")
  8.  
  9. x=[]
  10. y=[]
  11.  
  12.  
  13. lines1 = file1.readlines()
  14.  
  15. for i in range(int(len(lines1))):
  16. line = lines1[i].split()
  17. x.append((int)(line[0])/1000000)
  18. y.append((int)(line[1])/1000000)
  19.  
  20.  
  21. xx = ctrl.Antecedent(np.arange(0, 1, 0.1), 'xx')
  22. yy = ctrl.Antecedent(np.arange(0, 1, 0.1), 'yy')
  23. klas = ctrl.Consequent(np.arange(0, 15, 1), 'klas')
  24.  
  25. # Auto-membership function population is possible with .automf(3, 5, or 7)
  26. xx['a'] = fuzz.trimf(xx.universe, [0, 0.1, 0.2])
  27. xx['b'] = fuzz.trimf(xx.universe, [0.15, 0.25, 0.35])
  28. xx['c'] = fuzz.trimf(xx.universe, [0.3, 0.4, 0.5])
  29. xx['d'] = fuzz.trimf(xx.universe, [0.45, 0.55, 0.65])
  30. xx['e'] = fuzz.trimf(xx.universe, [0.6, 0.7, 0.8])
  31. xx['f'] = fuzz.trimf(xx.universe, [0.75, 0.85, 1])
  32.  
  33. yy['A'] = fuzz.trimf(yy.universe, [0, 0.1, 0.2])
  34. yy['B'] = fuzz.trimf(yy.universe, [0.15, 0.25, 0.35])
  35. yy['C'] = fuzz.trimf(yy.universe, [0.3, 0.4, 0.5])
  36. yy['D'] = fuzz.trimf(yy.universe, [0.45, 0.55, 0.65])
  37. yy['E'] = fuzz.trimf(yy.universe, [0.6, 0.7, 0.8])
  38. yy['F'] = fuzz.trimf(yy.universe, [0.75, 0.85, 1])
  39.  
  40. # Custom membership functions can be built interactively with a familiar,
  41. # Pythonic API
  42. klas['0'] = fuzz.trimf(klas.universe, [0, 0, 0])
  43. klas['1'] = fuzz.trimf(klas.universe, [1, 1, 1])
  44. klas['2'] = fuzz.trimf(klas.universe, [2, 2, 2])
  45. klas['3'] = fuzz.trimf(klas.universe, [3, 3, 3])
  46. klas['4'] = fuzz.trimf(klas.universe, [4, 4, 4])
  47. klas['5'] = fuzz.trimf(klas.universe, [5, 5, 5])
  48. klas['6'] = fuzz.trimf(klas.universe, [6, 6, 6])
  49. klas['7'] = fuzz.trimf(klas.universe, [7, 7, 7])
  50. klas['8'] = fuzz.trimf(klas.universe, [8, 8, 8])
  51. klas['9'] = fuzz.trimf(klas.universe, [9, 9, 9])
  52. klas['10'] = fuzz.trimf(klas.universe, [10, 10, 10])
  53. klas['11'] = fuzz.trimf(klas.universe, [11, 11, 11])
  54. klas['12'] = fuzz.trimf(klas.universe, [12, 12, 12])
  55. klas['13'] = fuzz.trimf(klas.universe, [13, 13, 13])
  56. klas['14'] = fuzz.trimf(klas.universe, [14, 14, 14])
  57.  
  58.  
  59. rule1 = ctrl.Rule(xx['b'] & yy['F'], klas['0'])
  60. rule2 = ctrl.Rule(xx['c'] & yy['F'], klas['1'])
  61. rule3 = ctrl.Rule(xx['d'] & yy['F'], klas['2'])
  62. rule4 = ctrl.Rule(xx['e'] & yy['E'], klas['3'])
  63. rule5 = ctrl.Rule(xx['f'] & yy['D'], klas['4'])
  64. rule6 = ctrl.Rule(xx['d'] & yy['D'], klas['5'])
  65. rule7 = ctrl.Rule(xx['b'] & yy['D'], klas['6'])
  66. rule8 = ctrl.Rule(xx['a'] & yy['D'], klas['7'])
  67. rule9 = ctrl.Rule(xx['a'] & yy['B'], klas['8'])
  68. rule10 = ctrl.Rule(xx['c'] & yy['C'], klas['9'])
  69. rule11 = ctrl.Rule(xx['d'] & yy['C'], klas['10'])
  70. rule12 = ctrl.Rule(xx['e'] & yy['B'], klas['11'])
  71. rule13 = ctrl.Rule(xx['b'] & yy['A'], klas['12'])
  72. rule14 = ctrl.Rule(xx['c'] & yy['A'], klas['13'])
  73. rule15 = ctrl.Rule(xx['f'] & yy['A'], klas['14'])
  74.  
  75. tipping_ctrl = ctrl.ControlSystem([rule1, rule2, rule3,rule4, rule5, rule6,rule7, rule8, rule9,rule10, rule11, rule12, rule13, rule14, rule15])
  76.  
  77. tipping = ctrl.ControlSystemSimulation(tipping_ctrl)
  78.  
  79. tipping.input['xx'] = 0.0
  80. tipping.input['yy'] = 0.0
  81.  
  82. tipping.compute()
  83.  
  84. print (tipping.output['klas'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement