基于MC9S12XS128智能车电机和舵机设计与实现
2015-02-05广东海洋大学邓志明陈春雷李永强
广东海洋大学 王 慧 邓志明 陈春雷 李永强
基于MC9S12XS128智能车电机和舵机设计与实现
广东海洋大学 王 慧 邓志明 陈春雷 李永强
以通有20KHz,100mA电流的导线所产生的磁场为检测环境,重点介绍智能车电机与舵机的设计方法与实现。电机设计侧重电机驱动方案的选择和驱动电路、闭环调速系统设计;舵机设计主要包括信号感应、传感器电路设计和信号处理程序编写。实测结果表明,电机采用PID控制算法,舵机采用查表算法时,智能车行驶快速稳定,具有良好的寻线跟踪能力。
智能车;电磁导航
前言
智能车技术是涵盖自动控制、传感器技术、电子技术等学科的热点研究领域。在安全方面,可以通过传感器准确感知周围环境,及时反应给驾驶员,从而降低事故发生率,未来智能汽车将具有自动识别行驶道路、自动驾驶、自动调速等功能。智能汽车研究与开发主要包括信息技术、微电子技术、计算机技术、智能自动化技术、人工智能技术、网络技术、通信技术等方面[1]。
智能车竞赛是以智能汽车为载体的创意性科技竞赛,是一种具有探索性的工程实践活动。鉴于磁导航在智能交通领域中的实用价值和前景,要求是智能车通过感应磁场变化实现小车快速稳定寻迹。下面通过对电磁场感应的差分信号分析,给出一种查表检测方案,从而实现小车对运行方向的准确检测。
1 电机系统设计
智能车的驱动一般由控制器、电机驱动以及电机三个主要部分组成。驱动电路的性能是影响电机能否快速而稳定行驶的关键因素,电机驱动也是智能车的重要模块。
1.1 驱动电路方案选择
方案一:采用2~4片MC33886驱动
MC33886为H桥式电源开关IC, 该IC结合内部控制的逻辑、电荷泵、栅极驱动器以及导通电阻120mΩMOSFET输出电路,可工作在5V~40V电压范围内,能够控制连续感性直流负载电流高达5.0A,可以接受高达10kHz的2路PWM信号控制电机的转向和速度。为了增强其驱动能力可利用多块33886并联使用,起到增强驱动能力、减小芯片发热的作用,但实际测试发现发热仍然比较严重。
方案二:采用2片BTS7960并联
BTS7960B是应用于电机驱动的大电流半桥集成芯片,它带有一个P沟道的高边MOSFET、一个N沟道的低边MOSFET和一个驱动IC。BTS7960B的通态电阻典型值为16mΩ,驱动电流可达43A,调节SR引脚外接电阻的大小可以调节MOS管导通和关断时间,具有防电磁干扰功能。该芯片频率可以达到25kHz,可以较好的解决方案一提到的MC33886使电机噪声大和发热的问题,同时驱动能力有了明显提高,响应速度快。但是,电机变速时会使电源电压下降10%左右,控制器等其他电路有掉电危险。
方案三:采用MC33886+场效应管组成H桥
场效应管搭建H桥驱动电机。场效应管具有内阻小、开关速度快、最大电流可自行设计等优点。场效应管P管用IRF4905,N管用IRF3205,受到P管电流限制,最大电流为74A。IRF3205的导通内阻仅为8mΩ。因为单片机输出的PWM电压不够,所以需要增加删极驱动电路,可采用MC33886。
综合以上三种驱动方案,采用了MC33886+场效应管组成H桥。
1.2 驱动电路设计
采用H桥电路控制电机,控制原理如图1所示。
图1 H桥电路图
它由2个P型场效应管Q1、Q2与2个N型场效应管Q3、Q4组成,故称 P-NMOS管H桥。桥臂上的4个场效应管相当于四个开关,P型管在栅极为低电平时导通,高电平时关闭;N型管在栅极为高电平时导通,低电平时关闭。场效应管是电压控制型元件,栅极通过的电流几乎为“零”。
当控制臂1置高电平(U=VCC)、控制臂2置低电平(U=0)时,Q1、Q4关闭,Q2、Q3导通,电机左端低电平,右端高电平,所以电流沿控制臂2向控制臂1流动。设为电机正转。
当控制臂1置低电平、控制臂2置高电平时,Q2、Q3关闭,Q1、Q4导通,电机左端高电平,右端低电平,所以电流沿控制臂1向控制臂2流动。设为电机反转。
当控制臂1、2均为低电平时,Q1、Q2导通,Q3、Q4关闭,电机两端均为高电平,电机不转。
当控制臂1、2均为高电平时,Q1、Q2关闭,Q3、Q4导通,电机两端均为低电平,电机也不转。
因为单片机输出电压为0~5V,而小车使用的H桥的控制臂需要0V或7.2V电压才能使场效应管完全导通,PWM输入0V或5V时,栅极驱动电路输出电压为0V或7.2V。
实际电路采用MC3886做电压放大驱动栅极,P型管采用IRF4905,N型管采用IRF3205,并采用RS-540电机。实际测试驱动效果良好,MOS微热。如图2所示。
图2 驱动电路图
1.3 软件编程
1.3.1 调速方法
PWM调速方法通常采用功率场效应管作为开关元件,通过改变开关元件的导通方式及通断比来改变输出电压的大小与极性。当开关管的栅极输入高电平时,开关管导通,直流电机两端有电压Ud,t时间后,栅极输入低电平,开关管截止,电机两端电压为零。重复前面的工作,直流电机两端电压波形如图3所示。
图3 PWM调速控制输出电压波形
在电源电压Ud不变的情况下,端电压的平均值Uo取决于占空比的大小。即改变占空比的值可以改变电枢端电压的平均值,从而达到调速的目的。此处采用定频调宽法改变占空比的值[2]。
MC9S12XS128单片机PWM有8个输出通道,每一个输出通道都可以独立进行输出。每一个输出通道都有一个精确的计数器(计算脉冲的个数)、一个周期控制寄存器和两个可供选择的时钟源。每一个PWM输出通道都能调制出占空比从0—100%变化的波形。
电机PWM初始化函数如下(C语言)
//**************** PWM2,3电机驱动,8KHz *****
void PWM_Init(void)
{
PWME=0; //禁止PWM
PWMPRCLK=0x11; //时钟预分频B=A=48M/2=24M
PWMSCLA=1; //时钟SA=A/2/1=12M
PWMSCLB=15; //时钟SB=B/2/15=800K
PWMCLK=0x0e; //时钟源的选择
PWMPOL=0xff; //极性设置
PWMCAE=0x0c; //对齐方式设置
PWMCTL=0; //控制寄存器设置
PWMPER2=100; //周期SB/100=8K
PWMPER3=100; //周期SB/100=8K
PWMDTY2=0; //占空比
PWMDTY3=0; //占空比
PWME=0x0e; //使能PWM1,2,3
}
初始化完成后,只要改变输出占空比就能调节电机速度。实现算法如下:
/******改变电机前进的占空比,输出为PWM3口****/
//i=占空比,0-100
void ChangeSpeed_PWM(uchar i)
{
if (i〉100)
{
i=100;
}
PWMDTY3=i;//PWM3口占空比越大,速度越快
PWMDTY2=0;
}
//*****减速函数,根据当前占空比来确定反向时间****
void Stop_Moving(uint i)
{
uint j;
PWMDTY3=0;
for (;i〉0;i--)
{
PWMDTY2=i;
for(j=0;j〈30000;j++)//简单延时,可以使减速更平滑
{;}
}
PWMDTY2=0;
}
至此,已完成了对电机的一些简单控制。如加速、减速、刹车、启动等。但由于行驶过程中存在惯性等干扰因素,必须进一步提高电机的抗干扰性。为此,须引入自动控制闭环调速系统。
1.3.2 速度闭环系统设计
图4 速度闭环示意图
PID 控制器是控制系统中技术比较成熟,而且应用最广泛的一种控制器。它的结构简单,参数容易调整,因此在工业的各个领域都有应用。随着计算机的出现,把它移植到计算机控制系统中,将原来的硬件实现功能用软件代替,从而形成数字PID控制器,其算法则称为数字PID算法。
速度闭环控制采用数字式PID控制算法,控制算式为:
算法实现如下:
//*********************离散式PID***********
float Speed_PID(float set_value,float current_value)
{
float diff,result;
e0=e1;
e1=set_value-current_value;
diff=e1-e0;
pid_sum+=e1;
result=Kp*e1+Ki*pid_sum+Kd*diff;
return result;
}
其中,e1是当前速度与期望的误差,e0是上一次的误差。
实际电机控制中,因为考虑到微分项会放大误差,微分项系数Kd取值很小,甚至为零。采用PID控制后取得了较好的效果。
2 舵机系统设计
2.1 信号感应
要使舵机自主识别路径,首先必须用传感器获取道路信息。本项目中要识别的是通有20kHz、100mA交变电流的导线产生的交变磁场。首先要对20KHz信号进行放大,并且除去其他干扰信号影响。这里采用LC串并联谐振电路来实现选频。
2.2 信号调节放大
由于谐振出来的电压比较小,一般是几十毫伏,为了更精确地测量感应电压,需要对谐振电压进一步放大,通常放大到1-5V即可。所以需要放大电路具有100倍左右的放大倍数。采用一阶共射三极管放大电路方案[3],因为此方案简单,可靠,实测放大倍数85倍左右,能够满足所需要求。放大之后的感应电压幅值测量采用二极管倍压检波电路获得正比于交流电压信号峰值的直流信号,然后用单片机AD口进行采集。二极管采用压降仅有0.1-0.3V的肖特基二极管。传感器电路如图5所示。
图5 传感器电路图
2.3 信号处理以及控制舵机
2.3.1 电磁传感器的工作特性
电磁轨道与传感器相对位置纵向剖面如图6所示,若传感器安装高度为h,x为传感器与赛道的横向偏移,则r为传感器与轨道的直线距离,s为传感器的面积,B为传感器处的磁感应强度大小[4]。
图6 电磁传感器剖面图
由电磁场理论得传感器处的磁感应强度大小为:
传感器中的磁通为:
传感器感应电动势为:
通过放大检波后传感器输出的感应电动势为:
则有:
感应电动势V随线圈水平位置x的变化如图7所示。
图7 单线圈感应电动势与线圈位置关系图
可以看出,单个线圈感应电动势V是x的偶函数,因此无法分辨左右。为实现传感器检测偏移方向的目的,可以在轨道两侧等距设置双电感,并进行差分处理。也就是双水平线圈布局方案。
图8 双水平线圈差分信号与线圈位置关系图
根据式(5)可画出差分信号的工作特性曲线[5](图8)。该方案能够很好的检测偏移方向,在某个区间内具有比较好的单调性,可以采用分段线性方程进行拟合。但这里我们采用最简单,可行的查表方案。即每一个位置对应一个道路误差值,根据误差值的大小输出控制舵机的值。
2.3.2 双水平线圈查表方案
图9 双水平线圈布局
如图9所示,为了消除电流的影响,提取的误差为:
这样提取出来的误差就是一个比值,不是具体的一个物理量,从而提高了智能车对轨道的适应性。误差范围从-1~1。-1就是2号电感移到了导线的上方,0就是车模在中间位置,1就是1号电感移到了导线的上方。
算法实现误差提取如下:
num=((float)AD_value0-AD_value1)/(AD_value0+AD_value1)*100;
其中乘上100是使精度能精确到小数点后两位。
同时把舵机从右极限30度到左极限30度划分成20份。也就是一个区间对应舵机3度的转向。
具体算法实现如下:
#define Direction_Divice 20 //把200MM的检测产度划分20个区间
#define Direction_PWM_Base 14850 //舵机最右角度时的占空比值
#define Direction_PWM_Max 22050 //舵机最左角度时的占空比值
#define Direction_PWM_Wide 360 //把转角划分为阈值区间值的脉冲增加值
#define Direction_PWM_Middle 18450 //正中PWM值
以上舵机角度PWM值是在完成舵机PWM初始化后,实际测量得到的值,采用的是SD-5数字舵机。舵机控制流程见图10。
图10 舵机控制流程图
其算法实现如下:
//输入为区间号,输出为转角对应的PWM波形
//改变为当前PWM周期结束有效
void ChangeDirection_PWM(char num)
{
uint Output_PWM;
if (num〉=-1&&num〈=1)
{
Direction_PWM_Set=0;
}
else
Direction_PWM_Set=(int)num*Direction_PWM_Wide;
//************舵机PD调节输出**********
Output_PWM=Direction_PWM_Middle+ Direction_PWM_Set;
//************舵机死区保护************
if (Output_PWM〈=Direction_PWM_Base)
PWMDTY01=Direction_PWM_Base;
//PWM通道0和1级联输出控制舵机
else
if (Output_PWM〉=Direction_PWM_Max)
PWMDTY01=Direction_PWM_Max;
else
PWMDTY01=Output_PWM;
}
3 结束语
在智能车设计过程中,电机和舵机是两大关键部分。智能车能否跑得又快又稳与电机的设计相关。智能车能否准确的寻迹与舵机的设计相关。本文着重从原理、电路设计以及程序实现等几方面研究了磁导航智能车电机和舵机的设计流程与方法。实际测试结果表明,电机采用PID控制算法,舵机采用查表算法时,智能车行驶快速稳定,具有良好自主寻线跟踪能力。
[1]梁玉红.智能车研究与发展策略.[J].电子技术,2010,(6):1-2.
[2]王苏.智力电机PWM调速研究及单片机控制实现[J].机电工程技术,2008年,37(11):82.
[3]童诗白.模拟电子技术基础(第四版)[M].高等教育出版社,2006:31-40.
[4]孙书咏.电磁轨道智能车赛道检测方法研究[J].西安邮电学院学报,2011,16(6):1.
[5]电磁组竞赛车模路径检测设计参考方案[OL].竞赛秘书处,2010-1,版本1.0:5-6.
图3 花式流水灯实物
5 结语
本设计以单片机为控制核心,使多路花式流水灯结构大为简化,并且花式扩展性强,同时在硬件设中将流水灯布局为心型,加装铁盒,具有外形美观、携带方便、性价比高、体积小等特点,有较高的应用价值。
参考文献
[1]王莉莉,宋冬萍.基于单片机的花式流水灯的设计[J].广西轻工业,2011,11:82-83.
[2]陈高峰,熊刚,胡启迪.单片机原理及应用[M].北京:北京大学出版社,2012.
[3]郑棣,徐迎春,刘雨.基于51单片机的多色点阵显示系统设计[J].自动化技术与应用,2014,33(12)5:109-113.
作者简介:
熊刚(1985—),男,河南信阳人,硕士,讲师,研究方向:电气自动化控制技术。
王慧(1963-),女,副教授,研究方向:智能控制系统、太阳能的利用、光纤传感器的应用。
项目支持:广东省实验室研究基金项目(编号:GDJ2012063)、广东海洋大学创新强校工程科研项目(编号:GDOU2014050240)。