对抗性验证
对抗性验证
目的
为什么一台连续运行数周、从未发生任何崩溃的机器人,并不能证明这台机器是安全的?
数周无事故运行仅确立了机器在已遭遇的良性条件下的行为;它们并未提供任何经验证据表明机器能够承受边缘情形异常。 一台自主机器人看似可靠得无懈可击,直到一个未被建模的扰动——冻结的相机帧、逾期的轨迹片段,或电感效应引起的电源轨电压跌落——对未经验证的软件假设发起挑战。 在被动运行中等待罕见的边角情形不可行:发生概率降至原来的十分之一的事件需要十倍的运行暴露量才能被观测到,而若在部署期间遭遇它,则存在灾难性物理损坏的风险。
全系统验证将安全假设转化为系统化的、可重复的故障注入实验,并在仿真、处理器在环测试台以及物理测功机上执行。 每个实验分别挑战时序、数据新鲜度与动能权限边界,验证机器是否在声明的预算内检出故障并执行安全回退。 在治理框架内,严格的验证将 Brain 的认知模型、Nervous System 的确定性监视器与 Body 的物理动力学结合为经验证据,使其足以支持、限制或否决部署。
↰ 前置条件: 物理失效模式与测量极限所提出的验证目标源自 测量机器自身的极限。
学习目标
- 定义运行包络,并从机器的制动预算推导其通过条件
- 从设计记录与正向物理分析推导故障清单,包括权限类故障与复合故障
- 评估哪些仿真与硬件测试支持每项主张,以及其证据止于何处
- 将零漏检样本规模确定方法应用于已声明的加权故障总体,并说明其未覆盖的部分
- 设计故障注入测试,以挑战物理硬件上的时序、数据有效性与权限主张
- 构造故障记录,使失败、无效和不可观测的试验与通过试验区分开来
为何运行本身不构成证据
一份无事故的运行日志只回答它所遇到的条件。 它并未检验系统在相机帧冻结、欠压或总线被 DMA 流量占用等条件下的表现。 等待这些条件既慢,因为发生概率降至原来的十分之一的事件平均需要十倍的运行暴露量才能观察到(即 物理试验极限 的运行暴露量壁垒),而且在机器上也不安全,因为当该事件最终在运行中出现时,它会以任何软件动作都无法撤销的运动形式到来。 因此,全系统验证将每一条安全主张转化为一次有意的故障,在隔离条件下注入,并依据运行前声明的测试预言机与限值进行评分。 这些主张来自前几章所形成的记录,并以 《控制权限日志》 的控制权限记录为终点,该记录指明每个执行器通道可由谁下达指令,以及当一次交接无人应答时必须发生什么。
考虑仓库移动机械臂以 1.3 m/s 的速度沿其通道运行(已选定;参见读者指南),朝可能有人走出的机架末端行进。 以该速度连续多周正常运行,对设计声称能遏制其影响的四种故障几乎毫无意义:提出者续期租约后随即停滞(F1)、观测以过期或损坏的捕获时间进入许可路径(F2)、许可路径与驱动器之间突发丢失的 EtherCAT 帧(F3),以及当推理突发与驱动器电机同时发生时,24 V 控制轨的电压跌落(F4)。 它们都不出现在运行日志中,因为每一种故障都会在需要停车的那一刻才让机器异常。 租约可捕获卡死,证据纪元检查可捕获过期捕获时间,驱动器现场总线看门狗可捕获丢失的帧,而由许可路径自身具备保持供电能力的独立电源轨供电的欠压监测器可捕获共享轨上的电压塌陷。 每个故障均在机架末端注入,连同 《控制权限日志》 移交的四个权限故障(A1–A4),并且每次制动试验都依据 节 1.2 从制动预算推导出的制动启动时间与停车距离界限进行评分。
注入的故障只有在一次物理运行具备五个要素时,才能使该次运行转化为能够支撑安全论证的试验结果:
- 有界的断言: 明确机器必须维持的确切不变量(例如,机架末端的基座,制动结束于 1.10 m 规定的净距之内);
- 明确的试验条件: 规定初始速度、载荷、地面摩擦系数、环境温度与供电电压范围;
- 预先承诺的预言机: 一个自动评估器,它检查已记录的遥测数据与主张是否一致,无需人工干预或事后调整;
- 明确的采样与注入程序: 有意驱动机器逼近其性能极限,并在传感器、总线与执行器中注入故障;
- 溯源信息: 模型权重、校准表、传感器序列号与原始总线日志的完整元数据记录,允许独立复现。
基座停止声明与机械臂锁紧力声明需要各自独立的包络、注入点和通过条件;本章遵循停止声明。 第一个决策点是名义调节必须让位于独立的故障遏制响应的地方。
运行包络
运行包络 是向内扩展至机器自身条件的目标 ODD(成功率衡量什么):计算负载、供电电压、总线抖动、热状态以及操作员的响应时间。 集合嵌套:ODD 包含声明的 ODD,声明的 ODD 包含目标 ODD,运行包络将目标 ODD 与机器内部条件配对。 界定该包络,需要为自动化测试框架设定精确的数值边界,以便其确定性地驱动系统跨越各项约束边界。 对于移动操作机器人,包络是一组声明的点,而不是单一标称工况:即 1.3 m/s 的巷道速度;载荷为零以及 50 kg 的货架承载能力;地面摩擦系数至少为 0.204——这是 2 m/s² 可信减速量所需的取值,且适用于干燥巷道;在现场检查制度覆盖的地面上,地面摩擦系数至少为 0.12;以及环境温度介于 5 °C 与 35 °C 之间。 对于已检查的地面,包络声明一个受限点 1 m/s,即执行记录声明为有效的受限配置速度,直至该摩擦系数 执行记录;在此进行的试验使用测试地面,其实测摩擦系数处于 0.12 的合格值,因此其所演练的停车正是摩擦边界所约束的那一次。
每个点都与机器内部条件配对:应用处理器的负载,最高至其峰值推理突发;控制轨可在其 21.5 V 低电量点与其 24 V 标称值之间任意取值;EtherCAT 抖动;以及安全微控制器的热状态。 另有一处需要说明:机器在请求远程助手的循环内接管之前,会先减速至某个点 1.2 m/s,而只有该点携带 150 ms 接管时间 权威权移交。
运行包络不同于包围它的更大的 生存包络。 在运行包络内,学习得到的策略与跟踪控制器共同调节该过程。 当扰动、传感器失效或计算停滞将机器推过该边界时,名义调节被让渡,目标变为在结构极限被突破之前,将机体带入有界的、安全的状态。 对于移动操作臂,生存包络是更宽的速度、地面摩擦与机器状态区域,在此区域内,回退梯子的停止档、以及作为最后手段的抑制档 回退阶梯,仍可将基座在机架末端之前刹停,并保持手臂接触力低于其限值。 包络之外则是结构失效,此时储存的能量超过硬件能够耗散的量。
界定运行包络的边界,需要从第一性原理推导极限,而不是断言方便的软件超时。 在机架末端,极限就是制动预算。 制动距离随制动前的延迟线性增长,随速度平方增长(equation),而最终预算为 停止包络(仓库移动操作臂的停车预算),其中包含 133.6 ms 的制动前延迟、接缝处的行为 所承诺的平滑驻停,以及跟踪内缩量,在干燥地板上设定了 1.39 m/s 的上限。 在选定的 1.3 m/s 下,机器需要 997.4 mm 的 1.10 m 净距,并保留 102.6 mm,这段距离在 78.9 ms 内被覆盖。
由此得到两条 oracle 界,本章中的每一次制动试验都依据这两条界进行评分。 制动启动必须不晚于最后一次有效续期之后 82 ms,即 多速率节拍 的租约路径:60 ms 租约、许可循环的一个 1 ms 周期、一个 1 ms 总线周期,以及 20 ms 的制动启动。 F4 的轨道故障以欠压标志为起点。 由独立于该设备的仪表测得的停车距离,必须在该故障所参照的同一事件所允许的距离之内结束。 对于跟随目标出现之后发生的故障,该距离为预算所允许的 997.4 mm。 处于停滞状态的提议方不提供目标出现,因此其停车距离与起点一样,从最后一次有效续期起算;在制动起点之前的 82 ms 内的行进距离、驻留停车距离以及跟踪内缩量合计得到通道速度下的停车距离界限 780.4 mm。
两个界限都不依赖于提议方。 会停滞的 chunk 策略无法推迟制动起点,因为停车始于租约到期,而非提议方察觉,所以 F1 的测试衡量的是授权路径,而非该策略。 预算保护了净距处的静态障碍物,而针对静态目标的试验对一个仍在走向机器的人毫无意义,这是该站点通行规则所承载的前提(遮挡下的信念)。
将缓冲罐液位保持在溢流堰以下的流量调节器,即本部分的 Class 3 对照,验证的是另一个量。 其预言量是体积,而非距离。 当液位处于 88 L 的跳车点、7 L 低于 95 L 的堰,且上游阀门失效、排放泵跳车后每秒净进流为 1.40 L 时,罐体会在 5 s 内溢流。 一条在 210 ms 内检出、并在 1.20 s 内完成隔离阀关断的保护路径,在溢流发生前 3.59 s 完成保护动作。 同一 150 ms 总线延迟,会使移动操作臂额外行驶 195 mm,相当于其预留距离的 1.9 倍,并给罐体增加 0.21 L。 因此,流量调节器的故障清单会注入持续的延迟与失效的阀门,而移动机器的故障测试必须具备数十毫秒级的时间分辨能力。
对于移动机械臂,各变量的单独最小值和最大值无法捕捉真实的运行边界,因为物理维度与计算维度相互耦合。 通道速度 1.3 m/s 与经过检查的地板摩擦系数 0.12 各自都落在其声明范围内,但合在一起却超出了包络。 在该地板摩擦系数上,真正决定可信减速的是摩擦,而非制动,可信减速降至 1.18 m/s²。 驻停长度变长,1.3 m/s 处的预算增长到 1.44 m,超过 1.10 m 的净距;该地板上的速度边界为 1.09 m/s,这正是包络中的受限点位于其下方的原因。 载荷的耦合则不那么明显。 它并不进入预算的任何一项,但可信减速是针对带载机器声明的,因此只有空载运行的验证战役永远不会检验预算所依赖的那个值。 真实运行边界是状态、参数与延迟空间中的一张曲面,而一套有效的验证套件必须探测这张组合曲面,而非孤立的标量限值。
只有当每个参数都带有其单位、来源、校准后的不确定度,以及一位对其负责的工程人员时,边界才保持诚实。 一次可信的减速 2 m/s² 在记录尚未说明其究竟来自带载质量下的制动试验、驱动器数据手册,还是摩擦模型,以及外部距离参考以何种分辨率测量了每次制动时,都属未完成。 新的轮胎胎面材料配方或新的 EtherCAT 从站固件,都要求该责任人重新评估边界是否已经移动。
测试包络面,就是攻击其边界曲面。 内部点,即机器在新鲜相机帧上于干燥地面空载慢爬,只表明该机器在理想条件下可以工作。 测试框架在每个关键边界上、边界内侧紧邻处和边界外侧紧邻处放置测试点。 边界内侧紧邻处的测试点用于检查策略在最大允许应力下是否保持闭环稳定性;边界上的测试点用于检查余量能否承受标称传感器噪声;边界外侧紧邻处的测试点用于检查安全强制执行机制能否从策略处可预测地接管权限,并在清空距离耗尽前将移动底座停住,使其处于生存包络内。
探究这一边界曲面,将经典 功能安全(Functional Safety)(受 ISO 26262 和 IEC 61508 治理)与 预期功能安全(Safety of the Intended Functionality, SOTIF)(受 ISO 21448 治理)之间的关键区别形式化。 经典功能安全框架假定运行危害源于系统故障:断裂的线束、电气短路、存储器中的比特翻转,或软件语法错误。 如果所有硬件和软件组件都严格依照其工程规范运行,经典功能安全将认为该系统不存在危害。 在物理人工智能系统中,这一前提不成立。 视觉 Transformer 或学习得到的深度估计器可以在零内存故障、零数值异常和逐位精确的指令执行条件下运行,却可能因未建模的日光眩光、逆反射表面,或训练分布之外的新型语义对象而无法检测障碍物。 这一风险源于功能不足——这是开放环境中学习感知的一项根本性能局限,发生在完全没有电气或软件故障的情况下。 在 SOTIF 下验证运行包络,需要系统性地通过对抗性边界搜索识别这些尚未识别的不安全条件,映射感知在统计意义上有效的包络范围,并证明确定性安全强制执行机制能在物理安全裕度被突破之前捕获功能不足。 然而,尽管 SOTIF 验证了系统对世界中的感官歧义能够安全响应,安全强制执行机制最终能否制止物理动量,仍然取决于底层硬件在电气与机械应力下的确定性完整性。
Systems Perspective 1.1: 硬件证伪原则
一旦每个约束、延迟预算和环境限制都被表述为一个数字,前几章的设计主张便成为故障注入的目标,每个主张都配有一个必须触发保护性干预的阈值。
推导故障清单
故障来源之一是设计记录,将其反转。物理数据 至 闭环评估 陈述学习策略的属性:其训练分布、状态—动作假设与推理延迟上限;传感器感知 至 硅片布局 陈述接口与执行属性,如总线分配、观测新鲜度与估计边界;监督性干预 陈述授权能够以多快速度从失效策略中撤出,以及谁拥有覆盖权。 如果机器的记录声称 chunk 策略在不超过驱动速度上限 1.5 m/s 的每个速度下,每 50 ms 刷新一次提案,那么验证套件将反转该主张,通过注入停滞的刷新、延迟的观测与超出量程的编码器读数,来检验权限路径是否能在其预算内检测到该违规。
对于单个故障,该列表的有界断言与注入流程构成一条五要素链,即否定条件、物理注入点、预期检测器、有界响应与可观测的通过条件;只有当这五者全部定义时,一条已记录的设计属性才成为可测试的故障。 对于 F2,导航相机在捕获时给每帧打时间戳,而该帧在调度时的年龄按 51.6 ms(传感器转导与标定)预算。 将该时间戳换算为安全微控制器的时钟,需加上观测契约的 0.2 ms 界(观测契约),因此许可路径会拒绝上界年龄超过 51.8 ms 的证据。 被否定的属性在图像信号处理器处保持一帧,同时保留其捕获时间戳,使其在该阈值之后到达。 预期检测器是许可路径对每条提议的证据时间戳的检查,所需响应是拒绝基于该证据构建的任何提议,随后执行驻留制动,可观测的通过条件是该对预言界:最后一次有效续期后 82 ms 内的制动启动,以及实测制动在 997.4 mm 内。 当该链条中任一要素无法定义或观测时,系统就存在一个验证缺口。。 验证缺口表明,该论断无法通过测试加以证伪。 此类缺口不能忽视;它们需要专门的硬件仪表、更窄的运行论断,或对执行路径进行重新设计。
反演同样触及学习到的提议者的假设,因为分布偏移即使每一帧都完好到达,也属于系统故障。 在摩擦系数为 0.60 的干混凝土上于仿真中训练的块策略会提出减速度,而摩擦系数为 0.12 的地面会使这一减速度指令导致车轮打滑。 反演该评估论断,意味着注入未建模的牵引力。 传感器偏差与数据扰动出于同一原因被注入:策略的名义奖励虽高,但一旦其输入受到扰动,仍可能驱动抖动的执行器。 随后,机器会在有效且未损坏的指令上发生故障,因为软件与机械跨越因果边界(因果边界)仍然耦合。
在每个模块间契约处,故障列表在其物理交接点上否定该属性:观测新鲜度、状态有效性、意图寿命、规划截止时间、执行独立性,以及资源分配。 对于 60 ms 的 多速率节拍 分块租约,测试环境会在距其最后一次续期 65 ms 时注入一个其他方面有效的提案,并确认权限路径将其作为已过期而拒绝。 对于安全强制执行机制相对于策略计算机所声称的独立性,测试以 DMA 流量灌满共享内存总线,并确认安全强制执行机制在每个 1 ms 时钟周期内仍能满足其 400 μs 截止时间。 这一纪律是双刃的。 总线饥饿、时钟偏斜和电源波动被注入到设计声称具有容差之处,因为从通用故障清单中抽取的故障,会凭空制造出机器从未被指定满足的要求。
反演存在结构性局限。 它只会产生设计团队已经建模的故障,因此该清单的完备性仅与设计所声称的完备性相当。 如果没有记录说明底座上由弹簧施加制动力的制动器在多次制动后制动衬片积釉时的行为,那么就没有可反演的内容,故障也永远不会进入测试套件。
第二份独立的来源从物理机器出发,枚举出机体、供电网络、地面以及环境能够做什么,而不受软件认为的情况影响。 当指令减速度超过地面接触所能支持的减速度时,车轮会打滑;制动衬片在反复制动下会釉化;轮胎磨损并改变里程计所假设的滚动半径;驱动振动会使相机安装件松动,直至其标定发生漂移。 这些风险源自力学与摩擦学,位于软件所推理的每一个抽象之外。 Leveson 的系统理论事故模型与过程(STAMP) 框架1 (Leveson 2011年) 将其引入风险分析。
例如,从“底座在许可路径已指令停车于机架末端后仍继续驱动”这一物理风险出发。 不安全控制动作是停车指令之后的持续驱动转矩。 测试在测试通道注入触点熔焊粘连的驱动使能接触器,或卡滞的制动释放电磁阀,独立于指令的停止位观测车轮速度与制动电流,并要求许可路径通过其第二条通道安全力矩关断来移除驱动电源。 预先承诺的通过条件是:在所有声明的速度、载荷和地板摩擦工况点下,实测停车均须满足 997.4 mm 的预算上限;未测量的车轮速度会使该制动主张下的试验不可观测。 这条前向链即使原始软件需求未包含接触器触点熔焊粘连故障,也能产生注入与预言机。
向前分析会暴露出没有任何软件记录所暗示的故障类别:时钟丢失、使逻辑电平处于有效阈值之间的电压跌落、驱动开关干扰耦合进编码器线路、损坏的配置存储器,以及跨接本应彼此独立的域的复位线。 如果安全微控制器与应用处理器共用同一电源管理 IC,那么在推理突发期间的一次欠压瞬态,可能在提议者失去控制权的那一刻重置微控制器。 没有任何软件记录包含这一失效,因为每个模块都假定其供电是理想的。
前向分析还检验 神经系统 与 硅片布局 的共因独立性主张。 在示意图上隔离的两条路径往往共享同一个物理脆弱点,例如激光雷达与一个冗余保险杠开关被布入同一电缆线槽,共用同一转换器内部的模拟参考,或建立在具有相同勘误所列缺陷的定时器硅片上。 一次使两条通道同时发生闩锁效应的瞬态,会推翻任何将二者故障视为相互独立的论证。共同原因分析 会追溯路由、电源路径与时钟树,以确保没有任何单一物理事件能同时使策略与干预机制失效。
物理成因延伸至人为操作失误与可预见的误用(监督性干预)。 仓库工作人员在维护期间短接机架端的存在传感器、将托盘搬运车横停在有标识的交叉通行处,或拔掉警示信标以使其静音,而远程助手则请求该通道不允许的速度。 当远程助手对通道内的1.5 m/s驱动限速下达指令时,验证框架必须验证该指令被能力约束拒绝,或受到manual_drive条目对1.3 m/s通道限速的钳制,并且该权限检查对其运行方式与任何其他提案相同。
从物理机器向前推导,会在@tbl-15-fault-classification 的源自记录清单中增加一个代表性的机械故障类别,即执行器卡滞。 完备性仍需针对指定装置与运行包络单独给出危害分析论证。
从物理换能器出发继续推进,同样需要针对换能层网络物理攻击 进行测试。 在互联的自主系统中,物理人工智能引入了攻击面,它通过利用感官换能的物理特性来绕过传统的网络防火墙抽象。 共振声学注入(以超声频率针对 MEMS 陀螺仪的微机械惯性敏感质量块)可以在不损坏任何总线数据包的情况下,在惯性导航中诱发虚假角速率。 同样,光学激光注入和卷帘快门照明频闪可以饱和相机光电二极管以致盲测距估计器,而对抗性物理补丁(放置在仓库墙壁或地面表面的高对比度几何图案)可以利用神经感知主干网络的梯度景观,造成障碍物检测假阴性(即漏检)。 在ISO/SAE 21434(道路车辆——网络安全工程)下,这些威胁与功能安全故障协同设计:一次网络物理入侵依据其跨越因果边界进入危险执行的能力进行评估。 验证套件必须确认,安全约束执行组件(enforcer)的跨传感器合理性检查(例如将车轮里程表数据与光流进行比较,或检查相机证据时间戳区间与 IMU 积分边界)能够检测转导异常,并在虚假感知结论驱动扭矩之前触发回退阶梯。
除从主张反推和从物理危险前向分析之外,故障清单还必须测试 《控制权限日志》 的授权情形 A1–A4,每一行取自 表 1,并在使干预紧迫的机器状态下进行测试,即载有货物的底座接近料架末端。 交接截止时间在 权威权移交 设定的两种速度下均进行测试。 当机器减速至 1.2 m/s 以响应循环内请求时,209.7 mm 的余量为未获确认的交接提供 174.7 ms 的时间以执行回退;在 1.3 m/s 的通道速度下,对于策略请求但不减速的交接,余量的行进时间缩短至 78.9 ms。 用静止底座测试的交接,未测试任何真正相关的截止时间。
| 失效域与故障模式 | 物理机制与注入点 | 目标表现与因果影响 | 检测原语与延迟预算 | 强制安全响应与有界恢复 | 可观测通过判据 |
|---|---|---|---|---|---|
| 提议方停滞(F1) | 分块策略仅续租一次,随后其任务在应用处理器上被终止或输出被冻结 | 无新提案;最后一个被接纳的分块继续提供设定值,而移动底座继续巡航 | 许可路径上的租约到期(60 ms);主机心跳超时(30 ms) | 撤销提案授权;执行驻留停车 | 制动启动 \(\le\) 82 ms 发生在最后一次有效续租之后;从该续租到静止的行程 \(\le\) 780.4 mm |
| 陈旧观测时间(F2) | 通过内联帧拦截器,将导航相机帧扣留在图像信号处理器处并保留其采集时间戳,或篡改该时间戳 | 以证据的上限年龄超过 51.8 ms(预算年龄加上时钟换算界)为依据构建的提案;移动底座依据机架末端的旧视图采取行动 | 在每个许可循环周期检查证据时间基准的龄期 | 拒绝基于陈旧证据构建的提案;执行常驻停车 | 制动起始 \(\le\) 82 ms 于最后一次有效续期之后;实测停车 \(\le\) 997.4 mm |
| 丢失的 EtherCAT 帧(F3) | 帧在驱动器的从站端口处丢失或损坏,经由现场总线扰动节点注入 | 编码器状态与驱动器指令缺失周期;每丢失一帧,已交付指令的龄期增加一个 1 ms 周期 | 工作计数器与帧到达检查;驱动器通信看门狗 | 驱动器进入其配置的停止状态;权限路径指令命令驻留的停止 | 制动起始 \(\le\) 82 ms 于最后一次有效更新之后;实测停止 \(\le\) 997.4 mm;零未处理的总线异常 |
| 控制轨下垂(F4a) | 可编程直流负载在共享控制轨 24 V 的电池低电量点复现“推理突发加驱动”瞬态 | 共享控制轨电压跌落至 17.3 V,低于稳压器的失稳电压阈值 18 V;应用处理器因欠压而失常,其传感器可能冻结在看似合理的数值上 | 共享轨欠压标志,由权限路径在其隔离的、被保持的轨上触发 | 命令 STOP;执行常驻停止 | 从标志触发到制动启动的时间 \(\le\) 22 ms;实测停车距离 \(\le\) 997.4 mm;权限路径永不复位(独立数字化器上的持续心跳) |
| 权限轨馈线损失(F4b) | 在经检查的地面上,从安全约束执行方准许的 1.09 m/s 速度上限开始执行其所准许的最长停车过程,并在此期间切断许可电源轨储能装置的馈电 | 许可通路、驱动逻辑与制动线圈仅由该储槽供电 | 许可轨上的馈电丢失标志 | 完成驻留停车;在底座静止时使所有弹簧制动器接合 | 在电源轨电压降至稳压器失稳阈值之前完成停车并使所有制动器接合(从标志触发到制动器接合耗时 1497.35 ms,总供电维持时间为 2 s);任何复位均为 FAIL |
| 执行器卡滞与机械卡死 | 车轮轴承卡死或拖曳制动,通过车轮夹钳或测功机注入 | 转子锁定;一个车轮被卡住会使底座偏航;定子绕组快速发热(\(I^2 R\)) | 电机相电流过流与霍尔效应速度停滞监测,在其检测时限内完成 | 断开功率级供电;接合弹簧施加的制动器 | 定子温度 \(T_{\text{coil}} < 155^\circ\text{C}\)(Class F 限值,热工作占空比);底座保持在 0.15 m 侧间隙内 |
| 权威转移(A1):重复写入者 | 第二个总线主节点在策略与远程助手同时下发指令时,写入移动底座驱动器通道(重复 EtherCAT 标识符或 DMA 写入) | 同一通道上的两个写入者;交付的指令不再是已获准的那一条 | 总线或 DMA 写入权限;逐时刻取证权威记录 | 拒绝外来写入;安全约束执行路径仍是唯一写入者 | 写入被拒绝;窗口内每条取证权威记录都只对应一个写入者 |
| 权限转移(A2):绕过分层 | 在 MAN 处于激活状态时注入的策略提案;一条与安全约束执行方准许的限制值相抵触的远程助手指令 |
较低层级取代了处于激活状态的较高层级,或助手指令跳过了权限检查 | 仲裁层级检查;对每个来源均施加权限检查 | 忽略策略提案;像对待任何提案一样钳制或拒绝助手指令 | 仲裁者忽略该提案;权限检查仍对助手指令执行 |
| 权威移交(A3):交接超时 | 助手输入在 PEND 期间冻结;确认帧在接管速度和通道速度下均丢失 |
机器等待一次无人完成的移交 | 仲裁器中的移交截止时间计时器 | 启动已验证的备用方案 | 备用方案最迟在 \(T_{\text{timeout}}=\max(0,\min(T_{\text{config}},T_{\text{latest}}))\) 时启动:174.7 ms 在 1.2 m/s,78.9 ms 在 1.3 m/s |
| 权威转移(A4):认证 | 重放的捕获包 veto_path、manual_drive 或 accept_item;携带无效标签的包 |
未认证的来源获得权威 | 对每个助手和同事命令执行标签与新鲜度检查 | 锁定信道;保持权威不变 | 信道已锁定,权威不变,事件已记录 |
复合故障
表 1 的每一行仅注入一种扰动,但一台运行中的机器很少一次只遇到一种。 随机组合各行只会使清单倍增,而不会找出真正重要的组合,因此耦合扰动改由共同成因枚举。 布置记录的测试台账(硬件分配)列出了许可路径与所学工作负载共用的全部资源;每一条共用的轨线、时钟或总线都构成一项复合故障,在成因处注入,而非在其症状处注入。 共享轨线上的电压跌落可能使安全约束执行方变慢、使传感器冻结在合理值上,并在同一时间间隔内重置记录器。 共享总线上的突发会老化观测结果,同时也会延迟许可路径自身的读取以及本应暴露该延迟的心跳。 共享时钟中的故障会使所有跨越提案边界的记录的时间戳产生偏差,因此新鲜度检查会在数据已经陈旧的情况下通过。 因此,针对复合故障的预言机会检查保护性响应是否满足其截止时间,并还会检查用于判断该响应的证据是否经受住了同一成因;节 1.8 中的陷阱展示了两者同时失效的情况。 账本未点名的共同成因无法以这种方式枚举,这正是物理机的前向分析仍需作为独立的故障来源的原因。
故障清单现在包含倒置的设计主张、前向推导出的物理故障类别、四种权威情形,以及由具名共同成因得出的复合故障。 它说明了应当注入什么,却没有说明注入在何处才是真实的,而这一选择决定了每次试验能够证明什么。
资格阶梯
仿真器可以在每个采样速度与载荷下让 F1 的提案者停滞一整夜,但它无法拉垮 F4 的控制轨,因为仿真电源轨中既没有会失去稳压能力的稳压器,也没有会发生复位的微控制器。 每个评估环境都会闭合、断开或替换回路中从感知经推理、总线、驱动器到被控对象的不同链路,因此这些环境并不构成层级。 较高的层级无法涵盖较低的层级;每一层都产生一类不同的证据,并且无法观测其余类别的证据(图 1)。
Definition 1.1: 四级资格阶梯
四阶段资格阶梯 是由多个赛博物理评估环境构成的结构化递进序列,它闭合、打破或替换因果回路中的特定环节,以在组合测试吞吐量与物理及时间执行保真度之间取得平衡。 其四个阶段为软件在环(Software-in-the-Loop,SIL)、处理器在环(Processor-in-the-Loop,PIL)、硬件在环(Hardware-in-the-Loop,HIL),以及现场物理故障试验台。
- 意义:没有任何单一测试环境能够验证一个物理 AI 系统。 软件模拟器允许进行大规模组合扫描(\(>10^8\text{ cycles/day}\)),但会遗漏目标硅片总线争用与材料磨损;物理试验台则呈现真实的力学与电气瞬态,却无法在大规模条件下执行破坏性故障扫描。
- 区别:累积式测试阶梯的较高层级会涵盖较低层级,而资格阶梯与之不同:每个资格层级分别锻炼互补的、不重叠的因果机制,同时对其余机制保持盲目。
- 常见误区:假定通过广泛的软件在环(SIL)仿真就意味着嵌入式硬件上的安全性。 软件模拟器对微控制器时钟漂移、DMA 总线锁死、中断抖动以及电源电压跌落进行了抽象。
表 2 为每一级给出其底层、可注入的故障、吞吐量,以及其证据的终点。 对于移动机械臂,软件在环 的证据止于被控对象模型,其中被建模为一阶滞后的制动没有制动衬片温度、轮胎滑移或扭矩限制。 目标硅片上的交叉编译二进制由处理器在环 加入,因而测试量化与栈空间余量;硬件在环 台架则把 权限路径的执行位置 的双处理器实现、现场总线、电源与驱动环节,对照现场可编程门阵列(FPGA)被控对象或测功机进行台架测试;而物理故障台架 则加入生产级底座、制动、线束与地面。 梯级旁开出的两个数据源,彻底打开了闭环。 轨迹回放保留了真实的传感器噪声,但提供的是原始指令之后的帧,而非新指令之后的帧。 影子运行将候选控制器置于现用控制器旁,因此若候选提出会使底座越过机架端部的速度,其日志会记录该指令,而现用控制器则保持底座处于其应有位置。 两者都不体现一条指令的物理后果。
影子部署无法让停滞的提议者驱动底座朝可能有人所在的机架末端运动,模拟器无法揭示收发机硅片中存在的竞态,硬件台架也无法运行尾统计所需的数百万次随机运行。 因此,每次故障注入都投向能够激发其因果机制的那一级。
| 资格阶梯与载体 | 因果回路真实性(计算、总线、执行器、被控对象) | 故障注入机制与范围 | 吞吐量与样本扩展 | 物理与时间保真度 | 主测试预言机与证据边界 |
|---|---|---|---|---|---|
| 软件在环(SIL)(主机工作站 / 云集群) | 计算: 合成 / 主机 x86;总线: 理想化零拷贝缓冲区;执行器: 线性 / 饱和模型;被控对象: 数值 ODE/PDE 求解器 | 张量比特翻转、合成传感器信号缺失、地面摩擦、载荷与延迟扫描 | \(10^3\text{--}10^5\times\) 实时并行扫描(\(>10^8\text{ cycles/day}\)) | 高数学灵活性;零目标硅片、总线时序或电气真实性 | 测试预言机: 数学断言走廊与状态不变量。边界: 无法验证目标执行时序或未建模的物理动力学。 |
| 处理器在环(PIL)(目标 SoC / MCU 核心仿真) | 计算: 真实目标硅片(ARM/RISC-V);总线: 仿真的总线互联;执行器: 仿真的指令寄存器;被控对象: 实时主机模型 | 指令缓存淘汰、经 JTAG/BIST 的寄存器损坏、中断抖动注入 | \(0.1\text{--}1.0\times\) 实时;受跨平台同步约束 | 指令集与编译准确;对传输模拟电气信号的总线线路与执行器反电动势进行抽象处理 | 测试预言机: 目标寄存器状态与 WCET 执行上界。边界: 忽略物理收发器总线的争用、电压跌落与温升。 |
| 硬件在环(HIL)(目标 ECU + 实时被控对象台架) | 计算: 量产 ECU / NPU;总线: 真实物理 CAN/Ethernet;执行器: 真实电机驱动器 / 测功机;被控对象: 硬实时 FPGA 台架 | 引脚断路/短路,CAN 帧填充 / 节点失控持续发报,电源轨跌落,负载阶跃 | \(1.0\times\) 严格实时(\(24\text{ h/day}\) 墙钟时限) | 高电气、时序与协议保真度;受 FPGA 被控对象模型精度限制 | 测试预言机: 协议 CRC、总线时限监控器与联锁时序。边界: 无法执行破坏性物理过载,也无法模拟轮胎与制动衬片磨损。 |
| 物理故障试验台(测功机试验室 / 现场被控对象) | 计算: 量产 ECU / NPU;总线: 量产线束与传感器;执行器: 真实物理机构;被控对象: 真实底盘、机械臂与地面 | 车轮夹紧、磁制动堵转、热加热、传感器偏置漂移 | \(1.0\times\) 墙钟时间;受机械磨损与热复位限制(\(<10^3\text{ cycles/day}\)) | 完整真实的物理(库仑摩擦、车轮打滑、热耗散、磨损) | 测试预言机: 独立的物理约束仪表与屈服传感器。边界: 每次试验的财务成本高;破坏性试验无法扩展到统计尾部界。 |
测试环境的保真度边界,就是模型、被仿真总线或重放轨迹切断计算与力学之间能量与信息交换之处(因果边界)。 模型中省略的物理机制无法在其中发生失效。 具有未建模库仑起动摩擦与定子滞后的关节会静置一段时间,这段时间仿真器从未显示,随后又落后于仿真轨迹,这是 这个差距由什么构成 中省略机制类的一个实例,只有具备真实关节的阶梯层级才能暴露。
为避免虚假自信,每项已报告的验证结果都必须明确说明因果回路中的哪些环节在物理上是真实的,哪些是模拟的,哪些是从静态日志重放的,哪些被绕过了,以及哪些始终未被观测。 声称权限路径在 997.4 mm 的预算内使底座停止,若不说明轮速信号究竟是由微分方程生成、从真实现场总线读取物理编码器,还是从数字缓冲区回放,那么该说法毫无意义。 明确这一因果映射会暴露每项测试所依赖的假设,从而使未被建模的物理无法掩盖潜在风险。
每一级返回一条轨迹,而因果映射则说明该轨迹中的哪些环节是真实的。 两者都没有说明该次试验是否通过。 《节 1.2》的两个机架端边界迄今为止都只是数字;要对一次试验进行评分,就必须先将它们转化为在运行前固定、并在运行后不加判断地应用的谓词。
故障预言机与验收
注入的故障总会产生反应,既体现在遥测瞬变中,也体现在执行器运动里,有时还会烧坏一个部件。 若无事先固定的预言机,工程师会在运行结束后依据粗大的症状来评判时序曲线,例如判断焦耳热是否熔断了相线,或控制器是否抛出了未处理的异常,于是测试便沦为轶事。 一个预言机是在运行前完整定义、用于对一次试验相对于其主张的评分的谓词。
物理系统通过瞬变而非孤立时刻失效,因此预言机是一种时序规范。信号时序逻辑(STL)将物理谓词(如停车距离低于限值)与逻辑连接词和时间窗口结合起来,使得某个条件必须在某个区间内始终成立、最终在截止时间内发生,或持续到另一个事件出现(语法见@sec-appendix-ml-stl)。
STL 还为验证提供了定量鲁棒性语义。 与简单的通过/失败标志不同,鲁棒性是一个连续的数值分数,用于衡量系统距离违反其安全裕度还剩多大余量。2
机架端预言机具有如下形式。 制动启动必须在最后一次有效续期后的 82 ms 内最终发生,且底盘的行程必须始终保持在从该故障所参照的事件起算的允许距离内,即从目标出现时刻起、以 1.3 m/s 的速度行驶时预算所允许的 997.4 mm,或针对停滞情形,从最后一次有效续期起算的 780.4 mm。 若注入的故障使制动启动比其界限延迟 30 ms,则底盘在开始减速前多行驶 39 mm,并在 1,036.4 mm 后停车,仍短于 1.10 m 的净距。 距离谓词的鲁棒性为负,偏差为 39 mm;启动谓词则失败,偏差为 30 ms。 每个分数都在其自身单位下量化该失败,无需人工检查。
鲁棒性将验证从随机测试转变为以对抗性优化进行时序逻辑证伪。 对高维状态空间进行均匀采样,需要不可行的试验次数才能触及罕见故障,因此反证引擎转而搜寻那些将鲁棒性评分压到最低的扰动,例如传感器噪声、电压跌落和摩擦。 它使用黑盒优化器,如演化策略或贝叶斯优化;若存在可微模拟器,则通过其梯度进行优化;负向评分会产出一条具体的反例轨迹。
对网络本身的形式化验证,例如 Reluplex 求解器 (Katz 等 2017年),可以证明一个小的分段线性网络在可接受的态集上永远不会发出不安全指令,但其成本随网络深度呈指数增长,且它无法覆盖闭环动力学。 因此,验证将这类界与反证、硬件故障注入以及运行时强制结合起来。
评分同样需要一条 无效试验规则,用于处理环境未能交付的某次运行。 如果底盘经过地板接缝时发生的牵引控制降额在注入之前使底盘减速,以至于它遭遇故障时的速度低于声明的 1.3 m/s,那么该次试验并未测试它所声称的包络点。 若帧注入器溢出自身队列,并在故障包到达收发机之前将其丢弃,那么机器从未遭遇该扰动。 将此类运行判为通过会制造虚假信心,而判为失败则是在为夹具问题责怪机器。 因此,预言机返回四种结论之一。PASS 表示所有预先承诺的谓词均成立;FAIL 表示某个实测谓词被违反;INVALID 表示注入失败或前置条件失败;UNOBSERVABLE 表示评分该试验所需的真值数据已丢失,而部分轨迹予以保留。 在这后两种结论下,试验未测量的某个字段均标记为不可用,而绝不可记为零。 这两种结论都不计入 PASS,也都不从覆盖率报告中剔除。
预先承诺将证据与事后叙事区分开来。 故障注入行为具有噪声性和意外性,且在与轨迹可见后协商出的判据会向其漂移以迁就它。 越界被解释为地板起伏所致,或晚于 82 ms 限界的制动启动时刻被以移动底盘仍停在机架末端之前为由加以开脱。
预承诺记录在首次注入之前固定 STL 谓词、物理单位以及任何归一化尺度、响应时间上界和试验无效判定的触发条件。 评估者对每个谓词保留带符号裕量,并且仅当所有必需的裕量与时间界均通过时才返回 PASS。 若停车距离超出其界几毫米,或制动触发时刻错过其截止时刻 \(2\text{ ms}\),则记录会指明哪一个实测谓词失败;轨迹与后续分析决定是地板摩擦、制动滞后、降额还是诊断延迟导致了它。 预承诺是原则 Evidence bounds authority 首次约束一次测试之处。 发布时将依据这些记录授予系统权限,因此,若裁决依据的是在查看轨迹之后修订的评分规则,就会变成依据结果而非测试来授予系统权限。
Checkpoint 1.1: 时序逻辑预言机与测试承诺
在针对物理人工智能策略执行自动证伪之前,先验证您对时序逻辑规范与测试有效性标准的理解:
当预言机在首次注入之前固定下来,每次试验在任何人争论其轨迹之前都会得到四种结论之一,而带符号的裕量说明它距离每个边界有多远。 然而,预言机的有效性受其所评分运行的质量所限。 阶梯可以在仿真中证伪一份合同,但只有对目标硬件的注入才能显示,共享轨上的电压跌落或共享总线上的突发,是否会延迟许可路径;以及目标自身的计时器是否满足预言机所检查的截止时间。
硬件故障注入
仿真中注入的故障测试的是仿真器的响应。 仿真假定理想时钟、隔离的内存、确定性的上下文切换和线性的互连延迟;而在机器上,共享总线上的竞争、微控制器之间的时钟漂移、DMA 停顿以及电感驱动器上的电压跌落,才决定一次干预是否在时限内执行。 因此,注入发生在目标硬件上,经由真实的收发器、定时器、共享总线以及安全约束强制实施路径,而独立的防护装置保护着测试设施。
原位故障注入 是有意地、确定性地引入物理、电气和计算扰动(包括传感器寄存器锁存、时钟漂移、总线争用、供电欠压和执行器负载停滞),并直接注入到目标生产级硅片和机械结构中,同时处于真实的电气、热和动态负载条件下。
考虑硬件上的 F2。 以 1.3 m/s 的速度行驶时,底盘每毫秒行驶 1.3 mm,因此陈旧程度超过 51.8 ms 阈值后仍未被检测到的数据会直接消耗预留资源。 若 78.9 ms 未被检出,它将耗尽全部 102.6 mm。 既非相机的数据表读出时间,也非单帧上的时间戳,都无法确定许可路径的察觉速度。 一个实测的 \(P_{99}\) 检测时间使最坏情况无界(按时移动指令),因此遏制性主张需要在声明的计算负载、总线负载和热约束范围内论证检测界。
对双处理器实现(权限路径的执行位置)的测试,要求在其所声明的边界处注入物理故障。表 1 给出每种情形的检测器、响应与通过条件;该列表还补充了每种故障的注入方式,以及在必要时对其事件进行计时的位置:
- 陈旧观测注入(F2): 内嵌 FPGA 拦截器在图像信号处理器处锁存导航相机的帧,或抑制编码器更新,同时保留原始硬件时间戳。 检测器断言、制动起始时刻和轮速均在独立仪器上测量。
- 租约过期撤销(F1): 测试框架允许提议方续期一次,随后抑制此后所有的续期请求。 租约过期、执行方下一个 1 ms 时钟周期上的撤销,以及制动起始时刻,各自在其独立的线束与时钟上测量。
- 丢帧注入(F3): 现场总线扰动节点在基座巡航时于驱动器从站端口丢弃或损坏 EtherCAT 帧。 每丢失一个 1 ms 周期,基座就会以通道行驶速度继续前进 1.3 mm,消耗相应的停车距离预算。
- 控制轨压降与馈电丢失注入(F4a、F4b): 可编程负载在共享控制电源轨处于其 21.5 V 电池低电量工作点时,从该电源轨抽取推理突发与驱动电机同时工作时的 70 A 瞬态电流(即 谬误与陷阱 中的欠压),而授权路径则在隔离且维持供电的电源轨上运行,该电源轨的规格由 回退阶梯 确定,并记入布置记录(硬件分配)。 一台独立的数字化仪记录授权路径的心跳,制动起始时刻依据欠压标志计时。 F4b 在执行方于经检查的地面上可准许的最长停车过程中断开授权电源轨的馈电,该停车即其1.09 m/s上限所对应的驻留停车。 无论停车距离如何,授权路径的复位在两次试验中均为
FAIL,因为中途由弹簧制动接手、由掉电交付的停车,并非该声明所预算的停车。 - 重复写入注入(A1): 第二总线主站写入基础驱动通道,或写为执行方 EtherCAT 标识符下的帧,或写为驱动的命令寄存器 DMA 写入,而策略与远程助手同时发出指令。
- 层级旁路注入(A2): 测试床在
MAN处于激活状态时提交策略提案,并在一次独立试验中发出与执行方所准许的限值相抵触的远程助手指令。 - 交接停滞注入(A3): 测试床在
PEND期间冻结远程助手的输入,并在两种速度下均丢弃确认帧,且回退的起始时刻以驱动器而非仲裁器日志为准。 - 重放与伪造注入(A4): 测试床重放捕获的
veto_path、manual_drive或accept_item数据包,并发送另一个带有损坏认证标签的数据包。
记录状态轨迹、检测器身份、拒绝时间戳以及恢复有界状态所需的时间,需要借助在电气上和逻辑上都独立于该机器本身的仪器,例如安装在独立数字化器上的光学轴编码器与高速相机。 机载日志守护进程会被其试图捕获的故障本身所污染,因为故障处理器或饱和总线会延迟日志序列化。3 独立的测量同样会拒绝虚假通过,即机器之所以存活,是因为安全主张中并不存在的原因。 注入的丢帧故障可能触发未受监控的热保护断路器,或触发一条将驱动电源切断的辅助接地环路,从而使弹簧施加的制动器在预算内将基座刹停,而软件强制器却已陷入优先级反转死锁。 一个只检查停车距离的预言机,会将该次试验判为通过。 测试框架必须验证安全声明中所命名的强制器路径确实执行了纠正动作。
存活性信号是另一种假通过来源,因此测试必须针对它可能遗漏之处。硬件隔离 复述了原告专家在丰田非预期加速诉讼 (Barr 2013年) 中主张的机制,即定时器中断持续为看门狗喂狗,而控制任务可能已经死亡,并由此得出规则:定时器馈入只能证明馈入路径已运行(1.2、1.1)。 该规则对应的测试向量会终止控制任务或冻结其输出,同时保持定时器中断存活,并在独立于控制器的仪表上测量执行器指令与看门狗输出。 在移动操作臂上,F1 就是将该向量施加于提议方。 主机心跳可能在 chunk-policy 任务已经死亡之后仍持续报告存活进程,因此 F1 依据驱动端测得的制动起始通过,而绝不依据日志中的心跳通过。 由于历史机制属于归因而非确证,台架结果只对受测设计具有说服力,不对任何车辆具有说服力。
Systems Perspective 1.2: 看门狗存活性不变量
War Story 1.1: 测试“对任务盲目的看门狗”这一假设
待检验的机制:原告专家 Michael Barr 就与位翻转和栈溢出内存破坏相关的任务死亡场景作证。 测试向量使真实的实时节气门控制任务失效,同时保留硬件定时器中断处于活动状态,随后独立于受测控制系统测量节气门位置与看门狗复位引脚。 由于 NHTSA/NASA 调查 并未确立电子故障是意外加速的原因,因此这属于归因测试假设,而非已确认的车辆故障。
预言机:若安全主张要求及时、针对特定任务的闭环控制,那么正在运行的看门狗心跳并不构成充分证据。 验证预言机必须记录:当任务执行冻结时,被控对象是否在物理截止时间内独立恢复到经验证的安全状态(例如发动机怠速或机械制动覆盖)。
系统课程:注入存活信号可能遗漏的失效模式,然后在独立的仪表上测量物理响应。 内存保护单元(MPU)、独立的监督核心,以及需要显式密码学任务签名的智能窗口式看门狗,都是必须在目标平台上演示故障覆盖的选项。
干预机制必须在使干预成为必要的条件下接受测试。 在空闲实验台上能干净接管的那套机制,对生产环境不提供任何证据:在危机中策略以峰值吞吐量运行,内存总线承载高分辨率传感器数据流,DMA 通道搬运帧缓冲,底盘以通道速度承载其装载的机架。 该框架在声明的热与电负载条件下注入故障,并分别测量租约到期撤销,以及从诊断标志到驱动端制动启动的时间。 若介入路径与神经加速器共享总线仲裁器,接管可能被无法抢占的突发传输阻塞;若接管仅在安静总线上验证过,那么现场中假设瞬时接管的安全论证就会失效。
↰ 前置条件: 微架构压力模式直接建立在 共享资源争用 的内存争用基准之上。
一次试验 campaign 在固定协议下对每一次注入运行,因此结论由程序决定,而非由阅读轨迹的人决定。 试验编排器首先按该量的单位,将温度、电源轨电压和轮速等全部前置条件与其声明容差比对;若试验在注入故障前即已超出容差,则试验以 INVALID 结束。 随后,它将逻辑分析仪、被测装置和真值数字化仪统一接到同一参考时钟上,让移动平台在其包络工作点稳定,并在触发线上触发注入,该触发线在时钟上标记故障的起始时刻。 检测器标志、驱动端的接管以及到达有界状态,均从该时间戳起在隔离的分析仪上计时;而接入旁路继电器的真值传感器,可在移动平台离开存活包络时切断执行器电源。 预置的预言机依据 节 1.5 的判定与通过规则,用独立的真值仪器对轨迹打分;不完整的真值帧仅在此阶段、注入运行之后才显现,即 UNOBSERVABLE。 编排器对记录的表头签名,并通过摘要将其绑定到证据包。
↳ 协议: Fault-injection protocol 分阶段给出协议及其错误码,供构建测试编排器的读者参考。
测试分布式循环会暴露时钟换算风险,即使每个处理器都满足其本地调度。 F2 的拒绝阈值基于将捕获时间戳换算为安全微控制器时钟的 0.2 ms 界限,而该界限本身也是一项需要测试的论断。 取应用处理器 ±100 ppm 与安全性微控制器 ±50 ppm 的示例振荡器限值,另加一个单独限定的 50 ppm 热贡献,而上述规范并未包含该项。 最差的相对速率随后是 200 ppm,在不进行重新同步的情况下,仅漂移本身就会在 1 s 后耗尽 0.2 ms 的同步误差限额。 一个健康的 100 ms 同步周期将该漂移贡献限制在 20 μs 以内;网络与换算误差必须单独预留预算。
假设有两个良好的同步帧间隔为 400 ms,而它们之间的三个调度帧全部丢失。 同步帧中断持续四个同步周期,有界漂移贡献增至 80 μs。 若观测到的同步抖动标准差 \(\sigma_{\text{jitter}}\) = 15 μs,则漂移率 \(r_{\text{drift}}\) 乘以同步帧中断时长 \(T_{\text{blackout}}\) 加一个标准差后为 \[\Delta t_{\text{one-sigma scenario}}=r_{\text{drift}}\,T_{\text{blackout}}+\sigma_{\text{jitter}} \tag{1}\] 或 95 μs。 公式 1 中的一个标准差取值并非硬约束;确定性的截止时间需要合理的抖动包络与时钟换算测试。 第五个漏掉周期给出仅漂移部分的 100 μs,在抖动之前,为 F2 阈值所依据的 0.2 ms 约束之半。
硬件上的每次注入都以同样的义务告终。 已触发的检测器、拒绝发生的时刻、驱动装置处的接管以及最终的物理结果,均使用故障无法触及的仪器,在同一参考时钟下测量;任何丢失其中之一的试验,都没有证明它本欲证明的东西。 因此,硬件试验活动产生的是记录而非通过计数,每条绑定将一次试验对应到其主张、其包络点、其构建版本及其证据。
↳ 下游: 硬件在环压力试验结果为 安全论证与主张 中的安全论证提供了证据性依据。
故障清单
当一次 F4a 试验结束时,底座已完成其驻留停止,而应用处理器发生欠压,见证这些事件先后顺序、以及从未暂停的授权路径心跳的,只有独立采样仪上的一条轨迹。 只有在轨迹仍绑定于该主张、该包络点及其所测构建版本时,发布方可将该次试验计入。 故障记录(fault record) 通过摘要将一个小而固定的表头链接到一个保留的证据包。
除设计契约、控制权用例 A1–A4,以及故障清单已经引用的放置账本之外,该记录还消费两个尚未命名的来源:策略清单(策略清单)的遗漏日志,以及评估记录(评估日志)的覆盖缺口目录,二者指出了已学提案者从未见过的条件。 表头与证据包共同标识了主张、工作点、注入、软硬件构建、原始轨迹、检测器、响应时序、物理结果和异常。 固定表头保存每次试验共有的字段。 其身份字段给出试验编号与主张、包络点、按模式、幅度和目标描述的注入故障,以及预承诺预言机的摘要。 其结果字段承载实测的检测时间与接管时间、主张的带符号裕量、判定状态、证据包的摘要,以及对表头的签名。 可变的跟踪记录保留在证据包中。
一条 F1 记录,取自包络的受限点 1 m/s、经检查的地面,且机架装载至 50 kg,显示这些字段已填写(表 3)。 如同每一次停滞,距离预言机均参照最后一次有效续期。 制动启动前的 82 ms 内的行程、摩擦系数为 0.12 的地面上的驻停,以及跟踪内缩量共同给出 759.3 mm,短于该速度下从目标出现时刻起预算允许的 960.9 mm。 结果字段不含任何取值,并标记为不可用。 本书中尚无试验被执行,因此该字段指明将填充它的测量名称,且在该测量存在之前,记录不带有结论。
| 试验与主张 | 包络点 | 预先声明的预言机,以上一次有效续期为参照起点 | 检测器与见证者 | 待测结果 | 裁决 |
|---|---|---|---|---|---|
| F1,提议方停滞:分块策略任务在续期后一个时间步被终止;机架端停止声明 | 1 m/s;50 kg 载荷;试验地面的实测摩擦系数为 \(\mu =\) 0.12;控制电源供电轨处于 24 V 标称值 | 制动起始 \(\le\) 82 ms;行进至静止 \(\le\) 759.3 mm | 许可路径上的租约计时器;过期、撤销与制动起始各自位于独立的线束与时钟 | 试验次数;各试验的最大制动起始与最大行进,均带其带符号裕量;在测量之前不可用 | 在评分之前为空;仅当两个裕量均非负时,才为 PASS |
↳ 字节布局: Fault record 逐字段地给出表头字段,包括不可用值如何编码,供构建账本的读者使用。
该记录逐字段地保留 节 1.5 的四个判定。 一个阻止请求注入的断路器使该试验 INVALID;对于在注入前中止的试验,检测时间、接管时间和裕度不可用而非零;该记录包为每个测量字段记录有效性标志及其缺失原因,预言机在做任何算术运算之前先检查这些标志和判定,因此不可用字段永远不会进入通过计数或延迟或裕度统计。
一个单一的汇总百分比掩盖了该活动从未触及之处。 一台机器即使通过了五千次故障试验中的 98%,若全部五千次试验均在室温下、内存总线负载很低的条件下进行,其证明力仍然十分有限。 因此,覆盖率沿各个独立维度分别报告:功能安全要求、物理包络边界、物理与逻辑注入点、时序尾部、硬件构建版本,以及多重故障组合。 对于移动操作臂,边界覆盖率追踪故障是否在空货架与满货架状态下注入、在干燥地面的通道速度下注入、在已检查地面的受限速度下注入,以及是否在控制电源供电轨处于电池低电量对应的供电电压时注入。 时序尾部覆盖率隔离针对许可循环的 \(P_{99}\) 调度延迟与峰值直接内存访问利用率的注入。 机器达到可接受的验证,并非当平均覆盖率指数超过某个任意阈值,而是当每个独立维度上的最低覆盖率都满足安全论证的要求。4
重复试验仅在存在变化的地方才计入。 在数字台架上以五百次运行执行一份确定性故障脚本,初始条件、寄存器状态、时钟分频器和输入均固定,每次运行都执行相同的分支序列,因此只相当于一次运行。 在试验通道中,重复试验采样地板摩擦、异步中断到达、总线仲裁,以及传感器时钟与推理周期之间的相位差,因而测量响应时间分布的离散程度与尾部。
当从声明的故障分布中采样的 \(n\) 次独立伯努利试验中未能成功缓解故障危险效应的次数为零时,该结果给出该分布下缓解失败概率的单侧上置信限。 该计数是 物理试验极限 的零失效定尺,应用于注入的故障总体,而非策略运行的次数。 在 95% 的置信度下,1% 的缓解失败概率上限需要 299 次缓解失败数为零的注入,而 0.1% 的缓解失败概率上限需要 2,995 次。 若要推断按 FIT 加权的硬件覆盖率(1.1 定义 FIT 率,权重为 \(\lambda_i\)),注入必须代表原始故障权重 \(\lambda_i\),或采用经论证的分层加权与分层分析。5
该界限仅在注入结果满足所声明的独立性与采样假设时成立。 重复停机会使驱动绕组(\(I^2R\))和制动衬片发热,改变其电阻与摩擦,并使后续试验与先前试验相互耦合。 在室温下的干燥通道上运行的一次试验,无法为被检地面或运行条件包络的 5 °C 低温端建立限值。
Napkin Math 1.1: 在声明假设下的故障覆盖率
缓解失败次数为零的试验计数,例如针对 299 次注入且限值为 1 %的情形,仅在故障总体按其 \(\lambda_i\) 权重成比例抽样时才成立。 在不等故障率部件上的均匀注入会估计出不同的分布,除非对结果进行加权且每个分层都有充分的证据。 测试必须记录注入了哪种模式、是否被检出,以及装置是否实际达到了其允许状态。
运行时长无法弥合注入所留下的缺口。 零事件测试无法达到放行声明所需的失效强度(即 物理试验极限 暴露墙),因此故障记录中从未注入的部分,其分量并不亚于通过的部分。 它列出因台架限制、传感器带宽或破坏性试验成本而被略去的每一个参数组合,因此未测试的区域无法以“已验证裕度”的形式进入 部署发布 的安全论证。
这条介于经验道路暴露与安全合格性之间的数学边界,被形式化为 天文数字暴露墙(图 2)。 正如 Butler 和 Finelli (1993年) 所确立的,要在统计置信度下演示出超可靠失败率 \(\lambda\),需要零失败,且暴露时长随目标呈反比缩放:\(N \approx -\ln(1 - C) / \lambda\),在标准的 95% 置信水平下,可得 \(N \approx 3.0 / \lambda\)。 对于受 ISO 26262 ASIL D(\(\lambda \le 10^{-8}\ \text{h}^{-1}\),即 10 FIT)治理的安全关键汽车系统,以及受 FAA 法规与 IEC 61508 SIL 4(\(\lambda \le 10^{-9}\ \text{h}^{-1}\),即 1 FIT)治理的民用航空系统,仅凭统计式黑盒运行来验证生命安全级可靠性,需要 3 亿至 30 亿连续零失效小时——相当于 34,000 至超过 340,000 连续车辆年。 即便是历史上规模最大的商用自动驾驶车队,例如 Waymo 的无人驾驶运营(累计超过 2 亿英里,约合 700 万运行小时)或 Tesla 的客户监督 L2 车队(累计超过 80 亿英里,约合 2.5 亿运行小时),也面对相对 ASIL D 和 SIL 4 标准存在一到三个数量级的不可逾越的验证缺口。 因此,统计式黑盒车队测试无法使生命安全级自动驾驶通过合格性认证;系统安全性必须转而通过形式化运行时架构、确定性安全触发机制 以及针对性的硬件在环故障注入来实现数学认证。
谬误与陷阱
机器可以通过所有孤立的故障测试,但当共享母线、总线或时钟耦合了故障,或使它们的检测器失效时,仍然会失败。 这些是由共同原因枚举出的复合故障,见 节 1.3。 复合测试只有在足够的电隔离或逻辑独立仪表在故障后仍然存活,从而确定事件序列时,才能捕获此类失败。
谬误:独立的本地看门狗定时器保证端到端物理截止时间合规。
机架端停止必须在预算预留的 133.6 ms 预制动延迟内开始。 每个阶段都通过各自的本地看门狗:相机满足其曝光与读出时间,感知主干满足其推理时间,租约在 60 ms 处触发,制动在收到指令后 20 ms 内开始。 图像信号处理器与主干之间的队列在负载下会将帧额外滞留 100 ms,这一延迟位于上述检查之间,因此没有任何单个超时能够检出它。 在速度为 1.3 m/s 时,它额外消耗 130 mm 的行程,而可用余量只有 102.6 mm,于是停车距离超出无障碍距离 27.4 mm。 只有将每条观测的采集时间与许可路径处理该观测的时刻进行比较的检查,才能发现这条队列。 验证必须追踪完整的感知到执行区间 ,并在并发负载下纳入通信抖动预算。 本地看门狗仍然有用,但只有当组合结果(包括每一次交接与缓冲延迟)都落在物理响应包络内时,其界限才支持端到端结论。
陷阱:允许诊断日志和高吞吐量遥测与实时安全回路共用现场总线。
假设移动操作臂在感知、驱动、安全约束执行与证据记录之间共用一段 EtherCAT 总线。 一次诊断内存转储将总线利用率推高至 98 %,引发网络传输抖动,从而同时延迟驱动指令与判断其物理效应所需的遥测数据。 同样的带宽争用 也会延迟安全心跳,以及本可解释故障的日志。 分别测试各条流会遗漏这一共同依赖。 关键流量需要通过经过验证的时间敏感网络(TSN)调度与硬件优先级获得有界服务,或采用独立的物理通道;诊断流量则必须限制在其分配预算之内。 复合负载测试必须确认,记录功能既不能阻止安全响应,也不能阻止对该响应的观测。
陷阱:依赖与被监控执行器共享电源或失效模式的软件异常检测器。
控制电源轨欠压会使车轮编码器通道冻结在一个看似合理的速度值 1.3 m/s,而驱动故障则使底盘以其驱动速度上限 1.5 m/s 行驶,在这一速度下,已完成的制动预算所需距离已超出无障碍距离(停止包络)。 编码器帧仍然格式良好,且数值保持在标称限值之内,因此读取该通道的授权路径无法识别超速。 如果编码器电源仍然正常,隔离的驱动故障测试就不会暴露这种共因失效。 验证必须考察一种故障是否会禁用检测另一种故障所需的证据。 采用电隔离的传感以及针对规定的信号卡死行为的显式检查必须支撑响应,而不能假定一个看似合理的测量就是有效测量。
谬误:将诊断日志器丢包所致的不可观测测试结果,当作安全性的证据。
在复合故障测试中,总线争用导致记录器丢包,看门狗复位则擦除了易失性 SRAM 轨迹。 机器并未撞击机架末端,但团队已无法重建其峰值冲击载荷、其 \(\mathrm{SE}(3)\) 轨迹,或其响应时序。 该观测无法确立验收准则所规定的力与停止限值,因为它们并未被测量。 对于上述主张,试验必须保持无结论,并将记录失败视为仪器缺陷。 在重复测试之前,团队必须使所需的证据路径能够经受注入的电学条件。 视觉上令人满意的结论不能替代安全验收准则所规定的定量测量。
摘要
一台在其通道内连续数周无事故运行的移动操作臂,表明它在所遭遇的条件下其标称循环是有效的。 为检验其制动声明,团队还须使其提案器进入停滞状态、使其观测老化、使其现场总线帧丢失,并在机架端使其控制母线电压跌落,测量制动是否在各故障所对应的参考事件发生后、在各自规定的时限内启动,以及底盘是否在从该事件起算、由相应判定准则允许的距离内停稳。 四条权限规则在同一次带负载接近过程中受到挑战,各自对照自身的通过条件,涵盖从外部写入被拒绝到后备方案在移交截止时间前启动的情形。 每项测试都关联一个设计主张、注入、检测器、响应以及实测的装置结果。 通过某个条件只能缩小不确定性,并不能证明故障与老化状态的所有组合都是安全的。
标称运行包络与单独声明的生存包络赋予这些测试以意义。 若注入状态、仪表与验收预言机仍保持在测试计划之内,越过标称边界可以构成一次有效的生存测试。 当注入器或前置条件失败时,该试验记为 INVALID;当必需的真值数据丢失时,记为 UNOBSERVABLE。 超出标称包络的有效失败可以暴露后备方案或遏制限值的不足。 这些结论保留了简单通过率所会掩盖的证据。
仿真可以采样多种摩擦与定时场景,但无法确立未建模的衬垫磨损或电气响应。 物理测试会在其特定的硬件与环境条件下采样这些效应。 零漏检的故障注入测试仅对其声明的故障分布界定漏检概率;零事件运行小时数仅在其声明的暴露模型下界定事件率。 两者都不能替代实测的执行器响应与经独立准入认可的后备方案。
↳ 下游: 在证伪过程中识别出的未测试运行工况,会输入到 认识论边界 的认知边界分析中。
要点回顾: 硬件在环验证与故障注入
- 追踪完整响应:预先提交故障、检测器、截止时间、物理预言机和证据路径。 局部看门狗通过并不能组合成端到端的上限。
- 挑战共享资源:同时发生的总线、电源和传感故障可能同时使保护性响应及其见证失效。
- 区分判定:有效的违规属于失败;被破坏的前置条件为
INVALID;丢失必需的遥测数据为UNOBSERVABLE。 - 陈述证据总体:报告已测试的运行条件和生存条件、故障权重、时序尾部、构建版本以及缺口。 零事件计数是一个条件置信限。
- 向前推进记录:版本化的故障记录为发布安全论证提供了一部分依据,与分析和架构、以及现场证据并列。
后续内容: 从故障记录到发布决策
脚注
STAMP/STPA 危害分析:由 MIT 的 Nancy Leveson 开发,STAMP 将安全性视为控制问题而非部件可靠性问题,因此危害表现为接口处的不安全控制动作,例如总线延迟或滤波器滞后侵蚀稳定性裕度的接缝。 STPA 是建立在其上的危险分析方法。↩︎
定量鲁棒性语义 :每个谓词在其自身的物理单位下具有带符号的裕度:净空度可能以米计,制动启动以毫秒计,接触力以牛顿计。 负的裕度即证伪该谓词。 跨不同单位的取最小值没有意义;组合成无量纲的 STL 评分要求每个裕度都除以预先声明的、同单位的正标度。 记录保留原始裕度和标度,以便通过或失败仍然具有物理可解释性。↩︎
非侵入式硬件追踪: 非侵入式追踪利用专用的硅基硬件调试模块(例如 ARM CoreSight Embedded Trace Macrocell)以及外部 FPGA 总线嗅探器,在不占用 CPU 执行周期的情况下捕获内部总线事务。 通过在与系统内存总线解耦的专用高速 SRAM 中缓冲执行轨迹,硬件分析器可在不扰动实时线程调度的情况下,捕获逐周期精确的故障反应时间戳。 依赖软件日志守护进程会引入海森堡观测者效应,即日志开销会掩盖被测的确切竞态条件。↩︎
保证标准范围 :ISO 26262-5 针对道路车辆电气与电子硬件。 其单点与潜在故障指标涉及架构及其分配的安全目标;它们并非 1.1 中的聚合量 \(C_{\text{diag}}\)。 故障注入是测试诊断假设的一种方法,与分析及其他证据并列。 ANSI/UL 4600 从多种证据类型构建自动驾驶车辆的安全论证。 两项标准均未规定固定的 HIL 试验次数足以支持发布。↩︎
试验采样与老化:二项计数假定在声明的注入分布下各结果独立同分布的伯努利结果;它不要求泊松事件到达。 反复加热、磨损或接触变化可能破坏独立性,因而需要采用状态分层试验设计。↩︎
