77范文网 - 专业文章范例文档资料分享平台

基于光电传感器的智能小车控制系统设计与实现 - 图文(7)

来源:网络收集 时间:2019-02-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

此类控制系统是由输出量直接控制执行机构的,控制输入和执行机构的输出是一一对应的,通常称此类控制算法为位置式PID控制算法。由于是控制量的全量输入,当输入变化时,其输出端均与过去的状态有关,计算时要对e(k)进行累加,计算机运算量较大。另外,输入u(k)的大幅度变化会引起输出的大幅度变化,这种情况在实际工程实施中要尽量加以避免。因为有发生事故的可能性,因此提出了增量式PID控制算法。

所谓增量式PID指的是数字控制器的输出只是控制量的增量。根据递推原理可得:

u(k?1)?KPe(k?1)?KI?e(i)?KD[e(k?1)?e(k?2)] (4.9)

i?0k?1用公式4.7减去公式4.9则有:

?u(k)?KP[e(k)?e(k?1)]?KIe(k)KD[e(k)?2e(k?1)?e(k?2)]

?Ae(k)?Be(k?1)?Ce(k?2)

?KP?e(k)?KIe(k)?KD[e(k)?e(k?1)] (4.10)

TTT式中?e(k)?e(k)?e(k?1)、A?KP(1??D)、B?KP(1?2D)其中A、

TITTB、C都是与采样周期、比例系数、积分时间常数、微分时间有关的系数。

就整个控制系统而言,增量式与位置式控制算法并无本质的区别。但是增量式控制的输出是增量,误动作对系统影响小,算式中不需要累加;不足之处是积分截断效应大,有静态误差。 4.3.3 速度闭环控制程序设计

速度程序设计时采用增量PID算法。具体算法执行如下: interrupt void Real_Time_Interrupt(void) //实时中断 { lv=nv; //lv为上一速度,nv为当前速度

nv=PACN32; // PACN32光电码盘的速度测量值 PACN32=0; //清零

CRGFLG=0x80; //清实时中断标志位

31

dv=nv-lv;

pwmv2=(vwnt-nv)*cp-dv*cd; //vwnt为期望速度值,PID控制 pwmv+=pwmv2;

if(pwmv>10000){pwmv=10000; } else if(pwmv<-10000){pwmv=-10000; } if(pwmv>=0){ PWMDTY01=0; PWMDTY45=pwmv;

}else{

PWMDTY01=-pwmv; PWMDTY45=0; }

} else{

PWMDTY01=600; PWMDTY45=0; }

程序设计的关键是对增量PID算法的了解,通过对当前速度值与期望速度值进行比较作差,差值作为负反馈因子。PID调节器是工业控制中理想的调节器,其中起主导作用的是P(比例)调节,因此对比例项的改进要慎重。

增量式PID控制输出的是控制量增量,并无积分作用,而在小车调速系统中为了增加动态响应速度,放弃了积分作用,单片机出现故障时,误动作影响较小,而执行机构本身有记忆功能,可仍保持原位,不会严重影响系统的工作能达到很好的性能要求。 4.3.4 具体程序设计

本次设计中采用的凌阳超声波测距模组,重心侧重于程序设计。 首先让单片机发出40KHZ方波,这里的程序采用的是写延迟函数,设定B口1通道为输出口,通过多次更改延时时间系数,使方波稳定在40KHz。

32

1、40KHz方波延时程序与发射程序

void delay() { //通过软件方式进行延时程序设计 int ii;

for(ii=0;ii<12;ii++){} }产生的波形具体频率为38.8KHz。

由于每次测距需要5个周期,这里定义的40KHz方波发射程序如下所示: void fashe(){

char temp; //定义变量 DDRB=0XF7; //定义B口输出 time0=TCNT; //读取计数器初始值

for(temp=0;temp<10;temp++){ //发射周期数为10/2 PORTB_BIT1=~PORTB_BIT1; //B1口发射超声波 delay(); //延迟产生40KHz超声波 }

2、报警器程序

通过超声波测距程序将障碍物离小车的距离测量后,进行报警器的设计,设计思想是:通过单片机B口2通道来驱动发光二极管,编写相应的驱动程序,控制发光二加管的闪烁频率,当小车向障碍物逼近时,发光二极管闪烁的频率显著增加,以此来达到报警效果。程序设计如下:

if(shanshuo>time)

shanshuo=0; //闪烁参数清零 if(shanshuo

PORTB_BIT0=~PORTB_BIT0; //B口驱动二极管 }

33

4.4 本章小结

本章主要对软件进行了设计,软件的设计都是在CodeWarrior集成环境中实现的。首先进行单片机系统各个部分的初始化,进而保单片机模块的正常启用。接着进行速度控制程序设计,采用增量式PID算法控制电机的速度,完成闭环调速。超声波防撞报警程序的编写涉及到超声波硬件的应用,从单片机引脚功能的设定到测距模块实际程序的编写,都要按照相应的要求,保证逻辑的正确性。最后是LCD显示程序,在其它程序运行无误的基础上进行此程序的设计编写,完善本设计的辅助功能。

34

第5章 系统调试

在硬件设计跟软件设计完成以后,都需要经过长时间的调试。在调试硬件过程中可能涉及到:进一步完善电路、调节硬件性能、更换不合适硬件等;软件调试过程中可能涉及到:检查逻辑问题、修改程序语句、修改函数内部参数等。在此过程中要细心检查,严格按照毕业设计要求,有条不紊的进行调试。

5.1 开发工具介绍

1、 使用BDM调试器

BDM(Background Debug Mode)是当代单片机普遍采用的调试方式之一,BDM调试通过单线的方式将目标机和调试器连接起来,并用一定的软件协议,通过目标机上的几个管脚实现调试。Freescale单片机的BDM调试器结构非常简单,在最小系统板中烧写调试程序就是一个BDM调试器。BDM模式的主要功能有如下三点:

(1)应用程序的下载和再现更新。 (2)单片机内部资源的配置和修复。 (3)应用程序的动态调试。 BDM调试器实物如图5.1。

35

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于光电传感器的智能小车控制系统设计与实现 - 图文(7)在线全文阅读。

基于光电传感器的智能小车控制系统设计与实现 - 图文(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/479493.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: