智能车竞赛技术报告 | 节能信标组 - 浙江大学 - 浙大三队

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 节能信标组 - 浙江大学 - 浙大三队相关的知识,希望对你有一定的参考价值。

参赛学校:浙江大学       
队伍名称:浙大三队       
参赛队员:朱呈翔、余江涵、张博群
带队教师:姚维、韩涛      

 

第一章


  国大学生智能汽车竞赛是一项以“立足培养、重在参与、鼓励探索、追求卓越”为指导思想,面向全国大学生开展的具有探索性的工程实践活动。。它以设计制作在特定赛道上能自主行驶且具有优越性能的智能模型汽车这类复杂工程问题为任务,鼓励大学生组成团队,综合运用多学科知识,提出、分析、设计、开发并研究智能汽车的机械结构、电子线路、运动控制和开发与调试工具等问题,激发大学生从事工程技术开发和科学研究探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。该竞赛被教育部批准列入国家教学质量与教学改革工程资助项目,至今已成功举办15届,在本年暑期,第十六届智能车竞赛也如约而至。

  本届的全国大学生只能汽车竞赛共分为八个组别,包括A、基础四轮组,B、全向行进组,C、双车接力组,D、节能信标组,E、电磁越野组,F、单车拉力组,G、智能视觉组以及H、专科基础组。我们选择的组别为节能信标组,该组别的最大两个特点即为1. 允许自制车模,2. 车模上不允许使用任何电池,需要通过无线接收线圈获取信标发送的无线电能。这就需要参赛者有着熟练的机械及硬件设计能力,突破官方车模的限制,设计出一套牢固稳定且轻便节能的智能汽车机械硬件系统。

  在本届比赛中,我们使用了自制车模,自行设计整车的机械结构并使用自购电机。硬件上使用了英飞凌的TC264DA作为核心控制芯片,自主设计了主控(包含电机驱动模块)PCB板、无线充电接收板以及若干独立供电模块,实现了通过线圈接收无线电能,将其存储在超级电容并以之为整车硬件唯一供电源的功能。在软件控制算法上,我们自行设计了包括无线充电控制、摄像头图像采集及处理、电机驱动控制、舵机控制等程序,整车经过了反复的调试与检验,最终达到了良好的鲁棒性。

  本文将在后面的章节中进一步针对整车的机械、硬件电路、以及软件算法分别作更详细的说明。第二章第二章第二章

 

第二章 能车整体设计方案


2.1 整车整体外观结构

2.2 整车运行设计思路

  我们设计的节能信标车模大致可分为以下几个模块:传感器信号采集模块、动力及转向模块、通信交互模块、无线充电模块、电能存储及管理模块以及核心的主控决策模块。各个模块的主要组成元素以及相互之间的联系见图 2–4。

▲ 图 2–4 整车各模块及其联系

  对于节能信标组的一个核心问题——找灯上,我们采取的还是比较传统的摄像头寻灯,通过摄像头检测视野中的亮处,将其判定为信标灯所在的位置。由主控芯片对摄像头采集到的图像进行处理,从而控制动力及转向模块完成舵机的转角以及电机的调速,使得小车能够平稳又快速地运行到信标灯上,完成灭灯。
  对于节能信标组的另一个核心问题——无线充电,我们采取了恒功率充电的方案,通过TC264的ADC引脚读入当前的超级电容的电压,根据目标充电功
  率控制充电电流即可实现恒功率充电的功能。上述算法的具体实现方法以及其他模块的功能实现会在后文中更详细地介绍。

 

第三章 械设计


3.1 总体车模设计

  根据今年信标组的规则,信标灯采用的是接近与平面的一种摆放方式,虽然有一定高度但是车模依然可以从信标灯及控制器上方进行翻越,这一过程对车模运行的影响不算太大。而且在最初的规则中,曾有过国赛对抗的可能性。我们认为车模所需具备的是快速的特性和车模较强的稳定性,能够翻越信标灯的罩子以及信标灯,信标组常常需要进行100°以上的转向,所以依然需要较强的转向灵活性。

  最初我们主要考虑的是车模应当能够满足基本的对抗能力,抗撞击,强动力,同时要有足够好的速度控制,方向控制能力。所以我们选用了舵机+电机的四轮驱动,这样对于速度控制会更加平稳,而且单凭舵机控制方向,能够将转向与前进解耦,防止速度控制误差的叠加。同时,四轮车有着更好的攀爬稳定性和高速控制稳定性,合适的底盘高度能够避免车模与信标灯罩子碰撞,四轮车重心距离轮子边界更远,更难翻车,有着更高的车模运行稳定性。出于这些角度考虑,我们在四轮车的框架下展开了系统设计。

  四轮车有其优势的同时,也有着其天然的劣势,劣势主要体现在车模舵机打角受机械限制,不能像三轮车一样自由度更大,车模打角时行进效率低,对差速系统要求高。四轮车车体比较硬,当整体重量较轻的时候容易起飞。

▲ 图 3–1 车模整体结构图

3.2 车模各部分结构设计

3.2.1 驱动系统选取与装配

  首先,我们通过使用来自龙邱的一套基础硬件系统,实现了车模控制、寻灯。此时车模的效果很不理想,能耗高,速度慢,但是在此基础上基本能够确定车模大致目标重量,所需的驱动系统的动力。

  由于车体总体较轻,所以基本不会存在舵机打角强度不够的情况,舵机选择重量较轻,体积较小的KST v3.0舵机,配置相应的25T-5mm舵盘,并相应使用碳板根据舵机力矩,链接自定义的舵臂,充分利用这款舵机打角快、力矩小的特点,缩短舵臂长度,获得更大的打角力,并由舵机自身的性质,能够有着较快的打角速度。舵机采用卧式安装的方式
  我们车体总重控制在500g到1kg范围,期望设计最大速度3.5m/s,同时,起步加速度不应低于3m/s2。在此基础上,我们依参数选配定制了空心杯电机。电机的额定功率定在6W,电机是整车最大的耗电器,为了提高电机电源的效率,我们选取额定电压为12V的电机,这样,在电机电源端,我们可以选择使用单一的升压电路实现,这样综合效率较高,可以提升到95%以上,为小车运行节省了很多能量。

  为提升车模翻越罩子的稳定性,罩子边沿的高度为5mm左右。此时轮胎的直径应超过10倍左右才能顺滑地登上这个罩子。所以我们选择使用65mm直径的后轮。轮胎选材方面需要表面显得更硬,而且富有弹性的硅胶,这样的轮胎再在不与地面粘接,影响节能的情况下,能够实现较大的抓地力,即便是较为光滑的地面,在灰尘不多的情况下也能轻松的抓死地面。这样的轮胎的缺点在于密度较大,会增加车模总体重量。而且后轮质量大,容易出现车模重心总体偏后的问题,导致车模容易出现甩尾的现象。这种甩尾造成的后轮刹车会使得大量的能量被这个刹车的过程转换为热量,不利于转向的时候的节能特性提升。此时需要后轮使用一个更加轻质的后轮结构。后轮使用密度较低的树脂3D打印中空轮毂,这样对后轮总体质量减轻一些,但由于材料限制,没能完成对新的轻质轮轴的制作,如果能够实现较为轻质的轮轴的制作,那么将不会再出现这个问题。

▲ 图 3–2 车模后轮结构

  后轮选定后开始考虑传动比的。我们后轮使用空心杯电机往往是低力矩,高转速的,转速通常在8000到13000转。输出的扭矩能提供3m/s2到4m/s2的小车加速度。传动比选取9:1到13:1我们所使用的是老B车的后轮,105齿,模数为0.4模。所以选择9到12齿的小型铜制齿轮。我们确定了电机轴与后轮主轴的中心轴距范围之后,设计出了后轮固定构件见图 3–5。

▲ 图 3–5 后轮固定构件结构图

3.2.2 四轮车小车底盘的设计

  小车底盘设计不但要完成车模各部件的装配,还要留足够的空间防止传感器以及一些节能信标需要使用的功能器件。四轮车由于两前轮通过舵臂刚性链接,后轮更是通过一根主轴完全刚性连接。在这种刚性连接的情况下,为提高四轮车高速过灯、过罩子的稳定性。悬挂虽然是一种比较理想的方案,但是悬挂系统太过于复杂,不适用于这种体量较小的车模。而且如果有对抗的情况下,在撞击的情况下,悬挂系统局部受力会非常大,不利于车模的正常行进。此时,底板选材便尤为关键。从机械性能上来讲,碳板固然是机械性能最好的板材,但是,对于节能信标组,碳板虽然轻而硬,但是碳板导电的特性使得碳板无法胜任这一工作。在无线充电的过程中,碳板如果靠近线圈,会发出大量的热量,导致充电效率大幅下降。理想的材料应当为一种轻质、硬度和韧性好、抗冲击不导电的绝缘物质。

  此时就有这样的几种方案。一种是3D打印这种增材制造,通过选取合适的材料和填充比,获得较为理想的硬度和抗冲击的能力。然而,这种方式其实强度并不是很好。在3D打印进行增材制造的过程中,由于材料纤维之间并不能做到完美的粘合,会使得这样的车模在承受比较强的力度的时候会发生折断。韧性差。四轮车底板如果缺少韧性,很难面对信标这样存在对车模来讲不可知罩子的情况。容易导致车模在罩子上起飞,不利于车模的运行。

  其次选择铸模加工,并在铸模的过程中混入一定比例的空气或者惰性气体,

  这种方式一定能获得较好的机械性能,避免了3D打印的问题,但是成型周期长,模具成型费用高,在长期使用的时候可以考虑。这种方式制作出来的车模有着良好的、可定义的机械性能。自然也可以做到更轻更薄。不过对于材料选型的难度上要求就比较高了。倒是可以一模多用。提高利用效率。

  我们在比赛中实际用到的方案(图 3–6)为与现在H车模相同的Fr4复合板,通过计算其强度,这种板材完全可以承担小车对抗时的冲击。同时有着一种韧性,有着一定的弹簧性能,解决飞车问题的最有效的方式为添加弹簧阻尼系统,而Fr4这种材料的性能自身就能形成一种天然的弹簧系统,虽然没有阻尼,但却能够大幅提升车模后轮与地面接触的能力。当车模前轮遇到罩子的时候,这种弹簧受到冲击,后轮并不会立刻抬起通过硅胶的抓地能力继续向前而不是电机腾空疯转。节能的同时极大提升了车模稳定性。

▲ 图 3–6 车模底盘结构图

3.2.3 传感器&功能器件的布局

  这次车模总共使用的传感器有一个摄像头,一个编码器。以及可能使用的红外传感器。车模上还需要布置多个磁标以满足灭灯任务,当然还有线圈,这是节能组车模能量的来源。节能信标不但要把车做小、做轻,还要搭载这么多传感器等期间,给机械设计上提出了不小的要求。

  摄像头方面,设计摄像头前瞻能看到8m左右的信标灯,如果有阳光的情况下也要能够区分4m左右的信标灯和阳光。这时候需要摄像头有足够的高度。在这种模型下,摄像头理论高度每提升一倍,看到的信标灯的开角提升1.4倍,在与软件的配合下,基本确定了40cm为我们摄像头的最终高度。这种高度已经远高于车模其他部件的高度,为了保证结构简单,保证车模的弹性,摄像头仅使用一根碳管来做支架,摇晃问题通过其中下部的一片支撑结构支撑。这样车模前半部分和后面驱动部分充分断开,中间无刚性的连接,保证车模富有弹性。

  线圈方面,我们提出了多种线圈放置的方案:首先也是我们现在使用的,线圈位于车模正下方,这样缺点是线圈有大小限制,感应到的磁感线较少,感应电动势小,需要后续升压或者LCC增流,这样电容容易产生啸叫效应,不利于提升充电效率,如果周围存在大面积导电器件或者铺铜时,容易造成车模发热的现象,不利于使用。会导致重心偏高。其次,可以使大线圈围绕后轮。这样的方式能够感应到的磁感线较多,后续不太需要过多的进行LCC增流电路配置以及或者增压电路配置。有助于提升充电效率。但需要一定额外支撑提升车模质量。并且面临着与地面之间较大的摩擦。而且,这样的大线圈意味着在充电时电机可能会出现噪音和抖动,不利于车模稳定性的提升。最后一种则是后置拖挂线圈,同样,在后轮动力构件足够中的情况下,这样的结构容易造成甩尾现象,不利于车模的稳定运行。

  磁标方面,虽然节能信标需要较为轻的车模,但是四轮车的灵魂就在于它面对颠簸极高的稳定性,不能在灯附近进行过多的减速,从而对磁标有着极高的要求。我们选用N52标准超强方形磁铁,磁标片重17g,铬镀层。这样的磁标保证有一定的抗冲击性能的。保证四轮车高速过灯时能够将灯灭掉。同时,磁场的标定也是一个重要的内容。龙邱科技所使用的霍尔器件上印有1383标识,不难查出,这是一种对垂直方向磁场敏感的霍尔器件。由于读取芯片存在一定的软件周期,想要灭掉灯必须使足够强的垂直磁场较长时间地保留在霍尔器件平面。磁场的连续性十分重要。我们限定我们的磁标使用厚度充磁的方式。保证更大面积的垂直磁场。并通过计算得到,当磁场足够强时,一定程度上提高磁标高度有助于获得更大面积的连续磁场。通过磁针探测的方式,确保磁标同名磁极的垂直朝向相同,适当提高磁标高度,获得更大面积的可触发区域,保证车模在较快速度的情况下完成灭灯。为此我们不得不牺牲一下后轮的电机,强磁铁距离点击太近,虽然有影响,只能不拆那个磁铁控制速度控制中的变量了。

  编码器采用512线编码器。依传动比约1500线每轮子转一周。安装于后轮构件固定后轮主轴与电机轴齿轮的一旁。调整其传动比,我们能够获得1300到4000线每后轮转一周的控制精度。因为编码器内部存在有较大的摩擦,更高的精度意味的更多的线数也会带来更高的机械损耗。

3.2.4 四轮车劣势处理

  四轮车的劣势主要体现在其较大的转向半径。转向时,后轮差速要有着足够好的性能,而且理想情况下,两前轮的轴线不应平行,而应当相较于后轮轴线的延长线的一点,理想情况下,这一点到后轮中点的距离即为四轮小车的转向半径。后轮绕这一点进行差速转动。

  这个过程中存在两点不够理想的情况,首先两前轮转向时,其轴线交点难以交于后轮主轴延长线,此时前轮转向时必然会与地面进行相对运动,产生大量摩擦能量耗散。为解决这个摩擦,因为舵臂转向结构较复杂周期长,在确定转向以首先要选择一个合适的前后轮距,前轮使用摩擦力较低的海绵胎,即便有摩擦影响也不会太大。第二前轮转向可以让前轮适当放松,有一定自我调整的自由度。靠摩擦力分量使两轴线回到后轮结构,只不过这样容易掉轮子。

  对于后轮,老款B车模的差速器性能较好,我们也采用的这一种差速装置,并对其进行改进。差速装置内具有摩擦的地方有:差速滚子滚动时的滚动摩擦,M5螺母下面的平面轴承滚子的摩擦。差速器中轴承与轮轴之间的摩擦。使用螺母+平面轴承的固定方式虽然好,但是事实上,这种设计车模自由度限制重复,很难达到最优的差速效果。M5螺母拧松,在轮轴处添加推力轴承能够更好的提升差速器性能。

3.3 车模装配与测试

  车模电路板与摄像头支架固定于一起,摄像头支架上粘贴电机供电板,往上两螺纹孔固定主板,主板下方固定充电板。主板后方独立固定电容板。多段式保证车模弹性。电路板尤其使超级电容需与底板距离一定距离,防止电磁效应导致充电效率降低。

  轻推车模,车模绝大部分不得与信标灯罩子产生碰撞。占空比100%车模与硬质墙面进行撞击,5次后车模不损坏,可证明车模稳定性良好。车模倾斜80°,车模回正,车模重心位置良好。
 

第四章 件电路设计


  硬件电路设计上,除去少部分购买的成品板(超级电容板、OLED显示屏板以及摄像头板等),此外均为自主设计的PCB,共有3块,分别为主控板(包含电机驱动)、无线充电接收板以及一个外接的电机供电板。硬件电路在最终版中整体还是比较简洁的,这也为后面的硬件调试带来了很大的便利。

  在硬件设计环节中最重要的部分之一就是电源部分,电源部分设计的合理与否直接关系到整个系统能否正常工作,在硬件设计最初,我们也因为电源设计的不合理而导致主控MCU芯片无法正常工作,陷入了一段时间的困境期。此外我们的主控板并不像其他一些队伍使用了一些商家的成品板,而是直接采用裸片,设计了最小系统板,极大地简化了硬件设计电路也减小了空间占用和重量。在充电的问题上,我们采用了bq24640作为充电板的控制芯片,该芯片本质上为一Buck电路的控制芯片,为德州仪器公司的一款专为超级电容充电的设计芯片,可设定充电时的充电电流。下面我将分别对各个模块进行详细介绍。

4.1 电源部分设计

  在电源的设计上我们采用了以TPS63070为核心开关电源类芯片为各个模块设计了合适的供电源,完整的电源系统框架见图 4–1。

▲ 图 4–1 电源系统框架

  上图中的虚线框内为TPS61178,为电机的外置稳压模块,可将电压稳定在12V,且能提供电机运行所需的大电流。其余的电源模块均在主控板内,为主板及外接模块提供稳定电源,保证系统的正常运行。

  在硬件设计的过程中,我们充分考虑了各个模块正常运行所需的电压,也考虑了各个模块所需的带载要求,在保证电压范围合理和能正常带载的前提下对各类器件进行了合理的选型。此外,在PCB设计过程中,也充分考虑到了如何降低各个供电模块的噪声,合理地选择滤波电容,保证稳压,必要的地方做好隔离,电机模块与其余模块之间进行单点接地的操作。最终形成的电源系统既保证了系统的稳定性和高效性,也已足够简洁明了。

4.1.1 TPS63070稳压模块

  由于我们使用的电源为超级电容而非锂电池,因此,在使用的过程中,电压会从10V左右降至3V左右,因此无论是选用降压芯片还是升压芯片都不能实现很好的实现稳压效果,因此我们最终采用了TPS63070这一款降压 – 升压芯片作为电源系统的核心开关电源类稳压模块,其输入电压范围为2V ~ 16V,输出电压范围为2.5V ~ 9V,完美契合了我们的需求。此外,该芯片使用的拓扑结构为四管同步的buck – boost升降压电路,该结构利用了同步整流模块,因而效率相较传统的buck – boost电路有着更高的转换效率(最高可达95%左右),这与我们节能信标组的“节能”二字是相符合的。TPS63070的带载电流可达2A,也符合了各个模块的带载需求。TPS63070的设计电路见图 4–2。

▲ 图 4–2 TPS63070稳压模块原理图

  在使用过程中只需要调整电阻反馈分压电阻R3的阻值即可实现对输出电压的设置。

4.1.2 3.3V稳压模块

  3.3V的稳压模块主要为MCU及其外围电路以及各个外接模块供电,我们先后试用了多款不同的MCU,最终统一采用了LM39100这一款LDO作为3.3V的稳压芯片该款芯片的纹波较小,稳定性较高,发热也较小,带载能力也已足够,满足了MCU以及各类外置模块的供电需求,其电路设计较为简单,原理图见图 4–3 。

▲ 图 4–3 3.3V稳压模块电路

4.1.3 1.3V MCU内核供电模块

  TC264的内核需要有严格的1.3V稳压供电,从而才能保证其正常工作,为此,我们选用的稳压芯片为ME6216A13M3G。由于1.3V的稳压芯片可供选择的比较少,因此对于SOT23-3的封装,几乎只有这一款能够为TC264的内核提供足够的供电。我们在先前选用了另一款带载能力更弱的芯片结果导致TC264不断复位,无法正常工作。ME6216的1.3V稳压电路见图 4–4 。

▲ 图 4–4 1.3V稳压电路

4.1.4 电机12V供电

  在使用锂电池时,常常用锂电池直接通过H桥为电机供电,然而在使用超级电容时,由于电压会随着车子的运行而不断降低,因此在使用H桥时,如果电容电压发生了变化,相同的PWM则会对应不同的运行速度,只会为电机的调速带来困难,此外在电容电压较低时,电机甚至会不能正常运转。因此为电机额外设置一路能够有较强带载能力的稳压电路是很有必要的。

  在实际中,电容的电压一般不会升至12V以上,因此我们决定使用升压芯片,最后我们选用了TPS61178这款同步升压芯片,其输入电压范围为2.7V ~ 20V,输入电压为4.5V ~ 20V,开关峰值电流可达10A,符合了电机带载的需求。此外由于该芯片也使用了同步整流,效率可高达96%,符合节能的需求。该部分电路我们使用了独立的一块PCB绘制,与主控板之间相隔离。原理图见图 4–5。

▲ 图 4–5 电机12V供电稳压电路

4.2 电机驱动模块

  电机驱动我们使用了DRV8701作为驱动芯片,由于我们的驱动方案为单电机+舵机,因此只需要一路H桥和一个8701芯片即可。电机驱动部分的电路见图 4–6。DRV8701内部自带电荷泵升压电路,因此无需外部升压即可满足驱动需求。

  电机驱动的H桥电路中需要使用到可以实现高频开关且导通电阻小的MOS管,我们使用的MOS为TPH1R403NL,其导通电阻仅有1.7 mΩ(VGS = 4.5V),性能非常优越,有效保证了驱动电路的高效率。

  此外,在驱动信号和8701之间使用了一颗74HC244缓冲芯片用作数据缓冲,保证驱动环节的准确可靠。

▲ 图 4–6 电机驱动部分电路

4.3 TC264最小系统板设计

  在本届比赛中,我们使用的主控芯片为Infineon公司的TC264DA,该款芯片属于英飞凌Tricore架构的Aurix系列单片机。这型单片机依靠Infineon公司在汽车电子领域深厚的底蕴,具有许多特别的优势(例如有多核并行处理能力,可以进行快速傅里叶变换,支持多种通信协议和丰富的通信接口等)。该款芯片的引脚数量为144,双核架构,主频等级为200MHz,已经完全满足我们节能信标组的需求。

4.3.1 主控部分原理图设计

  为了简化主控板的电路以及接口,我们自行设计了最小系统板,将TC264主控芯片直接焊在了主控板上。最小系统板电路见图 4–7和图 4–8。为了保证MCU的供电稳定,我在设计电路时在每一个3.3V或1.3V的供电脚上几乎都加上了一个0.1μF的电容以保证供电的平稳。对于TC264的硬件配置引脚也根据实际需要以及供电方式进行了上拉或者下拉的处理,此外下载器的接口也需要对相应的引脚作上拉处理,从而保证程序的准确烧录。

  在时钟电路的处理上,264内部实际上有一个OSC电路,它一般和我们外部的晶体振荡器构成一个皮尔斯振荡回路,从而可以产生一个固定频率的信号。皮尔斯振荡电路作为并联谐振电路,晶振两端需要负载电容对输出频率进行调
  整。这两个电容在264里既可以从外部接也可以直接使用内部的,当然内部的精度会有些差距,因此我们选择使用外部振荡器。

▲ 图 4–7 最小系统板电路(1)

▲ 图 4–8 最小系统板电路(2)

4.3.2 主控部分PCB设计要点

  此外,在主控板的PCB设计上也许有更为细致的考量,例如为了避免对晶振的工作产生干扰,须将其与TC264挨得非常近,且对周围的铺铜进行挖空处理,见图 4–9。此外,滤波电容以及去耦电容也最好要与芯片尽可能挨近,我们使用的方案是将这一类电容放在Bottom Layer,打过孔与引脚相连,见图 4–10。此外,在PCB设计时还需要考虑到各类连接端子的摆放位置要与各个外接模块相匹配,例如将舵机接口放在前面而将编码器放在后面,这样后续的连线就会更加便捷,整体看上去也会更加简洁、美观。

  为了减小PCB的尺寸和重量,且提高供电与接地的可靠性,我们采用了4层板PCB,第二层和第三层分别用作为接地层和电源层,这样在后续的布局上就会更加便捷,板子尺寸也减小了很多,最终我们的主控PCB尺寸为10cm×5cm,由于主控中已经包含了驱动部分,因此这尺寸已经做到很小了。

▲ 图 4–9 晶振部分的PCB绘制

▲ 图 4–10 滤波电容、去耦电容的排布

4.4 充电接收板设计

  在充电接收板的设计过程中,我们一开始也是采用LCC的补偿方案,但是LCC在每次进行设计的过程中都需要非常细致地调谐振,比较麻烦,此外,LCC在实际使用的过程中由于出现了高压,容易导致电容被击穿,电容也发烫比较严重。此外LCC也比较依赖发射线圈的性质,在省赛的过程中,我们原本调好的LCC却意外翻车了,导致充电时间比平常长了近半分钟,后来回来后我们在不同的充电板上进行测试发现充电时间存在明显差异,串联的充电板越靠后的充电时间越长,其能够提供的功率越小,很容易就会触发充电板的限功率机制(实测串联五个板,最后一个板的最大充电功率仅能达35W左右),进而导致充不进去电。因此在省赛后我们就决定抛弃LCC方案,采用恒功率方案。

  恒功率充电的核心就在于对充电电流的实时调控,,这一类芯片一般就已属于电源管理类芯片,德州仪器的BQ系列的芯片就属于此类,bq24640就是一款专为超级电容充电而设计的芯片,其应用电路见图 4–11。

▲ 图 4–11 bq24640应用电路

  在该手册提供的应用电路中,默认前级输入的为直流电,因此在实际应用的时候还需要在接受线圈后加补偿电路并整流。该芯片本质上为一个同步降压的控制芯片,它自带了电流采样模块,因此可以实现恒流充电,通过控制则可进一步实现恒功率充电。

 

第五章 件系统的设计及实现


  效而稳定的控制程序,是智能车在陌生环境下平稳运行的基础。一个优秀的智能车控制系统必然是鲁棒的,不仅能够在自己的赛道上完成既定的任务,还能在陌生环境下取得良好的成绩。本次比赛中,我们英飞凌公司生产的TC264芯片作为控制器,通过神眼MT9V034摄像头采集图像信息,获取信标的方位,然后通过舵机控制运动方向。为了使智能车能够平稳高效运行,我们通过编码器测速,再通过bang-bang控制和经典PID算法实现了对小车的速度闭环。由于信标灯本身存在电流限制,我们又通过TC264对充电过程进行了追踪,使得小车从信标灯上尽可能多的获取能量。为了保证小车能够长时间运行,在电量低于阈值时,我们采用了中途停车充电的方式,为小车续航。

5.1 控制流程图

  程序整体控制流程图见图 5–1

▲ 图 5–1 控制流程图

5.2 图像处理

5.2.1 摄像头图像采集

  相比于其他组别,节能信标组场地中的元素较少,只有信标灯和蓝罩子。由于蓝罩子的信息不容易获取,我们采用神眼摄像头加红外滤光片来识别场上的信标灯。由于本届比赛采用扁平状的信标灯,相比于原来柱状的信标灯,进入摄像头的光线少。为了使小车拥有尽可能大的视野,我们通过拉高摄像头、调节俯仰角和镜头焦距、调整曝光时间等手段来改善识别效果。

5.2.2 图像数据处理

  理想情况下,加红外滤光片后摄像头采集的图像数据应该只有信标灯,但由于阳光中含有丰富的红外成分,就给图像采集带来了极大的干扰。由于比赛规则中并没有明确说明赛场的遮光要求,所以如何分辨阳光和信标灯就成了信标组图像处理的最大难题。

  针对这一问题,常见的思路是将图像数据分为若干个连通域,再将与信标特征最接近的连通域作为目标。但本届信标灯在四月底才正式推出,我们没有足够的时间提取出信标灯的特征。同时提取所有连通域本身要占用一些时间,所以我们并没有采取这种思路。

  通过对上位机采集的图片进行分析,我们发现,信标灯与周围环境的对比度要明显高于阳光,所以将对比度最强的点作为目标,这样相比于对整张图片的处理,可以大大减少计算量。
  为了防止小车正常运行过程中摄像头瞬间丢失数据,我们通过一个计数器将其与丢灯状态区分开来。如果计数器溢出,就判定为丢灯,舵机最大角度打角找灯,否则继续用上一时刻坐标。

5.3 运动控制

5.3.1 PID算法简介

  在过程控制中,PID控制器是一直应用最为广泛的一种控制器,也是众多控制算法中应用最为普遍的控制算法当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。

  即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。
  PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。

  由于单片机控制是采样控制,只能根据采样时刻的偏差控制输出量,不能计算连续输出量,所以要采用离散化的PID算法。离散PID分为位置式和增量式两种。位置式的输出量直接就是控制量,由于全量输出,所以每次输出均与过去的状态有关,计算时要对过去偏差进行累加,计算机工作量大;而且因为计算机输出量对应的是执行机构的实际输出,如计算机出现故障,输出大幅度变化会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成严重的生产事故。因而产生了增量式PID控制的控制算法,所谓增量式PID是指数字控制器的输出只是控制量的增量。由于计算机输出增量,所以误动作时影响小算式中不需要累加。控制增量的确定仅与最近 k 次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。

5.3.2 方向控制

  由于本届比赛采用扁平状信标灯,不用担心撞灯的问题,所以对轨迹的要求比较简单,只需要将车头对准信标灯,以直线接近信标灯即可。

  由于舵机本身是一个大滞后系统,如果加积分控制会影响舵机的响应速度。所以采用PD控制来控制舵机的输出量。将信标灯中心和车辆中线之差作为偏差量,将其送到PD控制器中,再将输出量送给舵机输出即可。

5.3.3 速度控制

  往届信标组中,小车往往通过急加速和急减速的方式来获得更高的平均速度,使得灭灯的时间尽可能地短。但对于节能信标组,如果盲目地采用这种方式,会造成极大的能量损耗,小车将不得不充更多的电,从而在充电上浪费更多的时间。简而言之,节能和高速是一对矛盾。平衡好这二者的关系,是取得好成绩的关键。国赛要求信标灯在三分钟的时间内灭尽可能多的灯,从这一规则上不难看出降低能耗的重要性。

  针对这一问题,我们设计了这样的控速方案:当信标灯距离不太远时,采用增量式PID作为速度控制算法,利用编码器获取速度作为反馈量,对速度做闭环控制,使得小车保持匀速运行;当信标灯距离很远时,先通过bang-bang控制使小车高速接近信标灯,接近信标灯后再通过bang-bang控制进行减速,最后一段距离通过增量式PID保持速度。

5.4 充电控制

  由于比赛所用的信标灯是存在电流限制的,如果仅通过LC或LCC振荡电路加整流的方式接收电能,在达到信标灯电流上限之后会使得电路的状态发生波动,影响充电效率。所以充电的过程中,我们通过ADC采样对功率进行了闭环控制,实现最大功率追踪和恒功率充电。

5.5 中途充电

  中途充电是本届节能信标组最大的亮点。即便第一次电能获得的足够多,小车也总有停下来的时候,更何况超级电容以及电路板的耐压本身就限制了一次充电的能量。所以小车要想长时间稳定运行,除了要降低能耗,还要想办法在运行的过程中补充能量。常见的做法有两种,一种是利用切换到下一个信标灯的时间在灯上充电,另一种是使小车准确地停在信标灯上进行充电。由于我们的车模是四轮单电机的结构,不太容易在灯上打转,所以我们采用后者,即停车充电。

  停车充电的难点不在于如何把车停下来,而在于如何把车停在最佳位置,以及如何在没充上电的情况下再次启动寻找下一个灯。这样的定点停车,如果只通过摄像头来判断位置,成功率未免太低了。所以我们不仅通过ADC采集电容电压,还通过ADC采集前级电压来加以判断。

  我们的中途充电过程是这样设计的:当电容电压低于阈值时,对小车进行大幅度的降速,使得小车先低速匀速运行。在这之后,如果摄像头判定小车离信标灯的距离很近,则置位刹车标志位,等到前级电压达到阈值后立马刹车。此时再通过电容电压的变化进行功率判定,如果判定在充电,就保持停车充电直到电容电压达到设定值;如果没充上,就再次启动前往下一个灯进行充电。经过大量的调试,最终使得小车总是能在最佳位置充电,即便因为一些扰动没充上,也能及时前往下一个信标灯进行补救。从而使得小车能够长期平稳的运行,不会出现电压过低而停止运行的状态。
 

第六章 发与调试环境


6.1 开发与设计环境

6.1.1 软件开发工具

  软件开发工具为AURIX Development Studio开发软件(以下简称ADS)。ADS是英飞凌公司于2019年底推出的集成开发环境,支持英飞凌TriCore内核AURIX系列MCU。ADS是一个完整的开发环境,包含了Eclipse IDE、C编译器、Multi-core调试器、英飞凌底层驱动库(low-level driver iLLD),同时对于编辑、编译及调试应用代码没有时间及代码大小的限制。

▲ 图 6–1 ADS开发软件

6.1.2 硬件开发工具

  硬件电路原理图和PCB的绘制在Altium Designer 20的环境中进行,它是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件使电路设计的质量和效率大大提高。其操作界面见图 6–2

▲ 图 6–2 AD20操作界面

6.2 软件上位机调试

  为了获取小车在运行过程中的各项数据,我们在车上安装了蓝牙,将一些重要参数发送给上位机,就可以实时观测小车的运行状况。在实际调试的过程中,我们用图像上位机来对摄像头采集的图像信息进行细致的分析,并用匿名上位机对车辆的运动情况进行观测,进而对运动控制的参数进行修改。

▲ 图 6–3 图像上位机

▲ 图 6–4 匿名上位机

6.3 硬件调试步骤

  在完成了PCB的设计与焊接后,就需要对板子进行调试工作。硬件的调试一般是要循序渐进展开的,往往是焊好一部分就先调一部分,而不是等到虽有元件都焊完了再调,否则容易导致出现错误却很难查清错误发生的原因以及究竟是哪一个模块出错了。

6.3.1 电源模块调试

  电源模块的调试既可以说是最简单的,但同时也很可能是发生错误时最难找到原因的。电源模块的焊接往往是最先进行的,在焊接完成后需要立即上电测试,用万用表观察各电源模块输出结果是否与设计值一致,并用示波器观察纹波情况是否符合要求。

  但是电源模块的调试还远没有结束,在后面每个模块的测试中都还需要注意电源是否出现了问题。因为前面的测试仅仅只是在空载情况下,很有可能一带载就支撑不住了。此外,电源对负载变化的响应也是需要注意的,当负载发生变化时,电源是否依然平稳,响应是否迅速,这些都是需要加以考虑的。

6.3.2 TC264最小系统板测试

  上电后测试是否能够烧录程序,能够烧录且各模块正常运行说明最小系统工作正常

6.3.3 电机驱动测试

  首先测量H桥的上桥桥臂的PWM信号是否正常,改变PWM信号观察电机的转速是否发生变化,且编码器能够正常读到电机转速说明电机工作正常

6.3.4 充电模块测试

  将车模放在线圈上,,观察充电板上的电源及工作状态指示灯是否正常亮起,从OLED中读取当前的充电电压,如果电压按照预期速度上升,说明充电板正常工作。

 

第七章 模技术参数


▲ 表 7–1 车模技术参数表

 

第八章 结与思考


  篇技术报告详尽地介绍了浙大三队在备战全国大学生智能车竞赛时分别在车模机械架构、硬件电路以及软件算法等方面所做的工作。其中包含了自制车模驱动系统的机械装配,小车底盘设计,传感器的固定方法;电路的电源模块,驱动模块,最小系统板以及充电模块的设计;软件上的图像处理,运动控制,充电控制以及中途充电方法。

  节能信标组是今年智能车竞赛首次开展的一个项目,它包含以往节能组的无线充电和信标组的信标寻找,是一个非常具有挑战性也非常新颖的竞赛项目。该组别最大的特点就是允许自制车模,这极大地激发了参赛选手主观能动性,各个参赛组别也都发挥出了惊人的创造力。智能车竞赛是一项融合了多学科的交叉创新型竞赛,需要参赛选手同时具备良好的机械设计能力、电路分析能力、编程能力等等,设计到的学科门类包含了机械、电子、电气、计算机等,这无疑是一场高水平之间的较量。

  在半年的备赛时间当中,我们组也经历了许许多多的起伏,在校赛和省赛之中,我们的处境无不非常惊险,但好在都能够顺利过关。屡次的失误并没有让我们气馁,反而极大地激发了我们的斗志,在国赛的备战过程中,我们针对硬件电路和软件算法都做了非常多的改进。最终取得了满意的成绩。

  当然,我们现在所做到的成果还是存在着缺陷的,与不少“大佬”之间仍然存在着不小的差距,在充电问题上,虽然充电过程稳定可靠,但充电速度仍然不够理想,一大原因就是在电容电压较低时的充电功率太小,导致充电过程最初较慢。此外,在节能的问题上虽然我们整车的效率已经是比较高的了,但是能耗仍然比较高,这一方面是车模的质量没有减下来,另一方面在一些电路及算法上也仍有不少改进的余地。

  在半年的备赛时间当中,浙江大学电气工程学院以及我们的指导老师姚维老师和韩涛老师都为我们提出了不少改进的建议,为我们提供了巨大的帮助,感谢他们的辛勤付出,我们当前所做出的的成果不仅仅是我们三人的,它凝聚着整个浙江大学智能车团队的智慧与汗水。另外也特别感谢第十六届全国大学生智能汽车竞赛的组委会,感谢他们为我们提供了这么一个平台去展示自己,祝智能车竞赛越办越好。

 

考文献


[1]邵贝贝.嵌入式实时操作系统[LC/OS-Ⅱ(第2 版)[M].北京.清华大学出版社.2004.
[2]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京.清华大学出版社.2004
[3]卓晴, 黄开胜, 邵贝贝. 学做智能车[M]. 1. 北京:北京航空航天大学出版社, 2007.
[4]林瑞光. 电机与拖动基础[M]. 3. 杭州:浙江大学出版社, 2012.
[5]颜文俊. 控制理论CAI教程[M]. 3. 北京:科学出版社, 2011.
[6]徐德鸿, 马皓, 汪槱生. 电力电子技术[M]. 1. 北京:科学出版社, 2006.
[7]卓晴. 如何把大象装进冰箱[EB/OL]. 2020[2021.08.24]. https://zhuoqing.blog.csdn.net/article/details/105126151.
  DeleteEdit
[8]卓晴. 火中取栗[EB/OL]. 2021[2021.08.24]. https://zhuoqing.blog.csdn.net/article/details/115434834.
[9]卓晴. 使用LCC网络补偿设计无线功率系统[EB/OL]. 2021[2021.08.24]. https://zhuoqing.blog.csdn.net/article/details/113802827.
[10] TI. bq24640 High-Efficiency Synchronous Switched-Mode Super Capacitor Charger[EB/OL]. 2015[2021.08.24]. https://www.ti.com.cn/cn/lit/ds/symlink/bq24640.pdf?_ticdt=MTYyNjQyNjIzMXwwMTcyNGVmMDFmYTIwMDA0NWZjNjUxM2EyMDhkMDMwNzMwMDEzMDZiMDA5Nzh8R0ExLjIuMTI0MDU4MzUyOS4xNTkwNDYyMjYwfDA.

■ 附录 程序部分源代码

i

nt core0_main (void) 
{ 
    // 关闭CPU总中断 
    IfxCpu_disableInterrupts(); 
 
    // 关闭看门狗,如果不设置看门狗喂狗需要关闭 
    IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword()); 
    IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword()); 
 
    // 读取总线频率 
    g_AppCpu0.info.pllFreq = IfxScuCcu_getPllFrequency(); 
    g_AppCpu0.info.cpuFreq = IfxScuCcu_getCpuFrequency(IfxCpu_getCoreIndex()); 
    g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency(); 
    g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0); 
 
    //OLED初始化 
OLED_Init();           
 
    // 按键初始化 
    GPIO_KEY_Init(); 
    // LED灯所用P10.6和P10.5初始化 
GPIO_LED_Init(); 
 
    //定时中断 
    CCU6_InitConfig(CCU61, CCU6_Channel0, 1000); //1ms中断,在core1里。 
 
    //充电初始化 
    PowerCtrl_Init(); 
 
    CAMERA_Init(100);  //帧率100// 开启CPU总中断 
    IfxCpu_enableInterrupts(); 
// 延时500ms防止ADC初始错误使舵机偏转 
delayms(500); 
    // 通知CPU1,CPU0初始化完成 
IfxCpu_releaseMutex(&mutexCpu0InitIsOk); 
 
    while (1)   //主循环 
    { 
        if(Camera_Flag == 2) 
        { 
            ImageProcess(); 
        } 
    } 
} 
 
int core1_main (void) 
{ 
    // 开启CPU总中断 
    IfxCpu_enableInterrupts(); 
 
    // 关闭看门狗 
    IfxScuWdt_disableCpuWatchdog (IfxScuWdt_getCpuWatchdogPassword ()); 
 
    // 等待CPU0 初始化完成 
while(!IfxCpu_acquireMutex(&mutexCpu0InitIsOk)); 
 
    MotorInit

以上是关于智能车竞赛技术报告 | 节能信标组 - 浙江大学 - 浙大三队的主要内容,如果未能解决你的问题,请参考以下文章

智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队

智能车竞赛技术报告 | 节能信标组 - 浙江大学 - 浙大三队

智能车竞赛技术报告 | 节能信标组-哈尔滨工业大学紫丁香五队

智能车竞赛技术报告 | 节能信标组 - 兰州交通大学 - 先锋队

智能车竞赛技术报告 | 节能信标组 - 中南民族大学 - 双子星

智能车竞赛技术报告 | 节能信标组 - 安徽工业大学 - 摸鱼大队