1 实时系统测试
1.1 测试平台搭建
由于运动控制模型是在Simulink中进行搭建的,软件联合仿真验证属于仿真层面的验证,而实时系统测试的目的为了检验控制模型编译成C代码后是否具有实时性,以及检验自动生成的代码和用于代码生成的模型是否具有一致性。
基于NI-PXI实时系统搭建了控制模型的测试平台,选用搭载有PXI-8119控制器以及PXI-8512双通道CAN通信板卡的PXI-1044机箱组
控制模型测试过程的计算部分在PXI控制器中完成,测试平台的基本结构如图所示。测试平台主要由Windows环境的PC和PharLap环境的PXI系统组成,PC和PXI系统之间通过以太网进行通讯。在PC中使用VeriStand软件对PXI系统进行部署,包括编译的动力学模型dll文件和运动控制模型dll文件,同时PC可以通过以太网对PXI系统进行数据采集和状态监控。
搭建测试平台的工作主要是将veDYNA动力学模型和运动控制模型文件部署到PXI系统中,通过VeriStand软件配置好相应接口。
veDYNA动力学模型首先需要在Simulink中配置好输入输出接口,然后使用软件的自动代码生成功能将模型编译成C代码,在编译界面下需选择NI的编译平台。
运动控制模型依靠MATLAB/Simulink自带的自动代码生成功能进行编译,由于Simulink中的S-Function模块和quadprog二次规划求解函数不支持编译功能,因此采用了Simulink中支持编译功能的MATLAB Function模块进行MPC控制算法的编写,二次规划问题采用Simulink自带的MPC模板中支持编译功能的mpcqpsolver函数进行求解,运动控制模型其余部分使用Simulink的基本模块进行搭建,配置好控制模型的相应接口,编译辅助文件选用NIVeriStand.tlc,配置情况如图所示。
1.2 测试结果
通过VeriStand将veDYNA动力学模型和运动控制模型加载到NI-PXI实时系统中进行测试,测试结果如图所示。由图可知,车辆能顺利跟踪期望路径行驶,车辆的实际位姿与期望位姿基本重合,当车辆后轴中心到达路径终止点时,车辆横摆角大小趋近零附近,满足车身与车位基本保持平行的要求。
1.3 本节代码
本节的代码与之前的代码基本没什么区别,主要的问题就是需要把车辆动力学模型和MPC控制器模型编译成C语言,本节提供了能编译成C语言的MPC的simulink模型,以及包含输入输出接口的veDYNA车辆动力学模型,可以参考一下这两个模型
模型只供参考,是运行不了的,由于现在我的电脑上没有veristand软件了,因此模型中看不到输入输出接口的框图,可以输入输出接口的文字描述
模型链接
2 智能小车试验
为了更符合实际的检验控制模型的控制效果,以及更直观的观测试验结果,本文基于树莓派(Raspberry Pi)和Ford Fiesta ST Rally车模进行了智能小车试验。从前文的仿真结果和实时系统测试结果来看,基于MPC算法的路径跟踪控制器能够很好的控制目标车辆完成路径跟踪的功能,为接下来的试验提供了支撑条件。
2.1 试验平台搭建
选用Traxxas公司的Ford Fiesta ST Rally车模作为被控车辆,如图所示,车模与真实车辆相似,大小约为Ford Fiesta ST实车的 ,车模具有完整的悬架系统和传动系统,并搭载了转向舵机和驱动电机,驱动形式为全时四驱。
选用树莓派作为智能小车的控制器,如图所示。树莓派是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有USB接口和以太网接口,可连接键盘、鼠标和网线,并且3代以后的版本集成了无线网卡和蓝牙,具有低能耗、移动便携性、GPIO等特性。
搭建的的智能小车试验平台基本结构如图所示。首先,将Simulink搭建的运动控制模型编译到树莓派中;然后,树莓派通过自身的GPIO口将控制信号传递到驱动电机和转向舵机中,控制小车横纵方向的运动;另外,小车上搭载的光电编码测速传感器和陀螺仪实时通过GPIO口将车速信号和车身姿态信号传回树莓派的控制模型中,以此循环实现路径跟踪的功能。
树莓派的GPIO接口支持Python和C(C++)语言的调用,MATLAB自从2017a版本后,就具有树莓派的硬件支持包,因此为了将控制模型编译进树莓派中,需要在MATLAB中安装树莓派硬件支持包,如图所示。Simulink与树莓派之间的通讯可以通过网线或WIFI实现,如图所示配置好树莓派和Simulink之间的WIFI通讯,将编译好的代码输入到树莓派中。
由于Ford Fiesta ST Rally车模是一款手柄控制的遥控车,为了更好的控制小车的启停操作,需要对小车进行一些改装。为了实时获取小车车速和车身姿态信息,在小车上搭载了光电编码测速传感器和具有陀螺仪的树莓派扩展板Sense HAT,如图所示。为了使驱动电机具备制动功能,更换小车驱动电机控制板,将驱动板和转向舵机控制更换为通过树莓派GPIO口进行控制,改装后的车辆如图所示。
2.2 试验结果
根据智能小车的相关参数,确定小车跟踪单步泊车路径所需的最小车位尺寸 ,根据车位尺寸、约束条件和泊车路径曲线确定泊车起始区域一,在区域一中任取一点进行路径规划;另外由于车辆模型的变更,还需要调整模型预测控制器的车辆预测模型、预测时域和控制时域等参数。
将控制模型编译进树莓派中控制小车进行试验,试验结果如图所示。
经过多次试验,有时小车未能准备驶入停车位,分析原因主要有以下几个方面:
(1)智能小车的车辆结构与真实汽车存在差异,且由于加工等原因车辆自身结构存在误差,如转向机构左右极限范围不一致,转向舵机和驱动电机变化为非线性变化,且控制响应存在一定延迟,不易控制,从而影响到泊车效果。
(2)小车上搭载的光电编码测速传感器测速时存在一定的误差,由于泊车是车辆低速的运动过程,相比于车辆中高速的运动过程误差更大;并且树莓派扩展板Sense HAT中搭载的陀螺仪也存在一定的误差,使得反馈回控制模型的横摆角数据不准确,对泊车过程的精度产生影响。