本帖最后由 ykbeihang 于 2014-12-10 20:19 编辑
以前一直都用simdesinger-->adams-->matlab联合仿真,目前刚接触lms virtual lab 12,总结了一些联合仿真心得,补充virtual lab的资料。
1)联合仿真需要在一键安装virtuallab后,在finish界面选上modify intstallation选项框,再一次安装,选modify, 然后勾选motion matlab选项,并在其后的一个界面,配置关联已经安装的matlab,找到包含maltab 软件bin文件夹的地址(例如,X:\program files\matlab\r2011b,而不是X:\programfiles\matlab\r2011b\bin),然后继续安装,这样才能安装上motion matlab。
2)必须用motion matlab启动matlab,而不能直接启动matlab软件,这一点不如ADAMS联合仿真方便。否则直接plantout.m会出现Warning:Name is nonexistent or not a directory: \execute\intel64. > In path at 110 Inplantout at 6,然后simulink仿真时,会出现:Error in S-function 'xx/plantout/motionfun':S-Function 'vlmotionmex' does not exist。关于这部分,可能可以通过重新配置Intel64中的文件或者修改plantout.m中的path(path,vl1)解决。
3)在插入àcontrolsàcontrol input里面选one body, two bodys等,这些称为控制器的输入,即virtual lab模型的输出,这里要注意这种转换(与ADAMS思想相反);
4)在插入àcontrolsàcontrol output里面选one body, 里面的下拉菜单选择各种外力,外力矩。Two body的则表示的是双向作动力,joint则表示的是运动控制。这部分为控制器的输出,即virtual lab的输入。
5)在solution dynamic中选择interpolated,选Matlab_SIM的话,在Simulink中只能用变步长仿真。选Matlab_COSIM,可以用定步长仿真。
6)与ADAMS不同,实际仿真步长会在Maltab命令行窗口显示,可以发现,其仿真步长与virtual Lab solution设置的print interval有关,因此设置print interval才是仿真步长。修改Simulink中的仿真步长并没有作用。
7)用motion matlab打开matlab,并将currentfolder设置到含有plantout.m和virtual lab模型、分析文件的地址,而且在运行virtual lab生成的plantout.m之前,先要打开simulink,建立一个空simulink或者打开已有的simulink文件,否则会报错“Error Matlab model not loaded”(详细原因参考plantout中间部分代码 if (strcmp(gcs,'') ) disp('Error Matlab model not loaded');)
8)当成功将plantout中模型成功载入(matlab命令行成功显示“setupfor Virtual.Lab Motion done”),有时候依然会出现仿真错误,这是因为virtual lab的subsystem中输入部分的buscreator(’thebus’)模块没有识别出输入信号,简单的做法是将其删除,然后建立一个新的buscreator. 除了8)这种繁琐的方法外,一劳永逸的方法是直接改plantout.m文件,例如将最后几段关于buscreator的代码注释掉。
总之,virtual lab与maltab联合仿真的操作部分要非常小心,而且相关资料较少,不如adams matlab联合仿真那么直观方便,但virtual lab生成的plantout.m代码较为清晰易读,方便修改,而且virtual lab集成了catia的建模功能,因此比adams方便,这或许是virtual lab的优势。
|