Adams与matlab联合仿真出现的问题
在网上跟着教程学习Adams与MATLAB联合仿真,教程讲得挺详细,但是我跟着教程做不能实现,因为缺了几个重要的步骤,自己搜集资料找到了解决办法。
找不到文件的问题
找不到对应文件是很常见的问题,就是没有把路径添加到MATLAB里面。要添加的路径有两个,一个是Adams下面的control文件夹里面的MATLAB文件夹,另一个就是control文件夹下面的win64文件夹,我自己的话缺了其中一个都不能运行。当然也可以把这两个文件夹里面的所有文件都拷贝到Adams和MATLAB的工作目录下,不过这样有点麻烦,而且工作目录下文件多了看起来也不舒服。
在运行simulink时MATLAB闪退
在联合仿真运行simulink时,MATLAB卡在compiling里几秒,然后就闪退,没有任何错误提示,我试了好多遍,从一个奇葩的问题入手解决了这个问题,但是我这个奇葩的问题还没有解决,只是绕开了而已。但是我觉遇到这个奇葩问题的人应该不多。
我的电脑里面安装了MySQL,这应该是奇怪问题发生的根源,在MATLAB里面运行Adams生成的联合仿真的脚本时会出现一大堆与MySQL相关的提示,通过debug发现Adams生成的脚本里面用到了一个system函数,调用了系统的cmd,运行的命令式“adams2018 -top”,此时会出现一大堆与MySQL相关的内容。
这个问题太奇怪了,这个命令根本与MySQL无关。于是我直接在cmd中运行,还是这样。
我还以为是MySQL的问题,在环境变量里把MySQL目录暂时删掉,结果是不会出现上面的东西,但是会显示MySQL找不到命令,所以还是不行。
于是我没有办法,只能看看是不是脚本文件里面哪里有问题。
看到这个地方,我发现这个文件运行前面的命令(23行)其实是不必要的,只要能正确定位到Adams的目录就行。如果运行成功,flag=0,就会根据运行结果去找目录,否则,就会根据默认的目录。这个默认的目录不确定是Adams根据自己安装的位置确定的还是初始默认值。所以就可以避免前面的命令,直接跳到else里面,定位到默认的目录。
于是我自己加了一句代码
flag=1;
再次运行,就没有那个MySQL相关提示了,进入simulink里面也可以正常仿真了。
结论
遇到的两个问题,困扰了我好久,第一个问题,在网上也可以找到一些凤毛麟角的相关的答案,但是第二个问题,实在是太奇葩了,所以找不到任何相关的答案。第一个问题是MATLAB用得少的原因,其实其他软件也一样,和外部链接都需要添加一定的文件,以后也就记得了。第二个问题,我觉得这辈子可能我都找不到答案。不过也算是找到了解决的办法,就是每次都需要手动修改一下脚本。