杨福宇老师多年研究CAN总线在汽车中的应用,文章非常有实用价值,为了方便汽车行业的工程师关注杨老师的研究成果,本公众号特别开设了《杨福宇专栏》,敬请期待更多精彩内容。杨老师邮箱:[email protected],欢迎交流探讨!
Tesla突然加速是车主和国产车厂关心的议题,讨论这个议题也是为国产车避免类似事故创造条件。这里引述的例子来自业内最常引用的美国 Ronald A. Belt 的文章“Tesla Regen, Brakes and Sudden Acceleration”。这篇文章的原网页已被撤稿,或许是作者发现原文论据有部分错误或不妥之处。不过我的引用仅限于该文中的EDR(事件数据记录仪)原始数据。虽然EDR数据也是车主的财产,它是保障车主安全利益而设立的,Tesla一般不会提供EDR数据,所以这是十分稀有的原始资料。这篇分析针对的是这个case,其它case需要对应的EDR数据和对应的分析方法,例如突然加速+不能刹车+不能转向等。
这个case是一位女士驾驶2019 M3(单后驱)从道路转90度准备进车库时发生的突然加速事件,她称踩了刹车,但突然加速,车刹不住,最终撞墙。
图1是碰撞前纵向加速度变化与加速踏板开度信号的曲线,可以见到它们的变化开始点大致在-2.2s,准确的时间限于EDR的时间分辨率,所以看不出。
这张图中最重要的一点是在-1.8~-1.0s间纵向加速度是负的,并不断增大,直到-0.4g。这个不能用ESP实行能量回收来解释。因为Tesla选用的是BOSCH的iBOOSTER作刹车的执行器,它可以产生的减速度是-0.4g,根据BOSCH的资料,iBOOSTER和ESP配合使用作能量回收时最多只能达到-0.3g。Tesla的车身稳定系统是否直接用BOSCH的产品不清楚,但其能量回收的减速度数据不会离-0.3g太远。所以这个减速度只能是iBOOSTER发挥了作用,也就是说,司机踩了刹车踏板。
这张图中另一个要点是加速踏板开度信号的同时上升,开度信号的上升有两种可能:加速踏板同时被踏到了或者电路受到了干扰。iBOOSTER的电机为300W,所以在13V电源下,可能的工作电流是23A。如果处理不当,会形成很大的干扰。据 Ronald A. Belt 另一处文章中可以见到加速踏板传感器与逆变器之间有10feet的无屏蔽电线连接,所以是易受干扰的,但是一般干扰只是电流变化瞬间才发生,不可能产生-2.2~-0.6s的持续变化。2010年TOYOTA突然加速事件时NASA的分析报告提到外部500Hz的干扰有在加速踏板线路中引起影响(与采样ADC频率拍频),但是未在车内找到有500Hz的干扰源。对于本case中,iBOOSTER的电机缺少第一手的资料,推断为无刷直流电机,其对外的电磁辐射是符合车内应用要求的。所以开度信号的上升不是干扰,加速踏板也被踏到了,司机是有错的。
当两块踏板都踏到时为什么没有实现刹车优先策略?这是因为控制马达的逆变器要从CAN总线来获得由iBOOSTER来的刹车踏板开度信号。因为上一拍时是刹车开度为0,如果刹车踏板的信号没变大,逆变器不会实行刹车优先。CAN总线有故障就可能不会有刹车踏板的信号送过来,也就不会执行刹车优先。
那么CAN总线出问题时为什么还有EDR记录?如果出问题的只是iBOOSTER的CAN输出,就不会影响到全局,总线其余部分还可以正常通信。尽管Model 3有fallback CAN,主总线CAN并未失效,不会启用fallback CAN。另一方面,逆变器仅连主总线,即使启用fallback CAN 也送不去刹车信号。EDR的其余记录都有,唯独iBOOSTER来的刹车踏板开度信号送不到。Tesla指责司机没有踏刹车便是这个因送不到而发生的情况。
Model 3的有关部分
(https://www.sohu.com/a/283587948_607980 /下载/e078bd55cff84e6c9265f3f757db3140.jpeg)
发生CAN总线输出故障时逆变器和iBOOSTER各自执行,为什么会有减速度?这要看下面的图。
中图画出的后驱马达的速度有0.2s的延迟,但从踏板开始变化(-2.2s)算起,应该在0.2s以上。下图对应的车速应有0.6s的延迟。虽然加速踏板先动作,但iBOOSTER的输入jump-in使制动压力有一个跳跃,制动力矩超过驱动加速的力矩,使车速开始下降,但马达转速还在升高,而后司机的快速下踩,iBOOSTER 的快速响应(iBOOSTER 可在约0.12s内自动建立全制动压力),产生了车的纵向减速度。
然而随着司机把踏板开度加大,最终逆变器的驱动力大于刹车力,车不可控地加速撞墙。
现把整个过程整理如下:
1.司机转弯准备等车库门打开时由加速踏板移脚到刹车踏板,由于不小心或其它原因造成二块踏板同时运动;
2.此时iBOOSTER的CAN输出已经出了故障,无法送出刹车踏板信号;
3.加速踏板低于刹车踏板,但它们的起动点是不同的,iBOOSTER有一个跳跃门限jump-in,当司机脚-2.2s时加速踏板开到例如5%时开始动作,-2s时马达转数由600上升到700;
4.由于踏下更多,转数在继续升,司机听到马达转数上升便进一步踏下去,超过jump-in位置,iBOOSTER开始动作,120ms后建立全压,车开始减速,纵向加速度显示了这一点;
5.-1.4s时iBOOSTER使车达到了最大减速度-0.4g,-1s时由于马达驱动力矩大于刹车力矩此时马达转数升得更快,车不再减速,司机感到刹车失控;
6.最终0s撞墙后由其它机制停止马达供电;
7.由于加速踏板低于刹车踏板,所以司机刹车踩到底时加速踏板仅开到78%,这印证2块踏板同时踏。如果是司机把加速踏板当成刹车踏板,则会踩死加速踏板(=开度100%),司机没有说慌。
因为正常情况下刹车踏板信号每10ms送一次,在-2.2~-1s之间会有120次传送,任何一次成功的传送都可以使刹车优先策略得到执行,就不会有此次事故,推断CAN有故障且是是硬件故障。
CAN的安全隐患,如error passive时的等效离线,最多约34ms,可能使高速公路上120km/h 的车紧急刹车时多走1.1m,也是增加了追尾危险。但其延续时间不会像本case这么长,不会有影响。CAN的另一个安全隐患:错帧漏检对某些刷新不起作用的应用十分危险,例如加速度、速度传感器信号可能误触发紧急制动,或影响安全汽囊引爆的算法,误引爆或者本该引爆而没有引爆(听到过撞了车还没有汽囊引爆的报道)。在本case中,如果造成送到逆变器的刹车踏板开度信号有错而未检测出来,也会在10ms后刷新为正确值,刹车优先会执行。一些温度信号的刷新周期长,错误传送的信号可能汽车电源分配系统保护设计增加难度。CAN的EOF6不一致收发在分享信息时出错,会造成潜在错误。这些与本case无关。
所以推断的CAN的故障是无法依靠刷新而纠正的硬件故障,例如接插件松脱,接线断裂,较小的概率是元器件失效。
非常重要的是这个CAN硬件故障否决了刹车优先的执行,也是司机觉得刹车失灵的原因。虽然Tesla讲有刹车优先,但Tesla是否有应对CAN硬件故障的设计便是它该不该负责的根据。
这里的重点不是去查iBOOSTER的CAN接插件是否松脱或断线,因为撞车、移动车辆时的振动或重新拔插进行检查已经改变了事件开始发生的现场,例如松脱的接插触点又接通了,所以不能保证重现事件开始发生的现场,这种查是不能作为双方都认可的证据的(Tesla也可以说松脱或断线是后来发生的),也无法作为判断责任的依据。
应该查的是Tesla是否有应对CAN硬件故障的设计,好在这一点是很容易检验的,任何修车厂都可以做:仅切断iBOOSTER的CAN输出,保证其余CAN总线工作正常,同时踩加速和刹车踏板,如果一直加速便是没有对付CAN硬件故障的措施。不过,现在Tesla的OTA操作可以立马增加措施。对于那些其它case中的感到刹车失灵,踏了刹车板而没有刹车记录的苦主,在没有做新的OTA之前,也可以做这样的测试,从而判断责任。如果Tesla通过了这项测试,我们必须进一步找本casa刹车优先未执行的其它可能原因。
对于其余的安全攸关的系统也应该有硬故障造成丢帧的安全措施,例如ESP的许多传感器也是用CAN来传送的。现在的智能驾驶车识别后的决策信号,例如紧急制动信号也是用CAN传送的。正在设计的新能源车、智能网联车必须考虑这一点。
对于丢帧,有二种处理方法,一种是硬线冗余,这就提高了成本,另一种是牺牲少量带宽,建立心跳检查机制,对心跳出错的节点参与的应用设置安全的后退状态,一旦某节点心跳不正常就后退降额运行。在本例中未见到iBOOSTER的心跳,就是禁制大加速,小功率地limp home,保证一旦有两个踏板同时踏下时刹车优先可实现。
1.看明白了CAN的错帧漏检,车厂就不能敷衍你了!
2.改进CAN是MCU厂商送给自己汽车客户的礼物!
3.杨福宇专栏|寻找可超车的弯道:伟人讲破字当头,立也在其中了