许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Adams Car Matlab联合仿真总报错?7步跑通

Adams Car Matlab联合仿真总报错?7步跑通

阅读数 3398
点赞 0
article_banner

搞Adams/Car和Matlab联合仿真,最让人崩溃的不是原理难,是步骤多、坑更多。我第一次跑的时候,光环境配置就卡了3天,报错信息看了20多条,最后发现是一个路径没对齐。2026年了,Adams和Matlab的版本都更新了好几轮,但联合仿真的核心流程没变,坑还是那些坑。下面这7步是我反复跑通后整理的,照着做,基本不会再踩我踩过的那些雷。

Adams Car Matlab联合仿真第一步:环境配置别偷懒

很多人上来就开Adams,结果一跑联合仿真就报错。问题出在哪?环境没配好。

Adams/Car和Matlab必须同是32位或同是64位,我现在全用64位。工作路径也必须一致——Adams快捷方式右键→属性→起始位置,Matlab也设成同一个文件夹。

有个细节容易忽略:把Adams安装目录下Controls\win64\adams_plant.mexw64复制到工作路径里。我之前没做这一步,Simulink里直接报"S-Function does not exist",排查了2小时才找到原因。

还有,启动Adams/Car之前,要改用户配置文件。路径是C:\Users\你的用户名.acar,在Desired user mode里加这几行:

ENVIRONMENT   MDI_ACAR_USERMODE        expert
ENVIRONMENT   MDI_ACAR_PLUS_AVIEW      yes

不加这个,Adams/Car里打不开View界面,后面的变量定义全做不了。

Adams Car Matlab联合仿真第二步:输入输出变量定义是核心

打开Adams/Car,File→Open→Assembly,搜索MDI_Demo_Vehicle.asy打开官方例车。然后Tools→Plugin Manager,把Adams/Controls的两个框打钩。

接下来定义输入输出变量,这步最关键。

点Tools→Adams/View Interface打开另一个视图,确认左上角下拉菜单显示的是MDI_Demo_Vehicle.testrig。为什么要看这个?因为整车装配把SDI和车体各部分的变量全从整车模型接口引出来了,控制器里用的变量都在MDI_Demo_Vehicle.testrig里能找到。你要是直接从SDI里定义输出变量,生成的.m文件里接口号全是0,根本连不上。

输出变量这样设:点Elements左侧的Pout,Plant Output Name填.MDI_Demo_Vehicle.testrig.POUTPUT_speed,Variable Name里右键→Variable Class→Browse,选MDI_Demo_Vehicle→testrig→body_velocity_x。

输入变量点Elements左侧的Pin,在Browse→Elements→Data Elements里找driver_demands,里面有5个关键变量:vas_steering_demand、vas_throttle_demand、vas_brake_demand、vas_gear_demand、vas_clutch_demand。我测试过,只有这5个变量作为输入时,Simulink端改数值,Adams端才会有响应。其他变量输进去,输出端完全没变化。

输入变量Plant Output Name填.MDI_Demo_Vehicle.testrig.PINPUT_brake,Variable Name选vas_brake_demand→variable。

Adams Car Matlab联合仿真第三步:导出整车模型和激励文件

切到Plugins标签,点Controls→Plant Export。File Prefix改成car_1,Input_Signal处From Pinput添加PINPUT_torque和PINPUT_angle,确保变量在列表第一行——我默认出现在第二行,直接报错。Target Software选MATLAB,Adams/Solver Choice改成Fortran,点确定。

工作路径里会生成acar.txt、car_1.m和adams_plant.mexw64三个文件。

然后做仿真激励输出。左上Tools→Select Mode→Switch to A/Car Standard Interface切回主界面,Simulate→Full-Vehicle Analysis→File Driven Events。Output Prefix设为speed,Simulation Mode先设成interactive测试一下。Driver Control Files里打开<acar_shared>/driver_controls.tbl,复制一个.dcf文件重命名为test.dcf,用记事本打开修改。

我直接用开环控制,把5个输入都设成常数:

(STEERING)   CONTROL_VALUE = 0
(THROTTLE)   CONTROL_VALUE = 0
(BRAKING)    CONTROL_VALUE = 0
(GEAR)       CONTROL_VALUE = 3
(CLUTCH)     CONTROL_VALUE = 0

INITIAL_SPEED设成16.667 m/s,INITIAL_GEAR设成3。改完先用interactive模式跑一遍,Review→Animation Controls看动画对不对,或者Review→PostProcessing Window看曲线。确认没问题后,删掉工作路径里除了car_1.m和adams_plant.mexw64之外的文件,重新输出,Simulation Mode改成files_only。

输出成功后,工作路径里会出现speed_test相关的6个文件和speed_test_controls.acf。

Adams Car Matlab联合仿真第四步:在Matlab里跑起来

打开Matlab,打开car_1.m,把ADAMS_prefix = 'car_1'改成ADAMS_prefix = 'speed_test',ADAMS_init改成'file/command=speed_test_controls.acf',保存。

命令行输入car_1,会显示actuators和sensors的信息。再输入adams_sys,弹出Simulink窗口,有两个红色框和一个橙色的adams_sub框。新建模型,把adams_sub复制进去,加阶跃输入,输出接示波器,点运行。

底部先显示compiling,变成running后就编译成功了。阶跃输入数值要设大一点,默认单位很小,速度是mm/s,力矩是N·mm,我设的10000,能看到明显变化。

Adams Car Matlab联合仿真踩过的4个坑

跑通了也别高兴太早,这4个坑我全踩过:

坑1:仿真激励输出报错"Invalid operand in expression"
没有生成curve_crc.m和.acf文件,car_1.m里ADAMS_uy_ids两个量都是0。原因是输入输出变量选错了,必须选MDI_Demo_Vehicle→testrig下的变量,不能从SDI里选。

坑2:Simulink报"S-Function 'adams_plant' does not exist"
adams_plant.mexw64没拷到工作路径。把Adams安装目录Controls\win64下的文件复制过去就行。

坑3:S-function启动失败
还是输入输出变量定义的问题,回头逐行检查。

坑4:编译成功但运行中终止,报"Adams output evaluation failure at time 0.005000"
.dcf文件里的参数设置不合理,车根本做不到你设定的运动。把初始速度、档位这些参数调回合理范围就好了。

我第一次跑通Adams/Car和Matlab联合仿真花了整整5天,但把这套流程跑顺之后,后面每个新项目半天就能搭好环境。你现在卡在哪一步了?

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。




相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空