2. CarMaker基础
CarMaker 是车辆动力学与智能驾驶仿真中常用的高保真工具,它把车辆模型、道路环境、驾驶员操作和测试评价整合在同一个工程里。要顺利开展 CarMaker 与 Simulink 的联合仿真,第一步不是急着连线,而是先理解 CarMaker 的工程组织方式:一个项目由哪些文件构成、车辆参数从哪里来、道路和环境如何挂接、仿真结果又存放在哪里。只有把这条主线理顺,后续在 Simulink 中替换控制算法、读取车辆状态、回注执行器信号时,才不会因为路径、版本或参数不一致而反复排错。
一、软件界面与项目结构
CarMaker 的图形界面通常由几个固定区域组成:左侧是项目浏览器,用于管理车辆、轮胎、道路、驾驶员、交通等数据对象;中间是主工作区,显示当前选中的参数集或三维场景;右侧和底部是状态、日志与仿真控制面板。真正需要建立直觉的是“项目(Project)”这一层概念。CarMaker 的工程目录一般包含以下关键子目录:
Project/
├── Data/
│ ├── Vehicle/ # 车辆模型与参数集
│ ├── Tire/ # 轮胎特性文件
│ ├── Road/ # 道路几何与路面附着
│ ├── Driver/ # 驾驶员模型与操作参数
│ └── Environment/ # 环境、天气、交通流配置
├── Src/ # 用户自定义 C 代码或模型接口
├── SimOutput/ # 仿真结果与日志
└── Project.conf # 项目级配置
理解这个结构后,就能明白:车辆模型不是孤立文件,而是由参数集、轮胎、悬架、动力总成等对象组合而成;道路和环境也不是临时加载,而是作为项目数据被引用。联合仿真时,Simulink 侧通常只关心接口变量和仿真步长,而 CarMaker 侧负责维护这些数据对象的完整性。
二、车辆模型、道路与环境配置
CarMaker 的车辆模型采用模块化参数集描述,常见对象包括车身、悬架、转向、制动、动力总成和轮胎。每个参数集都有明确的物理量,例如轴距、质心高度、轮胎侧偏刚度、制动压力响应时间等。道路配置则定义中心线、曲率、坡度、横坡和路面附着系数;环境配置负责光照、天气、交通参与者等场景要素。三者之间的关系可以用下面的结构图表示:
图中可以看到,车辆、道路和环境三类数据共同输入 CarMaker 仿真内核,内核再与 Simulink 控制模型交换信号,最终把结果写入 SimOutput。这个视角对联合仿真尤其重要:Simulink 并不直接修改 CarMaker 的车辆参数文件,而是通过接口变量影响仿真过程。
三、仿真流程与结果查看
一次典型的 CarMaker 仿真流程可以概括为:选择项目、加载车辆与道路、配置驾驶员和工况、设置仿真时长与步长、启动仿真、查看结果。在联合仿真模式下,还需要在 CarMaker 中启用与 Simulink 的接口,并确保两侧的步长和通信周期匹配。常见操作顺序如下:
- 打开目标 Project,确认 Vehicle、Road、Driver 数据对象已正确关联。
- 在 TestRun 中设置仿真起止时间、采样步长和初始条件。
- 选择 Simulink 联合仿真接口,指定模型文件与通信配置。
- 启动仿真,观察 CarMaker 日志与 Simulink 示波器是否同步推进。
- 仿真结束后,在 SimOutput 中查看曲线、日志和评价指标。
四、常见误区与复盘
初学者最容易踩的坑,是把 CarMaker 当成一个“黑盒动画软件”,只关注三维画面是否好看,却忽略了参数集和接口变量的对应关系。另一个高频问题是项目路径中包含中文或空格,导致联合仿真时接口加载失败。还有一类问题出在步长上:CarMaker 的通信步长与 Simulink 求解器步长不一致,会出现数据滞后或仿真发散。
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| Simulink 无法启动联合仿真 | 接口未启用或路径含特殊字符 | 检查 Project 路径、接口配置和版本匹配 |
| 车辆状态曲线异常跳变 | 步长不一致或单位换算错误 | 核对通信周期、信号单位和初始条件 |
| 结果文件为空 | SimOutput 目录无写权限或未勾选记录 | 检查输出配置和磁盘权限 |
| 道路与环境不生效 | 数据对象未关联到当前 TestRun | 在项目浏览器中重新绑定 Road 与 Environment |
把界面、项目结构、车辆模型、道路环境、仿真流程和结果查看这条链路走通之后,CarMaker 就不再是一个难以捉摸的软件,而是一个可以被工程化管理的仿真平台。后续在 Simulink 中接入控制算法时,你只需要关注接口信号和测试用例,底层的车辆与场景数据已经由项目结构稳定承载。