基于质心侧偏角的IMU纵向加速度修正:从原理到工程落地
质心侧偏角这个量做车辆状态估计的人都不陌生但真正把它和IMU纵向加速度信号放在一起做修正的工程实践公开资料里讲得并不透彻。我最近在一个车辆动力学控制项目里反复折腾了这块内容从最初的无从下手到后来跑通整套逻辑中间踩了不少坑。这篇文章就把整个思路和实现过程完整梳理一遍包括为什么要做这个修正、背后的力学原理是什么、具体怎么落地、实测中会遇到哪些意外情况。如果你正在做车辆状态估计、底盘域控制或者组合导航相关的工作这篇内容应该能帮你省下不少试错时间。1. 为什么IMU纵向加速度信号需要修正1.1 从一次实车数据异常说起项目初期我们在车上装了IMU纵向加速度的读数在直线加速工况下看着挺正常但一到弯道里就出问题。车辆以较高速度过弯时IMU测出来的纵向加速度会出现明显的偏移有时候甚至出现符号都跟预期对不上的情况。一开始怀疑是IMU安装角度有偏差重新做了标定之后发现直线工况确实改善了但弯道里的异常依然存在。后来把IMU的原始数据、轮速传感器数据、方向盘转角数据全部拉出来对比才意识到问题的根源IMU测量的是载体坐标系下的加速度而车辆在弯道中运动时载体坐标系相对于车辆的实际运动方向存在一个夹角这个夹角就是质心侧偏角。IMU的纵向加速度敏感轴指向的是车头方向但车辆质心的实际运动方向并不完全沿着车头方向两者之间的偏差导致IMU测到的纵向加速度并不纯粹是车辆前进方向上的加速度分量。这个发现让我重新审视了整个信号链路。简单来说IMU安装时其纵向轴对齐的是车辆几何纵轴但车辆在实际行驶中尤其是弯道工况下质心处的速度方向与车辆纵轴之间存在侧偏角。IMU的纵向加速度计测量的是沿其敏感轴方向的比力分量当存在侧偏角时这个测量值中混入了侧向加速度的投影分量导致纵向加速度信号出现偏差。1.2 质心侧偏角到底在修正什么要理解这个修正的本质得先搞清楚几个坐标系之间的关系。车辆运动可以用两个坐标系来描述一个是车辆坐标系原点在质心纵轴指向车头方向横轴指向驾驶员右侧另一个是地面坐标系描述车辆在地面上的实际运动轨迹。质心侧偏角β定义为车辆质心处的速度方向与车辆纵轴之间的夹角。当车辆直线行驶时β≈0IMU纵向轴与速度方向一致测量值准确。当车辆进入弯道时质心速度方向开始偏离车辆纵轴β不再为零。此时IMU纵向加速度计的测量值a_x_meas与车辆实际纵向加速度a_x_true之间的关系可以近似表示为a_x_meas ≈ a_x_true · cos(β) a_y · sin(β)其中a_y是侧向加速度。在小角度假设下cos(β)≈1sin(β)≈β所以a_x_meas ≈ a_x_true a_y · β这意味着IMU测到的纵向加速度中除了真实的纵向加速度之外还叠加了一个a_y·β的误差项。在高速大转角工况下a_y可能达到0.8g甚至更高β可能在2°到5°之间换算成弧度大约是0.035到0.087rad那么误差项的量级就在0.028g到0.07g之间。这个误差对于需要精确纵向加速度的控制算法来说已经足够引起问题了。修正的目标就是从a_x_meas中减去a_y·β这一项还原出真实的纵向加速度a_x_true。听起来简单但难点在于β本身就是一个需要估计的量而且a_y的测量也受到侧倾角等因素的影响。1.3 不修正会带来什么后果在实际项目中纵向加速度信号主要用于几个方面驱动力控制、制动力的分配、坡度估计、以及与其他传感器做融合定位。如果纵向加速度信号存在偏差影响是连锁性的。驱动力控制方面如果纵向加速度被高估控制器会认为车辆已经获得了足够的加速度从而减少驱动力输出导致实际加速性能下降。如果被低估则可能过度输出驱动力引起驱动轮打滑。在弯道中这个偏差还会导致左右轮驱动力分配出现误判。坡度估计方面很多坡度估计算法依赖纵向加速度与轮速微分之间的差值来推算坡度。如果纵向加速度信号中混入了侧向加速度的投影分量坡度估计就会在弯道中出现明显偏差进而影响能量管理策略和变速箱换挡逻辑。组合导航方面如果IMU的纵向加速度信号被用于惯导解算误差会随时间积分累积导致位置估计漂移加速。虽然GNSS可以在一定程度上抑制漂移但在GNSS信号受限的场景下这个误差就会成为主要误差源之一。2. 质心侧偏角估计的几条技术路线2.1 运动学方法与动力学方法的取舍估计质心侧偏角业界主要有两条路线运动学方法和动力学方法。运动学方法基于刚体运动学关系利用横摆角速度、侧向加速度和纵向车速来积分或代数计算侧偏角。最常用的运动学关系是β ∫(a_y / v_x - γ) dt其中γ是横摆角速度v_x是纵向车速。这个方法的优点是模型简单、不依赖轮胎力学参数在轮胎线性工作区内精度尚可。但缺点也很明显积分会累积误差而且当纵向车速很低时a_y/v_x这一项会变得非常大数值不稳定。动力学方法则基于车辆二自由度或更多自由度的动力学模型通过观测器或滤波器来估计侧偏角。常用的有龙伯格观测器、卡尔曼滤波器、滑模观测器等。动力学方法在中高侧向加速度工况下精度更好但对模型参数的准确性依赖较强尤其是轮胎侧偏刚度这个参数在不同路面和胎压下变化很大。我在项目中最终采用的是运动学与动力学融合的方案低速和线性工况下以运动学为主中高速和大侧向加速度工况下逐步过渡到动力学观测器。这样既保证了全工况的数值稳定性又能在关键工况下获得足够的精度。2.2 基于卡尔曼滤波的侧偏角估计实现卡尔曼滤波是工程中最常用的融合框架。我设计的滤波器状态向量取为x [β, γ, a_y]^T其中β是质心侧偏角γ是横摆角速度a_y是侧向加速度。量测向量取为z [γ_meas, a_y_meas]^T状态方程基于车辆单轨模型建立dβ/dt (F_yf F_yr) / (m·v_x) - γ dγ/dt (l_f·F_yf - l_r·F_yr) / I_z da_y/dt (F_yf F_yr) / m - γ·v_x其中F_yf和F_yr分别是前后轴侧向力用线性轮胎模型近似F_yf C_f · (β l_f·γ/v_x - δ) F_yr C_r · (β - l_r·γ/v_x)这里C_f和C_r是前后轴侧偏刚度δ是前轮转角m是整车质量I_z是横摆转动惯量l_f和l_r是质心到前后轴的距离。量测方程很简单γ_meas γ noise a_y_meas a_y noise在实现过程中有几个细节需要特别注意。过程噪声协方差矩阵Q的调参非常关键如果Q设得太小滤波器会过度信任模型在模型失配时收敛很慢如果Q设得太大滤波器又会过度信任量测噪声抑制效果变差。我的经验是Q的对角元素中β对应的过程噪声可以设得稍大一些因为侧偏角的模型不确定性最大γ和a_y对应的过程噪声可以设得小一些因为这两个量的模型相对准确。量测噪声协方差矩阵R的设定相对直接可以根据IMU和横摆角速度传感器的数据手册中的噪声密度来初设然后根据实测数据的静态噪声水平做微调。2.3 低速工况下的特殊处理低速工况是侧偏角估计的一个难点。当车速低于某个阈值我设的是3m/s时运动学关系中的a_y/v_x项会变得非常大导致数值不稳定。同时低速下轮胎的力学特性也进入非线性区线性轮胎模型的精度下降。我的处理策略是在低速工况下直接令β≈0因为低速时侧偏角本身确实很小对纵向加速度修正的影响可以忽略。同时切换到基于方向盘转角和车速的几何关系来估算一个粗略的侧偏角用于平滑过渡。当车速从低速逐渐升高时通过一个加权函数逐步从低速策略过渡到卡尔曼滤波器的输出。这个加权函数我用的是一条S形曲线过渡区间设在3m/s到5m/s之间。实测下来这个过渡区间内的估计值没有出现明显的跳变整体比较平滑。3. 纵向加速度修正的完整实现链路3.1 信号预处理与时间同步在开始修正之前信号预处理是绕不过去的一步。IMU的原始数据、轮速传感器的数据、方向盘转角数据这些信号的采样率和传输延迟都不一样如果不做时间同步修正的效果会大打折扣。我的做法是所有信号统一重采样到100Hz以IMU的时间戳为基准。轮速信号通常来自CAN总线延迟在10ms到20ms之间需要根据实际测试做一个固定的延迟补偿。方向盘转角信号的延迟相对较小但也要确认。时间同步做不好在快速变化的工况下a_y和β的乘积项就会和实际的误差项对不上修正反而可能引入新的误差。另外IMU的原始加速度信号中包含了重力分量。虽然纵向加速度计理论上不受重力影响当车辆水平时但当车辆存在俯仰角时重力会在纵向轴上产生投影。所以严格来说在修正侧偏角引起的误差之前应该先做重力补偿。重力补偿需要知道俯仰角可以通过加速度计的三个轴读数来估算或者从其他传感器获取。3.2 侧向加速度的坐标变换IMU测量的侧向加速度是在载体坐标系下的而修正公式中需要的a_y是车辆坐标系下的侧向加速度。当车辆存在侧倾角时这两个值并不相等。侧倾角会导致重力在侧向轴上产生投影同时也会改变侧向加速度计敏感轴的方向。侧倾角对侧向加速度测量的影响可以表示为a_y_meas ≈ a_y_true · cos(φ) g · sin(φ)其中φ是侧倾角g是重力加速度。在侧倾角为5°时g·sin(φ)约为0.085g这个量级已经不可忽略了。所以如果直接用IMU的侧向加速度读数代入修正公式在侧倾工况下会引入额外的误差。我的处理方式是用IMU的侧向加速度和垂直加速度来估算侧倾角然后对侧向加速度做补偿。具体来说当车辆在稳态转弯时侧向加速度和侧倾角之间存在近似关系可以结合悬架模型来估计。更简单的做法是直接用加速度计的三个轴读数计算姿态角然后做坐标变换。我用的是互补滤波的方式把加速度计的低频姿态信息和陀螺仪的高频角速度信息融合起来得到较为准确的侧倾角和俯仰角。3.3 修正公式的工程化实现理论公式a_x_true a_x_meas - a_y·β看起来很简单但工程化实现时需要考虑几个问题。第一个问题是β的符号约定。不同的文献对侧偏角的正负号定义可能不同必须和你的车辆坐标系定义保持一致。我的定义是车辆纵轴指向车头横轴指向右侧侧偏角为正表示速度方向偏向车辆纵轴的右侧。在这个定义下当车辆左转时侧偏角为正a_y为正向心加速度指向左侧但按照车辆坐标系定义左转时侧向加速度为负这里需要仔细确认。实际上在ISO坐标系下左转时横摆角速度为正侧向加速度为负。所以修正项的符号需要根据你的坐标系定义仔细推导不能想当然。第二个问题是修正的时机和条件。并不是所有工况下都需要做这个修正。当侧偏角很小比如小于0.5°时修正量微乎其微可以忽略。当侧向加速度很小比如小于0.1g时即使侧偏角较大修正量也不大。所以可以设置一个使能条件只有当|β|和|a_y|同时超过一定阈值时才启用修正。这样可以避免在不需要修正的工况下引入不必要的计算和潜在的数值问题。第三个问题是修正量的限幅。在某些极端工况下比如传感器故障或者估计器发散β的估计值可能会异常大导致修正量过大反而破坏了纵向加速度信号。所以需要对修正量做一个限幅比如限制在±0.1g以内。这个限幅值可以根据实际车辆的极限工况来确定。3.4 与轮速信号的交叉验证修正做完之后怎么知道修正是对的我的做法是用轮速信号做交叉验证。轮速微分可以得到一个纵向加速度的估计值虽然轮速信号本身有噪声而且在大驱动力或大制动力工况下会有滑移但在大多数工况下轮速微分得到的纵向加速度和修正后的IMU纵向加速度应该是一致的。如果两者在弯道工况下仍然存在明显的系统性偏差那就说明修正还不彻底可能是β的估计有偏差或者侧倾角补偿没做好。如果两者在直线工况下就有偏差那问题可能出在IMU的安装角度或者标定上而不是侧偏角修正的问题。我用这个方法排查过好几次问题。有一次发现弯道中修正后的纵向加速度仍然偏大后来查出来是侧倾角估计的符号搞反了导致侧向加速度补偿方向错误进而影响了修正量。这种问题如果不做交叉验证很难发现。4. 实测中遇到的典型问题与排查过程4.1 修正后信号出现高频抖动第一次跑通修正逻辑后发现修正后的纵向加速度信号在弯道中出现了明显的高频抖动频率大概在5Hz到10Hz之间。这个抖动在原始IMU信号中并不明显说明是修正过程引入的。排查过程是这样的先单独看β的估计值发现β在弯道中也有类似频率的抖动。再往前查发现a_y信号本身在弯道中就有一定的周期性波动这个波动可能来自路面激励或者悬架系统的振动。a_y的波动乘以β之后就变成了纵向加速度修正量的波动叠加到原始信号上就表现为高频抖动。解决方案是在计算修正量之后加一个低通滤波器。滤波器的截止频率我设在3Hz这样既能保留修正量的低频成分真正的侧偏角引起的误差是低频的又能滤掉由a_y高频波动引起的高频修正量。滤波器的类型我用的是一阶巴特沃斯实现简单相位滞后也可以接受。这里有个经验滤波器的截止频率不能设得太低否则修正量的相位滞后会导致在快速变化的工况下修正不及时。3Hz是我实测下来比较合适的值但具体值可能需要根据你的车辆特性和工况来调整。4.2 大侧偏角工况下的估计器发散在一次极限工况测试中车辆出现了较大的侧偏角估计器的输出开始发散β的估计值在短时间内跳到了很大的数值导致修正量异常纵向加速度信号被严重扭曲。分析下来问题出在卡尔曼滤波器的线性轮胎模型上。当侧偏角较大时轮胎进入非线性区侧向力不再随侧偏角线性增长而是趋于饱和。线性模型在这种情况下会严重高估侧向力导致滤波器对状态的预测出现较大偏差进而引起发散。解决思路有两个一是换用非线性轮胎模型比如魔术公式或者查表模型二是给估计值加一个合理的限幅当β超过某个阈值时认为估计器已经不可信切换到备用策略。我最终采用的是组合方案在滤波器中用简化的非线性轮胎模型用分段线性来近似饱和特性同时对β的输出做限幅最大不超过10°。当限幅触发时修正功能暂时禁用直到估计值回到合理范围内。实测下来这个方案在极限工况下虽然不能保证修正的精度但至少不会让信号变得不可用。4.3 传感器安装偏差与杆臂效应IMU的安装位置和安装角度对测量结果有直接影响。如果IMU没有安装在质心位置而是安装在质心前方或后方那么车辆在转弯时IMU所在位置会有一个额外的向心加速度分量这个分量与质心处的加速度不同。这就是所谓的杆臂效应。杆臂效应对纵向加速度的影响相对较小主要影响侧向和垂向但对侧向加速度的影响不可忽略。如果IMU安装在质心前方距离d的位置那么IMU测到的侧向加速度与质心处侧向加速度的关系为a_y_imu a_y_cg d · dγ/dt其中dγ/dt是横摆角加速度。在快速转向工况下横摆角加速度可能达到较大的数值d·dγ/dt这一项就可能引入显著的误差。我的处理方式是先测量IMU安装位置相对于质心的距离然后在信号处理中做杆臂补偿。补偿需要用到横摆角速度的微分这个微分信号噪声较大需要先做滤波。如果IMU安装位置离质心很近比如在座椅下方杆臂效应的影响可以忽略补偿的必要性就不大。安装角度偏差则是另一个问题。如果IMU的纵向轴与车辆纵轴之间存在安装偏差角那么IMU测到的纵向加速度中会混入侧向加速度的分量这个混入量与侧偏角引起的误差是叠加的。安装角度偏差可以通过静态标定来测量和补偿但需要注意的是车辆载荷变化会导致悬架高度变化进而改变IMU的实际安装角度所以静态标定的结果可能需要在不同载荷下分别进行。4.4 路面坡度与侧倾的耦合影响在坡道上转弯时路面坡度和侧倾会耦合在一起给修正带来额外的困难。坡度会导致重力在纵向轴上产生投影这个投影会被IMU的纵向加速度计测量到如果不做补偿就会被误认为是车辆的真实纵向加速度。而侧倾则会影响侧向加速度的测量进而影响修正量。更麻烦的是坡度和侧倾的估计本身就需要用到加速度信号这就形成了一个循环依赖。我的处理方式是用轮速信号和GPS高度信息来辅助坡度估计用悬架高度传感器如果有的话来辅助侧倾估计尽量减少对加速度信号的依赖。如果没有这些辅助信息那就只能在修正逻辑中做一个折中接受一定程度的误差。实测中我发现在坡度小于3°、侧倾小于2°的工况下坡度和侧倾对修正的影响相对较小可以暂时忽略。但在更大的坡度或侧倾下就必须做补偿否则修正的效果会大打折扣。5. 修正效果的量化评估与验证方法5.1 用轮速微分做参考基准评估修正效果最直接的方法就是和轮速微分做对比。具体操作是在直线工况下记录IMU纵向加速度和轮速微分两者的差值反映了IMU的零偏和安装误差。在弯道工况下再次记录两者的差值如果修正前差值明显增大而修正后差值回到和直线工况相近的水平就说明修正有效。需要注意的是轮速微分本身也有误差。轮速信号的量化噪声、轮胎滚动半径的变化、轮胎滑移等都会影响轮速微分的精度。所以这个方法只能做定性评估不能做精确的定量评估。但在工程实践中定性评估往往已经足够了。我通常会计算一个统计指标在弯道工况下修正前后IMU纵向加速度与轮速微分之差的均方根值。如果修正后这个值明显下降就说明修正起了作用。实测数据表明在侧向加速度0.4g、侧偏角3°的工况下修正后均方根误差可以降低40%到60%。5.2 与GPS加速度的交叉比对如果车辆上装有高精度的GPS可以用GPS的速度微分来得到一个纵向加速度的参考值。GPS的速度精度通常在0.1m/s以内微分之后噪声较大需要做较强的滤波。但在稳态工况下滤波后的GPS纵向加速度可以作为参考。GPS纵向加速度是在地面坐标系下的需要投影到车辆坐标系才能和IMU的纵向加速度对比。投影需要用到航向角航向角可以从GPS的双天线系统获取或者从组合导航的输出中获取。我用这个方法验证过几次发现修正后的IMU纵向加速度和GPS纵向加速度在弯道中的一致性明显优于修正前。但GPS信号在隧道、高架桥下等场景会丢失所以这个方法不能作为唯一的验证手段。5.3 闭环控制效果的直接观察最终极的验证方法是看闭环控制效果。如果纵向加速度信号被用于某个控制回路那么修正前后控制效果的变化就是最直接的证据。在我们的项目中纵向加速度信号被用于驱动力前馈控制。修正前在弯道中加速时驱动力前馈量会出现偏差导致实际加速度与驾驶员需求之间存在明显差异。修正后这个差异明显减小驾驶性评价也有所提升。这种验证方法的好处是直接反映了信号质量对最终性能的影响但缺点是很难分离出纵向加速度修正这一个因素的影响因为控制效果还受到很多其他因素的影响。所以通常需要结合其他验证方法一起使用。6. 工程落地中的参数调优经验6.1 卡尔曼滤波器Q和R矩阵的整定Q和R矩阵的整定是卡尔曼滤波器应用中最耗时的环节。我的经验是分三步走第一步根据传感器的数据手册和实际静态测试确定R矩阵的初值。IMU的加速度噪声密度通常在100μg/√Hz到300μg/√Hz之间横摆角速度的噪声密度在0.01°/s/√Hz到0.05°/s/√Hz之间。把这些值换算到你的采样率和带宽下就得到了R的对角元素初值。第二步根据模型的不确定性确定Q矩阵的初值。β的模型不确定性最大因为轮胎力学特性受路面、胎压、载荷等因素影响很大所以β对应的Q可以设得大一些。γ和a_y的模型相对准确Q可以设得小一些。我的经验值是β对应的Q比γ对应的Q大一个数量级左右。第三步在实车数据上做离线调优。把记录的数据回放调整Q和R观察β估计值的平滑度和跟踪速度。如果估计值太滞后就增大Q如果估计值太抖就减小Q或增大R。这个过程可能需要反复迭代多次直到找到满意的平衡点。6.2 修正使能条件的阈值设定修正使能条件的阈值设定需要在修正效果和计算稳定性之间做平衡。阈值设得太低会在不需要修正的工况下频繁启用修正增加计算负担也可能引入不必要的噪声。阈值设得太高会在需要修正的工况下漏掉修正影响信号精度。我的经验值是侧偏角阈值设在0.5°到1°之间侧向加速度阈值设在0.1g到0.15g之间。这两个条件同时满足时才启用修正。在实际标定中可以先设一个较宽松的阈值观察修正量的分布然后根据修正量的大小来调整阈值。如果大部分工况下修正量都很小就可以适当提高阈值减少不必要的修正。6.3 低通滤波器截止频率的选择低通滤波器的截止频率选择需要在噪声抑制和相位滞后之间做平衡。截止频率越低噪声抑制效果越好但相位滞后越大在快速变化的工况下修正不及时。截止频率越高相位滞后越小但噪声抑制效果变差。我的经验值是截止频率设在3Hz到5Hz之间。具体值取决于你的车辆动力学特性和工况。如果车辆主要是中低速城市工况3Hz就足够了。如果涉及高速紧急避障等工况可能需要提高到5Hz。可以通过分析修正量的频谱来确定如果修正量的主要能量集中在2Hz以下截止频率设在3Hz就能保留大部分有用信号如果修正量在3Hz到5Hz之间还有较多能量就需要提高截止频率。6.4 不同车型的适配注意事项这套修正逻辑在不同车型上适配时有几个参数需要重新标定整车质量、质心位置、横摆转动惯量、前后轴侧偏刚度。这些参数直接影响卡尔曼滤波器的模型精度如果偏差太大估计效果会明显下降。整车质量和质心位置可以通过称重实验来测量横摆转动惯量可以通过专门的实验来测量或者用经验公式估算。前后轴侧偏刚度是最难准确获取的参数通常需要通过稳态回转实验或者参数辨识来获取。如果这些参数暂时无法精确获取可以先用同类车型的经验值然后在实车数据上做微调。另外不同车型的悬架特性不同侧倾角与侧向加速度的关系也不同。如果侧倾角估计用的是基于悬架模型的方案那么悬架参数也需要重新标定。如果用的是基于加速度计的方案则相对通用一些但也要注意不同车型的加速度计安装位置和角度可能不同。7. 一些容易被忽略的细节7.1 IMU采样率与信号带宽的匹配IMU的采样率选择是一个容易被忽略的问题。采样率太低会丢失信号的高频成分影响修正的精度采样率太高会增加数据处理负担而且如果后续的控制算法不需要那么高的带宽高采样率也没有意义。我的经验是IMU的采样率至少应该是信号带宽的2倍以上工程上通常取5到10倍。对于纵向加速度修正这个应用信号带宽通常在10Hz以内所以IMU采样率在100Hz就足够了。但如果你的控制算法需要更高的带宽比如用于主动悬架控制那可能需要200Hz甚至更高的采样率。需要注意的是采样率高不代表精度高。有些IMU在高采样率下噪声会增大或者有效位数会下降。选择IMU时要综合考虑采样率、噪声密度、量程、带宽等指标不能只看采样率一个参数。7.2 温度对IMU零偏的影响IMU的零偏会随温度变化这个特性在长时间运行或者温度变化较大的场景下会变得明显。零偏的变化会直接表现为纵向加速度的缓慢漂移如果不做补偿会被误认为是车辆的真实加速度。我的处理方式是在IMU开机后做一个预热等温度稳定后再进行零偏标定。在运行过程中如果车辆处于静止状态可以通过轮速信号判断就重新标定零偏。如果车辆长时间运行且温度变化较大可以用温度传感器数据做零偏的温度补偿补偿系数需要事先通过温箱实验来标定。这个细节在短时间测试中可能不明显但在长时间运行或者高低温交替的场景下影响会逐渐显现。我建议在项目初期就把零偏的温度补偿考虑进去不要等到问题出现了再补救。7.3 数据记录与回放的重要性在整个开发过程中数据记录与回放是提高效率的关键。实车测试的机会往往有限每次测试都应该尽可能多地记录数据包括原始传感器数据、中间变量、最终输出等。这样在测试结束后可以在离线环境下反复回放数据调试算法参数而不需要反复跑实车。我通常会记录以下数据IMU三轴加速度、三轴角速度、轮速四轮、方向盘转角、车速、横摆角速度、以及算法内部的β估计值、修正量、使能标志等。数据记录频率至少100Hz确保不会丢失细节。回放工具我用的是一种简单的脚本方案可以逐帧回放数据也可以批量处理。关键是要保证回放时的数据处理逻辑和实车运行时完全一致否则离线调优的结果可能无法直接应用到实车上。7.4 与其他估计模块的耦合纵向加速度修正模块并不是孤立的它和其他估计模块之间存在耦合。比如侧偏角估计需要用到横摆角速度和侧向加速度而侧向加速度的补偿又需要用到侧倾角估计侧倾角估计又可能用到纵向加速度。这就形成了一个耦合网络。处理这种耦合的原则是尽量保持各个模块的相对独立避免形成紧耦合的循环。如果确实存在循环依赖就要仔细分析循环的增益确保不会形成正反馈导致发散。在我的实现中侧倾角估计主要依赖加速度计和陀螺仪不依赖纵向加速度所以没有形成循环。侧偏角估计依赖侧向加速度而侧向加速度的补偿依赖侧倾角但侧倾角估计不依赖侧偏角所以这个链路是单向的没有循环。如果确实无法避免循环可以考虑用上一时刻的值来打破循环或者在循环中引入低通滤波来限制带宽防止高频正反馈。7.5 实车测试的安全注意事项最后说一个容易被忽略但非常重要的问题实车测试的安全。做极限工况测试时车辆可能会出现较大的侧偏角如果修正逻辑出现问题导致纵向加速度信号异常可能会影响驱动力控制或制动控制进而影响车辆稳定性。我的做法是在测试修正逻辑时先确保有一个可靠的安全兜底策略。比如当修正后的纵向加速度与轮速微分的偏差超过一定阈值时自动切换回未修正的原始信号并记录故障标志。这样即使修正逻辑出现问题也不会导致车辆失控。另外测试应该从低强度工况开始逐步提高强度每次提高强度之前都要确认上一强度的测试结果正常。不要一上来就做极限工况那样风险太大。这套修正逻辑从最初的想法到最终落地前后花了大概两个月的时间其中大部分时间花在参数调优和问题排查上。真正核心的算法逻辑其实并不复杂难的是处理各种工程细节和边界工况。如果你也在做类似的工作我的建议是先把基础的运动学和动力学关系搞清楚然后在实车数据上反复验证不要怕麻烦。很多问题只有在实际数据中才会暴露出来光靠仿真和理论分析是不够的。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →