基于WEBOTS的模糊PID控制的研究

2016-09-08 09:23尹梦舒
电子设计工程 2016年13期
关键词:轮式控制算法模糊控制

尹梦舒,冯 常

(1.中科院光电技术研究所 四川 成都610209;2.中国科学院大学 北京100190)

基于WEBOTS的模糊PID控制的研究

尹梦舒1,2,冯 常1

(1.中科院光电技术研究所 四川 成都610209;2.中国科学院大学 北京100190)

在基于Webots虚拟移动机器人仿真软件提供的环境下,以Epuck轮式机器人为实验平台,设计了模糊PID控制器并提出了一种模糊PID控制算法,在Webots软件的代码区写入模糊PID控制算法来控制机器人的运动,最后将实验结果与常规PID控制进行了比较分析,得出了模糊PID具有控制更准确,鲁棒性更强,和系统更稳定的优势。

模糊PID控制器;模糊PID控制算法;Webots仿真软件;轮式机器人

PID控制器作为最早实用化的控制器已有近百年的历史,随着它的应用越来越广泛,在很多特殊条件和场合下,单使用PID控制器并不能满足所有要求,这时就需要将PID与其它不同的方式相结合起来弥补自身的不足,形成新的更完善更符合要求的控制方式[1]。

而基于模糊数学理论的模糊控制是近十几年来迅速发展起来的一项高级新型技术,有较强的容错能力和自适应控制能力,将传统PID控制器和模糊控制技术相结合起来,就形成了本文所要研究的模糊PID控制器。

1 模糊PID控制器的原理与设计

1.1模糊PID控制器的原理

模糊PID控制器分为两部分:PID控制和模糊化模块。而二者结合的方式不同,所形成的模糊PID控制也不同。本文所采用的方式是PID参数模糊自整定的方法,形成了自适应模糊PID控制器,该控制器以偏差e和偏差变化ec为输入,找出PID控制器的3个参数和偏差e及偏差变化ec之间的模糊关系,在运行过程中不断检测偏差e及偏差变化ec,利用模糊控制器对PID控制器的3个参数进行在线整定,对参数进行调节以使系统达到最佳响应性能[2]。其结构框图如图1所示。

图1 模糊PID控制结构图

1.2确定模糊PID控制器的语言变量值

将输入量的论域实行离散化,即把输入的论域进行归一化处理,转变成论域上的对应语言变量值,即模糊化。采用Mamdani提出的标准化设计,将输入量e和ec及PID控制器的3个参数的论域范围设定为[-3,3],选取常用的三角函数为隶属函数形式,输入量模糊化后的语言变量可描述为“负大、负中、负小、零、正小、正中、正大”,分别定义为{NB、NM、NS、ZO、PS、PM、PB}[3],如图2所示。

图2 偏差e的模糊化

1.3参数自整定的模糊控制规则

模糊控制器对PID 3个参数利用模糊规则进行模糊推理,通过查询模糊矩阵表来对参数进行调整。在调整3个参数的过程中分别要遵守以下3个原则[4]:

1)Kp整定原则:当偏差e正向偏大时,△Kp为正向,即要增大Kp;而当e负向增加时,系统处于超调状态,此时应该降低Kp。而当偏差e处于零的位置时,若ec为负向,则系统超调越来越大,此时应该降低Kp;若ec为正向,为了降低偏差△Kp为正向。Kp整定的模糊规则表如表1所示。

表1 Kp的模糊规则表

2)Ki整定原则:采用积分分离原则,Ki的调节和Kp相似,但为了防止积分饱和,系统出现超调,Kp增大一点时,Ki应该相应减少一点。Ki整定的模糊规则表如表2所示。

表2 Ki的模糊规则表

3)Kd整定原则:当偏差e正向偏大时,增大Kp的同时可能会引起微分溢出,因此取较大Kp时应取较小Kd。Kp整定的模糊规则表如表3所示。

表3 Kd的模糊规则表

1.4PID 3个参数的计算

模糊推理的结果不能直接得到修正后的参数值,我们还需将模糊推理的结果进行解模糊,本文采用重心法进行解模糊[5],得到控制量的精确分布,即可得到各模糊子集的隶属度,根据其各参数的模糊控制模型和模糊矩阵表,查出修正参数代入下式进行计算,最后得到最终整定后的参数值。

2 Webots仿真

2.1webots简介

webots是一款用于移动机器人建模、编程和仿真的开发环境软件。除了可以在软件中对每个机器人选择大量的虚拟传感器和驱动器,也可以在这种集成的环境或者是第三方的开发环境对机器人的控制器进行编程。机器人的行为完全可以通过现实环境中进行验证,同时控制器的代码也可以实现商业化机器人的移植。Webots目前已经在全世界1 067所大学及科研院的中使用,为全世界的使用者节省了大量的开发时间。

在Webots中可以使用6种编程语言(C,C++,Java,Python, Matlab,URBI)和200API函数对机器人进行编程,也可以使用我们20个类(C++,Java或Python)的APIs连接外部库文件(如OpenCV)。在Webots的代码编辑器中对机器人的控制代码进行编程,以达到控制机器人来执行任务的目的[6]。

2.2模糊PID算法设计思想

常规PID控制的算法差分模型如下公式:

其中kp是比例系数;ki是积分时间常数;kd是微分时间常数。

而模糊PID控制器则是通过模糊控制器找出使系统处于最佳状态的PID控制器的比例积分微分系数这3个参数值。在系统运行过程中,通过对模糊推理结果进行处理、查表和运算,完成了对PID控制器3个参数的在线自校正,最终得到合适的参数值,使系统达到最佳响应。其算法程序流程如图3所示。

图3 自适应模糊PID算法流程图

/*主函数*/

int main(int argc,char**argv)

float vetor;

float templ;

float error;

WbDeviceTag ds=wb_robot_get_device("ds");

wb_distance_sensor_enable(ds,TIME_STEP);

PID sPID;

wb_robot_init();

PIDInit();

wb_differential_wheels_set_speed(100.0,100.0);

WbDeviceTag my_sensor=wb_robot_get_device("my_sensor");

float fuzzy_Kp(float e,float ec);

float fuzzy_Ki(float e,float ec);

float fuzzy_Kd(float e,float ec);

do{

sPID.setpoint=100.0;

vetor=wb_distance_sensor_get_value(my_sensor)/ TIME_STEP;

error=sPID.setpoint-vetor;

templ=PIDcal(&sPID,error);

while(wb_robot_step(TIME_STEP)!=-1);

wb_robot_cleanup();

return 0;

3 仿真结果及分析

图4 WEBOTS软件3D窗口轮式机器人运动图

图5 WEBOTS软件3D窗口轮式机器人运动图

在WEBOTS软件的代码编辑区分别写入模糊PID控制算法和常规PID控制算法,进行编译后生成可执行文件,即可成功创建仿真环境。最后将Epuck轮式机器人导入仿真环境中,运行程序进行仿真。通过软件的3D窗口可显示轮式机器人的运动情况,如图4、图5所示。

通过观察3D窗口中轮式机器人在模糊PID和常规PID控制下的运动状态,和在控制区对机器人的控制情况比较得出,模糊PID控制更为精准,且鲁棒性更高。

最后将轮式机器人运动过程中模糊PID控制下和常规PID控制下的速度响应图进行比较,如图6和图7所示。通过两图的对比,明显可看出,在模糊PID算法控制下的速度响应图中,速度的最终趋于一个定值,系统逐渐稳定,最后达到平衡状态。而在常规PID控制下[7-8]的速度响应图中并没看出系统最后能否稳定下来,速度显然还在不断变化,因此模糊PID算法控制下的系统具有更稳定的优势。

图6 模糊PID控制下机器人速度响应图

图7 常规PID控制下机器人速度响应图

4 结束语

文中基于WEBOTS虚拟移动机器人仿真平台,进行了模糊PID控制器的设计和模糊PID算法的研究与实现。机器人大多数都比较昂贵,一个好的仿真平台可以起到检测自己算法而又不会损坏机器人的作用,因此本文选择WEBOTS这一具有和真实机器人接口,可实现控制代码对商业化机器人移植,进行真实环境下的测试的软件作为仿真平台。

通过在WEBOTS平台上的验证,发现所提出的模糊PID控制算法可行,且经实验结果对比,得出了模糊PID控制比常规PID控制具有控制更准确,鲁棒性更强,和系统更稳定的优势。

[1]陶永华,尹怡欣,葛芦生.新型PID控制及其应用[M].北京:机械工业出版社,1998.

[2]朱颖合.自适应模糊PID控制器的研究与应用[D]杭州:杭州电子科技大学,2011.

[3]席爱民.模糊控制技术[M].西安:西安电子科技大学出版社,2008:6-15,68-77.

[4]刘金琨.先进PID控制MATLAB仿真[M].3版.北京:电子工业出版社,2014:288-291.

[5]王灏,毛宗源.机器人的智能控制方法[M].北京:国防工业出版社,2002:36-40.

[6]Admin.Webots机器人仿真软件[EB/OL].[2015-7-15].http:// www.sensorobots.net/931.html

[7]周阳,周美娇,殷弋.直流电机调速系统设计及PID参数整定[J].电子科技,2016(5):153-157.

[8]李娟.一种基于前馈补偿的PID轨压控制设计方法[J].电子科技,2014(6):146-149.

【相关参考文献链接】

黄军友.基于 PID控制的 X模式四旋翼飞行器研究[J]. 2014,22(2):127-129.

杨艺,虎恩典.基于S函数的BP神经网络PID控制器及Simulink仿真[J].2014,22(4):29-31.

褚新胜,吴耀,庞科旺.智能PID控制器在仪表中的应用[J]. 2014,22(6):27-29.

张守旭,严卫生,谢兰,等.非线性PID控制技术在飞艇上的应用[J].2014,22(7):64-66.

刘婉慈,王晓明,肖雯娟.基于模糊-PID控制沥青骨料称量系统算法的仿真研究[J].2014,22(13):109-111.

张莹,肖军,李天.基于遗传优化的模糊PID控制器在水加药中的应用[J].2014,22(17):9-12.

曹诗林,王安.吹塑机壁厚控制系统的模糊PID控制器的设计[J].2014,22(21):84-87.

王志刚,虎恩典,王宁.基于PLC的双容水箱液位串级PID控制的实现[J].2014,22(22):131-133.

刘念,程磊,张东,等.基于PID控制算法的气味循迹车设计[J].2015,23(9):175-177.

王攀藻,张华.变风量中央空调智能PID控制系统设计研究

Research on fuzzy PID control algorithm based on WEBOTS

YIN Meng-shu1,2,FENG Chang1
(1.Institute of Optics and Electronics,Chinese Academy of Sciences,Chengdu 610209,China;2.University of Chinese Academy of Sciences,Beijing 100190,China)

It uses Epuck wheeled robot as the experiment platform in the environment provided by Webots virtual simulation software,designs a fuzzy PID controller and proposes a fuzzy PID control algorithm.Fuzzy PID control algorithm is written in the webots software code areas to control the robot movement and finally experimental result is compared with those of the conventional PID control,it is concluded that the fuzzy PID control is more accurate,robust,and the system is more stable in the advantages.

fuzzy PID controller;fuzzy PID control algorithm;webots simulation software;wheeled robot

TP242.6

A

1674-6236(2016)13-0041-04

2015-08-10稿件编号:201508044

尹梦舒(1991—),女,湖北武汉人,硕士研究生。研究方向:机器人控制。

猜你喜欢
轮式控制算法模糊控制
轮式装备抢救抢修车
纺织机械手专利瞄准控制算法
两轮式随动支撑装置控制系统设计
高通过性轮式无人机平台诞生记
基于ARM+FPGA的模块化同步控制算法研究
T-S模糊控制综述与展望
基于模糊控制的PLC在温度控制中的应用
基于模糊控制的恒压供水系统的研究
基于模糊控制的无人机滑跑起飞控制方法研究
基于航迹差和航向差的航迹自动控制算法