版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机控制技术课程设计报告名 称: 电磁智能车舵机控制 院 系: 电子电气工程学院 学 号: 021208132 目录1、引言31.1研究背景31.2 应用前景32、硬件设计42.1电源模块42.2电机驱动电路42.3核心控制模块62.4霍尔传感器布局72.5舵机模块83、软件设计93.1 pid简介93.2程序框图93.3程序114、结束语195、参考文献20摘要:本设计智能小车舵机的控制核心是单片机(mc9s12dg128),软件平台为codewarrior ide开发环境。采用霍尔传感器对赛道进行检测,利用pwm技术和pid控制小车的运动方向。基于这些完备可靠的硬件设计,编写了开环运
2、动控制程序来控制舵机的运行。经过反复测试,取得比较好的成果。关键字:单片机,pwm技术,舵机1、引言1.1研究背景1953年,美国制造了世界上第一台采用埋线电磁感应方式跟踪路径的自动导向车,也被称为“无人驾驶牵引车”。20世纪70年代中期,具有载货功能的自动导向车主要用于自动化仓贮系统和柔性装配系统的物料运输。在20世纪70年代和80年代初,自动导向车的应用领域扩大而且工作条件也变得多样化,因此,新的导向方式和技术得到了更广泛的研究与开发。最近,小型自动导向车应用更为广泛,而且以长距离不复杂的路径规划为主。这种自动导向车从仅由大公司应用,正向小公司单台应用转变,而且其效率和效益更好。至此出现了
3、智能车的概念。智能汽车是一种高新技术密集的新型汽车,是在网络环境下利用信息技术、智能控制技术、自动控制、模式识别、传感器技术、汽车电子、电气、计算机和机械等多个学科的最新科技成果,使汽车具有自动识别行驶道路、自动驾驶和自动调速等先进功能。随着控制技术、计算机技术和信息技术的发展,智能车在工业生产和日常生活中已经扮演了非常重要的角色。近年来,智能车在野外、道路、现代物流及柔性制造系统中都有广泛运用,已成为人工智能领域研究和发展的热点。1.2 应用前景城市公共交通是与人民群众生产生活息息相关的重要基础设施。然而,目前世界上许多大城市都面临着由私人汽车过度使用而带来的诸多问题,例如:道路堵塞、停车困
4、难、能源消耗、噪声污染和环境污染等,这些问题严重降低了城市生活的质量。优先发展城市公共交通是提高交通资源利用效率,缓解交通拥堵的重要手段。回顾汽车发展的百年历史,不难发现其控制方式从未发生过根本性改变,即由人观察道路并驾驶车辆,形成“路人车”的闭环交通系统。随着交通需求的增加,这种传统车辆控制方式的局限性日益明显,安全性低。如果要从根本上解决这一问题,就需要将“人”从交通控制系统中请出来,形成“车路”闭环交通系统,从而提高安全性和系统效率。这种新型车辆控制方法的核心就是实现车辆的智能化。智能车有着极为广泛的应用前景。结合传感器技术和自动驾驶技术可以实现汽车的自适应巡航并把车开得又快又稳、安全可
5、靠。2、硬件设计 2.1 电源模块 驱动电路模块中的电源模块为系统其它各个模块提供所需要的电源。设计中除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。全部硬件电路的电源由lp38690提供,基本稳压值为5.5v。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压。2.2 电机驱动电路电机驱动芯片bts7970 b的一部分是novalithic,含有三个独立的芯片的家庭。包装:一个p-channel高mo
6、sfet和一个n-channel低 mosfet,形成一个完全整合集成电路的半高电流。三个芯片安装在一个共同的引线框架,利用该芯片在芯片和芯片技术上,利用垂直马鞍山电源开关技术确保最佳的阻力。由于p-channel高开关需要一个电荷泵,就可以消除电磁干扰(emi)。连接到一个单片机变得容易,集成驱动电路的逻辑电平输入、诊断这些特点可以防过热、过流、过压、欠压、短路。bts7970b结合其他bts7970b形成三相定速驱动方式。图2 bts 7970b芯片内部结构图图3 bts 7970b芯片外部引脚的封装图各个引脚的功能(如表1所示):表1 bts 7970b引脚对应功能表终端终端名称i/o功
7、能1gnd-低电流模拟信号接地2ini输入定义高低开关是否被激活3inhi抑制当被设置为低电平进入睡眠模式4,8outo功率输出的桥梁5sri在sr和gnd之间连接一个电阻使电源开关的速度可以调节6iso电流反馈输出引脚7vs-2.3 核心控制模块核心控制模块(如图4所示)是智能车的核心单元,具有以下几个主要任务:接收传感器的输入信号;利用算法对输入信号进行分析处理;根据处理结果输出舵机和驱动电机的控制信号。该模块上包括了mc9s12dg128单片机工作所必需的稳压模块、时钟模块和复位模块,同时还包括了视频信号分离电路、bdm调试接口、串口以及无线zigbee接口等。图4 控制电路板2.4 霍
8、尔传感器布局(如图5所示)霍尔传感器是一种当交变磁场经过时产生输出电压脉冲的传感器。脉冲的幅度是由激励磁场的场强决定的。因此,霍尔传感器不需要外界电源供电。霍尔传感器可广泛应用于: 1电子式水表、气表、电表和远程抄表系统 2控制设备中传送速度的测量 3无刷直流电机的旋转和速度控制 4在工程中测量转动速度和其他机械上的自动化应用 5转速仪、速度表以及其他转子式计量装置霍尔传感器模块的设计是整个电磁智能小车设计中重要的一部分,其作用相当于人的眼睛和耳朵,采集外部路面的信息并将其送入mcu微型控制器进行数据处理,其能否正常工作直接影响着小车对路面的判断以及小车下一步的行动,因而其布局的合理性与有效性
9、对小车稳定而又快速的行驶起着至关重要的作用。在传感器布局中,要解决的两个问题是:信息检测的精确度和信息检测的前瞻性。当一块通有电流的金属或半导体薄片垂直地放在磁场中时,薄片的两端就会产生电位差,这种现象就称为霍尔效应。两端具有的电位差值称为霍尔电势u,其表达式为 u=kib/d 其中k为霍尔系数,i为薄片中通过的电流,b为外加磁场(洛伦慈力lorrentz)的磁感应强度,d是薄片的厚度。由此可见,霍尔效应的灵敏度高低与外加磁场的磁感应强度成正比的关系。图5 霍尔传感器布局2.5 舵机模块舵机是操控车模行驶的方向盘,由舵盘、位置反馈电位计、减速齿轮组、直流电动机和控制电路组成,内部位置反馈减速齿
10、轮组由直流电动机驱动,其输出轴带动一个具有线性比例特性的位置反馈电位计作为位置检测。舵机的输出转角通过连杆传动控制前轮转向,其转角精度直接影响到智能车模能否准确按赛道路线行驶。舵机的控制脉宽与转角在-45+45范围内线性变化。对于对速度有一定要求的智能车,舵机的响应速度和舵机的转向传动比直接影响车模能否以最佳速度顺利通过弯道。车模在赛道上高速行驶,舵机的响应速度及其转向传动比将直接影响车模行驶的稳定性,因此必须细心调试,逐一解决。由于舵机从执行转动指令到响应输出需占用一定的时间,因而产生舵机实时控制的滞后。虽然车模在进入弯道是能够检测到黑色路线的偏转方向,但由于舵机的滞后性,使得车模在转弯过程
11、中时常偏离跑道,且速度越快,偏离越远,极大限制车模在连续弯道上行驶的最大时速,使得车模全程赛道速度很难进一步提高。舵机转角与脉宽的关系如图5所示:图5 舵机输出转角与输入信号脉冲宽度的关系舵机转向是整个控制系统中延迟较大的一个环节,为了减小此时间常数,通过改变舵机的安装位置,而非改变舵机本身结构的方法可以提高舵机的响应速度。分析舵机控制转向轮转向的原理可以发现,在相同的舵机转向条件下,转向连杆在舵机一端的连接点离舵机轴心距离越远,转向轮转向变化越快。这相当于增大力臂长度,提高线速度。针对上述特性,将舵机安装在了相对靠后的位置。这样安装的优点是:改变了舵机的力臂,使转向更加灵敏;舵机安装在了正中
12、央(如图6所示),使左右转向基本一致;重心更靠后,减轻了舵机负载。图6 舵机安装实物图3、软件设计 3.1 pid简介 本设计中软件设计部分,主要是对舵机控制进行设计,我们采用pid控制。可调pid控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用pid控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用pid控制技术。pid控制,实际中也有p
13、i和pd控制。pid控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。3.2程序框图3.3 程序#define bus_freq 48000000#define tim_clk (bus_freq/128)#define tim_int 25#define tim_cnts (tim_clk/tim_int)#include #include #pragma link_info derivative mc9s12xs128unsigned char ad0;unsigned char ad1;unsigned char ad2;unsigned char ad3;/*后面一
14、排的传感器值*/unsigned char ad5;unsigned char ad6;unsigned char ad7;unsigned int duty;/*舵机软参数*/unsigned int ect;/*ect结果寄存*/unsigned int sdu;/*由舵机得到的速度累变值*/unsigned int v;/*电机软参数*/unsigned int vv; char c; char f;unsigned char flag_down;unsigned char ad0_0;unsigned char ad1_1;unsigned char ad2_2;unsigned ch
15、ar ad3_3;unsigned char ad5_5;struct pid word p; / 比例常数 word i; / 积分常数 word d; / 微分常数 word ud;word motor;word dingzhi;word chelg; word e1; / e(k) word e2; / e(k-1) word e3; /e(k-2) spid;/*超频子函数bus*48mhz*/void pll_48m(void) clksel=0x00; pllctl_pllon=1; synr =0xc0 | 0x05; refdv=0x80 | 0x01; postdiv=0x0
16、0; _asm(nop); _asm(nop); _asm(nop); while(!(crgflg_lock=1); clksel_pllsel =1; /*ect模块初始化*/void ect_init(void) pactl=0x40; pacnt=0; pactl_pamod=0; pactl_pedge=1; pactl_paen=1; tscr1=0x90; tscr2|=0x06; tios|=0x01; tc0=(int)(tcnt+tim_cnts); tctl1|=0x01; tie|=0x01;/*模数转换初始化*/void ad_init(void) atd0ctl1=
17、0x00; atd0ctl2=0x40;atd0ctl3=0xc0;atd0ctl4=0xbf;atd0ctl5=0x30;atd0dien=0x00;/*pwm模块初始化子程序*/void pwm_init(void) pwmprclk=0x05; pwmscla=3; pwmctl_con45=1; pwmctl_con67=1; pwmclk_pclk5=1; pwmclk_pclk7=0; pwmper45=782; pwmper67=5000; pwmpol_ppol5=1; pwmpol_ppol7=1; pwmcae=0x00; pwmdty45=391; pwme_pwme5=
18、1;unsigned char lsd(unsigned char m) /区间判断unsigned char a; if(m%10=0)a=m/10-1;else a=(int)(m/10);return a;/*void ad23_cl(void) /ad2ad3相应处理char a,b,c,d,e,f;a=lsd(ad2);b=lsd(ad3);c=lsd(ad0); d=lsd(ad5);e=a-b;f=c-d;if(ef) duty=390-10*e; if(e0) vv=310-5*e; else vv=310+5*e; if(e0) vv=310-5*f; else vv=310
19、+5*f; */void ad23cl(void) char a,b;a=lsd(ad6);b=lsd(ad7);c=a-b; void ad05cl(void) char d,e;d=lsd(ad0);e=lsd(ad5);f=e-d; /*void ad05_cl(void) /ad0处理 char a,b,c;a=lsd(ad2);b=lsd(ad3);if(aa_&b0) vv=310-5*c; else vv=310+5*c; duty=390-10*c;a_=a;b_=b; /if(ad0=50)flag_down=1; /else flag_down=0; */void vv_(
20、void)if(flag_down=1&(duty=500)vv=150;void dd_cl(void) char a,b; ad23cl(); ad05cl(); if(c0)a=c; else a=-c; if(f0)b=f; else b=-f; if(a=0) duty=382-10*f;vv=200; else duty=382-10*c; if(c0) vv=1200-3*c; else vv=1200+3*c; /* if(a=b) duty=390-10*c; if(c0) vv=250-10*c; else vv=250+10*c; if(a0) vv=250-10*f;
21、else vv=250+8*f; */*电机驱动子程序*/void motor_qudong(unsigned int data) portb=0xff; pwmdty67=data; pwme_pwme7=1;/*舵机驱动子程序*/void tuoji_z(unsigned int data) pwmdty45=data;/*模数转换读取程序*/void ad_duqu(void) while(!atd0stat2_ccf0);ad0_0=atd0dr0l;while(!atd0stat2_ccf0);ad1_1=atd0dr1l;while(!atd0stat2_ccf0);ad2_2=a
22、td0dr2l;while(!atd0stat2_ccf0);ad3_3=atd0dr3l;while(!atd0stat2_ccf0);ad5_5=atd0dr5l;/*ad值处理滤波*/void ad_cl(void) ad0=(char)(4*ad0+ad0_0)/5); ad1=(char)(4*ad1+ad1_1)/5); ad2=(char)(4*ad2+ad2_2)/5); ad3=(char)(4*ad3+ad3_3)/5); ad5=(char)(4*ad5+ad5_5)/5); /ect=(int)(4*ect+ect_1)/5);void pid1_motor(struc
23、t pid *t) /调速pid word pp=0,pi=0,pd=0,z; t-p=5; t-dingzhi=vv; t-chelg=ect; t-d=5*(t-p)/4; t-e1=(t-dingzhi)-(t-chelg); pp=t-p*(t-e1)-(t-e2); pd=t-d*(t-e1-2*(t-e2)+t-e3); z=pp+pi+pd; t-motor=(int)(z+t-motor); v=t-motor ; t-e3=t-e2;t-e2=t-e1;void main(void)/主程序 pll_48m(); pwm_init(); ad_init(); ect_init(); ddrb=0xff;for(;)ad_duqu();/ad转换等待及结果存储ad_cl();/滤波dd_cl();/判断该怎样,模糊加pidtuoji_z(duty);pid1_motor(&spid); /pid调速 motor_qudong(v); /tuoji_z(duty);/*中断子程序*/#pragma code_seg non_bankedvoid interrupt 8 tim(void) tc0=(int)(tcnt+tim_cnts); ect
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度农产品供应链优化与物流服务合同2篇
- 2024年度珠宝首饰销售合同详细规定3篇
- 2024年度高校教师公寓家具采购合同2篇
- 2024年度房地产交易广告合同2篇
- 配偶与房瑾2024年度离婚合同:财产分配及子女抚养事宜2篇
- 二零二四年度版权保护合同with标的为音乐作品版权
- 绿化养护合同
- 消防设施检测合同
- 2024年度专利申请与授权服务合同3篇
- 2024年度厦门抗浮锚杆人力资源服务合同2篇
- 2024年糖尿病指南解读
- 静脉治疗专科护士的分享课件
- 青少年预防艾滋病班会
- 研发项目管理培训课件讲解
- 国家太空安全
- 二十届三中全会精神知识竞赛试题及答案
- 中国农业文化遗产与生态智慧智慧树知到期末考试答案章节答案2024年浙江农林大学
- 人教版小学数学六年级上册《百分数》单元作业设计
- 增值税预缴税款表电子版
- 管理学案例分析之健力宝案例
- 关于利益冲突政策的规定
评论
0/150
提交评论