1. 从液压到电机:EMB夹紧力预估到底在解决什么问题
传统液压制动系统里,驾驶员踩下踏板,制动液把压力传到卡钳,卡钳活塞推刹车片夹紧制动盘。整个过程里,夹紧力跟管路压力基本是线性关系,所以ECU只要读一个压力传感器,就能比较准确地知道当前制动力有多大。这套逻辑用了几十年,成熟、可靠、成本低。
但到了EMB(Electro-Mechanical Brake,电子机械制动器)这里,情况完全变了。EMB取消了制动液、管路、主缸,直接用电机驱动减速机构,把旋转运动变成丝杠或凸轮机构的直线运动,推动刹车片夹紧制动盘。夹紧力不再有"压力"这个中间物理量可以测量,它变成了电机转矩、减速比、传动效率、丝杠导程、摩擦系数等一堆参数的函数。
这就带来一个非常现实的问题:你没法直接测夹紧力,但制动系统必须精确知道夹紧力。
为什么必须知道?因为整车的制动控制策略——ABS、ESC、AEB、能量回收协调——全都依赖对当前制动力的准确估计。如果夹紧力估不准,轻则制动感受差、踏板虚位大,重则ABS介入时机错误、制动距离变长,甚至出现抱死或制动力不足的安全风险。
更麻烦的是,EMB的夹紧力还受到很多时变因素的影响。刹车片会磨损,摩擦系数会随温度变化,电机和减速机构的效率会随温度和使用时间漂移,丝杠的润滑状态也会改变。这些因素叠加在一起,让夹紧力预估从一个"查表"问题变成了一个"状态估计"问题。
我接触过几个做EMB的团队,早期都踩过同一个坑:以为电机电流乘以一个固定系数就能得到夹紧力。台架上标定的时候看着挺准,装车跑一段时间就发现偏差越来越大,尤其是连续制动导致温度升高之后,估计值和实际值的偏差能到20%以上。这个偏差在紧急制动场景下是不可接受的。
所以夹紧力预估技术的核心任务,就是在没有任何直接力传感器(或者只有低成本间接传感器)的前提下,通过电机端可测量的电气量和机械模型,实时、准确地推算制动盘上实际受到的夹紧力。这件事做得好不好,直接决定了EMB能不能真正替代传统液压制动。
2. 夹紧力预估的三条技术路线:各自适用什么场景
2.1 基于电机电流的开环估计法
这是最直观的思路。电机的电磁转矩与电流成正比(对于直流无刷电机,是交轴电流与转矩常数的乘积),而电机输出转矩经过减速机构和传动机构后,最终转化为夹紧力。理论上,只要知道电流,就能算出转矩,再算出夹紧力。
具体公式链条是这样的:
T_motor = Kt × Iq T_output = T_motor × i_gear × η_gear F_clamp = T_output × (2π × η_screw / P_screw)其中Kt是转矩常数,Iq是交轴电流,i_gear是减速比,η_gear是减速机构效率,η_screw是丝杠效率,P_screw是丝杠导程。
这条路线最大的优点是不需要额外传感器,成本最低,响应最快。但它的致命弱点也很明显:所有效率参数都是时变的。减速机构在低温下效率可能只有60%,热起来之后能到85%;丝杠的润滑脂在长期使用后会老化,效率下降;刹车片磨损后,同样的电机转角对应的夹紧力也会变化。
我见过一个比较务实的做法:用电流法做基础估计,但每隔一段时间用其他信息源做一次在线校正。校正的触发条件可以是"每次制动结束后电机回到零位时的电流残差",也可以是"温度传感器读数发生显著变化时"。这样既保持了低成本,又避免了长期漂移。
2.2 基于电机转角与刚度模型的估计法
这条路线换了一个角度:不去纠结电机输出了多少力,而是看刹车片被推了多远。EMB的传动机构可以等效为一个弹簧-阻尼系统,当刹车片接触到制动盘之后,继续推动电机,夹紧力与电机转角之间就存在一个刚度关系。
在接触点之后,夹紧力F和电机转角θ的关系大致是:
F_clamp = K_sys × (θ - θ_contact) × (P_screw / 2π) × i_gear其中K_sys是系统等效刚度,θ_contact是刹车片刚好接触制动盘时的电机转角。
这条路线的好处是物理意义清晰,对电机参数变化不敏感。但难点在于两个:第一,θ_contact会随着刹车片磨损而不断变化,必须实时更新;第二,系统刚度K_sys本身也不是常数,它跟刹车片材料、制动盘温度、接触面积都有关系。
实际操作中,θ_contact的更新通常靠"接触点检测"算法。思路是:在电机推动刹车片的过程中,监测电流或转矩的突变点。当刹车片接触制动盘的瞬间,负载转矩会突然增加,这个拐点就是接触点。每次制动都记录这个点,用滑动平均或卡尔曼滤波更新θ_contact的估计值。
2.3 多信息融合的观测器方法
前两条路线各有短板,所以工程上更常见的做法是把它们融合起来,再加上温度、磨损等状态量,构建一个状态观测器。典型的结构是:以电机电流和转角作为输入,以夹紧力作为状态量,用扩展卡尔曼滤波(EKF)或滑模观测器进行估计。
状态方程大致长这样:
状态量: x = [F_clamp, θ_contact, K_sys, T_temp] 观测量: z = [Iq, θ_motor]观测器的优势在于能同时估计夹紧力和那些慢变的参数,比如接触点和系统刚度。但它对模型精度的要求高,调参也比较费劲。如果模型里的摩擦模型太简单,观测器在低速和换向工况下容易发散。
我个人的经验是:如果项目对成本极度敏感,用电流法加接触点校正就够了;如果对精度要求高,尤其是要支持AEB这种功能,那观测器方法是绕不过去的。但观测器的开发周期至少要多出三到六个月,因为需要大量的台架数据来辨识模型参数。
| 技术路线 | 成本 | 精度 | 开发难度 | 适用场景 |
|---|---|---|---|---|
| 电流开环法 | 最低 | 中低 | 低 | 基础制动、低速工况 |
| 转角刚度法 | 低 | 中 | 中 | 需要接触点检测 |
| 多信息融合观测器 | 中高 | 高 | 高 | AEB、ESC等高精度需求 |
3. 接触点检测:夹紧力预估里最容易被低估的环节
3.1 为什么接触点这么关键
接触点是夹紧力预估的"零点"。在刹车片接触制动盘之前,电机空载转动,夹紧力为零;接触之后,同样的电机转角增量对应的夹紧力增量取决于系统刚度。如果接触点判断错了,整个夹紧力的绝对值就会整体偏移。
偏移有多大影响?假设系统刚度是50 kN/mm,接触点判断偏差0.1 mm,夹紧力偏差就是5 kN。对于一台紧凑型轿车,紧急制动时单轮夹紧力大概在20-30 kN量级,5 kN的偏差就是20%左右。这个误差足以让ABS的滑移率控制出现明显偏差。
更隐蔽的问题是:接触点不是固定不变的。刹车片磨损1 mm,接触点就变化1 mm对应的电机转角。如果系统不做自适应更新,开了两万公里之后,夹紧力估计可能完全不可用。
3.2 基于电流拐点的检测方法
最常用的接触点检测方法是监测电机电流的拐点。在空载阶段,电机电流主要克服惯性和摩擦,值比较小且平稳;当刹车片接触制动盘后,负载转矩突然增加,电流会出现一个明显的上升拐点。
实际操作中,不能简单地设一个电流阈值来判断。因为电机电流本身有纹波,而且空载摩擦转矩会随温度变化。比较可靠的做法是计算电流的斜率:
# 简化的接触点检测逻辑 def detect_contact_point(current_samples, angle_samples): # 计算电流对角度的斜率 di_dtheta = np.gradient(current_samples, angle_samples) # 寻找斜率超过阈值的第一个点 threshold = 0.5 # 需要根据实际系统标定 for i in range(len(di_dtheta)): if di_dtheta[i] > threshold: return angle_samples[i] return None这个方法的难点在于阈值标定。阈值设高了,接触点检测滞后;设低了,噪声会触发误判。我试过的一个改进方案是:不只看斜率,还看斜率的持续性。要求连续N个采样点的斜率都超过阈值,才认为是真正的接触。N一般取3到5,取决于采样率。
3.3 温度对接触点检测的干扰
温度变化会从两个方向干扰接触点检测。第一,电机绕组电阻随温度升高而增加,同样的电流对应的转矩会变化;第二,减速机构里的润滑脂在低温下粘度高,空载摩擦转矩大,电流基线本身就高。
低温环境下,空载电流可能从常温的0.5 A上升到1.5 A甚至更高。如果还用常温标定的阈值,接触点会被严重误判。
应对办法是把温度作为一个显变量引入检测逻辑。具体来说,可以建立一个"空载电流-温度"的查找表,在检测接触点之前先根据当前温度对电流做归一化。或者更直接一点,用电流的"相对变化率"而不是绝对值来判断:
相对斜率 = (di/dθ) / I_baseline(T)其中I_baseline(T)是当前温度下的空载电流基线。这样就把温度的影响消掉了。
注意:接触点检测的标定必须在全温度范围内做。我见过只做了常温标定的项目,冬天装车之后夹紧力估计完全乱套,后来补做了-30°C到80°C的标定才解决。
4. 系统刚度与摩擦系数的在线辨识:让模型跟着硬件一起"变老"
4.1 系统刚度为什么不是常数
系统刚度K_sys描述的是"电机转角增量对应的夹紧力增量"。它由串联的多个环节组成:减速机构的扭转刚度、丝杠的轴向刚度、刹车片的压缩刚度、制动盘的面外刚度。这些环节的刚度都会变化。
刹车片是最典型的例子。新刹车片的压缩率大概在2%-5%之间,随着使用,材料被压实,压缩率会下降。这意味着同样的夹紧力,新片需要更大的位移,旧片需要的位移更小。反映到系统刚度上,就是旧片的K_sys更大。
制动盘的温度也会影响刚度。高温下制动盘材料弹性模量略有下降,但这个影响相对较小,通常在5%以内。更大的影响来自热膨胀:制动盘受热后厚度增加,等效于接触点前移。
4.2 用递推最小二乘法在线辨识刚度
既然K_sys会变,那就让它在线更新。递推最小二乘法(RLS)是工程上最常用的在线辨识方法,计算量小,适合嵌入式实现。
模型可以写成:
F_clamp(k) = K_sys(k) × Δθ(k) + e(k)其中Δθ是接触点之后的电机转角增量,e是噪声。RLS的更新公式是:
# 简化的RLS实现 def rls_update(K_est, P, delta_theta, F_measured, lambda_forget): # 计算增益 K_gain = P * delta_theta / (lambda_forget + delta_theta**2 * P) # 更新估计值 K_est = K_est + K_gain * (F_measured - delta_theta * K_est) # 更新协方差 P = (1 - K_gain * delta_theta) * P / lambda_forget return K_est, P这里有个关键参数:遗忘因子λ。λ越接近1,历史数据权重越大,估计越平稳但跟踪变化越慢;λ越小,对新数据越敏感,但容易受噪声干扰。工程上一般取0.95到0.99之间。
但这里有个鸡生蛋的问题:RLS需要F_measured作为输入,可F_clamp本身就是我们要估计的量。怎么解决?答案是用其他信息源提供F_measured的参考值。比如在台架上用测力传感器标定过的工况,或者用电机转矩反推的夹紧力作为"伪测量"。
实际操作中,更常见的做法是离线辨识+在线微调。先在大批量台架数据上离线辨识出K_sys随磨损和温度的变化规律,做成一个二维查找表,在线运行时根据当前磨损估计和温度读数查表得到K_sys的初值,再用RLS做小范围修正。
4.3 摩擦系数变化的补偿思路
刹车片摩擦系数μ是夹紧力预估里另一个大变量。同样的夹紧力,μ不同,产生的制动力矩完全不同。但夹紧力预估本身其实不直接依赖μ——夹紧力是刹车片压在制动盘上的法向力,μ影响的是切向的制动力矩。
不过在实际系统中,μ会间接影响夹紧力估计。因为EMB的电机负载转矩不仅来自夹紧力,还来自制动盘旋转时刹车片受到的摩擦力。这个摩擦力会形成一个附加的阻力矩,在制动过程中叠加到电机负载上。
补偿的思路是:在制动过程中,用制动力矩的估计值反推μ,再用μ修正夹紧力估计。制动力矩可以通过整车减速度或者轮速变化来估计。这条路线的精度取决于整车质量估计和坡度估计的准确性,工程实现比较复杂,通常只在高端车型或者L3以上的自动驾驶制动系统中才会用到。
5. 从台架到整车:夹紧力预估的标定与验证实战
5.1 台架标定的核心工况设计
台架标定是夹紧力预估的基础。台架上可以装测力传感器,直接测量夹紧力,这是最可靠的参考值。标定的核心是设计覆盖全工况的测试矩阵。
我建议至少覆盖以下维度:
- 温度:-30°C、0°C、25°C、60°C、100°C、150°C(制动盘温度)
- 夹紧力水平:5 kN、10 kN、20 kN、30 kN、40 kN
- 电机转速:低速(接近堵转)、中速、高速(空行程阶段)
- 磨损状态:新片、磨合后、磨损50%、磨损80%
- 制动模式:单次制动、连续制动、ABS循环
全组合测试量太大,实际做法是用正交试验设计,选取有代表性的工况组合。比如温度取5个点,夹紧力取3个点,磨损取3个点,这样大概45个核心工况,每个工况重复3次,总共135次测试。如果台架资源紧张,可以进一步精简到20个工况左右。
每次测试要记录的数据包括:电机电流(三相)、电机转角、电机温度、制动盘温度、夹紧力(测力传感器)、制动盘转速、环境温度。采样率建议不低于1 kHz,因为接触点检测需要捕捉电流的快速变化。
5.2 整车验证的难点与对策
台架标定完了,装车验证才是真正的考验。整车环境跟台架有几个关键差异:
第一,振动和冲击。车辆行驶中的振动会叠加到电机电流上,让接触点检测的噪声更大。对策是在信号处理环节加带通滤波,滤掉跟车辆振动相关的频段。但滤波会引入相位延迟,需要权衡。
第二,供电电压波动。台架上电源稳定,整车上电池电压会在11 V到14.5 V之间波动(12 V系统),影响电机电流和转矩的关系。对策是在转矩计算里引入母线电压补偿。
第三,多轮协调。整车制动时四个轮子的EMB是协同工作的,但每个轮子的磨损、温度、接触点都不同。夹紧力预估必须每个轮子独立做,不能共用参数。
整车验证的黄金标准是跟液压制动做对比。在同一辆车上先装液压系统,测一组制动数据;再换EMB,测同样的工况,对比制动距离、减速度曲线、ABS介入时机。如果偏差在5%以内,基本可以认为夹紧力预估是合格的。
5.3 一个真实的踩坑案例
我之前参与过一个项目,台架标定做得挺漂亮,全温度范围内夹紧力估计误差都在3%以内。装车之后,常温工况也没问题。但到了冬天,零下十几度的时候,车主反馈"刹车前半段没力,后半段突然来力"。
排查过程花了将近两周。先怀疑是接触点检测在低温下误判,把接触点检测的阈值调了又调,问题依旧。后来用CAN总线记录仪抓了完整数据,发现低温下电机电流的基线确实高了,但接触点检测逻辑已经做了温度补偿,不应该有这么大偏差。
继续深挖,发现真正的问题是减速机构里的润滑脂在低温下粘度剧增,导致传动效率从常温的85%掉到了50%左右。而我们的夹紧力估计模型里,传动效率是用常温标定的固定值。效率低估了,同样的电流算出来的夹紧力就偏小,所以驾驶员感觉"没力"。
解决方案是在效率模型里引入温度修正。具体做法是在台架上做不同温度下的效率测试,拟合出一条"效率-温度"曲线,在线运行时根据电机附近的温度传感器读数查表修正。
这个坑给我的教训是:EMB夹紧力预估里,机械传动环节的温度特性比电机本身的温度特性影响更大,但往往被忽视。电机温度大家都会测,但减速机构内部的温度很难直接测量,只能通过热模型间接估计。
6. 工程落地时几个值得注意的细节
6.1 采样率与计算负载的平衡
夹紧力预估算法最终要跑在ECU上,计算资源有限。接触点检测需要较高的采样率(至少1 kHz),但观测器更新可以降到100 Hz甚至更低。实际架构通常是:电流和转角信号以1 kHz采样,接触点检测在中断里做,观测器在主循环里以100 Hz运行。
这样分层的另一个好处是:接触点检测只关心"从空载到接触"这个短暂过程,不需要一直运行。可以在电机开始推动刹车片时启动检测,检测到接触点后就把结果传给观测器,然后关闭检测逻辑,节省算力。
6.2 失效模式与安全降级
夹紧力预估必须考虑失效模式。如果接触点检测连续多次失败,或者观测器残差持续超限,系统需要进入降级模式。降级策略可以是:切换到保守的电流开环估计,同时限制最大夹紧力,并点亮仪表警告。
注意:降级模式下的制动性能会下降,但必须保证基本制动功能可用。这是功能安全的基本要求,ISO 26262里对EMB的ASIL等级通常要求到D级。
6.3 与能量回收的协调
电动车和混动车里,EMB还要跟能量回收制动协调。能量回收时,电机制动和EMB制动需要精确分配制动力。如果夹紧力预估不准,可能出现"电机制动已经退出了,EMB还没补上"的尴尬,驾驶员会感觉刹车突然变软。
协调的关键是夹紧力预估的响应速度。从收到目标夹紧力指令到实际夹紧力建立,EMB的响应时间通常在100-200 ms。能量回收退出时,EMB必须提前开始建压,提前量取决于夹紧力预估的置信度。置信度高,提前量可以小一点;置信度低,就需要更大的安全余量。
6.4 数据驱动的残差监控
最后分享一个我觉得很实用的技巧:用残差监控来做夹紧力预估的健康诊断。具体来说,每次制动结束后,比较"电机转角积分得到的理论夹紧力"和"观测器估计的夹紧力",如果两者偏差持续超过阈值,就说明模型参数可能已经漂移了,需要触发重新标定或者提醒维护。
这个残差信号还可以用来做磨损估计。随着刹车片磨损,接触点会持续后移,残差的趋势性变化可以反映磨损速率。如果磨损速率突然加快,可能意味着刹车片异常磨损,需要检查。
我在实际项目里把这个残差监控做成了一个后台任务,每次制动结束后跑一次,数据存到非易失存储器里。售后人员用诊断仪读取这些数据,就能判断夹紧力预估系统的健康状态,不用拆轮子就能做初步诊断。这个功能后来成了那个项目的一个小亮点,售后反馈很好用。