.
模糊PID控制器的设计与仿真
设计模糊PID控制器时,首先要将精确量转换为模糊量,并且要把转换后的模糊量映射到模糊控制论域当中,这个过程就是精确量模糊化的过程。模糊化的主要功能就是将输入量精确值转换成为一个模糊变量的值,最终形成一个模糊集合。
本次设计系统的精确量包括以下变量:变化量e ,变化量的变化速率ec 还有参数整定过程中的输出量ΔKP,ΔKD,ΔKI,在设计模糊PID 的过程中,需要将这些精确量转换成为模糊论域上的模糊值。本系统的误差与误差变化率的模糊论域与基本论域为:E=[-6,-4,-2,0,2,4,6];Ec=[-6,-4,-2,0,2,4,6]。
模糊PID控制器的设计选用二维模糊控制器。以给定值的偏差e和偏差变化ec为输入;ΔKP,Δ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} ΔKP,ΔKD,ΔKI论域:{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
应用模糊合成推理PID参数的整定算法。第k个采样时间的整定为
KP(k)?KP0??KP(k),KI(k)?KI0??KI(k),KD(k)?KD0??KD(k).
式中KP0,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 (kp is NS)(ki is PS)(kd is ZO)(1) 31. If (e is PS) and (ec is NS) then (kp is ZO)(ki is ZO)(kd is ZO)(1) 32. If (e is PS) and (ec is ZO) then (kp is PS)(ki is NS)(kd is ZO)(1) 33. If (e is PS) and (ec is PS) then (kp is PS)(ki is NS)(kd is ZO)(1) 34. If (e is PS) and (ec is PM) then (kp is PM)(ki is NM)(kd is ZO)(1) 35. If (e is PS) and (ec is PB) then (kp is PM)(ki is NB)(kd is ZO)(1)
;.
.
36. If (e is PM) and (ec is NB) then (kp is NS)(ki is ZO)(kd is NB)(1) 37. If (e is PM) and (ec is NM) then (kp is ZO)(ki is ZO)(kd is PS)(1) 38. If (e is PM) and (ec is NS) then (kp is PS)(ki is NS)(kd is NS)(1) 39. If (e is PM) and (ec is ZO) then (kp is PM)(ki is NS)(kd is NS)(1) 40. If (e is PM) and (ec is PS) then (kp is PM)(ki is NM)(kd is NS)(1) 41. If (e is PM) and (ec is PM) then (kp is PM)(ki is NB)(kd is NS)(1) 42. If (e is PM) and (ec is PB) then (kp is PB)(ki is NB)(kd is NB)(1) 43. If (e is PB) and (ec is NB) then (kp is ZO)(ki is ZO)(kd is NB)(1) 44. If (e is PB) and (ec is NM) then (kp is ZO)(ki is ZO)(kd is NM)(1) 45. If (e is PB) and (ec is NS) then (kp is PM)(ki is NS)(kd is NM)(1) 46. If (e is PB) and (ec is ZO) then (kp is PM)(ki is NM)(kd is NM)(1) 47. If (e is PB) and (ec is PS) then (kp is PM)(ki is NM)(kd is NS)(1) 48. If (e is PB) and (ec is PM) then (kp is PB)(ki is NB)(kd is NS)(1) 49. If (e is PB) and (ec is PB) then (kp is PB)(ki is NB)(kd is NB)(1) 把这49条控制逻辑规则,键入到模糊规则库中,如图4。
图4 模糊规则库
;.
.
(5)模糊PID控制器仿真
利用MATLAB软件中的Simulink仿真环境,可以对模糊PID控制器系统进行模拟仿真实验,来检验设计是否达到要求。针对本次控制器设计,我们设置被控
10对象为,根据被控对象,设置相应的PID参数
(s?1)(s?2)(s?3)(s?4)为:KP=6;KI=3;KD=2。图5为控制器系统在Simulink中的仿真模型。
为了方便与传统PID控制器进行比较,在Simulink仿真环境中作出传统PID控制以便于对模糊PID进行比较。在传统PID控制器中设置相应的PID参数为:
KP=6;KI=3;KD=2。图6是传统PID与模糊PID控制器在Simulink中的阶跃仿
真波形比较。
图5传统PID与模糊PID控制器在Simulink中的仿真模型
;.