模糊PID控制器的设计与仿真——设计步骤修改
模糊 PID 控制器的设计与仿真 设计模糊 PID 控制器时,首先要将精确量转换为模糊量,并且要把转换后的 模糊量映射到模糊控制论域当中,这个过程就是精确量模糊化的过程。模糊化的 主要功能就是将输入量精确值转换成为一个模糊变量的值, 最终形成一个模糊集 合。 本次设计系统的精确量包括以下变量:变化量e ,变化量的变化速率ec 还 有参数整定过程中的输出量ΔK P,ΔKD,ΔKI,在设计模糊PID 的过程中,需要 将这些精确量转换成为模糊论域上的模糊值。 本系统的误差与误差变化率的模糊 论域与基本论域为:E=[-6,-4,-2,0,2,4,6];Ec=[-6,-4,-2,0,2,4,6]。 模糊 PID 控制器的设计选用二维模糊控制器。以给定值的偏差 e 和偏差 变化 ec 为输入;ΔK P,ΔKD,ΔKI 为输出的自适应模糊PID 控制器,见图 1。 图 1 模糊 PID 控制器 (1)模糊变量选取 输入变量 E 和 EC 的模糊化将一定范围(基本论域)的输入变量映射到离散区 间(论域)需要先验知识来确定输入变量的范围。 就本系统而言,设置语言变量取 七个,分别为 NB,NM,NS,ZO,PS,PM,PB。 (2)语言变量及隶属函数 根据控制要求,对各个输入,输出变量作如下划定: e,ec 论域: {-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6} ΔK P,ΔKD,ΔKI 论域: {-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6} 应用模糊合成推理 PID 参数的整定算法。第k 个采样时间的整定为 K P (k) K P0 K P (k) , K I (k) K I0 K I (k) ,K D (k) K D0 K D (k). 式中K P0,KI0,KD0 为经典 PID 控制器的初始参数。 设置输入变量隶属度函数如图 2 所示,输出变量隶属度函数如图 3 所示。 图 2 输入变量隶属度函 图 3 输出变量隶属度函 (3)编辑模糊规则库 根据以上各输出参数的模糊规则表,可以归纳出 49 条控制逻辑规则,具体 的控制规则如下所示: 1. If (e is NB) and (ec is NB) then (kp is NB)(ki is PB)(kd is NS)(1) 2. If (e is NB) and (ec is NM) then (kp is NB)(ki is PB)(kd is PS)(1) 3. If (e is NB) and (ec is NS) then (kp is NM)(ki is PM)(kd is PB)(1) 4. If (e is NB) and (ec is ZO) then (kp is NM)(ki is PM)(kd is PB)(1) 5. If (e is NB) and (ec is PS) then (kp is NS)(ki is PS)(kd is PB)(1) 6. If (e is NB) and (ec is PM) then (kp is ZO)(ki is ZO)(kd is PM)(1) 7. If (e is NB) and (ec is PB) then (kp is ZO)(ki is ZO)(kd is NS)(1) 8. If (e is NM) and (ec is NB) then (kp is NB)(ki is PB)(kd is NS)(1) 9. If (e is NM) and (ec is NM) then (kp is NB)(ki is PB)(kd is PS)(1) 10. If (e is NM) and (ec is NS) then (kp is NM)(ki is PM)(kd is PB)(1) 11. If (e is NM) and (ec is ZO) then (kp is NS)(ki is PS)(kd is PM)(1) 12. If (e is NM) and (ec is PS) then (kp is NS)(ki is PS)(kd is PM)(1) 13. If (e is NM) and (ec is PM) then (kp is ZO)(ki is ZO)(kd is PS)(1) 14. If (e is NM) and (ec is PB) then (kp is PS)(ki is ZO)(kd is ZO)(1) 15. If (e is NS) and (ec is NB) then (kp is NM)(ki is PB)(kd is ZO)(1) 16. If (e is NS) and (ec is NM) then (kp is NM)(ki is PM)(kd is PS)(1) 17. If (e is NS) and (ec is NS) then (kp is NM)(ki is PS)(kd is PM)(1) 18. If (e is NS) and (ec is ZO) then (kp is NS)(ki is PS)(kd is PM)(1) 19. If (e is NS) and (ec is PS) then (kp is ZO)(ki is ZO)(kd is PS)(1) 20. If (e is NS) and (ec is PM) then (kp is PS)(ki is NS)(kd is PS)(1) 21. If (e is NS) and (ec is PB) then (kp is PS)(ki is NS)(kd is ZO)(1) 22. If (e is ZO) and (ec is NB) then (kp is NM)(ki is PM)(kd is ZO)(1) 23. If (e is ZO) and (ec is NM) then (kp is NM)(ki is PM)(kd is PS)(1) 24. If (e is ZO) and (ec is NS) then (kp is NS)(ki is PS)(kd is PS)(1) 25. If (e is ZO) and (ec is ZO) then (kp is ZO)(ki is ZO)(kd is PS)(1) 26. If (e is ZO) and (ec is PS) then (kp is PS)(ki is NS)(kd is PS)(1) 27. If (e is ZO) and (ec is PM) then (kp is PM)(ki is NM)(kd is PS)(1) 28. If (e is ZO) and (ec is PB) then (kp is PM)(ki is NM)(kd is ZO)(1) 29. If (e is PS) and (ec is NB) then (kp is NS)(ki is PM)(kd is ZO)(1) 30. If (e is PS) and (ec is NM) then