关于Adams错误Internal Error during execution of command 3. AEI_Initialization: Error in initialization.解决方法
问题描述
笔者在进行Matlab与Adams联合仿真时遇到了如下图所示的错误。
联合仿真流程
为了详细说明问题,现简述联合仿真流程。
-
在Adams中设置好仿真模型,设置系统变量,导出机械系统
Control_Plant_[N]
。
【注意】导出时的Adams模型不能有设置为失效的部分,否则会报如下错误。
【提示】驱动方式最好使用速度或加速度,否则运行到运动学奇异位置可能发生位置突变(例如:翻腕等),即使是进行正运动学控制(正运动学控制:控制电机运动;逆运动学控制:控制末端运动)。
-
打开Matlab,并设置路径为与Adams相同的路径。
-
(可选) Matlab命令行运行
load('[Data_Workspace].mat')
,加载所需数据。 -
Matlab命令行运行
Controls_Plant_[N]
,导入Matlab与Adams接口配置参数。 -
(可选) 若之前存在文件
adams_sys_.slx
,重命名、移动或删除该文件,以保证下一步的运行。 -
(可选) Matlab命令行运行
which adams_sys
,查看adams_sys.m
文件所在位置。在资源管理器中打开该位置,将adams_sys_template.mdl.r2011b
文件另存为adams_sys_template.mdl
,并覆盖原文件。
【注意】仅输入输出格式与上次不变,才可以省略该步骤。 -
Matlab命令行运行
adams_sys
,这样将在根目录下生成Adams最新一次导出的adams_sys_.slx
文件。其中,该文件中有需要使用的模块adams_sub
。 -
新建
[File_Name].slx
文件,复制adams_sub
模块到该文件,进行Simulink搭建。 -
双击
adams_sub
模块,进入并双击MSC Software
模块,配置相关参数。
【注意】
若需要打开Adams界面实时仿真,则将Animation mode
选项由batch
改为interactive
;
一般Simulation mode
设为discrete
;
将Communication interval
改为Simulink 的仿真时间步长。 -
运行Simulink。
解决方法
该问题主要是由于Simulink中的adams_sub
模块在路径中找不到需要的文件导致的。
需要注意的是,虽然在Matlab中设置了Simulink当前路径,但是adams_sub
模块不一定在当前路径中加载文件。
这是由于在Matlab中使用命令Control_Plant_[N]
,生成Adams导出到Simulink的接口参数时,路径参数以字符串的形式被保存在了工作区,这将影像adams_sub
模块调用文件路径。
通常地,ADAMS_cwd
与被导出的ADAMS模型路径有关,ADAMS _sysdir
与ADAMS的安装路径有关。
需要检查:
ADAMS_cwd
是否与Matlab工作路径相同。ADAMS_sysdir + 'controls\matlab\'
路径下是否存在以下文件:- adams.tlc
- adams_sys.m
- adams_sys_template.mdl
- adams_sys_template.mdl.r2011b
- decode.m
- deriv.tlc
- io_template.mdl
- set_some_params_states.m
- setio.m
- setup_rtw_for_adams.m
- start_adams_daemon.m
- 在
ADAMS_sysdir + 'controls\win64\'
路径下是否存在以下文件:- adams_plant.mexw64
- plant.lib
- scontrols.exe
- ut_driver.exe
- vcontrols.exe
另外,若同一个Adams模型被导出了多次(具有相关的多个Control_Plant_[N].m
),还应检查接口参数中的ADAMS_prefix
,该参数对应的Control_Plant[N].m
是否在Matlab工作路径中。
笔者通过检查以上内容,解决了该问题。
针对不同的软件版本(笔者Adams2019+Matlab2016),具体内容可能有所不同。
附加:
Internal Error during execution of commond 12
属于Adams内模型问题,需要检查模型质量参数(不能小于0等)。
希望为大家提供一点思路,若有疏漏之处,欢迎大家批评指正(^∀^●)ノシ
哎最后吐槽一下,Adams真的迷啊,头秃了头秃了