引发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 (将#修改为@)