最近刚把一套 ADAS 转向台架 HIL 的整体硬件从搭建到调试跑通,整个过程比想象中复杂,也远比想象中有价值。回头看,最难的部分不是车辆动力学模型,也不是测试用例怎么编辑,而是硬件这一层:设备种类多、接口复杂、机械台架和电气系统还搅在一起。今天把 ADAS 智能辅助驾驶系统硬件在环测试里需要用到的硬件组成、选型思路、接线方式和调试经验一次说清楚。文章内容主要围绕 HIL 测试的硬件展开,尤其是转向台架 HIL 调试时容易踩的坑,适合刚接触硬件在环测试的工程师、台架设计人员,以及想了解车载测试硬件的学生。
1. 为什么ADAS测试要从场地搬到实验室:HIL硬件选型的第一课
1.1 HIL 测试到底在测什么
硬件在环测试,英文叫 Hardware-in-the-Loop,简称 HIL。它的核心逻辑很简单:把车辆换成实时运行的仿真模型,把真实的控制器 ECU 和执行器接进这个仿真回路里。对于 ADAS 而言,被测对象通常是智能驾驶域控制器或者某个功能模块,比如转向控制单元、自动紧急制动控制单元,我们要在实验室里制造一个“虚拟但信号真实”的行车环境。
跟实车测试相比,HIL 最大的优势是可控、可重复、不依赖于场地和天气。AEB 测试你要复现“前车急刹”这个场景,实车做一百次有一百个随机变量,而在 HIL 里每一次的输入信号完全相同,便于对比版本差异。更重要的是,HIL 能覆盖大量“危险但不方便拿真实车辆去测”的场景,比如车辆在冰雪路面侧滑、行人鬼探头、隧道内光线突变。这些场景在场地测试时要么风险高,要么不可控,HIL 就能通过模型和传感器仿真轻松构造出来。
ADAS HIL 和传统动力总成 HIL 的差异,主要在于传感器层。传统 HIL 只需要控制 CAN 信号、模拟转速和温度即可,ADAS HIL 则要额外处理毫米波雷达的目标回波、摄像头的视频图像、超声波雷达的 echo 信号、GPS 卫星信号等。所以 ADAS HIL 的硬件系统更“杂”,既要有实时计算平台,又要有射频和视频仿真设备,还要有转向台架这类能“动”的硬件。
1.2 一套 ADAS HIL 硬件的完整组成清单
很多第一次接触 HIL 的朋友会以为它无非就是“一台电脑加一个机柜”。实际上,一套能跑 ADAS 测试的 HIL 系统,硬件构成可以分成六个大类。
| 硬件类别 | 典型设备 | 核心作用 |
|---|---|---|
| 实时仿真平台 | PXI/PXIe 机箱、实时控制器、FPGA 板卡 | 运行车辆动力学模型、传感器模型,保证仿真在固定步长内实时完成 |
| 总线通信接口 | CAN/CANFD 板卡、LIN 板卡、FlexRay 板卡、车载以太网板卡 | 让仿真平台与被测 ECU 的真实总线网络连通 |
| 传感器仿真设备 | 毫米波雷达回波模拟器、视频注入卡、超声波 echo 模拟器、GNSS 信号模拟器 | 把虚拟世界的目标和环境信息,转换为 ECU 能“感知”的真实物理信号 |
| 故障注入与测量单元 | 故障注入板卡(FIU)、可编程电阻、示波器、数据采集卡 | 制造短路、断路、信号漂移等故障,同时监测关键节点信号 |
| I/O 与信号调理 | 模拟量输入输出板卡、数字量 IO、PWM 板卡、信号调理模块 | 连接 ECU 引脚和台架传感器,完成电平转换和滤波 |
| 执行器与机械负载 | 转向台架、制动踏板总成、油门执行器、负载电机 | 给 ECU 提供真实的机械负载和操作输入,验证执行器层面的响应 |
这里特别要提一下故障注入单元,也就是 FIU。ADAS 控制器对传感器信号异常非常敏感,比如摄像头被泥水遮挡、雷达天线信号丢失、转向扭矩传感器线束接触不良。FIU 能在线束通路里串入继电器和电阻网络,通过上位机指令实时断开某一条线、把它对地短路或者串联大电阻,从而模拟真实车辆上的电气故障。这是硬件在环测试区别于纯软件测试的关键能力之一。
硬件选型时,第一个要确定的不是买多贵的设备,而是被测 ECU 有哪些引脚、用了哪些通信协议、需要输出多大功率。先把这些信息整理成引脚表,再来选板卡和连接器,否则就会出现“买了高速视频注入卡,结果控制器根本没有视频输入接口”这种低级问题。
2. 转向台架是整台 HIL 里“最重”的硬件
2.1 转向台架的机械结构与硬件组成
转向台架 HIL 调试绝对是整个 ADAS HIL 项目里最考验耐心的环节。转向台架说通俗点,就是把一套真实的方向盘、转向柱、电动助力转向器(EPS)、扭矩传感器、角度传感器和加载电机按整车安装姿态固定在铝型材底座上。驾驶员或测试系统转动方向盘,转向器产生助力,负载电机模拟车轮反馈回来的地面力。
我们这套台架的机械结构主要由五部分组成。
方向盘和转向柱负责模拟驾驶员输入。扭矩传感器安装在转向柱上,用来测量驾驶员作用在方向盘上的力矩,单位通常是牛顿米(Nm)。角度传感器测量方向盘转角,单位是度。这两个信号会被送到被测的转向控制器和 HIL 实时系统里。
EPS 总成是最核心的部件,它接收整车控制器发来的助力指令,通过电机提供转向助力。它的电气接口一般包括电源、CAN 通信和电机三相线。台架调试时最关键的,就是让 EPS 认为自己是装在一辆“能开”的车上,而不是被架在架子上空转。
加载电机用来模拟路面反馈力矩。车辆行驶时,轮胎和地面之间会产生回正力矩、摩擦力矩和阻尼力矩,表现为驾驶员手上有“路感”。在 HIL 台架上,我们用一台伺服电机通过减速机构联到转向器末端,按实时模型算出的目标力矩输出反作用力,让 EPS 和驾驶员都能感受到真实的路感。
台架底座是整个系统的物理支撑,必须足够牢固。我们用的是重型铝型材加钢板组合,重量接近两百公斤,否则加载电机发力瞬间整个台架会抖,角度传感器信号就会带进大量噪声。
2.2 台架与实时控制系统之间的数据通路
转向台架不是孤立的一堆机械件,它必须接入 HIL 实时系统才能形成完整闭环。实时机通过模拟量或 CAN 信号读取扭矩传感器和角度传感器的数值,经过车辆动力学模型计算后,输出目标方向盘力矩或目标转速给加载电机的驱动器。加载电机驱动器根据指令驱动电机运转,机械上推动转向器运动,ECU 感受到变化后又会通过 CAN 输出新的助力指令,整个回路就这样以固定周期不停运转。
这个结构听起来不复杂,但真正的难点是时间同步。实时系统里车辆动力学模型以 1 毫秒或更小的步长运行,转向台架采集和加载指令的输出必须跟模型的步长对齐。我们用的是 FPGA 板卡直接采集编码器信号和扭矩信号,FPGA 的处理时延在微秒级,比用普通 IO 板卡经过操作系统调度再处理要稳定得多,这也是 HIL 系统普遍采用 FPGA 做快速 I/O 的原因。
连接台架和实时机时还要注意信号的参考地。转向台架的电机驱动是强电设备,电源噪声很容易灌进信号地。我们处理的办法是:信号地单独一点接地,电机驱动器的功率地跟信号地分开走线,在传感器信号输入端加隔离模块,所有屏蔽层只在实时机这一端接地,避免形成地环路。
2.3 转向台架调试的三个关键步骤
台架装完之后不能直接跑整车测试,先要做三个基础调试动作,这一步省略后面会非常痛苦。
第一是零点标定。扭矩传感器在无外力状态下读数应该接近 0,但机械安装误差会造成零点偏移。如果忽略这个偏移,车辆模型里的驾驶员输入力矩从一开始就是错的,LKA(车道保持辅助)测试时控制器会以为驾驶员在“抢方向盘”,导致功能异常退出。标定方法很简单:台架断电状态下,在软件里记录传感器原始值作为偏移,然后在后续采样值中减去即可。
第二是加载电机动态响应调节。加载电机虽然功率大,但它本身有转动惯量、摩擦和响应延迟,如果直接把模型计算出的目标力矩发过去,实际作用在转向器上的力矩会和目标值差很多。我们需要对加载电机做闭环控制,通常是以实际力传感器或者电机电流环作为反馈,按 PID 或者更高级的前馈加反馈策略进行补偿。这一步调得好不好,直接决定驾驶员手感够不够真实,也决定自动转向功能测试中车辆轨迹是否平滑。
第三是安全限位逻辑。台架调试过程中,模型参数设置错误是常有的事,一瞬间加载电机就可能把方向盘打到极限位置。如果没有机械限位和软件限位,转向器可能在几秒钟内损坏。我们做了三重保护:机械限位螺栓、电气限位开关、实时系统里的软件限位。软件限位最灵活,在检测到角度达到限制值后立即把目标力矩置零,同时触发急停继电器切断伺服驱动器使能。这套逻辑在第一次上电前就要完善,不能等出了问题再补。
3. 传感器仿真硬件:ADAS HIL 和传统 HIL 最大的区别
3.1 毫米波雷达目标仿真:让 ECU“看见”看不见的目标
ADAS 的感知来源不仅限于总线信号,毫米波雷达接收的是真实的高频电磁波。要在 HIL 测试里模拟雷达目标,就需要一个雷达回波模拟器,它接收雷达天线发出的电磁波,在硬件层面对信号进行延时和频率搬移,再把模拟出的目标回波返回给雷达。
射频模拟器的基本工作原理是:当雷达发射调频连续波或脉冲波时,模拟器捕获射频信号,根据设定目标的距离、相对速度和反射截面积,实时生成带有对应延迟、多普勒频移和功率衰减的回波信号。听起来像黑魔法,但实际测试中频率很低或功控不好,就会直接在 ECU 里出现目标丢失或者出现假目标。
我的经验是,雷达模拟器使用时有三个容易忽略的细节。第一是天线对准和高度差,模拟器的接收天线要尽量对准雷达天线中心,高度差太大回波能量就会减弱,导致远距离目标测不出;第二是避免周围金属反射体,台架周围如果有金属工装、线缆桥架,会形成多径反射,ECU 看到的目标位置会反复跳动;第三是目标数量上限,入门级模拟器往往只能支持两三个目标,在做多目标场景时要注意配置。
毫米波雷达模拟器在选型时要格外关注带宽和工作频率,常见的是 77GHz 频段,少数老项目还在用 24GHz。买错频段会导致整套模拟器无法正常工作,这个错误在项目里还真出现过。
3.2 摄像头视频信号注入:图像同步永远是第一位
摄像头控制器接收的是一路视频信号流,通常通过串行链路连接到域控制器。在 HIL 里,我们不能把摄像头放到真实道路上去,所以用视频注入卡代替摄像头,输出仿真软件渲染好的画面。视频注入卡把 HIL 主机生成的虚拟场景图像数据编码成控制器要求的视频格式,通过同轴电缆或者低压差分信号链路送到控制器。
做视频注入时,最头疼的问题是帧同步和时序要求。摄像头数据不是孤立的,控制器通常需要同时读到车辆速度、转向角、时间戳等信息来判断场景是否合理。如果视频画面里前车已经在正前方 30 米,但总线上的车速还是 80km/h 的刹停前状态,控制器很容易产生误报或者降级。解决办法是让视频注入卡接受实时系统的同步脉冲信号,每帧图像按照全局时间戳生成,同一时刻的总线数据必须和画面内容保持一致。
另外还有图像质量对标定结果的直接影响。我在半实物测试里踩过一个坑:视频注入卡的输出亮度和对比度跟原车摄像头有差异,导致车道线识别算法在测试里频繁退出。后来在图像生成模块里加了亮度增益、对比度调整和镜头畸变模拟,尽量接近真实摄像头的物理特性,才能得到跟实车表现一致的结果。
3.3 超声波、GNSS 和激光雷达仿真
除了雷达和摄像头,ADAS 系统还有很多其他传感器,它们各自的仿真硬件不一样。
超声波雷达在泊车辅助里用得最多,它是通过声波飞行时间原理测量距离的。HIL 测试一般用回波模拟器生成超声波 echo 信号,模拟器根据目标距离计算出合适的延迟时间,在正确时刻向 ECU 返回一段模拟回波。这个硬件便宜,但调试时要特别注意,超声波传感器对同一个 echo 信号可能因为多路径反射而产生多段回波,如果不处理,泊车测试里障碍物位置会忽近忽远。
GNSS 信号模拟器用于在 HIL 里模拟 GPS 和北斗信号,输出真实射频信号给导航模块。使用时需要在地理坐标模型里配置路线轨迹和卫星星历,有些高精度定位方案还要支持 RTK 差分信号模拟。这类设备选型时重点看通道数和差分信号支持,否则高精地图和高精定位测试做不了。
激光雷达仿真在现有产品里相对少见,因为激光雷达输出的是点云数据,一般通过以太网传输。常用的方式有两种:一是直接用软件生成点云保存在 HIL 系统里,以网络报文形式发给控制器;二是用专门的激光雷达仿真器,把点云数据调制到光信号,通过光纤送给激光雷达控制器。前者成本低但只能测软件层,后者更接近真实硬件链路,成本也成倍上升。
4. 从接线到第一次上电:一台 HIL 台架的完整搭建流程
4.1 电气布局、接线与供电规划
HIL 台架电气部分是最容易出乱子的地方,各种线束像蛛网一样交错,一旦接错,轻则信号异常,重则烧板卡。我们采用的方法是电源线和信号线严格分层走线,线槽内部用隔板分开,信号线统一用屏蔽双绞线,电源线用粗规格线缆,尽量远离传感器信号线。
供电规划也要提前做好。EPS 总成、加载电机驱动器、实时机、显示器和网络交换机,它们的电压和功率需求差异很大。EPS 和驱动器通常是 12V 或 24V 直流,但启动瞬间电流可能很大,如果直接用实验台电源,很容易触发过流保护。我们给 EPS 配了一台可编程直流电源,能设置电流限制和电压斜率,驱动器则用单独的大功率直流电源供电。所有电源的机壳统一接地,避免各设备之间存在电位差。
4.2 实时模型与 IO 映射
硬件接好了,还要让软件知道哪根线、哪个端口对应哪个信号。在实时机的 IO 配置界面里,我们需要建立一张完整的映射表,比如“AI0 通道 0:读取扭矩传感器电压 0-5V,对应 0-10Nm 力矩”“AO2:输出加载电机目标扭矩指令,对应 0-10V”。这个步骤看起来简单,却是调试中最容易出错的地方。如果映射表把扭矩信号和角度信号搞反了,台架一动作,模型看到的力矩变化和角度变化方向不一致,整个转向模型就乱掉了。
映射完成后,一定要先做信号级校验,不接执行器,直接用信号发生器或短接线对每路 IO 逐一验证。验证的方式是:软件里读取实时值,同时用万用表或者示波器测物理接口的电压,两边必须一致。这里我建议做个简单表格记录每个通道的实测值,测一个记一个,不建议“搭完再统一查”。
4.3 第一次上电的启动流程
第一次上电是整个项目的高风险时刻,我一般按照下面这个顺序来操作。
先把实时系统启动起来,加载车辆动力学模型,但不激活转向台架的控制输出。确认模型运行正常,没有报错。观察扭矩传感器和角度传感器的读数,看看是否有明显异常。如果是偏向一个方向的固定值,多半是零点没标定,先做零点补偿。
然后打开 CAN 通信,确认被测 ECU 能正常接收整车仿真发出的车速、发动机状态、挡位等信号。这一步很关键,因为很多 ECU 在收到无效信号时会进入故障模式。以一个转向控制器为例,如果没有车速信号,它可能直接认为车辆处于静止状态,助力逻辑完全不工作。
确认 CAN 通信正常后,再激活台架的加载控制。先用很小幅度的扭矩指令让加载电机慢慢动起来,观察方向盘转动方向跟模型计算的方向是否一致。第一圈转动测试时手一定不能离开急停按钮,发现异常立即断电。
最后才是完整跑一个简单的测试场景。我们第一个场景通常选 AEB 静态目标车,因为不需要转弯,可以从头到尾验证雷达、摄像头、总线信号和制动执行器的协调性。
4.4 台架调试中的几个典型参数示例
以我们常用的转向 EPS 信号为例。扭矩传感器输出范围是 -10Nm 到 +10Nm,传感器给实时机的模拟电压是 0.5V-4.5V,经过 12 位 AD 转换后,数字量 0 对应 0.5V,4095 对应 4.5V。实际换算公式要按传感器的线性关系标定,不能直接用默认值,因为每个传感器的零点和斜率都不完全一样。
加载电机的目标力矩指令跟 EPS 的助力逻辑是相反的方向。车辆右转时,前轮回正力矩会让方向盘有向左回正的力,加载电机就要输出一个与其匹配的扭矩。这个值由实时模型实时计算,通常包含轮胎侧向力产生的回正力矩项、主销内倾产生的重力回正力矩项和阻尼项。台架调参时一般关注阻尼项,太小会导致方向盘来回摆动,太大则让转向感觉明显迟钝。
实时系统步长也值得记录。我们的车辆动力学模型跑在 1ms 步长上,转向台架的力控制回路跑在 250us 步长上。之所以转向回路比整车模型更快,是因为加载电机和 EPS 之间的机械相互作用是高带宽过程,慢一拍就会觉得转向手感和模型不匹配。
5. 现场排查实录:转向台架 HIL 调试的常见问题与解决技巧
5.1 转向手感突然变重或者变轻
现象是跑测试时方向盘刚开始一切正常,几十秒之后手感变得特别重,就像没有助力一样。第一次遇到时我们会先怀疑 EPS 出问题了,检查 CAN 报文才发现 EPS 正常工作,问题出在加载电机。
排查后发现,加载电机的控制指令在长时间运行后出现了积分饱和。原因是台架机械摩擦力矩比模型里的值大,PID 控制器的积分项不断增加,输出达到上限后一直保持高值。这时候实际输出力矩和驾驶员期望方向不一致,手感就显得很重。解决办法是调整积分限幅,同时把台架摩擦模型加到前馈通路里,降低积分器的负担。这里建议台架装机后先做一次摩擦标定,记录不同速度下电机的启动电流,用于后续前馈补偿。
5.2 角度信号在报文里出现瞬间跳变
另一个常遇到的问题是用 CAN 报文观察方向盘转角时,数值在某个区间内突然跳了 360 度。比如实际只是从 10 度转到 20 度,报文却出现了 370 度这种值。
这就涉及角度传感器的多圈计数处理。真实方向盘可以转多圈,角度传感器要么是增量式编码器,要么是基于绝对位置加圈数累加的方式。如果软件在处理过程中丢了一个计数脉冲,角度就会发生整圈跳变。排查办法是先看原始编码器信号是否有毛刺,用示波器抓编码器 A/B 相,确认不是机械抖动造成的误计数,再检查实时软件里圈数判断逻辑。我们最后用 FPGA 对编码器信号做了数字滤波,把宽度小于 10us 的毛刺全部滤掉,跳变问题就消失了。
5.3 ECU 上电后一直报传感器故障
台架接好后,ECU 总是报扭矩传感器故障,但传感器本身是新的,用万用表测电压也正常。逐个排除后发现,问题是 ECU 要求的信号地跟台架电源的地不是同一点,导致传感器信号相对 ECU 的参考地有一个偏置电压,ECU 判断传感器输出超范围。
这个坑在 HIL 集成时非常典型。很多传感器是比例电压输出,ECU 以自己内部 5V 为参考,如果信号源和 ECU 的地电位差超过几十毫伏,测量值就会偏差很大。后续处理是统一传感器和 ECU 的参考地,用星型接地方式连接,避免因强电负载波动引起地电位漂移。如果你的台架周围功率设备比较多,建议在传感器信号线入口加装带隔离的信号调理模块,从硬件层面切断地环路。
5.4 常见硬件问题速查表
下面这个表是我在现场整理出来的,基本覆盖了 HIL 硬件调试最常碰到的几类问题。
| 故障现象 | 可能原因 | 检查手段 | 解决建议 |
|---|---|---|---|
| 扭矩传感器读数漂移 | 传感器零点未标定、温度变化 | 断电后读零点 | 每次上电做一次零点补偿 |
| 方向盘角度跳变 | 编码器毛刺、计数逻辑错误 | 示波器抓 A/B 相 | FPGA 滤波器去毛刺 |
| 加载电机啸叫/振动 | 控制环路增益过高、机械共振 | 扫频测试传递函数 | 降低高频增益,加陷波滤波器 |
| CAN 报文错误计数增加 | 总线波特率或终端电阻问题 | CANoe 检查总线错误帧 | 确认 120Ω 终端电阻位置 |
| ECU 报电压低但电源显示正常 | 线束压降过大、接插件接触电阻 | 在 ECU 端测量实际电压 | 更换粗线缆,紧固端子 |
| 视频图像有时序断裂 | 视频注入卡未同步 | 用示波器对比帧同步信号 | 接入全局同步时序信号 |
5.5 一点实操心得
先说结论,HIL 硬件调试没有捷径,但有一个原则能帮你少走一半弯路:把每个信号当作独立部件验证,不要相信任何一块板卡的默认配置。我见过太多“忙了一整天,最后发现是拨码开关位置不对”的案例。每次测试前花十分钟检查设备自检状态,会比排查异常信号省下数小时。
另外,台账和标签真的非常有用。台架上一百余根线,不贴标签,一周之后你自己都找不准哪根是哪个信号。每次改动硬件或软件配置,随手把变更记录写下来。这个习惯在后续排查问题时帮了大忙,很多问题不是某一次改坏的,而是改完之后没记录,过了一个月就完全定位不了了。
目前这套 ADAS HIL 系统已经稳定跑了一个多月测试用例,从 AEB 到 LKA 再到 TJA(交通拥堵辅助),硬件层基本没有再突然出过状况。接下来我打算在转向台架上加入更多不同车型的 EPS 总成,并做一个快速换装夹具,让同一套 HIL 硬件能适配不同项目,这才是把实验室投入价值最大化的方向。