智能车竞赛技术报告 | 节能信标组组 - 内蒙古大学创业学院 - 骄阳一队
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 节能信标组组 - 内蒙古大学创业学院 - 骄阳一队相关的知识,希望对你有一定的参考价值。
简 介: 本文以第十六届全国大学生智能汽车竞赛为背景,介绍了节能信标组智能车设计方案。智能车系统采用自制车模,以英飞凌公司的TC264微控制器作为核心控制器,智能车利用差速获取当前赛车的车身姿态,由车模上方的摄像头传感器来识别信标灯,通过算法判定信标灯的位置以及远近,用于智能车的运动控制。通过编码器来检测车速,并采用TC264 的输入捕捉功能进行脉冲计数计算速度;电机转速控制采用 PID 控制,通过 PWM 控制驱动电路调整电机的转速,完成智能车速度的闭环控制。此外,还通过按键作为人机交互的输入设备,用于控制智能车的速度和PD参数。节能信标车的主要电路为无线充电电路和摄像头电路,无线充电电路采用LCC谐振方案,摄像头电路则单独供电的方法进行隔离保护。
关键词
: 信标,智能车,单片机,自动控制?
简 介: Based on the 16th National Student Smart Car Competition, this paper introduces the design scheme of the energy-saving beacon group smart car. Smart car system using homemade models, infineon’s TC264 microcontroller as the core controller, intelligent car using differential to obtain the current car body posture, by the camera sensor above the model to identify beacon lights, through algorithms to determine the position of beacon lights and far and near, for intelligent car motion control. The vehicle speed is detected by encoder and the pulse count calculation speed is calculated using the input capture function of TC264, and the motor speed control is piD controlled to adjust the speed of the motor through the PWM control drive circuit to complete the closed-loop control of the intelligent vehicle speed. In addition, the keys are used as input devices for human-computer interaction to control the speed and PD parameters of the smart car. The main circuit of the energy-saving beacon car is the wireless charging circuit and the camera circuit, the wireless charging circuit adopts the LCC resonance scheme, and the camera circuit is isolated and protected by the separate power supply method.
队伍名称:骄阳一队
参赛队员:张伟帅
贾明洋
仝嘉仪
带队教师:朱英杰 贾雯
第一章 引言
1.1构成及研究内容
为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革,受教育部高等教育司委托,由教育部高等学校自动化专业教学指导分委员会(以下简称自动化分教指委)主办全国大学生智能汽车竞赛。该竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。
智能车系统可以分为五大部分:传感器检测部分, 信号处理部分,控制系统、无线充电部分和人机交互部分。检测系统包括:摄像头对赛道信息的采集、编码器对速度的采集、AD转换对电容电压的检测以及对信标灯的检测。信号处理部分采用的是英飞凌公司TC264作为主控芯片,对采取的信号进行快速处理。控制系统是通过摄像头采集到的信息经过主控芯片处理再输出信号来控制电机的转速从而前往信标灯。通过编码器测量车模速度,构成速度闭环控制利用 PID 控制算法控制电机;无线部分采用LCC谐振电路来收割信标灯的无线电能。人机交互部分通过按键与单片机进行交互,最后通过EEPROM将智能车的参数进行掉电保存。
1.2 车模设计方案
车模采用自制车模,微处理器为官方统一的英飞凌公司的TC264,智能车通过两电机的差速来控制转向,通过车模上方的摄像头来识别信标灯的位置以及大小。利用编码器来测量车模运行的速度,再以PID算法使电机的速度闭环,可以达到制动效果加速快的效果。通过AD转换检测电容组电压以及无线充电线圈上的电磁信号。智能车的无线充电方案采取的是LCC谐振。
1.3 相关文献综述
在智能车制作过程及调试过程中,查阅相关资料,其中不乏《学做智能车–挑战“飞思卡尔”杯》、《智能车制作》等类基础性书籍,此外,本系统的核心,控制思想,除查阅一些书籍之外,在智能车论坛,以及逐飞的智能车论坛得到了很多专业的指导以及前辈的比赛经验。
1.4 论文的主要内容
1. 本论文分为以下几个部分:
2. 节能信标车系统方案
3. 节能信标车的机械结构
4. 节能信标车的主要模块介绍
5. 节能信标车电机驱动模块介绍
6. 节能信标车无线充电系统介绍
7. 节能信标车软件算法介绍
第二章 系统方案设计
2.1系统整体框架设计
智能车系统由五部分组成:传感器检测部分, 信号处理部分,控制系统部分、无线充电部分和人机交互部分。检测系统包括:摄像头对赛道信息的采集、编码器对速度的采集、AD转换对电容电压的检测以及对信标灯的检测。信号处理部分采用的是英飞凌公司TC264作为主控芯片,对采取的信号进行快速处理。控制系统是通过摄像头采集到的信息经过主控芯片处理再输出信号来控制电机的转速从而前往信标灯。通过编码器测量车模速度,构成速度闭环控制利用 PID 控制算法控制电机;无线部分采用LCC谐振电路来收割信标灯的无线电能。人机交互部分通过按键与单片机进行交互,最后通过EEPROM将智能车的参数进行掉电保存。
▲ 图 2.1智能车控制核心图
2.2 车模基本参数
车模基本参数
- 长 21cm
- 宽 27.9cm
- 高 42cm
- 车重 0.92kg
- 功耗 空载 2.1w
- 待载 4.08w
- 电容总容量 5F
-
传感器 编码器 2个
- 摄像头传感器 1个
除了车模原有的驱动电机之外伺服电机个数
2.3小结
硬件电路的合格设计是智能车平稳运行的基础,逻辑清晰的软件设计是智能车核心,这二者缺一不可。[1]可靠的硬件电路设计是第一要求,好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。
第三章 机械结构安装与调整
3.1车体机械调整
车模的机械非常重要,针对信标车车模,我们有几个调整的方向:
1)传感器支架必须结实耐撞,安装牢固,使震动最小。震动会导致传感器得到感应电动势“抖动”,导致车模会在比赛区域内上摇摆不定,直接关系到摄像头丢灯,使得赛车冲出比赛区域。
2)将一部分中心转移到车模头部,避免因车模过快的加速度产生的“仰头现象”。
3.2车体布局
1. 车模的重心偏靠前,电容组和无线充电电路板放在车模的前方。
2. 电机驱动板放置在车模的正中心,其上方放置主控板,节省空间。
3. 用较为轻便的碳素杆固定摄像头 ,通过三通固定在主板上方,有利于重心分布,使车模拐弯时更加平稳。
4. 无线充电线圈安装在车模底部,方便车模不停歇进行中途补电。
3.3车体部件
3.3.1编码器
编码器安装为了更为精确的获得电机转速的返回值,采用正交迷你1024线编码器,编码器通过自己打印的编码器支架固定在车模上,编码器齿轮与电机齿轮基本吻合,使得转动齿轮轴保持平行,传动部分轻松、流畅,速度不快的情况下不存在杂音过大和丢失数据情况,并且使编码器安装的尽量靠近车轮的地方,以降低车的重心[2]。图3.4为编码器安装示意图。
3.3.2触发磁标的安装
信标灯是通过霍尔元件检测磁铁来触发计时系统,为了更容易触发信标灯,在车模的底部安装了三个钕铁硼磁铁,其安装位置非常靠近地面。为了方便安装选择了带有圆孔的磁铁,其直径为25mm,磁铁太大不利于节能,而太小有不容易触发信标灯。图3.5为磁标的安装示意图。
▲ 图 3.5 磁标安装示意图
3.3.3 OLED液晶屏、按键调试
在小车的调试过程中要整定参数必须要不断的修改参数值,对此我们选用了oled液晶屏配合按键的调试方法。此外,比赛的时候,多备用几套速度不同的程序来进行调试。
我们选用了OLED液晶是因为主要是它的显示稳定,清晰,并且质量好,不易损坏。刷新变量所消耗的时间可以通过程序来解决,即在主函数利用分时刷新,避免影响主函数的运行。按键我们采用普通独立按键,设立1个按键进行开始,调试,运行,选择四个部分。的地方,以降低车的重心,此外,自己设计了防撞板以防撞灯之后不会因为车前面太平而走不出灯区,防止在调试过程中小车冲出赛道撞坏车体。编码器安装示意如图
第四章 主要模块介绍及作用
4.1电源管理模块
为各个电路模块提供稳定的直流电源,保证各个模块稳定工作。电源模块为小车系统的其他各模块提供所需要的电源。[3]设计中,除了需要考虑电压的范围和电流容量等基本参数外,还要在电源转换效率,降低噪声,防止干扰和电路简洁方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。[4]电源管理路线如图4.1所示。信标车所需的电压为15V、5V以及3.3V。
▲ 图 4.1 电源管理流程图
4.1.1 15V升压模块
为了给HIP4082驱动芯片提供15V的电压,最终采用DC—DC方案进行升压。由于XL6007E1芯片的效率可以达到90%,最终选取此方案,其最大输出电压可达到60V,输出电流最大为2A,开关工作频率为400Khz。为了防止超级电容组的电压瞬间传到XL6007E1芯片使其被大电压击毁,在电源与XL6007E1芯片之间串联了一个100Ω的磁珠,以此来防止电压的突变击穿芯片。电路原理图如图4.2所示。
4.1.2 5V与3V稳压模块
稳压方案本文选取的是线性稳压(LDO)方案,稳压芯片有很多种,例如AMS1117、LM7805但是考虑到信标车没有传统的电池,用的是超级电容组。超级电容放电快,结合这一原因,5V稳压芯片采用压降只有200mv的TPS7350为74LVC3G17隔离芯片和编码器供电,该芯片可以直接将7.2V电压稳压到5V,再通过派LC滤波电路即可。[5]3.3V稳压芯片采用的是RT9013,为TC264单片机、蜂鸣器、OLED、外接ADC供电,由于从7.2V直接到3.3V效率不高并且会造成RT9013芯片发烫,有烧毁芯片的风险,所以间接的将5V稳压到3.3V,这样便可避免上述问题。这两款芯片压差都非常低,可以提高超级电容组的电能利用率。5V稳压电路如图4.3所示,3.3V稳压电路如图4.4所示。
▲ 图4.3 5V稳压模块原理图
▲ 图 4.4 3V稳压模块原理图
4.2 检测模块
4.2.1 速度检测模块
为了更好的控制智能车需要对速度进行采集,利用1024线的编码器对信标车的车速进行采集,通过TC264内部定时器每5毫秒检测一次电机的转速,将采集到值反馈给单片机进行增量式PID控制,使电机的转速达到预期值。
4.2.2 电压采集模块
由于信标车需要经常行驶到信标灯上接收无线电能,为了更好的判断超级电容组的电压是否足够信标车寻找到并且行驶到下一个信标灯的位置接收无线电能,需要采集当前超级电容组的电压来判断是否还需要接收无线电能。电压采集公式为power = (adc * 3300 / 256)* 3,其中adc为TC264内部ADC通过滤波采集到的电压数值。[6]电压采集模块如图4.5所示。
▲ 图4.5 电容电压检测模块
4.2.3 摄像头识别模块
信标在点亮后同时会发送高频无线功率信号(150kHz)、红色闪烁灯光以及红外灯光,用于导引车模前往。最终采取摄像头识别红外的方案。摄像头为MT9V034数字摄像头。
一般的摄像头有奇偶场,以隔行扫描的方式采集图像上的点,把一帧图 像分为奇数场和偶数场两场。而MT9V043 数字摄像头没有奇偶场之分, 采用逐行扫描方式。当扫描到某点时,就通过图像传感芯片将该点处图像的灰 度转化成与之一一对应的电压值,然后将此电压值通过视频信号端输出。摄像头连续地扫描图像上的一行,则输出的就是一段连续的电压信号,该电压信号 的高低起伏反映了改行图像的灰度变化。当扫描完一行,视频信号端就输出低于最低视频信号电压的电平,并保持一段时间。这样就相当于紧接着每行图像 信号之后会有一个电压凹槽,此凹槽叫做同步脉冲信号,它是扫描换行的标志。 然后跳过一行后,开始扫描新的一行,如此下去,直至扫描完该场的视频信号, 接着会出现一段场消隐区。该区中有若干个复合消隐脉冲,其中有个持续时间 远长于其他的消隐脉冲,称为场同步脉冲,它是扫描换场的标志。场同步脉冲 标志着新的一场的到来,不过消隐区恰好跨在上一场的结尾和下一场的开始部 分,得等场消隐区过去,下一场的视频信号才真正到来。
采集图像的思路是使用场中断、DMA 传输。需要采集时开场中断; 场中断来临,初始化 DMA 传输,并启动 DMA 传输;每个 PCLK 上升沿来了都触发 DMA 传输,把摄像头输出的值读取到内存数组里,当触发 n 次后就停止 DMA 传输; DMA 停止传输时就触发中断,中断里关闭场中断,图像采集完毕。由于总钻风摄像头是一字节 8 个像素,用八个 IO 口直接采集八位二进制数,方便处理,通过设置二维数组 img[60][188]来保存采集的图像信息。采集的原始图像是一个灰度图,每一个数据对应一个像素点,从 0~255 分别对应从黑到白过度的各种亮 度。并且由于梯度失真,远处的图像小,近处的图像大。
▲ 图4.6摄像头传感器
第五章 驱动电路
5.1 HIP4082芯片介绍
HIP4082是英特矽尔公司的驱动芯片,它最大输出电压可达80V,输出电流达到1.3A,输入PWM频率最高可达 200Khz,一块HIP4082配合外围电路组成H桥即可驱动一路电机,具有输出电流大,设计方便的特点,完全满足带载电机的需求。[7]
5.2 H桥
H桥是常用的电机驱动电路,它包含四个独立的开关元器件,由于MOS—FET可以听过大电流,带载能力强,开关器件常采用MOS—FET。由于其电路形状张的像H字母,故称为H桥。图5.1为H桥电路。
▲ 图 5.1 H桥原理图
打开Q1、Q4,关断Q2、Q3,此时电流可经过Q1、电机M、Q4即可完成电机的正转。如图5.2所示。打开Q2、Q3,关断Q1、Q4,此时电流可经过Q2、电机M、Q3即可完成电机的反转。如图5.3所示。
▲ 图 5.2 电机正转H桥原理图 图5.3 电机反转H桥原理图
5.3驱动电路
电机驱动电路主要由四部分组成:电源模块,电机芯片驱动模块、PWM隔离模块以及电机输出接口。
电源模块分为三部分,一是7.2V超级电容组不经任何处理直接加到MOS管的源极,通过H桥的关断与导通,将电能输送给电机,二是5V的线性稳压,通过TPS7350芯片将超级电容组的7.2V电压稳到5V来给74LVC3G17逻辑芯片供电,三是15V升压,通过XL6007E1将7.2V电压升到15V,给电机驱动芯片HIP4082供电。
电机驱动芯片HIP1082的3管脚和4管脚与主控板的PWM输出端口相连,来控制H桥的导通与关断继而控制电机的正反转来实现信标车的前进、后退。
PWM隔离模块是通过一块逻辑芯片74LVC3G17与TC264引脚进行隔离,以避免误判断,降低信标车的寻灯效率。
电机输出接口通过接线端子与电机相连接,使电机可以接收到H桥传来的电压变换,继而完成小车的速度控制。图5-4为电机驱动电路。其中D14、D15、D16、D17采用肖特基二极管作为为电机的续流二极管,当开关管关断时,续流二极管可以释放掉电机当中存贮的能量,防止感应电压过高击穿元器件。[8]D6、D7、D8、D9在关断瞬间为H桥驱动提供一个阻抗较小的通路来释放MOS管栅极与源极之间的电压,采用快恢复二极管,使得关断时间短,减小了能量损耗。
▲ 图5.4 HIP4082驱动电路
第六章 无线充电系统
6.1智能车无线充电接收模块设计
根据《第十六届全国大学生智能汽车竞赛竞速比赛规则》中的规定车模上不允许使用任何电池,车模需要通过无线接收线圈获取信标发送的无线电能。
信标灯为扁平状,车模可以行驶到信标上面可以通过无线信标发送的高频150kHz磁场获得最大不超过50W的充电功率,为车模上的超级法拉电容充电。[9]其中发送模块由官方提供,接收模块则为自行制作。
6.2接收线圈
采用200股的高频利兹线绕制成空心线圈,放置在车模底部靠近地面。通过对以往节能组的分析,发现了充电时间对比赛的结果影响很大,通过线圈的不同高度、不同匝数的对比后
最后决定使用如下的线圈,作为无线充电的接收线圈。如图6.1所示。
▲ 图6.1无线接收线圈
6.3 接收电路设计
为了在有限发射功率内获得最大充电功率,缩短比赛时间,为车模的运行提供足够的电量,我们通过卓晴教授在csdn上发布的《如何高效获取无线充电电能-无线节能组》以及结合自身在制作智能车过程中的经验最后决定使用lcc补偿网络来设计无线充电接收电路,与全波整流和倍压整流相比在充电过程中lcc补偿电路中的电流更加稳定,理论上可以达到恒流,最后我们无线充电的接收电路如下图6.2所示。
▲ 图6.2 无线充电接收电路
第七章 软件系统设计与算法调试
7.1 速度控制处理
在一场图像中,当信标灯亮起时,在图像数据中便出现高于阈值的数据,记录高于阈值的数据所在的行数和列数,通过行列式扫描法,记录信标灯左边横标的最小值和右边横坐标的最大值,通过最小值和最大值计算出信标灯的中心点和宽度,通过信标灯的宽度和中心点可以知道小车距离信标灯的方向和距离,通过不同的方向和距离通过算法计算出小车的打角和行走速度。
7.2算法与调试
▲ 7.2.1 PID 控制器系统原理框图
▲ 图7.1PID控制系统原理框图
比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。[10]
比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。[10] 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。[11]
微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
7.2.2 PID参数整定
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。[12]PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。[13]这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。[14]但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:
1. 首先预选择一个足够短的采样周期让系统工作﹔
2. 仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期﹔
3. 在一定的控制度下通过公式计算得到PID控制器的参数。
通过按键与TC264芯片进行人机交互,再配合上位机软件进行可视化的调节PID三个参数,通过不断的调试和翻阅资料,最终确定了PID最合适的参数。(Kp=2.4,Ki=0.34,Kd=0.3)。
7.2控制流程
第八章 系统开发和调试工具
8.1开发环境:AURIX Development Studio
AURIX Development Studio(以下简称ADS)是一款支持英飞凌TriCore™内核AURIX™ 系列MCU的集成开发环境,其中包含了Eclipse IDE、C编译器、Multi-core调试器、英飞凌底层驱动库(low-level driver,iLLD),同时对于编辑、编译及调试应用代码没有时间及代码大小的限制。ADS其中还包含了GNU MAKE4.2.0,CMAKE3.14.0,GNU COREUTILS 5.3.0。ADS 还提供了 log 输出的工具,可以通过重定向的 printf 函数将 log 信息输出到在下方<默认下方>的 FSS 选项卡。为了方便调试,可以在 debug 版本代码中添加 log 输出,相对会更加方便调试,更加友好,而在 release 版本代码中可以将 log 输出删除以提高运行效率。可以利用设置断点、添加查看的方式来调试程序,大大降低了调试的时间。
▲ 图8.1ADS软件界面
8.2 上位机调试
为了更加直观的获取到信标车在寻找信标灯时的情况,利用蓝牙通过串口将摄像头采集到的信息实时发送到逐飞科技公司提供的智能车传感器调试助手。在该软件当中可以方便的看到当前摄像头所识别到的内容。
▲ 图 8.2 总钻风上位机
8.3 IPS辅助调节
由于在调试信标车的过程中需要不断的调整参数,每次都要重新调整参数,编译下载到单片机中,既费时又费力,通过IPS彩屏进行辅助调节,利用独立按键进行调节需要更改的参数,在IPS彩屏当中实时显示当前的参数,省去了繁琐的步骤,提高了开发效率。
▲ 图8.3 IPS调参界面
结论
本文详细介绍了基于单片机设计的智能车方。以英飞凌公司的TC264微处理器,通过摄像头识别红外光,计算灯的坐标信息来控制智能车前往且可中途在信标灯上进行补充电量。在通过PID反馈方式进行调节车速。通过速度传感器对小车形成 速度闭环的 PID 控制。 文中分章节分别介绍了小车车模的改装、机械结构的调整和优化,赛车各个硬件模块的工作原理、设计思路和改进方案,并且详细的叙述了整个智能车系统 的开发工具,软件和各个调试模块的设计方法和使用方法。在硬件方面包括了电源分模块供电、光电编码器测速和 H 桥驱动电路等部分。总结整个设计过程,不仅使我们得到了对已有知识进行实践的机会,更培养 了一定的科研能力,拓宽了知识面,同时我们小组在智能车制作的过程中学会了 发现问题,分析问题和解决问题的能力,我们大家互相配合,锻炼了团队精神。 展望未来,智能车技术在以智能汽车竞赛为背景下必然会有广泛的应用。
致谢
感谢主办方和各个赞助公司为我们提供的学习锻炼的平台。感谢信息工程学院为我们提供的资金和场地支持。同时,真诚的向在这个过程中帮助过我们的老师同学表示深深地谢意。以及感谢节能信标组成员的支持和帮助。最后感谢比赛承办方及评委在百忙之中为我们的技术成果进行评定以及提出宝贵的指导意见。
参考文献
[1]卓晴、黄开胜、邵贝贝等编.学做智能车—挑战“飞思卡尔”杯[OB].北京:北京航空航天大学出版社.2007.
[2]王日明.轻松玩ARM Cortex-M4微控制器——基于kinetis K60[M].北京航空航天出版社.2014.
[3]邱关源.电路.高等教育出版社[M].第5版.2006.
[4]阎石.数字电子技术基础[M].高等教育出版社.第5版.2006.
[5]童诗白、华成英.模拟电子技术基础[M.]高等教育出版社.第5版.2015.
[6]王兆安、刘进军.电力电子技术[M].机械工业出版社.第5版.2009.
[7]张建强;孟浩;李红喜 .《基于安卓系统下的手机蓝牙遥控车设计》[M] .2014.
[8] 哈尔滨工业大学博士论文袁江波.《圆盘式压电发电装置发电性能及其关键技术研究》[R] .2011.
[9] 《TsinghuaJoking_卓晴_CSDN博客-分享,智能车竞赛,基础电子领域博主》
[10]南京理工大学博士论文李银伢.《满意PID控制器设计理论》[R].2006.
[11] 中南大学硕士论文韦晓慧 .《多温区测控系统的解耦分析》[R].2007.
[12]崔政斌、郭继承.《焊接安全技术》[M].化学工业出版社.2009.
[13]李钦华.《浅析高速漆包机烘炉的炉温控制》[R]. 中国金属通报.2014.
[14]张霖.电子万能材料试验机闭环控制软件的研究》[R]北方工业大学硕士论文2007
附录
■ 附录A:部分程序代码
● 主函数:
#include "headfile.h"
#pragma section all "cpu1_dsram"
void core1_main(void)
{
disableInterrupts();
IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
Init_All();//初始化所有外设
static uint8 voltage_flage = 0;
static uint8 run_flage = 0;
enableInterrupts();
while (TRUE)
{
Key_Menu();//按键检测
Car_Contral_Speed_Mod();//速度选择
run_flage = Key_Car_Mode();//模式选择 调试模式、比赛模式
Key_Show();//IPS显示信息
ips114_showuint16(0, 0, adc1);
ips114_showfloat(0, 1, voltage, 3, 2);
if(voltage > start_voltage)//当充电达到10V启动
{
voltage_flage = 1;
pit_interrupt_ms(CCU6_0, PIT_CH0, 5);//通道0 5ms中断
}
while(run_flage == 1 || voltage_flage == 1)
{
if(mt9v03x_finish_flag == 1)
{
threshold = MyOSTU(MT9V03X_W, MT9V03X_H, *mt9v03x_image);//获取二值化阈值
if(threshold<min_gray) threshold=min_gray;//0.24ms 阈值限幅
ips114_showint16(50, 6, Light_col_mid);
ips114_showint16(50, 7, Light_col_len);
/*************图像显示*************/
//// seekfree_sendimg_03x(UART_2, mt9v03x_image[0], MT9V03X_W-20, MT9V03X_H-25);//上位机显示传回来的图像
//// ips114_picture_display(threshold);//IPS显示二值化图像
//// sobel(*mt9v03x_image, *soble, threshold);//边缘图像显示
//// ips114_displayimage032(*mt9v03x_image, MT9V03X_W, MT9V03X_H-25);
/////
/************车身控制********/
Scan();//图像处理
Car_Contral();
Light_count(); //统计灯的个数
mt9v03x_finish_flag = 0;
}
}
}
}
#pragma section all restore
}
}
Pid算法:
float Pid_Inc_Cal(struct PID *pid, float set_value, float real_value)//增量式PID
{
//float out_cal;//存放PID临时值
pid->Set_value = set_value;//获取设定值
pid->Real_value = real_value;//获取编码器数值
pid->Ek = pid->Set_value - pid->Real_value;//获取偏差
pid->Pout = pid->Kp * (pid->Ek - pid->Ek_Last);//计算Pout
pid->Iout = pid->Ki * pid->Ek;//计算IOUT
pid->Dout = pid->Kd * (pid->Ek - 2*pid->Ek_Last + pid->Ek_LLast);//计算DOUT
pid->OUT += pid->Pout + pid->Iout + pid->Dout;
/* PID限幅 */
pid->OUT = Pid_Abs(pid->OUT, 9500);
pid->Ek_LLast = pid->Ek_Last;//更新上上次偏差
pid->Ek_Last = pid->Ek;//更新上次偏差
return pid->OUT;
}
编码器测速:
void speed_get(void)
{
float k = 204 / (2867 * 0.005);
left_encode = (gpt12_get(GPT12_T5)*k);//左电机编码器获取
right_encode = -(gpt12_get(GPT12_T4)*k);//右电机编码器获取
gpt12_clear(GPT12_T5);//左电机编码器清除
gpt12_clear(GPT12_T4);//右电机编码器清除
}
大津法:
uint16 MyOSTU(uint16 width,uint16 height,uint8 *Image)//0.042ms
{
uint16 threshold1=0;
int32 sum_gray=0;
int32 sum_pix_num=0;
int32 pl_pix_num=0;
int32 p2_pix_mum=0;
int32 p1_sum_gray=0;
float m1=0;
float m2=0;
float V=0;
float variance=0;
uint16 i,j,k=0;
for(i = 0;i<256;i++)
pixel[i] = 0;
//统计每个灰度级中像素的个数
for(i = ROW; i < height - 25; i+=1)
{
for(j = 0;j < width;j++)
{
pixel[(int)Image[i * width + j]]++;
}
}
for(k=0;k<GrayScale;k++)
{
sum_gray+=k*pixel[k];//灰度直方图质量矩
sum_pix_num+=pixel[k];//总像素个数
}
for(k=0;k<GrayScale-1;k++)
{
pl_pix_num+=pixel[k];//第一部分像素个数
p2_pix_mum=sum_pix_num-pl_pix_num;//第二部分像素个数
p1_sum_gray+=k*pixel[k]; //第一部分质量矩
m1=(float)p1_sum_gray/pl_pix_num;//第一部分灰度均值
m2=(float)(sum_gray-p1_sum_gray)/p2_pix_mum;//第二部分灰度均值
V=pl_pix_num*p2_pix_mum*(m1-m2)*(m1-m2)以上是关于智能车竞赛技术报告 | 节能信标组组 - 内蒙古大学创业学院 - 骄阳一队的主要内容,如果未能解决你的问题,请参考以下文章
智能车竞赛技术报告 | 节能信标组 - 北京科技大学节能信标组
智能车竞赛技术报告 | 节能信标组 - 合肥工业大学 - 烂虾队
智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队
智能车竞赛技术报告 | 节能信标组-哈尔滨工业大学紫丁香五队