基于模糊自适应PID的智能车设计与实现
2014-03-14刘游龙林建伟
丁 芳,王 蕊,刘游龙,林建伟
(中国民航大学a.航空自动化学院;b.计算机科学与技术学院,天津 300300)
基于模糊自适应PID的智能车设计与实现
丁 芳a,王 蕊a,刘游龙a,林建伟b
(中国民航大学a.航空自动化学院;b.计算机科学与技术学院,天津 300300)
在智能车控制过程中,由于方向控制与速度控制都是非线性的、时变的,采用传统的PID算法进行控制效果不理想。模糊自适应PID算法能够在线修改参数,从而使智能车能够根据路况的变化做出适当的控制决策。该模糊自适应PID算法,通过Simulink在Freescale单片机MK60DN512ZVLQ10环境中编程实现,并与传统的PID算法的控制结果相比较。仿真和实验结果表明模糊自适应PID控制器具有超调量小,响应快,适应能力强的优点。
模糊控制;PID控制;智能车;Simulink
智能车沿白色底板两边的黑线行驶,其行驶轨道如图1所示,总长度约为36.5 m,最小曲率半径为0.5 m,赛道设有虚线,间隔0.1 m,虚线长度为2 m。使用的传感器为OV7620 CMOS摄像头。由于智能车控制系统具有高度非线性和时变不确定性等特点,在噪声、负载扰动等因素影响下,其过程参数甚至模型结构均会发生变化。这就要求在PID控制中不仅PID参数的整定不依赖于数学模型,并且PID参数能在线调整,以满足实时控制的要求[1]。将传统的PID控制器和模糊控制器结合,实现了对智能车的快速稳定控制。
1 智能车控制部分硬件结构
图1 智能车跑道图Fig.1 Smart car track
智能车控制部分的电路大体由3部分组成,包括传感器电路、电机、舵机驱动电路和主控电路。速度传感器模块是通过和后轮同轴的E6A2-CW3C欧姆龙编码器双相测速产生脉冲,由单片机LPTMR脉冲累加器捕捉10 ms时间内的脉冲数来计算出赛车当前行驶速度的大小。采集到脉冲数和速度大致呈线性关系。道路信息采集模块使用OV7620,分辨率可达640× 480,其结构如图2所示。
图2 智能车控制部分硬件结构Fig.2 Hardware structure of smart vehicle control part
2 模糊自适应PID控制器设计
常规的PID控制只要得到被控对象精确的数学模型,然后设置正确的KP、KI、KD参数就能工作。但在小车的实际控制过程中,在直道应设置较小的KP,以保证较小的抖动,而在弯道上则需要较大的KP,使舵机能快速达到过弯所需角度,并且在曲率不同的弯道,应设置不同的KP值。因此就需要PID控制器的参数具有自适应功能。
2.1 确定模糊控制器结构
模糊自适应PID控制器以误差e和误差的变化率ec作为输入,利用模糊推理机对PID控制器的3个参数进行在线修改,输出变量为ΔKP、ΔKI、ΔKD,自动校正初始KP、KI、KD,控制系统结构如图3所示。
图3 模糊自适应PID控制系统结构Fig.3 Fuzzy adaptive PID control system structure
2.2 确定语言变量并确定语言值的隶属度函数
当摄像头采集完一场图像后,关闭所有中断,软件提取出黑色的边沿线,并进行修正,计算出中心引导线,对有效行的中心点值累加再取平均值,将这个量与摄像头视野的中心值求差,得到误差e,误差变化率ec=ei-ei-1。设误差e的语言变量为E,误差变化率ec为EC。E的论域为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},EC的论域为{-3,-2,-1,0,1,2,3},输出变量ΔKP的论域与E的论域相同,ΔKP、ΔKI的论域与EC相同,其中模糊子集为E,EC={NB,NM,NS,ZO,PS,PM,PB},分别表示负大、负中、负小、零、正小、正中、正大[2]。输入变量E,EC的模糊子集的隶属度函数采用高斯曲线隶属度,输出变量ΔKP、ΔKI、ΔKD的隶属度函数均采用三角形函数,如图5所示。
图4 输入变量E的隶属度函数Fig.4 Membership function of input variable E
图5 输出变量ΔKP、ΔKI、ΔKD的隶属度函数Fig.5 Membership function of output variable ΔKP、ΔKI、ΔKD
2.3 编码
实际测量中,误差e的基本论域为[-70,70],误差变化率ec的基本论域为[-10,10],而e、ec均为精确输入量,通过量化使其成为离散量。误差量化因子Ke= 6/70,误差变化率量化因子Kc=3/10。
2.4 建立模糊控制规则
PID控制算法存在3种控制作用,其特点如下:①比例系数KP的作用是加快系统的响应,提高系统的调节精度。但若该参数调得过大就会形成过快响应,容易产生超调,甚至会导致原系统不稳定;若该参数调得过小,就会使响应速度缓慢,从而延长调节时间,破坏系统的动态和静态特性。②积分系数KI的作用是消除系统的稳态误差。如果该参数调得过大,在响应初期就会产生积分饱和,引起较大的超调,如果该参数调得过小,则难以消除静差,影响系统精度。③微分作用系数KD的作用是改善系统的动态特性,在响应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预报。但若该参数调得过大,则会影响系统的动态性能,系统会对误差非常敏感,降低系统的抗干扰能力[3]。根据以上规则和实际经验建立模糊控制规则表,如表1所示。
2.5 去模糊化
采用Mamdani模糊推理类型,即模糊蕴含关系为[4]
表1 模糊控制规则表Tab.1 Fuzzy control rule
以Kp为例,假设输出量为u,第1条语句所确定的模糊关系为
令此时刻计算出的误差为e且误差变化率为ec,可得
共7×7=49条模糊规则,可分别计算得到u1,u2,…,u49,采用重心法将这些控制量由模糊量变为精确量,其计算公式为
3 Simulink仿真与实验
在Matlab中建立FIS文件,设置输入变量e和 ec、输出变量ΔKP、ΔKI、ΔKD的隶属度函数并添加模糊规则;然后进行仿真,并和传统的PID响应曲线作比较,如图6~图8所示。
图6 FIS编辑器设置输入输出变量Fig.6 Input and output variables of FIS editor
图7 添加模糊控制规则Fig.7 Adding fuzzy control rules
图8 模糊自适应PID控制器和传统PID控制器仿真框图Fig.8 Simulation block diagram of fuzzy adaptive PID controller and conventional PID controller
由图9中的仿真结果可知:在传统PID控制下,当外界参数发生改变时,系统超调量大,调节时间较长。而采用模糊自适应PID控制方法的超调量小,调节时间也较短。主要因为模糊自适应PID能够自动调节PID参数的值,使系统响应具有较好的动态特性和稳定性。
图9 Simulink仿真结果Fig.9 Simulink simulation results
将模糊自适应PID算法和传统PID算法程序下载到同一个MCU上,进行实验。实验室跑道总长为36.5 m,跑完1圈所花的时间如表2所示。
表2 不同算法跑完1圈所花的时间Tab.2 Lap time spent of different algorithms
4 结语
智能车在行驶过程中,路径信息不断发生改变,具有时变非线性特点。模糊自适应PID算法能根据系统偏差和偏差变化率自动调节相关参数,有效提高了系统的控制性能,增强了系统对外界干扰和参数变化的适应性,保证了系统的稳定性和准确性,减小了系统的调节时间。该算法与传统PID控制算法相比,取得了较好的控制效果。
[1]陶永华,尹怡欣,葛芦生.新型PID控制及其应用[M].北京:机械工业出版社,1998.
[2]李士勇.模糊控制、神经控制和智能控制论[M].哈尔滨:哈尔滨工业大学出版社,1998.
[3]丛自龙,袁朝辉,杨 芳.基于模糊自适应PID控制的定位系统设计[J].机床与液压,2013,41(7):138-142.
[4]曹 菁.电动舵机模糊自适应PID控制方法[J].微电机,2007,40(10):89-92.
(责任编辑:党亚茹)
Fuzzy adaptive PID design and implementation of intelligent car
DING Fanga,WANG Ruia,LIU You-longa,LIN Jian-weib
(a.College of Aeronautical Automation,b.College of Computer Science&Technology,CAUC,Tianjin 300300,China)
As directional control and speed control are nonlinear and time-varying during intelligent car controlling process,it's not ideal to use traditional PID algorithm.With online parameter modifying ability,fuzzy adaptive PID algorithm helps smart cars make appropriate controlling decisions according to road conditions.Fuzzy adaptive PID algorithm is achieved by Simulink in Freescale microcontroller(MK60DN512ZVLQ10)programming environment,and is compared with traditional PID control algorithm.Simulation and experimental results show that fuzzy adaptive PID controller has smaller overshoot,faster response and stronger adaptability.
fuzzy control;PID control;intelligent car;simulink
TP29;TP242.6
:A
:1674-5590(2014)06-0038-04
2013-10-18;
:2013-11-22
天津市自然基金项目(13JCYBJC39000);国家级大学生创新创业训练计划项目(201210059038)
丁芳(1960—),女,山西太原人,副教授,硕士,研究方向为检测技术和智能控制.