文档库 最新最全的文档下载
当前位置:文档库 › 智能车pid控制

智能车pid控制

智能车的PID控制算法设计

曾增烽,张秀雷,杨伟文

中国矿业大学信息工程系,徐州(221008)

E-mail:gdfeng@https://www.wendangku.net/doc/765054614.html,

摘要:本文首先简要地介绍了智能车系统的基本构成,并对智能车控制系统进行建模,得出一般的控制模型。然后,引入了基本的PID控制算法并进行改进,提出了积分分离式PID 算法,给出了具体的代码实现和参数的整定方法。最后,在智能车的自动控制模型基础上,分别对智能车的舵机和电机进行PD和PID控制,给出了具体的控制框图和代码实现,实现了智能车的自动控制。

关键词:智能车;传感器;PID控制

中图分类号:TP216.2

1.引言

智能车又叫视觉引导移动机器人,也是一种典型的高新技术综合体,具有重要的军用及民用价值。智能车在野外、道路、现代物流业及柔性制造系统中都有广泛的运用,该研究已成为人工智能领域的热点[1][2]。对于智能车系统来说,其自动控制算法是整个系统的核心,它直接决定了系统的性能。目前,人们所采用的自动控制方法大致分为三种:经典控制、现代控制和智能控制。

经典控制:为人们常用的控制方法,但是这种控制方法只能解决线性定常系统的控制问题。经典控制方法是以传递函数为基础实现的。一般的工业生产过程较多属于线性定常系统,故可以用经典控制方法来控制。经典控制方法最典型的就是PID控制方法。其调节品质取决于PID控制器各个参数的整定。现代控制:可以解决时变系统的控制问题[3]。在时变系统中,输入量和输出量的关系随时间的变化而变化,故而现代控制理论在航空航天和军事上有很大的作用。现代控制方法是以状态方程为基础实现。智能控制:为自动控制发展的高级阶段,是人工智能控制论、系统论和信息论的多种学科的高度综合与集成,是一门新的交叉前沿学科。智能控制是一种无需人的干预就能够独立驱动智能机器实现其目标的智能控制。目前,智能控制技术(如神经网络技术、模糊控制技术、遗传算法优化技术、专家控制系统和基于规则的仿人智能控制技术等)已进入工程化和实用化的时代。

由于PID控制算法在所有的控制算法中计算复杂度最低,不需要进行复杂的系统建模,控制效果良好,简单实用,因此在控制领域运用得最为广泛。本文介绍了PID控制算法的基本原理,并做了一些改进,得到积分分离式PID。然后,对智能车控制系统进行建模,然后运用上述算法分别对舵机和电机进行控制,实现了智能车的自动控制。

2.系统介绍

智能车系统的总框图如图-1所示:

图-1智能车系统结构框图

硬件电路至少应包括以下四部分:

1)电源电路,为各个电路模块提供电源。

2) 单片机。

3) 传感器检测电路。

4) 舵机以及后轮电机驱动电路。对智能车上的舵机和后轮电机进行驱动,控制智能车的方向与速度。

此外,还可以包括有车速、电池电压和舵机位置检测等电路,增加智能车运行参数检测提高智能车控制性能,增加调试电路方便现场调试。

3.PID控制算法设计

3.1 常规PID控制算法原理

PID控制器本身是一种基于对“过去”、“现在”和“未来”信息进行估计的简单控制算法。

常规PID控制器系统原理框图如图-2所示:

图-2 常规PID控制器系统原理框图

系统主要由PID控制器和被控对象组成。PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制,故称为PID控制器。其控制规律如下:

式中,e(t)=r(t)—y(t);Kp为比例系数;TI为积分时间常数;TD为微分时间常数。它们

是图中所示的三种校正环节对应的控制参数。

设P=Kp,I=TI,D=TD,PID是比例、积分、微分的缩写。

比例调节(P)的作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,会使系统的稳定性下降,甚至造成系统的不稳定。

积分调节(I)的作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,一旦停止,积分调节输出一常值。积分作用的强弱取决于积分时间常数TI,TI越小,积分作用越强。反之TI大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应慢。积分作用常与另两种调节规律组合,组成PI调节器或PID调节器。

微分调节(D)的作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态特性。在微分时间选择合适的情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器[4]。

3.2积分分离式PID算法

PID控制规律中,引入积分的目的是为了消除静差,提高控制精度,但积分作用强了,又会产生过大的超调,引起系统振荡,这是某些控制过程绝不允许的。改进后算法的基本思想是:当被控量与设定值偏差大时,取消积分控制,以避免超调量过大;当被控量接近给定值时,才将积分作用投入,以消除静差,提高控制精度。

具体做法是:针对被控对象的参量,设定一个偏差的门限e0,当过程控制中偏差e(n)的绝对值大于e0时,系统不投入积分控制,只用PD控制;当过程控制中偏差e(n)的绝对值小于e0时,系统投入积分控制,即采用PID控制。

3.3 PID算法在单片机中的实现

设目标速度为Pv;实际速度为Sv。Ki=T/Ti;Kd=Td/T;(T为采样速度中断时间,主要是确定Kp,Ti,Td)

则:error=Pv-Sv

先设:error(k-1)=0;error(k-2)=0;P(k-1)=0.

Kp=Kp;KI=Kp*Ki;KD=Kp*Kd;

然后:

If (abs(error)>E0)

{

P(k)=Kp*(error-error(k-1))+KD*(error-2*error(k-1)+error(k-2))+

P(k-1);

else

P(k)=Kp*(error-error(k-1))+KI*error+KD*(error-2*error(k-1)+

error(k-2))+P(k-1);}

error (k-2)=error(k-1);

error (k-1)=error;

P(k-1)=P(k);

return P(k);

通过P(k)来调节PWM高电平的宽度。P(k-1)一开始不设成0,应根据期望速度和测量速度相等算出高电平宽度(即为p(k-1)或者可以小一点)。

3.4 Kp,Ti,Td参数的整定方法

参数的整定方法很多,概括起来可以分为两大类[5]:

1)理论计算整定法。它主要是依据系统的数学模型,采用控制理论中的根轨迹法,频率特性法等,经过理论计算确定调节器参数的数值。这种方法不仅计算频繁,而且过分依赖数学模型,所得的计算数据未必可直接用,还必须通过工程实际进行调整和修改。因此,理论计算整定法除了有理论指导意义外,工程实际中较少使用。

2)工程整定法。它主要依靠工程经验,直接在控制系统中进行实验,且方法简单、易于掌握,相当实用,从而在工程实际中被广泛采用。

控制器参数的工程整定方法,主要有临界比例度法、反应曲线法和衰减曲线法。

下面介绍临界比例度法:

这是一种闭环整定方法。由于该方法直接在闭环系统中运行,不需要测试过程的动态特性,因而方法简单,使用方便,获得广泛的应用。具体步骤如下:

1)先将控制器的积分时间Ti置于最大(对于本系统设计,即不加积分环节),微分时间Td置零(即不加微分环节),比例带Kp置为较大的数值,使系统投入闭环运行。

2)待系统运行稳定后,对设定值市价一个阶跃扰动,并减小Kp,直到系统出现如图所示的等幅振荡,即临界振荡过程。记下此时的Kp(临界比例带,记为Kp1)和等幅振荡周期Tk。

图-3系统的临界振荡

3)根据所记录的Kp1和Tk,按下表给出的经验公式计算出调节器的Kp、Ti及Td 参数。

表-1 Kp、Ti及Td参数

采用临界比例度法的整定参数

单片机PID 控制一个最大的难点就是Kp 、Ti 及Td 参数的计算。用理论计算Kp 、Ti 、Td 的值,需要被控对象的数学模型,而智能车的数学模型是很难建立出来的,用工程整定法获得参数的值也得需要一定的技术和时间。

智能控制的一个重要分支—模糊控制算法,现在越来越受到重视,它不需要被控对象具体的数学模型,只依靠专家经验就能对被控对象进行很好的控制。

而一些单片机上也有模糊指令,本身就可以处理一些模糊信息(得益于单片机技术和模糊技术的发展),现在单片机的模糊控制也越来越普遍,所以本智能车的控制也可以通过选取有模糊指令的单片机进行模糊控制。

4. 智能车控制系统的具体实现

4.1 智能车系统控制模型

为了便于设计控制算法,可以将智能车与控制电路看作一个控制系统,道路为外部给定控制量,控制电路通过控制智能车的转向和速度,使其能够跟随道路变化来运行。

智能车控制系统一方面可以看作一个随动系统,使得智能车跟随道路变化而运行,另一方面,智能车在直线或者S 形线时,也可看作一个恒值调节系统,能够避免道路曲变而更加平稳快速地运行。控制算法设计中,需要既能够满足跟随系统的动态特性,同时又能够满足恒值调节的稳定性。

控制智能车运行的参数主要包括前轮方向转角与后轮电机速度。

1)驱动前轮转向的舵机转角是通过周期方波的高电平的时间参数控制的,该角度通过机械杠杆传动改变智能车前轮转向。定义舵机转向传动比为C ,则C 的计算公式为:

2)后轮驱动电机的电压,该电压近似正比于智能车运行速度。

4.2 舵机PD 控制

在智能车高速运行的时候,舵机的延迟环节可以等效成一个积分环节。该环节可以对道路中的S 形线以及路径检测中的干扰及量化噪声进行平均,保证了智能车运行的稳定性。因此基于位置偏差反馈控制一般采用PD 控制策略,而将误差积分环节去掉了。如图-4所示:

图-4舵机位置控制模块

在智能车建模中,智能车的水平偏移量范围为[-14 14],

所以在位置控制模块中,红外传感器检测出来的量在单片机中的表示是[-14 14]之间的整数(也是水平偏移量),目标位置就是0

,但它们不是角度,也不可以直接用于舵机脉宽

的控制。

假设车轮所转的最大角度为40°,则舵机输出的最大角度为40/C°。那么当红外传感器检测回来的值为14时,则舵机输出的转角应为40/C°,由舵机的设计知,设置级联PWM 周期常数为60000,对应PWM周期为20ms,PWM占空比为4500对应输出为1.5ms。0°对应脉宽为1.5ms,45°对应脉宽为1.9ms,PWM占空比为5700。则40/C°对应的PWM 占空比为(16/45*C +1.5)*3000

因为传感器间隔距离相等,所以度数平均分配。假设传回来的位置为X,则X对应的PWM占空比为16*3000*X/(45*C*14) +4500(无论X是正或负,公式都适合)。

所以,位置控制模块中的PD控制器的输出值要乘以一个系数K(K=16*3000/(45*C*14) +4500),然后才能直接控制舵机。

舵机控制程序如下:

Unsigned Int S; F;//存放传感器的值,从左到右;F为过滤层。

void Servo_motor(unsigned int S)

{unsigned char X;

S=S&F;

Switch(S){

C ase 1: X=14; break;

Case 3: X=13; break;

Case 2: X=12; break;

Case 6: X=11; break;

Case 4: X=10; break;

Case 12: X=9; break;

Case 8: X=8 ; break;

Case 24: X=7 ;break;

Case 16: X=6 ;break;

Case 48: X=5; break;

Case 32: X=4; break;

Case 96: X=3; break;

Case 64: X=2; break;

Case 192: X=1; break;

Case 128: X=0; break;

Case 24576: X=-13; break;

Case 8192: X=-12; break;

Case 12288: X=-11; break;

Case 4096: X=-10; break;

Case 6144: X=-9; break;

Case 2048: X=-8 ; break;

Case 3072: X=-7 ;break;

Case 1024: X=-6 ;break;

Case 1536: X=-5; break;

Case 512: X=-4; break;

Case 768: X=-3; break;

C ase 256: X=-2; break;

Case 384: X=-1; break;

Case 384: X=-1; break;

d efault: X=X; break;}

{F=S*4+S*2+S+S/2+S/4;}//建立过滤层

if(X%2==0)

{F=4*S/3 +S+ S/6 ;}

PD控制算法;

}

4.2 电机PID控制

电机PID控制流程图如图-5所示:

图-5 速度控制模块

由于检测的前瞻性,智能车在进入弯道之前就开始往内测偏转,内测偏移量与速度成反比。则智能车进入弯道前速度越高,由于前瞻性引起的内测偏移量越小。进入弯道后,智能车速度越小,由于舵机延时引起的过冲量越小,所以如果智能车能够在过弯道的时候,实现进弯道减速、出弯道加速控制规律,就可以在保证弯道平稳前提下,提高智能车在直线和出弯时的速度,从而提高整体的平均速度。

目标速度的确定:由上面路径检测的程序,可以知道路径是直道、弯道还是S道,从而给出一个目标速度,假设目标速度为MV:

直道时,MV恒定,则智能车恒速前进。

弯道时,MV降低,可以实现进弯道自然减速。如果直道时目标速度设置的过高,进入弯道时,为了防止过冲,可以采取刹车措施:

if(abs(X)< m ) //m应该由实验确定,取[0 14]之间的整数,假设m=6。

速度采取积分分离式PID控制;

If(abs(X)>=6 ) //判断是否进入弯道;

{ Switch(X){ //速度采取刹车控制,多点递减刹车;

Case 6:

For(i=0;i<10;i++)

{ 电机反转;}break;

Case 7:

For(i=0;i<8;i++)

{ 电机反转;}break;

Case 8:

For(i=0;i<6;i++)

{ 电机反转;}break;

Case 9:

For(i=0;i<4;i++)

{ 电机反转;}break;

Default:break;}

}

出弯时,由于检测到是直道,则出弯时速度自然就提升了。S弯时,也可以实现顺利过弯。通过递减刹车,可以实现直道速度更高,弯道顺利过弯。通过检测路径,改变目标设定值的目的是为了防止在弯道时速度设定值过大,则智能车左右来回摆的剧烈(过冲),反倒更会使车速慢下来(因为要经常刹车)。

5.结论

本文主要介绍了PID算法的基本原理、积分分离式PID算法及其在单片机实现中的伪代码,后对Kp,Ti,Td参数的整定方法进行了介绍。然后对智能车系统进行建模得出其控制模型,在此基础上分别对智能车的舵机和电机进行PD和PID控制。在智能车的实际工作过程中,改进的PID算法能够有效地避免超调,防止了控制系统的震荡,控制效果良好。

参考文献

[1] 李育文李芳机器人发展概况及展望[J].河南科技—2002年01A期

[2] 徐友春李克强连小珉智能车辆机器视觉发展近况[M],清华大学,汽车安全与节能国家重点实验室

[3] 卓晴智能汽车自动控制器的方案设计[M],清华大学,2006

[4] 高金源计算机控制系统—理论、设计与实现[M],北京航空航天大学出版社,2000

[5] 侯志林过程控制与自动化仪表[M],机械工业出版社,1998

PID control algorithm for the Intelligent vehicle

Zeng zeng feng , zhangxiulei , yangweiwen

Information and Electrical Engineering College of CUMT

Abstract

This article begins with a brief introduction to the basic consists of intelligent vehicle, and model the Intelligent vehicle control systems, come to the general control model. Then, the introduce the basic PID control algorithms and proposed the discrete PID integral algorithm, given a specific code and the way to adjust parameters. Finally, based on the model of intelligent vehicles control system, respectively, control the steering gear in PD and control the electrical motor in PID, given a specific realization of the control block diagram and the code to achieve automatic control of intelligent vehicles.

Keywords: Intelligent vehicle ; sensor ; PID control.

相关文档
相关文档 最新文档