论文部分内容阅读
摘要:智能车以飞思卡尔公司的16位单片机MC9S12XSl28B为核心控制器,利用CMOS视频传感器采集路况信息,配合传感器、电机、舵机、电池等组成的驱动电路进行信息处理,以达到路径识别的目的,控制模型车高速稳定地在跑道上行驶。主要介绍利用MC9S12XSl28B进行直流电机转速控制,速度反馈以及用PID算法实现对即时速度的调节模块。车速主要通过PWM斩波进行电压控制,从而达到控制速度的目的。
关键词:直流电机速度控制
电压控制PWM斩波PID算法调节
中图分类号:TM3
文献标识码:A
文章编号:1007-3973(2011)010-029-02
1、引言
1.1 PID概述
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。P1D控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
1.2 PID参数作用
1.2.1比例(P)控制
比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
1.2.2积分(I)控制
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
1.2.3微分(D)控制
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(dclay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
2、直流电机特性介绍
2.1电机速度三中控制策略
在分析模糊控制和PID控制结合方式的基础上,设计一个二维模糊PID控制算法,该算法根据误差信号是否达到阈值来决定何时在模糊控制与PID控制之间切换.
.
(1)对直流电机的调速主要是依靠提高线圈的电流,也可以提高电压来提速.但很容易烧毁电动机。
(2)使用直流调速器控制调整转速。
(3)基于模糊PID的直流力矩电机转速控制。
2.2直流电机在智能车的控制思路
根据路径识别的情况,如果当前路径为直道,则需要加速;若是弯道,则需要降速,而且根据不同的弯道速度也是有所区别,这个区别体现在速度设定上。我们根据iend、舵机转角、bulb等多个变量的大小来确定速度设定的策略。实际的车速还需要闭环控制,用PID算法来实现稳定、准确、快速地跟随速度设定。下面介绍速度的控制算法。
系统利用测速模块反馈的当前速度值,和设定速度值来选择不同的P参数来进行调节,从而控制直流电机对当前路径进行快速反应,利用I的作用使得消除静差,加入D使得速度更加稳定。
本系统采用的是数字PID控制,通过每一控制周期读入脉冲数来间接测得小车当前转速vi FeedBack,将vi Feed.Back与模糊推理得到的小车期望速度vi-Ref比较,既而算得速度偏差error,再通过调用PID函数来获得速度的控制。
考虑到CMOS方案的控制周期较长,假设按2.5m/s的平均速度计算,则一个控制周期小车大概可以跑过5cm,如果按这种周期用上述PID调节速度,则会导致加速减速均过长的后果,严重的影响小车的快速性和稳定性。为了解决这个问题,可以在PID调速控制中适当加入Bang-Bang控制:根据er-ror的大小,如果正大,则正转给全额占空比;如果负大,则自由停车或给一个反转的PWM,否则就采用PID来计算所需的占空比。
3、MC9S12XSl28B实现PWM斩波控制电压
3.1脉冲宽度调制(PWM)
一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
3.2程序代码
本系统利用开发工具CodeWarrior进行编程开发,用BDM进行程序下载,利用串口传输的数据进行在线调试。这些工具的使用,使得软件的设计编程和调试工作得到了保证。
3.2.1 PD结构体typedef struct PID
/定义结构体{
INTl6S vi Re£
/速度PID,速度设定值
INTl6S vi_FeedBack;
/速度PID,速度反馈值
INTl6S vi PreError;
/速度PID,速度误差,vi_Ref
-vLFeedBack
INTl6S vi PreDerror;
//速度PID.前一次,速度误差
之差,d error-PreDerror;
INTl6S v_Kp;
//比例系数,Kp=Kp
INTl6SvKi;
//积分系数,Ki=Kp*(T/T)
INTl6S v_Kd;
//微分系数,Kd=KP*Td*T
INTl6S vl_PreU;
//PID输出值 )PID;
3.2.2 PID函数计算
Function Name:PIDCaculate
Description:
Inputs:
None
Outputs:
None
NOTES:
INTl6S PIDCaculate(PID*pp)
//PID函数
{
INTI 6S crror,d_error,dd_error;
error=pp->vi_Ref-pp->vi_FeedBack;//偏差计算(积分)
a_error=error-pp->vi_PreError;
//偏差计算(比例)
dd_error=d_error-pp->vi_PreDerror;/偏差计算(微分)
pp->vi_PreError=error;
俯储当前偏差
pp->vi_PreDerror=a_error;
if((error-W DEAD.LINE))//设置调节死区
{
else
{
pp->vl_PreU+=(pp->v_Kp*d_error+PP->v_Ki*error十pp->v_Kd*dd_erro);//PID计算式,更改系数以获得理想的输出
}
if(pp->vl_PreU>=W_MAX),//速度PID,防止调节最高溢出
{
pp->vl_PreU=VV_MAX;
)
elseif(pp->vl_PreU<=VV_MIN),//速度PID,防止调节最低溢出
{
pp->vl_PreU=VV_MIN;
}
return(pp->vl_PreU);//PID返回值(电机PWM波高电平时间),更改系数以获得理想的输出
}
4、结论
(1)P:增加P项系数可以最强车模的沿线能力,并且可以使车模的转向提前,实现切弯效果,但在大s弯中切弯不明显,过小S弯时舵角会抖,若P系数太大,也会导致大半径弧线切弯过度。
(2)D1:算法中加入D1项后,可以使车模入弯时转向提前,出弯时转向减少,对大s弯切线很有好处。降低P系数而增加D1系数可以使车模在大s弯内切线的程度增加,在大半径弧线中的切线量减少。我们曾以一个很近的前瞻量,通过调节P系数和D1系数的比例,实现了大s弯直走。
(3)D2:算法中加入D2项后,会使弯道中的舵角普遍增加,对大S弯切线有一定好处,但大半径弧线也容易切弯过度。若采用较大的D2项系数配合较小的P项系数,车模在直线时的沿线能力会下降,而弯道中的舵角会过大。
(4)通过对智能车的仿真和实践测试,整个系统的方案是完全可行的,系统的控制策略和软硬件基本合理。运用灰度阈值自适应调整,获得准确的路径图像信息。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/kxlt/kxlt201110/kxlt20111016-1-l.jpg)
如图所示,根据PID调节,进行最优化控制,进行系统模拟,可以迅速克服干扰波动,跟踪外界信号的控制,从而实现智能车的准确速度控制。在智能车的实际运行过程中,根据路径的需要,调节速度。因此本设计思路可以较好的满足一般的速度要求,跟踪性能和稳定性能得到大幅度提高。对PID参数选择方面,实现最优化配合。
参考文献:
[1]卓青,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”杯
[M].北京:北京航空航天出版社,2007:l-2.
[2]齐永利,鲁云峰,刘鸣.LM2907频率/电压转换器原理及应用
[J].国外电子元器件,2005,5.
[3]刘淑英,蔡胜乐,王文辉.电路与电子学(第二版)[M].北京:电
子工业出版社,2003.
[4]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华
大学出版社,2004.
[5]俞斯乐,侯正信,冯启明,等.电视原理(第5版)[M].北京:国防
工业出版社,2004.
[6]谭浩强.C语言程序设计(第二版)[M].北京:清华大学出版
社,2003.
[7]MOTOROLA.MC68HC912DGl28 Advance Information
[M],2000.
[8]蔡萍,赵辉.现代检测技术与系统[M].北京:高等教育出版社,
2005.
[9]张国范,顾树生,王明顺.计算机控制系统[M].北京:冶金工业
出版社,2004.
[10]刘金琨.先进PID控制MATLAB仿真[M].北京:电子工业
出版社,2004.
关键词:直流电机速度控制
电压控制PWM斩波PID算法调节
中图分类号:TM3
文献标识码:A
文章编号:1007-3973(2011)010-029-02
1、引言
1.1 PID概述
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。P1D控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
1.2 PID参数作用
1.2.1比例(P)控制
比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
1.2.2积分(I)控制
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
1.2.3微分(D)控制
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(dclay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
2、直流电机特性介绍
2.1电机速度三中控制策略
在分析模糊控制和PID控制结合方式的基础上,设计一个二维模糊PID控制算法,该算法根据误差信号是否达到阈值来决定何时在模糊控制与PID控制之间切换.
.
(1)对直流电机的调速主要是依靠提高线圈的电流,也可以提高电压来提速.但很容易烧毁电动机。
(2)使用直流调速器控制调整转速。
(3)基于模糊PID的直流力矩电机转速控制。
2.2直流电机在智能车的控制思路
根据路径识别的情况,如果当前路径为直道,则需要加速;若是弯道,则需要降速,而且根据不同的弯道速度也是有所区别,这个区别体现在速度设定上。我们根据iend、舵机转角、bulb等多个变量的大小来确定速度设定的策略。实际的车速还需要闭环控制,用PID算法来实现稳定、准确、快速地跟随速度设定。下面介绍速度的控制算法。
系统利用测速模块反馈的当前速度值,和设定速度值来选择不同的P参数来进行调节,从而控制直流电机对当前路径进行快速反应,利用I的作用使得消除静差,加入D使得速度更加稳定。
本系统采用的是数字PID控制,通过每一控制周期读入脉冲数来间接测得小车当前转速vi FeedBack,将vi Feed.Back与模糊推理得到的小车期望速度vi-Ref比较,既而算得速度偏差error,再通过调用PID函数来获得速度的控制。
考虑到CMOS方案的控制周期较长,假设按2.5m/s的平均速度计算,则一个控制周期小车大概可以跑过5cm,如果按这种周期用上述PID调节速度,则会导致加速减速均过长的后果,严重的影响小车的快速性和稳定性。为了解决这个问题,可以在PID调速控制中适当加入Bang-Bang控制:根据er-ror的大小,如果正大,则正转给全额占空比;如果负大,则自由停车或给一个反转的PWM,否则就采用PID来计算所需的占空比。
3、MC9S12XSl28B实现PWM斩波控制电压
3.1脉冲宽度调制(PWM)
一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
3.2程序代码
本系统利用开发工具CodeWarrior进行编程开发,用BDM进行程序下载,利用串口传输的数据进行在线调试。这些工具的使用,使得软件的设计编程和调试工作得到了保证。
3.2.1 PD结构体typedef struct PID
/定义结构体{
INTl6S vi Re£
/速度PID,速度设定值
INTl6S vi_FeedBack;
/速度PID,速度反馈值
INTl6S vi PreError;
/速度PID,速度误差,vi_Ref
-vLFeedBack
INTl6S vi PreDerror;
//速度PID.前一次,速度误差
之差,d error-PreDerror;
INTl6S v_Kp;
//比例系数,Kp=Kp
INTl6SvKi;
//积分系数,Ki=Kp*(T/T)
INTl6S v_Kd;
//微分系数,Kd=KP*Td*T
INTl6S vl_PreU;
//PID输出值 )PID;
3.2.2 PID函数计算
Function Name:PIDCaculate
Description:
Inputs:
None
Outputs:
None
NOTES:
INTl6S PIDCaculate(PID*pp)
//PID函数
{
INTI 6S crror,d_error,dd_error;
error=pp->vi_Ref-pp->vi_FeedBack;//偏差计算(积分)
a_error=error-pp->vi_PreError;
//偏差计算(比例)
dd_error=d_error-pp->vi_PreDerror;/偏差计算(微分)
pp->vi_PreError=error;
俯储当前偏差
pp->vi_PreDerror=a_error;
if((error
{
else
{
pp->vl_PreU+=(pp->v_Kp*d_error+PP->v_Ki*error十pp->v_Kd*dd_erro);//PID计算式,更改系数以获得理想的输出
}
if(pp->vl_PreU>=W_MAX),//速度PID,防止调节最高溢出
{
pp->vl_PreU=VV_MAX;
)
elseif(pp->vl_PreU<=VV_MIN),//速度PID,防止调节最低溢出
{
pp->vl_PreU=VV_MIN;
}
return(pp->vl_PreU);//PID返回值(电机PWM波高电平时间),更改系数以获得理想的输出
}
4、结论
(1)P:增加P项系数可以最强车模的沿线能力,并且可以使车模的转向提前,实现切弯效果,但在大s弯中切弯不明显,过小S弯时舵角会抖,若P系数太大,也会导致大半径弧线切弯过度。
(2)D1:算法中加入D1项后,可以使车模入弯时转向提前,出弯时转向减少,对大s弯切线很有好处。降低P系数而增加D1系数可以使车模在大s弯内切线的程度增加,在大半径弧线中的切线量减少。我们曾以一个很近的前瞻量,通过调节P系数和D1系数的比例,实现了大s弯直走。
(3)D2:算法中加入D2项后,会使弯道中的舵角普遍增加,对大S弯切线有一定好处,但大半径弧线也容易切弯过度。若采用较大的D2项系数配合较小的P项系数,车模在直线时的沿线能力会下降,而弯道中的舵角会过大。
(4)通过对智能车的仿真和实践测试,整个系统的方案是完全可行的,系统的控制策略和软硬件基本合理。运用灰度阈值自适应调整,获得准确的路径图像信息。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/kxlt/kxlt201110/kxlt20111016-1-l.jpg)
如图所示,根据PID调节,进行最优化控制,进行系统模拟,可以迅速克服干扰波动,跟踪外界信号的控制,从而实现智能车的准确速度控制。在智能车的实际运行过程中,根据路径的需要,调节速度。因此本设计思路可以较好的满足一般的速度要求,跟踪性能和稳定性能得到大幅度提高。对PID参数选择方面,实现最优化配合。
参考文献:
[1]卓青,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”杯
[M].北京:北京航空航天出版社,2007:l-2.
[2]齐永利,鲁云峰,刘鸣.LM2907频率/电压转换器原理及应用
[J].国外电子元器件,2005,5.
[3]刘淑英,蔡胜乐,王文辉.电路与电子学(第二版)[M].北京:电
子工业出版社,2003.
[4]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华
大学出版社,2004.
[5]俞斯乐,侯正信,冯启明,等.电视原理(第5版)[M].北京:国防
工业出版社,2004.
[6]谭浩强.C语言程序设计(第二版)[M].北京:清华大学出版
社,2003.
[7]MOTOROLA.MC68HC912DGl28 Advance Information
[M],2000.
[8]蔡萍,赵辉.现代检测技术与系统[M].北京:高等教育出版社,
2005.
[9]张国范,顾树生,王明顺.计算机控制系统[M].北京:冶金工业
出版社,2004.
[10]刘金琨.先进PID控制MATLAB仿真[M].北京:电子工业
出版社,2004.