车辆路径跟踪预测控制器及FPGA异构加速实现方法与流程

文档序号:18462168发布日期:2019-08-17 02:07阅读:174来源:国知局
车辆路径跟踪预测控制器及FPGA异构加速实现方法与流程
本发明属于控制
技术领域

背景技术
:自主驾驶系统主要由三个模块组成:感知系统、规划系统和控制系统,其中路径跟踪控制系统作为自主驾驶系统的关键技术之一,对其进行研究具有重要意义。路径跟踪控制的主要目标是根据规划出的期望行驶路径,通过对车辆的转向系统及驱动制动系统进行控制,在保证安全的前提下,控制车辆按照期望的道路行驶,完成驾驶过程。因此,如何设计控制器,使车辆系统能够快速的跟踪上期望路径,同时保证车辆行驶过程中的稳定性,并且满足汽车电控系统的实时性、小型化、低成本等需求,一直是车辆路径跟踪控制问题的关键。针对车辆路径跟踪控制,主要有以下问题:1.车辆系统的结构复杂,在传统设计控制器的方法中,使用低自由度车辆模型无法包含车辆全部动态特性,导致设计的控制器无法满足车辆行驶的全部工况需求;而使用高自由度车辆模型进行控制器设计,大大增加了控制器的设计难度,并且为控制器带来了大量的计算负担;2.对于控制器的硬件加速实现,传统基于硬件描述语言的fpga实现方法依赖于手动生成的不同寄存器传输级(rtl)设计,开发人员需要深入了解fpga设备的底层架构,包括时序收敛、状态机控制和精确的时钟周期实现,而且,为满足应用程序对时间的需求,开发过程中需要通过多次调试修改硬件描述语言代码,导致开发难度大,开发周期长;并且车辆控制系统对控制器低成本的计算、存储和设计代价的要求逐渐提升,且对系统的灵活性和通信能力要求逐渐提高,单一的fpga芯片实现方案逐渐不能满足需求。技术实现要素:本发明的目的是采用支持向量机学习车辆系统特性,进而建立车辆支持向量机模型,基于模型预测控制实现车辆路径跟踪的控制,最后对控制器进行fpga异构加速的方法。本发明的步骤是:一、对选择的三个车辆状态量分别进行支持向量机模型训练,每一个模型训练样本包含六个输入和一个输出,①对三个支持向量机模型分别建立如下训练样本:车辆纵向速度vx训练样本:车辆侧向速度vy训练样本:车辆横摆角速度训练样本:②训练完成后得到三个支持向量机模型,分别为:车辆纵向速度vx支持向量机模型车辆侧向速度vy支持向量机模型车辆横摆角速度支持向量机模型以车辆纵向速度vx支持向量机模型进行参数说明,其中nsv1是支持向量的个数,αi和为学习得到的权值,b为阈值,k1(u(i),u(k))为选择的径向基核函数,表达式为:k1(u(i),u(k))=exp(-γ1|u(i)-u(k)|2)γ1>0(7);二、车辆路径跟踪预测控制器①以车辆纵向速度vx支持向量机模型为例,在系统的稳态点处对式(4)进行泰勒级数展开,得到vx支持向量机模型的线性表达式:其中,各个系数的求解公式如下②对模型进一步推导得到增量模型表达式:其中,各个增量表达式如下:同理可以推导得到侧向速度vy和横摆角速度的增量模型表达式:③车辆的横摆角比较小,假设:假设状态下的侧向控制器使用的状态空间模型为:其中状态变量为车辆侧向速度vy、横摆角速度和车辆横摆角ψ,控制输入为车辆前轮转角δ,系统输出为车辆在大地坐标系下的侧向速度vy,在这里将驱动力矩tt、制动力矩tb和车辆纵向速度vx作为扰动项处理,即ω1;公式(14)中的系数矩阵为:④纵向控制器使用的状态空间模型为:其中状态变量为车辆的纵向速度vx、侧向速度vy和横摆角速度控制输入是驱动力矩tt和制动力矩tb,系统输出为车辆的纵向速度vx,在这里将车辆前轮转角δ作为扰动项处理,即ω2;公式(17)中的系数矩阵为:⑤系统侧向运动特性的p步预测方程:当p>1时,系数矩阵计算公式如下:⑥系统未来预测模型:其中δu1(k)=[δu1(k),…,δu1(k+p-1)]t,δt1(k)=[δω1(k),…,δω1(k+p-1)]t,i=[1,1,…,1]t,sx1=[da1,1,da2,1,…,dap,1]t,公式(22)中,δu1(k),δt1(k)分别为p步的被控预测输出、控制输入和系统扰动,sx1,su1,st1,i是相应维数的系统系数矩阵。纵向控制器需要的系统未来预测模型公式(24)中的矩阵结构与侧向控制器的预测模型中的矩阵相同;⑦车辆路径跟踪侧向控制器的目标函数为γu和γy分别是输入项和输出项的加权矩阵;满足系统约束给定的大地坐标系下车辆的侧向速度yr1⑧同理得到车辆路径跟踪控制问题中的纵向控制器的目标函数为其中控制器的给定期望为车辆的纵向速度并且需要满足系统约束纵向控制器的预测时域和控制时域均为10。本发明车辆路径跟踪预测控制器的fpga异构加速实现方法:首先对用.m语言设计的控制算法代码进行c/c++代码化,然后对c/c++代码进行定点数据设计,定点数据相对于浮点数据的特点在于,其数据总位宽保持不变且小数点的位置保持不变,所以一个设计好的定点数据,其数据范围与精度就是固定不变的;车辆路径跟踪预测控制器中涉及的变量较多,且优化求解计算过程中也涉及到许多数据需要进行定点结构设计;同时数据位数设计时,根据fpga基本组成单元的格式,数据位宽尽量设计为8的倍数,否则同样会造成资源的浪费;对所有数据进行总位数和整数位数设计完成后,验证定点化的控制器的准确性,将控制算法编译成arm上的可执行文件,对其准确性进行纯软件方式验证,证明控制器以纯软件方式运行的正确性;此时控制器一次求解时间为10.83ms,不能满足系统的采样时间要求;软件模块开发完成后,对硬件模块进行开发,根据控制器的任务分析,对软件部分和硬件部分进行划分,对控制器代价函数求解算法中的矩阵运算进行fpga加速,其余部分仍在arm上运行;首先进行数据访问模式设计,将数据访问模式设计为streaming接口模式,使得fpga上的加速器以严格的顺序对矩阵中的元素进行访问,同时需要传输的矩阵维数必须与设计加速器时指定的维数相同;在这种模式下,即便加速器在进行内存访问动作时,streaming接口仍然可以传输数据,对数据进行流水线处理;然后对内存结构进行优化,由于结构上的天然差异,arm和fpga在存储器的使用上有着很大的区别,arm处理器可以构建虚拟内存,其在读取数据时可以直接在虚拟内存中进行读取以提高处理器性能,而此时的使用的实际物理内存是许多不连续的分页;设计arm端使用一块连续的实际内存,arm直接将使用的连续实际物理内存的地址发送给fpga上的硬件加速模块,所以此时只需要进行一次寻址操作既可找到所需数据;同时在设计时,考虑到连续内存的存储方式虽然可以优化数据传输性能,但相对分页存储方式会占用更多的资源,对高维数矩阵采用连续内存的存储方式;并在设计时考虑了对分配的连续内存进行释放,以防止资源浪费及内存溢出的问题;内存配置优化完成后,需要匹配合适的数据传输方式才能发挥出系统的性能;本发明根据每个矩阵需要传输的数据量级以及传输方式匹配的内存结构,将传输量超过300字节的矩阵存储方式设计为连续内存方式,数据传输方式设计为axi_dma_simple传输方式;对内存匹配和数据传输优化完成后,需要进一步对与其连接的系统端口进行优化设计,从而完善arm与fpga之间的数据通信;将传输矩阵数据量大的端口设计为acp模式,实现arm与fpga的快速数据交互,将传输矩阵数据量小的端口设计为gpx模式;最后进行并行结构的设计,主要优化的部分为矩阵计算中的for循环,采取流水线的方法进行展开;对于一个由数据读取、计算和数据写出三个步骤组成的计算过程,采用流水线展开的方式,在第一个计算动作发生的同时,第二个计算动作开始了数据读取,在三次计算完成输出结果之前,只需要4个周期即可完成;全部优化完成后得到最后的综合结果,包括fpga各个加速模块的总时延以及资源使用情况,如表2所示;表中统计的预计时钟周期是所有加速模块中的最大值,因为fpga的时钟频率是100mhz,所以满足10ns的固定时钟周期;表2优化综合结果本发明主要针对车辆路径跟踪控制问题及控制器的加速实现问题,利用支持向量机训练模型,并以此模型设计预测控制器,最后对控制器进行fpga异构加速实现。基于支持向量机的车辆路径跟踪预测控制器,是通过对车辆系统的输入输出数据进行处理,从而得到包含全部车辆特性的支持向量机车辆模型,并以此模型设计预测控制器,同时由于支持向量机模型简单,所以有效的降低了控制器的设计难度。对设计的控制器进行fpga异构加速,基于zynq(arm+fpga)设计了软硬件结合的模型预测控制器。通过对算法结构进行分析,将优化求解算法中耗时的矩阵运算从arm上移植到fpga中进行硬件加速,最后计算得到车辆的驱动力矩、制动力矩和前轮转角。基于支持向量机的车辆路径跟踪预测控制器及fpga异构加速实现,能够有效的得到结构简单、包含车辆系统全部信息的面向控制器设计的车辆模型,使控制器满足系统全部工况需求,同时提高车辆路径跟踪预测控制器的计算速度,满足系统实时性要求和低成本的计算、存储需求,同时控制算法在软硬件之间移植方便,大大降低了系统开发难度。与现有技术相比本发明的有益效果是:1.传统的车辆路径跟踪控制器,使用低自由度模型设计时,由于模型无法包含全部动态信息,导致控制器无法适应全部工况需求,而使用高自由度模型设计,由于模型结构复杂,增加了控制器的设计难度,并且为控制器的求解带来了计算负担。使用支持向量机对车辆系统进行学习,能够得到包含被控对象全面信息、结构简单的车辆系统模型,利于控制器的设计。2.对于控制器的硬件加速实现,传统的基于硬件描述语言的fpga实现方法开发难度大、开发周期长,并且汽车控制系统对控制器的低成本计算、存储和设计代价的要求逐渐提升,且对系统的灵活性和通信能力要求逐渐提高,单一的fpga芯片实现方案逐渐不能满足需求。本发明中的fpga异构加速方案可以充分结合arm与fpga的优势,将计算密集部分放在fpga中进行加速处理,将简单计算与大量数据存储放在arm中以节约fpga资源,同时可以充分利用arm处理器丰富的接口资源,提高系统的通信能力。附图说明图1a是车辆模型的训练数据的曲线图----驱动力矩,用于训练支持向量机模型;图1b是车辆模型的训练数据的曲线图----制动力矩,用于训练支持向量机模型;图1c是车辆模型的训练数据的曲线图----前轮转角,用于训练支持向量机模型;图1d是车辆模型的训练数据的曲线图----纵向速度,用于训练支持向量机模型;图1e是车辆模型的训练数据的曲线图----侧向速度,用于训练支持向量机模型;图1f是车辆模型的训练数据的曲线图----横摆角速度,用于训练支持向量机模型;图2是基于fpga异构加速的算法实现流程图;图3a是c/c++代码化后m语言控制器输出数据与arm平台上控制器的输出数据结果对比曲线,其中实线是m语言控制器结果,虚线是arm平台控制器结果;图3b是m语言控制器输出数据与arm平台上控制器的输出数据结果的偏差曲线;图4是对设计的控制器进行异构加速的示意图;图5是实时实验平台,用于进行硬件在环实验,对在fpga上实现的控制器进行验证;图6是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,实时实验平台上车辆对期望路径的跟踪效果;其中实线为期望路径,虚线为本发明所述基于fpga异构加速实现的控制器作用下车辆实际的行驶路径;图7a是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----前轮转角;图7b是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----驱动力矩;图7c是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----横摆角速度;图7d是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----横摆角;图7e是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----质心侧偏角;图7f是工况为路面附着系数为0.8,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----纵向速度;图8是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆对期望路径的跟踪效果。其中实线为期望路径,虚线为本发明所述基于fpga异构加速实现的控制器作用下车辆实际的行驶路径;图9a是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----前轮转角;图9b是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----驱动力矩;图9c是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----横摆角速度;图9d是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----横摆角;图9e是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----质心侧偏角;图9f是工况为路面附着系数为0.4,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作时,车辆在跟踪过程中其他状态量的曲线----纵向速度。具体实施方式本发明是针对车辆路径跟踪控制问题及控制器的加速实现问题,利用基于支持向量机的预测控制算法设计控制器,并对控制器进行fpga异构加速实现,在保证车辆系统稳定性的情况下快速跟踪上期望行驶路径,并且使控制器满足实时性、小型化和低成本的要求。本发明首先根据车辆系统结构及车辆路径跟踪控制的状态量需求选取合适的输入输出变量;其次根据车辆行驶过程中的动态特性范围设计适当的训练样本,并根据训练样本进行车辆的支持向量机模型训练;然后根据训练得到的支持向量机模型,利用模型预测控制算法,在考虑车辆物理结构约束及行驶过程中输入物理量的变化约束,构造代价函数,并通过求解代价函数对应的最优问题,获得控制输入作用于系统;最后对设计的预测控制器进行fpga异构加速实现,使控制器满足实时性、小型化和低成本的要求。从功能上说本发明可以包含以下几个部分:车辆的支持向量机预测模型、路径跟踪预测控制器模块和fpga异构加速实现的控制器。下面详细说明各部分作用:车辆支持向量机模型是通过训练数据学习车辆系统的动态特性,为模型预测控制器的设计提供预测模型;路径跟踪预测控制器模块是对车辆当前状态信息进行采集,进行优化计算得到控制信号:驱动力矩、制动力矩和前轮转角,并将控制信号作用于车辆系统;fpga异构加速实现的控制器是对设计的路径跟踪预测控制器通过软硬件结合的方式进行加速优化,使控制器满足实时性、小型化和低成本的要求。为详细说明本发明的技术内容、构造特点、实现目的等下面结合附图对本发明进行全面说明:本发明的控制目标是,控制器根据车辆系统的状态以及期望信息,控制驱动力矩、制动力矩和前轮转角使车辆在保证稳定性的前提下,能够在高速行驶情况下快速的跟踪上期望的路径。最后对设计的控制器进行fpga异构加速实现,在保证准确性的同时,满足汽车电控系统对实时性、小型化和低成本的需求。本发明提供了一套基于以上运行原理和运行过程的装置。搭建以及运行过程如下:首先根据车辆系统结构及路径跟踪系统的需求选取适当的输入输出变量;其次针对车辆的行驶特性设计适当的训练样本,并根据训练样本进行支持向量机模型训练;然后考虑车辆物理结构的约束及行驶过程中输入物理量的变化约束,利用模型预测控制算法构造代价函数,通过求解对应的优化问题,获得控制输入作用于系统,实现对车辆系统的控制;最后,对设计的控制器进行fpga异构加速实现,利用软硬件结合设计使控制器在保证准确性的同时,满足汽车电控系统对实时性、小型化和低成本的需求。1.面向控制器设计的模型建立首先进行训练数据的选取,从自主车辆路径跟踪控制器的需求角度考虑,需要对车辆的纵向和侧向均进行控制,车辆的纵向特性需要考虑的状态量为车辆纵向速度vx,车辆的侧向特性需要考虑的状态量为车辆的侧向速度vy以及车辆的横摆角速度同时还需要考虑车辆模型自身的输入信号,包括驱动力矩tt、制动力矩tb和前轮转角δ。建立车辆模型的训练数据,包括不同速度下车辆的驱动行为和制动行为,并且因为主要面对的交通环境为高速公路情况,所以车辆的纵向速度主要区域在20m/s~30m/s,同时包含一定的其它速度信息,如低速情况等。在车辆的转向行为方面,包含了车辆前轮的不同动作幅度以及发生转向时不同的车辆速度,并且设计了不同的转向持续时间,建立的车辆模型训练数据如图1所示。为了获得更好的模型训练结果,对所有的训练数据进行归一化处理,使所有数据的范围均在0~1之间,消除量纲影响。由于支持向量机回归函数是单输出结构,所以需要对选择的三个车辆状态量分别进行支持向量机模型训练。同时各个状态量之间存在着耦合关系,因此在训练样本构建时均互相包含,即每一个模型训练样本包含六个输入和一个输出,对三个支持向量机模型分别建立如下训练样本:车辆纵向速度vx训练样本:车辆侧向速度vy训练样本:车辆横摆角速度训练样本:训练样本建立完成后,进行支持向量机模型训练,其中三个模型训练时选择的核函数均为径向基核函数,训练时的参数如表1所示。表1支持向量机模型训练参数训练完成后得到三个支持向量机模型,分别为:车辆纵向速度vx支持向量机模型车辆侧向速度vy支持向量机模型车辆横摆角速度支持向量机模型以车辆纵向速度vx支持向量机模型进行参数说明,其中nsv1是支持向量的个数,αi和为学习得到的权值,b为阈值,k1(u(i),u(k))为选择的径向基核函数,表达式为:k1(u(i),u(k))=exp(-γ1|u(i)-u(k)|2)γ1>0(7)2.车辆路径跟踪预测控制器设计由于车辆路径跟踪系统对控制器的快速性具有较高的要求,所以本发明对训练得到的支持向量机模型进行稳态点线性化处理,以降低算法复杂度和控制器的计算负担。以车辆纵向速度vx支持向量机模型为例,在系统的稳态点处对式(4)进行泰勒级数展开,得到vx支持向量机模型的线性表达式:其中,各个系数的求解公式如下根据线性模型,为了引入积分以减少或消除系统的静态误差,对模型进一步推导得到增量模型表达式:其中,各个增量表达式如下:同理可以推导得到侧向速度vy和横摆角速度的增量模型表达式:由公式(10)的增量模型构建设计控制器需要的系统状态空间模型,根据控制需求不同对侧向控制器和纵向控制器分别设计。由于通常情况下车辆工作在稳定状态,所以车辆的横摆角比较小,因此可以做如下假设:在此假设下,侧向控制器使用的状态空间模型为:其中状态变量为车辆侧向速度vy、横摆角速度和车辆横摆角ψ,控制输入为车辆前轮转角δ,系统输出为车辆在大地坐标系下的侧向速度vy,在这里将驱动力矩tt、制动力矩tb和车辆纵向速度vx作为扰动项处理,即ω1。公式(14)中的系数矩阵为:纵向控制器使用的状态空间模型为:其中状态变量为车辆的纵向速度vx、侧向速度vy和横摆角速度控制输入是驱动力矩tt和制动力矩tb,系统输出为车辆的纵向速度vx,在这里将车辆前轮转角δ作为扰动项处理,即ω2。公式(17)中的系数矩阵为:通过状态方程,进一步推导出系统侧向运动特性的p步预测方程:当p>1时,系数矩阵计算公式如下:由此推导出系统未来预测模型:其中δu1(k)=[δu1(k),…,δu1(k+p-1)]t,δt1(k)=[δω1(k),…,δω1(k+p-1)]t,i=[1,1,…,1]t,sx1=[da1,1,da2,1,…,dap,1]t,公式(22)中,δu1(k),δt1(k)分别为p步的被控预测输出、控制输入和系统扰动,sx1,su1,st1,i是相应维数的系统系数矩阵。经过同样的推导过程可以整理出纵向控制器需要的系统未来预测模型公式(24)中的矩阵结构与侧向控制器的预测模型中的矩阵相同。根据车辆路径跟踪系统的控制要求,保证车辆能够快速稳定的跟踪期望路径(xr,yr),并且为了车辆系统跟踪路径时的平顺性,系统控制动作(δδ,δtt,δtb)不能过大,同时还要满足控制系统的硬约束条件。因此,车辆路径跟踪侧向控制器的目标函数为满足系统约束上述优化问题,系统的预测时域和控制时域均为50,yr1是给定的大地坐标系下车辆的侧向速度序列,定义如下γu和γy分别是输入项和输出项的加权矩阵。同理得到车辆路径跟踪控制问题中的纵向控制器的目标函数为其中控制器的给定期望为车辆的纵向速度并且需要满足系统约束纵向控制器的预测时域和控制时域均为10。3.控制器fpga异构加速实现异构加速的设计流程与传统fpga设计流程有着一定的区别,主要流程如图2所示,其主要包括控制算法设计、软件模块开发与测试、硬件模块开发与测试以及系统测试四个部分。本发明中,为了对设计的控制器进行硬件实现,首先对用.m语言设计的控制算法代码进行c/c++代码化,然后为了加快fpga计算速度及资源使用,对c/c++代码进行定点数据设计,定点数据相对于浮点数据的特点在于,其数据总位宽保持不变且小数点的位置保持不变,所以一个设计好的定点数据,其数据范围与精度就是固定不变的。车辆路径跟踪预测控制器中涉及的变量较多,且优化求解计算过程中也涉及到许多数据需要进行定点结构设计。同时数据位数设计时,根据fpga基本组成单元的格式,数据位宽尽量设计为8的倍数,否则同样会造成资源的浪费。对所有数据进行总位数和整数位数设计完成后,验证定点化的控制器的准确性,将控制算法编译成arm上的可执行文件,对其准确性进行纯软件方式验证,控制器的输出数据与m语言控制器输出数据的对比结果如图3所示。实线是m语言的控制器输出曲线,虚线是运行在arm上的控制器输出曲线,二者的偏差在10-5,可以证明控制器以纯软件方式运行的正确性。此时控制器一次求解时间为10.83ms,不能满足系统的采样时间要求。软件模块开发完成后,对硬件模块进行开发,根据控制器的任务分析,对软件部分和硬件部分进行划分,本发明对控制器代价函数求解算法中的矩阵运算进行fpga加速,其余部分仍在arm上运行,异构加速示意图如图4所示。首先进行数据访问模式设计,将数据访问模式设计为streaming接口模式,使得fpga上的加速器以严格的顺序对矩阵中的元素进行访问,同时需要传输的矩阵维数必须与设计加速器时指定的维数相同。在这种模式下,即便加速器在进行内存访问动作时,streaming接口仍然可以传输数据,对数据进行流水线处理。然后对内存结构进行优化,由于结构上的天然差异,arm和fpga在存储器的使用上有着很大的区别,arm处理器可以构建虚拟内存,其在读取数据时可以直接在虚拟内存中进行读取以提高处理器性能,而此时的使用的实际物理内存是许多不连续的分页。而fpga的硬件结构决定了其只能使用实际的物理内存进行数据的存储。所以本发明设计arm端使用一块连续的实际内存,在这种方式下,arm可以直接将使用的连续实际物理内存的地址发送给fpga上的硬件加速模块,所以此时只需要进行一次寻址操作既可找到所需数据。同时在设计时,考虑到连续内存的存储方式虽然可以优化数据传输性能,但相对分页存储方式会占用更多的资源,所以本发明对高维数矩阵采用连续内存的存储方式。并在设计时考虑了对分配的连续内存进行释放,以防止资源浪费及内存溢出的问题。这样减少了fpga在读取arm上数据时进行的寻址操作,同时减少了arm端将分页物理内存发送到fpga端的内存头地址存储页中的操作,加快了数据传输速度。内存配置优化完成后,需要匹配合适的数据传输方式才能发挥出系统的性能。本发明根据每个矩阵需要传输的数据量级以及传输方式匹配的内存结构,将传输量超过300字节的矩阵存储方式设计为连续内存方式,数据传输方式设计为axi_dma_simple传输方式。对内存匹配和数据传输优化完成后,需要进一步对与其连接的系统端口进行优化设计,从而完善arm与fpga之间的数据通信。本发明将传输矩阵数据量大的端口设计为acp模式,以进行缓存的快速刷新,实现arm与fpga的快速数据交互,将传输矩阵数据量小的端口设计为gpx模式。最后进行并行结构的设计,主要优化的部分为矩阵计算中的for循环,采取流水线的方法进行展开。对于一个由数据读取、计算和数据写出三个步骤组成的计算过程,采用流水线展开的方式,在第一个计算动作发生的同时,第二个计算动作开始了数据读取,以这样的方式,在三次计算完成输出结果之前,只需要4个周期即可完成,大大的节约了计算时间。全部优化完成后得到最后的综合结果,包括fpga各个加速模块的总时延以及资源使用情况,如表2所示。表中统计的预计时钟周期是所有加速模块中的最大值,因为fpga的时钟频率是100mhz,所以满足10ns的固定时钟周期。4.硬件在环实验对车辆路径跟踪预测控制器进行fpga异构加速实现后,进一步通过硬件在环实验验证控制器的有效性与实时性。闭环试验验证平台主要由三部分组成:zc706开发板、microautobox实时仿真系统和电脑。如图5所示,zc706用于对控制器进行硬件实现,通过以太网与microautobox进行连接,实现二者之间的实时通信;microautobox是实时仿真系统,运行被控对象的数学模型,实验中使用的型号为ds1401,本发明中在microautobox上运行车辆的数学模型;电脑上运行的设计软件和数据检测软件为sdsoc、matlab和controldsek。在路面附着系数为0.8的情况下进行实验,初始车速为20m/s,需要车辆以25m/s的速度进行巡航,在t时刻跟踪参考路径进行变道操作。图6是车辆对期望路径跟踪的实验结果,其中实线为给定的期望路径,虚线是车辆实际的行驶路径,从曲线中可以看出车辆路径跟踪的效果良好。图7是车辆在路径跟踪过程中其他状态量的曲线,从各个状态量的曲线图中可以看到,在整个跟踪过程中车辆保持着很好的稳定性。为了进一步验证,在路面附着系数为0.4的情况下进行实验,车辆初始速度为20m/s,期望巡航速度仍为25m/s。图8是该工况下车辆对期望路径的跟踪效果图,从跟踪曲线可以看到,车辆依然能够快速跟踪上期望路径,但是出现了较为明显的侧向位移超调现象。图9是跟踪过程中其他状态量的结果曲线,可以看出在该种工况下,车辆的状态变化范围增大,但是控制器仍然能够保证车辆处于稳定状态。从实验结果可以看到,车辆路径跟踪效果良好,可以在高速情况下仍能稳定且快速的跟踪上期望路径。由此可见,本发明对车辆路径跟踪问题设计的预测控制器能够很好的解决路径跟踪问题。为了体现本发明的优势,表3给出了matlab环境、使用纯软件方法及控制器在arm处理器上运行与本发明的时间对比,其中matlab工作在3.4ghz的主频下,处理器型号为intel(r)core(tm)i7-6700cpu@3.40ghz,arm处理器的时钟频率为666.6mhz。从表中可以看到,纯软件方案一次计算时间为10.8ms,在不考虑以太网通信时间的情况下仍然不能满足采样时间的要求,而本发明一次求解时间为3.95ms,提升了2.73倍,这充分说明了fpga异构计算加速车辆路径跟踪预测控制器的有效性。表3方案性能比较运行方式matlab环境arm实现fpga加速实现时间(ms)8.710.83.95。公式1:u(i):车辆纵向速度vx训练样本输入数据的第i个向量;y(i+1):车辆纵向速度vx训练样本输出数据第i+1个元素;tt(i):训练样本中驱动力矩的第i个元素;tb(i):训练样本中制动力矩的第i个元素;δ(i):训练样本中车辆前轮转角的第i个元素;vx(i):训练样本中纵向速度的第i个元素;vy(i):训练样本中侧向速度的第i个元素;训练样本中横摆角速度的第i个元素;vx(i+1):训练样本中纵向速度的第i+1个元素;公式2:车辆侧向速度vy训练样本输入数据的第i个向量;车辆侧向速度vy训练样本输出数据第i+1个元素;vt(i+1):训练样本中侧向速度的第i+1个元素;公式3:车辆横摆角速度训练样本输入数据的第i个向量;车辆横摆角速度训练样本输出数据第i+1个元素;训练样本中横摆角速度的第i+1个元素;公式4:车辆纵向速度在k+1时刻的预测值;u(k):k时刻系统的输入量;u(i):车辆纵向速度模型中的第i个支持向量;公式5:车辆侧向速度在k+1时刻的预测值;u(i):车辆侧向速度模型中的第i个支持向量;nsv2:车辆侧向速度模型的支持向量的个数;和车辆侧向速度模型学习得到的权值;车辆侧向速度模型的阈值;k2(u(i),u(k)):径向基核函数;公式6:车辆横摆角速度在k+1时刻的预测值;u(i):车辆横摆角速度模型中的第i个支持向量;nsv3:车辆横摆角速度模型的支持向量的个数;和车辆横摆角速度模型学习得到的权值;车辆横摆角速度模型的阈值;k3(u(i),u(k)):径向基核函数;公式7:γ1:车辆纵向速度模型中核函数参数公式8:a1,b1,c1,d1,e1,f1,g1,为车辆纵向速度模型线性化后的模型参数;tt(k):驱动力矩k时刻的值;tb(k):制动力矩k时刻的值;δ(k):前轮转角k时刻的值;vx(k):车辆纵向速度k时刻的值;vy(k):车辆侧向速度k时刻的值;车辆横摆角速度k时刻的值;公式10:车辆纵向速度k+1时刻和k时刻的差值;δtt(k):驱动力矩k时刻和k-1时刻的差值;δtb(k):制动力矩k时刻和k-1时刻的差值;δδ(k):前轮转角k时刻和k-1时刻的差值;δvx(k):纵向速度k时刻和k-1时刻的差值;δvy(k):侧向速度k时刻和k-1时刻的差值;横摆角速度k时刻和k-1时刻的差值;公式11:tt(k-1):驱动力矩k-1时刻的值;tb(k-1):制动力矩k-1时刻的值;δ(k-1):前轮转角k-1时刻的值;vx(k-1):纵向速度k-1时刻的值;vy(k-1):侧向速度k-1时刻的值;横摆角速度k-1时刻的值;公式12:车辆侧向速度k+1时刻和k时刻的差值;b2,c2,d2,e2,f2,g2:车辆侧向速度模型线性化后的模型参数;车辆横摆角速度k+1时刻和k时刻的差值;b3,c3,d3,e3,f3,g3:车辆横摆角速度模型线性化后的模型参数;公式13:ψ:车辆横摆角公式14:侧向控制器状态量k+1时刻和k时刻的差值;δx1(k):侧向控制器状态量k时刻和k-1时刻的差值;δu1(k):侧向控制器输入量k时刻和k-1时刻的差值;δω1(k):侧向控制器扰动项k时刻和k-1时刻的差值;侧向控制器系统输出k时刻的预测值;y1(k-1):侧向控制器系统输出k-1时刻的值;a1,1,b1,0,c1,0,d:侧向控制器系数矩阵公式15:车辆大地坐标系下侧向速度k时刻的预测值;公式17:纵向控制器状态量k+1时刻和k时刻的差值;δx2(k):纵向控制器状态量k时刻和k-1时刻的差值;δu2(k):纵向控制器输入量k时刻和k-1时刻的差值;δω2(k):纵向控制器扰动项k时刻和k-1时刻的差值;纵向控制器系统输出k时刻的预测值;y2(k-1):纵向控制器系统输出k-1时刻的值;侧向控制器系数矩阵;公式18:车辆纵向速度k时刻的预测值;公式20:侧向控制器在k时刻预测的第p步的系统输出;δu1(k+p-i):侧向控制器k时刻开始第p-i步的输入增量;δω1(k+p-i):侧向控制器k时刻开始p-i步的扰动增量;公式24:纵向控制器在k时刻预测的p步系统被控输出矩阵;δu2(k):纵向控制器系统输入增量矩阵;δt2(k);纵向控制器系统扰动增量矩阵;sx2,su2,st2,i:相应维数的系统系数矩阵;公式27:k时刻开始第1步的给定的大地坐标系下期望车辆的侧向速度;k时刻开始第2步的给定的大地坐标系下期望车辆的侧向速度;k时刻开始第p步的给定的大地坐标系下期望车辆的侧向速度;公式29:k时刻开始第1步的给定期望车辆纵向速度;k时刻开始第2步的给定期望车辆纵向速度;k时刻开始第p步的给定期望车辆纵向速度。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1