如何解决引发ValueError“意外输入:” +键ValueError:意外输入:_def_vel
类别停权: def init (自己): #输入变量 self._def_vel = ctrl.Antecedent(np.arange(-1,1.25,0.25),'_def_vel')
self._body_vel = ctrl.Antecedent(np.arange(-1,1.25,0.25),"_body_vel")
self._body_acc = ctrl.Antecedent([-2,-1.5,1.5,2],"_body_acc")
#ouput variable
self._actuator_force = ctrl.Consequent(np.arange(-4000,4250,250),"_actuator_force")
#fuzzification
self._def_vel.automf(5)
self._body_vel.automf(5)
self._body_acc.automf(7)
self._actuator_force.automf(5)
self._def_vel["NM"] = fuzzy.zmf(self._def_vel.universe,-0.50,-0.25)
self._def_vel["NS"] = fuzzy.trimf(self._def_vel.universe,[-0.50,-0.25,0])
self._def_vel["ZE"] = fuzzy.trimf(self._def_vel.universe,[-0.25,0.25])
self._def_vel["PS"] = fuzzy.trimf(self._def_vel.universe,[0,0.25,0.50])
self._def_vel["PM"] = fuzzy.smf(self._def_vel.universe,0.50)
self._def_vel.view()
self._body_vel["NM"] = fuzzy.zmf(self._body_vel.universe,-0.25)
self._body_vel["NS"] = fuzzy.trimf(self._body_vel.universe,0])
self._body_vel["ZE"] = fuzzy.trimf(self._body_vel.universe,0.25])
self._body_vel["PS"] = fuzzy.trimf(self._body_vel.universe,0.50])
self._body_vel["PM"] = fuzzy.smf(self._body_vel.universe,0.50)
self._body_vel.view()
self._body_acc["N"] = fuzzy.zmf(self._body_acc.universe,0)
self._body_acc["ZE"] = fuzzy.trimf(self._body_acc.universe,[-1.5,1.5])
self._body_acc["P"] = fuzzy.smf(self._body_acc.universe,1.5)
self._body_acc.view()
self._actuator_force["ZE"] = fuzzy.trimf(self._actuator_force.universe,[-500,500])
self._actuator_force["NS"] = fuzzy.trimf(self._actuator_force.universe,[-1000,-500,0])
self._actuator_force["PS"] = fuzzy.trimf(self._actuator_force.universe,500,1000])
self._actuator_force["PM"] = fuzzy.trimf(self._actuator_force.universe,[500,1250,1750])
self._actuator_force["NM"] = fuzzy.trimf(self._actuator_force.universe,[-2250,-1250,-500])
self._actuator_force["PB"] = fuzzy.trimf(self._actuator_force.universe,[1000,2000,3500])
self._actuator_force["NB"] = fuzzy.trimf(self._actuator_force.universe,[-3500,-2000,-1000])
self._actuator_force["PV"] = fuzzy.smf(self._actuator_force.universe,2250,3750)
self._actuator_force["NV"] = fuzzy.zmf(self._actuator_force.universe,-3250,-1750)
self._actuator_force.view()
#Rules
self.rule1 = ctrl.Rule(self._def_vel["PM"] and self._body_vel["PM"] and self._body_acc["ZE"],self._actuator_force["ZE"])
self.rule2 = ctrl.Rule(self._def_vel["PS"] and self._body_vel["PM"] and self._body_acc["ZE"],self._actuator_force["NS"])
self.rule3 = ctrl.Rule(self._def_vel["ZE"] and self._body_vel["PM"] and self._body_acc["ZE"],self._actuator_force["NM"])
self.rule48 = ctrl.Rule(self._def_vel [“ NS”]和self._body_vel [“ NM”]和(self._body_acc [“ P”]或self._body_acc [“ N”]),self ._actuator_force [“ PM”]) self.rule49 = ctrl.Rule(self._def_vel [“ NM”]和self._body_vel [“ NM”]和(self._body_acc [“ P”]或self._body_acc [“ N”]),self._actuator_force [ “ PS”])
#Fuzzy Interference
self._res = ctrl.ControlSystem([self.rule1,self.rule2,self.rule3,self.rule4,self.rule5,self.rule6,self.rule7,self.rule8,self.rule9,self.rule10,self.rule11,self.rule12,self.rule13,self.rule14,self.rule15,self.rule16,self.rule17,self.rule18,self.rule19,self.rule20,self.rule21,self.rule22,self.rule23,self.rule24,self.rule25,self.rule26,self.rule27,self.rule28,self.rule29,self.rule30,self.rule31,self.rule32,self.rule33,self.rule34,self.rule35,self.rule36,self.rule37,self.rule38,self.rule39,self.rule40,self.rule41,self.rule42,self.rule43,self.rule44,self.rule45,self.rule46,self.rule47,self.rule48,self.rule49,self.rule50])
self._res.view()
result = ctrl.ControlSystemSimulation(self._res)
result.input["_def_vel"] = 0
result.input["_body_vel"] = 0
result.input["_body_acc"] = 1
print(result.output["_actuator_force"])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。