ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

TBS+ABS组合台架与CarSim联合仿真在VDS开发中的应用

TBS+ABS组合台架与CarSim联合仿真在VDS开发中的应用 把线控制动TBS和防抱死ABS的组合测试台架跑通之后我第一个体会是这套东西的价值不只在于能测某个ABS工况而在于让车辆稳定控制系统VDS的开发真正有了可控的试验条件。以前很多需要靠整车上路、冒着风险反复试出来的横摆失稳工况现在可以通过台架加CarSim联合仿真在实验室里复现还能把参数调参过程变成可重复、可分析的闭环。做汽车电子电控开发尤其是一线从事制动控制、整车稳定性算法或者底盘域控的人这篇文章值得看完。我会按实际开发顺序把这套组合台架的调试思路、CarSim联合仿真配置、验证用例和排查经验拆开讲。1. 为什么VDS开发需要TBSABS组合台架而不是只看单个控制器1.1 TBS负责执行ABS负责车轮VDS负责整车很多刚接触底盘电控的人容易把三者的关系理解成并列关系实际是分层关系。TBS也就是线控制动系统核心变化在制动指令的传递方式上。它不再依赖驾驶员踩踏板之后经过液压机械结构直接推动轮缸而是由电控单元接收驾驶意图或上层稳定性控制指令再控制电机或高压阀组对单个车轮建立目标制动力。它的特点是响应快、压力控制精度高能够脱离驾驶员踩踏板力度单独工作。ABS防抱死制动系统位于车轮层级。它通过轮速传感器判断车轮是否趋向抱死然后对制动压力进行循环调节让车轮滑移率维持在一个可用的范围。单独看ABS时它关心的是车轮制动效率和车辆可操纵性放到整车稳定控制系统里它又是一种执行机构负责把上层给出的“目标压力”或“目标滑移率”变成单轮压力动作。VDS车辆稳定控制系统通常指基于车身横摆角速度、侧向加速度、车速、转向盘转角等信号对车辆横摆运动进行闭环控制的功能集合。不同车企可能叫VSC、ESC、VDC逻辑类似比较驾驶员期望横摆角速度与实际横摆角速度一旦偏差超过阈值就通过单轮差动制动或限制驱动力矩产生一个附加横摆力矩把车辆拉回稳定路径。组合测试台架的意义在这里就很清楚了。VDS算法给出的是整车层面的稳定性修正需求这个需求最终要落到某一个或某几个车轮的制动压力上。如果只验证软件算法不考虑TBS压力执行特性和ABS滑移率控制到了整车阶段会出现一个很常见的问题理论算出来的目标压力实际执行器要么跟不上要么边界条件不满足最后稳定性控制触发但不平滑。1.2 台架与纯软件仿真最大的区别在于执行器特性真实存在纯软件联合仿真在Matlab/Simulink里用CarSim车辆模型配合自研的VDS算法能验证逻辑、识别部分参数问题这是必须做的第一步。但它有一个天然盲区模型里的TBS和ABS都是理想化或简化特性。我在实践中发现真实执行器带来的问题往往不是“算法不工作”而是工作质量不好。TBS换向阀有开启延迟压力传感器有噪声ABS压力调节循环有一定步长这些都会让代码里看起来正确的控制量在实际执行时出现抖动、超调或者响应滞后。尤其做车辆稳定控制时横摆角速度反馈本来就带延迟再叠加执行器延迟控制器容易在中高速工况下产生边界振荡。组合测试台架把TBS、ABS的制动硬件接入到仿真闭环里CarSim提供整车动力学响应台架上的执行器提供真实压力变化。这样VDS控制器的每个输出经过的都是真实硬件通道而不是一套简化模型。前面踩过的坑会在台架阶段暴露出来而不是等到装车路测。1.3 TBS和ABS协同工作时测试台架更能体现真实工况VDS触发稳定性干预时通常不是只给某个轮一个恒定的制动压力。举一个典型的转向过度工况车辆后轴侧向力达到饱和后轮侧偏角增大车尾开始向弯外侧滑动VDS需要给前外侧车轮施加一个制动压力使前轮产生一个向弯内侧的横摆力矩。实际执行过程中车前轮本身可能正处于驾驶员的转向和制动叠加状态。车轮会不会抱死能不能继续提供侧向力取决于ABS是否及时介入。TBS建立压力的速度决定了VDS能否及时干预ABS的滑移率调节边界决定了这个干预是否以牺牲侧向力为代价。这两套系统必须真实串联。组合台架测试中我可以直接把VDS输出到一个目标轮缸压力让TBS执行这个压力同时让ABS算法实时监测轮速并做保护性调节再通过数据看整个过程中横摆角速度是否回到目标范围。这种验证单测TBS或者单测ABS都做不到。2. VDS联合开发先建闭环从CarSim模型到制动执行器2.1 上层、中层、下层闭环怎么划分这套台架的开发逻辑可以分成三层。上层是VDS整车运动控制算法它不关心具体哪个压力阀开多少。输入包括车速、转向盘转角、纵向加速度、侧向加速度、横摆角速度输出是目标附加横摆力矩或者是抽象的制动压力分配指令。通常先在Simulink里实现。中层是执行协调层。它负责把VDS给出的稳定性控制需求结合驾驶员的制动或加速意图分配到具体车轮同时协调TBS和ABS的工作。比如判断当前是只施加单轮制动还是需要同时调节前后轴压力分配以及这个压力指令要不要经过ABS功能保护。下层是执行器。TBS接受目标轮缸压力指令通过高速开关阀或线性压力控制阀实现压力闭环ABS接收目标滑移率或压力循环模式根据轮速信号进行调节。三层闭环都和CarSim车辆模型连接。CarSim把车辆姿态信息返回上层把轮速信息返回给ABS把制动压力作为输入作用到车辆模型上。这样就形成了一个完整的、混合了真实硬件和虚拟整车的测试闭环。2.2 和CarSim交换的关键信号需要提前定义好我建议在正式跑工况之前把CarSim的输入输出接口表做成一个正式文档不要等到联调时想到哪个信号再加哪个信号。对于这套TBSABS台架至少需要定义以下几组信号。信号方向信号内容用途CarSim输出车速、轮速、横摆角速度、侧向加速度、纵向加速度、方向盘转角VDS算法输入判断车辆稳定状态CarSim输出制动主缸压力、各轮缸压力估算或实际压力用于确认制动系统状态尤其在纯软件起步阶段Simulink输入各轮目标制动压力或滑移率指令最终作用到CarSim车辆模型制动系统Simulink输入发动机或驱动电机扭矩限制值稳定性控制中驱动防滑或减速控制使用如果你的台架是通过实时硬件接入真实TBS执行器那么中间还要增加一条实际压力反馈通道。此时CarSim输出的是外界给执行器控制器的仿真轮速信号而执行器返回的是轮缸压力实测值。这个实测压力再作为制动转矩输入到CarSim车辆模型。接口定义时重点确认各轮顺序、单位、符号方向和更新周期。2.3 先将控制逻辑在Simulink中调通再进入台架第一轮调试时不用急着把TBS实物和ABS实物全部接入。先做一个“控制逻辑在CarSim仿真环境中跑通”的过程让VDS算法能正常进入稳定控制状态。这一步的目的是排除算法本身的低级问题。比如横摆角速度目标值符号是否接反方向盘转角按弧度还是角度传入轮速单位是km/h还是rad/s。这些问题在纯软件里很快就发现但如果直接上到台架会在台架故障现象里混杂很多变量很难定位。纯软件调通之后再接入TBS执行器跑单个车轮压力阶跃响应。确认实际压力能够在合理时间内达到目标值并且没有明显超调或振荡。之后加入ABS跑直道制动看看轮速是否被有效调节。最后再打开VDS跑动态稳定性工况。这个过程是渐进式的每一步的验收边界都很清晰。3. CarSim联合仿真的落地步骤路面、车速、初始状态与实时同步3.1 车辆模型和驾驶输入设置CarSim联合仿真第一步是选车辆模型。一般轿车、SUV模型结构类似但悬架刚度、质心高度、轮胎特性差异会直接影响ABS和VDS触发边界。如果你只是为了验证控制功能默认车型就可以如果是为了匹配某个实际车型需要修改车辆参数。CarSim里需要配置一个驾驶员模型也可以直接外接Simulink的驾驶员模型。做稳定性控制开发时初期最好用CarSim内置的开环转向输入比如正弦转向、阶跃转向或者双移线路径。开环的好处是驾驶员模型不会干预控制效果能够直接看出VDS介入之后车辆姿态是否改善。闭合开发时Simulink算法通过CarSim提供的接口模块读取车辆状态。版本差异会导致入口不同但步骤是一样的在CarSim主界面选择车型和仿真接口配置输出变量后发送到Simulink生成对应的模型文件或通过API接口调用。3.2 对开路面这类关键路况要提前配好车辆稳定控制VDS和ABS在做试验时非常依赖路面附着系数设置特别是对开路面。对开路面也叫分离路面指的是左右两侧附着系数明显不一致。比如左侧柏油路附着系数0.8右侧冰雪路面附着系数0.2。这种路面最容易激发车辆制动跑偏和横摆失稳是ABS和VDS算法必须面对的核心场景。在CarSim里设置对开路面时要分段定义道路摩擦系数。CarSim支持沿道路宽度方向设置不同的摩擦系数也可以把道路分成左右两个区域。设置后要在动画或后处理里检查车辆轨迹是否落在对应附着区域避免前轮和后轮落在不同摩擦区域时模型理解错误。还有一种工况是从高附着路面突然进入低附着路面比如从干沥青突然走到结冰路面。这需要在道路纵向方向分段设置附着系数并确保过渡段不要突变到让模型数值发散。通常用一段很小的过渡区来模拟真实路面渐变。测试对开路面前建议先设置一个恒定的低附着路面工况确认ABS能正常进入循环调节状态。再切换为左右附着不一致的对开路面观察车辆横摆角速度和横向偏移。不要一开始就把路面附着系数拉得很极端比如0.85对0.1那样数据可能发散反而分不清是算法问题还是模型设置问题。3.3 初始车速设置的方法和作用热搜里很多人问CarSim初始速度怎么设置。这个操作看起来简单但对VDS测试影响很大。在CarSim中初始条件一般通过车辆的动力学初始速度设置项来完成。你需要把初始纵向速度设为测试车速比如80km/h。CarSim会根据这个速度初始化车轮转速、发动机状态或驱动电机状态。如果把初始速度设成0再试图通过驾驶员模型快速加速到80km/h车辆进入工况点时已经经历了大量的瞬态过程路面摩擦、轮胎温度、车速控制状态都不一样测试一致性会变差。做ABS测试时初始车速一般是进入制动工况之前的稳定车速。比如先让车辆以100km/h匀速行驶到达某个路径点时开始制动。做VDS稳定性测试时也要确保测试起始时刻车辆是稳定直线行驶状态横摆角速度接近0转向角为0然后再输入转向激励或切换对开路面。建议在Simulink里加一个逻辑判断当车速稳定接近目标值一定时间后再进入下一个测试操作环节。这样能避免测试操作和车辆初始瞬态重叠。3.4 Simulink接口配置与台架数据同步进入台架环节后联合仿真不再是单台电脑里的纯模型互动而是需要把CarSim的仿真状态实时发送给台架控制器。同步方式取决于你的硬件环境。如果使用的是NI PXI、dSPACE或同类实时系统CarSim需要配置为实时运行模式或使用实时接口。台架控制器通过CAN、以太网或模拟量IO接收CarSim输出的轮速、主缸压力等信号再把制动执行器的实际压力反馈给CarSim。这个过程中最容易忽略的是更新周期不一致。CarSim车辆模型内部积分步长通常很短例如1ms或更小。台架控制器的任务周期一般也在1ms到10ms之间。如果控制任务周期和CarSim输出周期不一致横摆角速度和轮速信号会出现阶梯效应ABS和VDS都容易受到影响。我一般会先把所有通道的更新周期统一至少要把关键通道控制到同一周期。如果不能完全统一需要加入信号保持、滤波或插值处理。尤其是轮速信号如果周期抖动明显ABS会把噪声当成真实轮加减速输入造成误触发。4. 在台架上按验证顺序跑VDS相关工况4.1 验证顺序建议先单轮再整车我一直建议不要第一次就在台架上跑完整的高速双移线VDS工况因为问题一旦出现你很难确定是算法、执行器还是台架设备本身的问题。可以按以下顺序执行。第一步做TBS压力闭环阶跃测试。给不同目标压力比如5MPa、8MPa、12MPa看实际压力跟踪的速度、超调量、稳态误差。这一步检验执行器基本控制能力。第二步做ABS直道制动测试。在高附着路面上给定一个较大的目标压力阶跃观察ABS是否介入口滑移率和最后的停车距离。然后再换成低附着路面观察ABS控制循环是否正确。第三步做对开路面制动测试。此时VDS可以先不介入只让ABS工作观察车辆是否发生制动跑偏横向位移是否在可用范围内。第四步打开VDS做对开路面制动叠加稳定性控制的测试。比较整车横摆角速度与目标值的偏差以及车辆行驶轨迹。第五步做连续转向工况比如双移线或正弦扫频验证VDS在车辆进入非线性区时的介入平滑度。这五步每步都应有独立的记录和验收尽量不要跳步。4.2 典型动态验证场景不要只跑一个双移线VDS开发中最容易被大家提到的场景是双移线但实际只跑双移线不够。双移线模拟的是前方突然遇到障碍物后紧急变线再回原车道。这个工况能有效触发VDS但它更多反映的是侧向加速度较大的换道场景不覆盖持续转弯和路面附着突变的场景。建议在此基础上增加以下几种场景。高阶正弦转向输入用来扫描车辆在不同频率输入下是否出现横摆响应放大或相位滞后可以暴露VDS增益设置不合适或执行器响应延迟过大的问题。稳定圆周加速或减速用来验证在持续侧向力作用下车辆是否倾向于转向不足或转向过度。对开路面抛物线制动这个组合比较考验ABS与VDS同时工作时的协调性因为左右轮附着力不一致ABS会给左右轮施加不同的压力调节而VDS可能还需要额外叠加一个横摆力矩控制量两个控制器如果协调不好压力和横向角速度都会出现波动。高速低附着直线行驶加脉冲转向输入用来测试VDS在车速较高、路面附着较低的情况下能否平顺纠正车辆姿态。这个工况对执行器的压力响应速度要求很高正好可以用来检验TBSABS组合的极限能力。4.3 结果判断要有数据不要只看动画很多人调完车喜欢盯着CarSim动画看车辆是否走出一条稳定轨迹。这当然直观但不能作为验收依据。我建议每次测试至少保存以下几类数据数据类型说明车辆状态数据车速、横摆角速度、侧向加速度、质心侧偏角、轨迹坐标驾驶员输入数据方向盘转角、制动踏板指令或油门指令执行器数据各轮目标压力、实际压力、电磁阀状态、ABS循环标志算法中间量VDS控制输出、附加横摆力矩值、滑移率目标值验收时先看横摆角速度目标值与实际值的误差包络再看侧偏角是否收敛最后看执行器压力曲线是否存在长时间饱和或异常振荡。如果压力曲线一直在目标值上下大幅波动即使动画中车辆轨迹看起来正常也说明控制稳定性不好后续在连续驾驶或变工况下可能会出问题。对于VDS介入质量的判断可以关注介入起始时刻和退出时刻是否平滑。介入太晚车辆侧偏角已经很大横摆角速度偏差过大车身会有一个明显的修正冲击介入太早又可能干扰驾驶员正常转向意图让车辆响应变得迟钝。这两类问题在台架数据上都能直接观察到。4.4 多用可重复的小样本跑标定做标定和确认算法是否收敛时我一般不会一开始就连续跑几十组完整工况。先跑一条最小用例比如固定车速、固定转向输入、固定路面附着系数确认数据正常。第一组跑完检查压力曲线和车辆状态是否合理。确认没有明显问题后再连续跑3次同一工况看重复性。如果3次结果里横摆角速度偏差差异比较大说明测试系统本身存在不稳定因素比如初始车速不精确、制动热衰退、轮速信号噪声等。这时候不适合马上去改VDS参数。5. 台架联调中的常见卡点和排查顺序5.1 先确认是不是接口或环境问题再动算法我见过很多次“算法没有变化工况也没有变化但这次跑出来的结果就是不对”的情况。按照经验遇到这类问题先不要急着修改控制策略而是按顺序排查外部因素。第一步看数据记录的时间戳。用CarSim联合仿真时最容易出现的问题是仿真已经结束但台架还按旧状态继续运行数据不同步。时间戳错位会造成分析时认为是VDS响应延迟实际是通道对齐问题。第二步看信号单位。TBS目标压力可能用MPa台架控制器内部换算成电流或PWM占空比CarSim里的制动系统用气压或液压信号三者单位如果不统一容易出现压力指令偏大偏小甚至出现负值。第三步看执行器是否处于可响应状态。有些TBS开关阀在多次测试后出现轻微卡滞如果连续高温运行液压油的温度不同压力响应会发生变化。此时检查执行器回零特性和故障码比检查算法有效。第四步看CarSim输入输出通道的顺序是否匹配。比如目标压力通道定义成了左前、右前、左后、右后但台架映射时按前轴两个轮、后轴两个轮配置车子从静止到运动就会出现奇怪的横摆方向。最后才是打开VDS控制策略检查观测量和逻辑分支。5.2 常见问题和对策表现象常见原因优先处理方向ABS始终不触发初始车速设置过低或路面附着设置不对检查CarSim工况初始速度和摩擦系数ABS频繁振荡轮速信号噪声大、执行器压力步进量过小检查轮速滤波和压力增量步长VDS介入后横摆角速度不收敛目标横摆值计算偏差过大或单轮压力不足检查横摆角速度目标值计算和分配增益对开路面车辆明显偏向一侧VDS未介入或ABS左右轮压力调节不对称确认VDS开启条件和左右轮压力命令压力执行有明显延迟TBS总成响应慢或控制周期过长检查执行器自身响应时间与控制频率Simulink连接被中断CarSim模型没重新生成接口文件回到CarSim界面重新生成模型再联调5.3 记录每一次变更别只在脑子里记参数这类台架调试涉及的变量非常多。路面附着系数、初始车速、VDS介入阈值、TBS压力增益、ABS滑移率目标任何一个变化都会让结果改变。我习惯在每次试验开始前把当前的参数版本、CarSim模型版本、Simulink模型版本、机械系统状态统一记录在案子。如果你做批量工况扫描比如从50km/h到120km/h每隔10km/h扫一组还要把每组数据文件按照工况号、日期、版本号命名清晰。不然到最后分析数据时根本说不清某一组曲线是哪个版本的算法跑出来的。6. 从仿真到台架沉淀下来的几条经验6.1 组合台架是VDS开发的中间层不是替代路测组合台架可以让你在实验室里反复验证TBSABS与VDS的协调控制也可以覆盖很多危险工况比如高附着对路面、高速低附着、紧急变线等。但台架仍然代替不了最终的真实车辆道路试验。台架上使用仿真整车模型模型里的悬架运动、轮胎瞬态效应、转向系统摩擦等和实车有差异。所以我的建议是把台架当作“排除逻辑错误和大部分参数初选”的平台而不是把所有参数都压到极限后希望路测一次通过。6.2 后续车辆平台迭代时先做变量迁移再跑全量工况如果你已经完成了一套VDS匹配后续要换车辆平台比如从轿车换到SUV不要在台架上直接沿用全部参数。可以先对比两个平台的质心高度、轮距、轴距、轮胎型号和制动系统参数确定哪些VDS控制增益需要按比例缩放再跑几组平滑路面和下对开路面做交叉验证。这个环节最怕的是模型参数已经变了但CarSim里的车辆模型没更新。检查模型版本和实际测试车型是否匹配耗时不多但避免后续分析全部白做。6.3 数据的可视化推荐前后对比看无论做ABS单项验证还是VDS动态验证建议把“不介入”和“介入”两种情况同时画在一张图里。比如关闭VDS跑一次对开路面打开VDS再跑一次相同工况两组横摆角速度和轨迹曲线做对比。这样能明显看出VDS带来多少改善。如果两次结果差异很小那就需要先确认是不是测试工况没有触及失稳边界。如果介入后数据反而更差再快速定位是算法方向、增益还是执行器执行问题。这种对比法在台架联调阶段效率很高。这套测试台架真正能用好靠的不只是CarSim操作熟练而是对车辆稳定控制需求模型的理解够深。只拿它跑固定工况、看几个动画功能就浪费了。把它纳入到VDS前期开发、硬件在环测试、实车预匹配的完整链条里发挥的价值会大得多。希望你第一批数据就能一次跑出有效结果。
返回列表