您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > Adams和AMESim联合仿真的设置和简单例子(都是13版本)
Adams和AMESim的联合仿真前言:本人并不是Adams和AMESim的高手,接触AMESim的时间很短,但是需要做Adams和AMEsim的联合仿真,这里分享一下我探索联合仿真的经验。目录如下:一、仿真前需要做的准备。1、软件的安装2、环境变量的设置二、一个具体的联合仿真例子。(这里只介绍Adams主控的仿真)***********************************************************一、仿真前的准备1、软件的安装软件的版本对联合仿真有重要影响,这里只介绍我自己安装软件的情况。我的系统是win732位,安装的软件是Adams2013、LMSImagine.LabAMESimRev13、VisualStudio2010。Adams2013和AMESimRev13网上有很多下载资源和安装教程。这里我只强调一下VisualStudio2010。也就是可以建立两个仿真软件联系的VisualC++程序。VisualC++和VisualStudio等之间的关系大家可以自己在网上查,其实都包含有C++语言。网上有些教程是用VC++6.0来建立两者之间的关系,但是我安装了VC++6.0的各种版本(企业版,中文版,英文版)都没有成功建立仿真,后来安装了完整的VisualStudio2010就可以了,但是VisualStudio2010有些大,我下载的是1.75G。另外就是安装顺序,最好先安装VC++或者VS(我是最后安装的VisualStudio2010,先安装的说法我这里并没有证实)。下面是我的软件的安装位置,安装目录没有中文D:\zy\ADAMSD:\AMESimD:\ProgramFiles\MicrosoftVisualStudio10.0在最后安装好VisualStudio10后把D:\ProgramFiles\MicrosoftVisualStudio10.0\VC\bin下的nmake和vcvars32文件拷贝到AMESim的安装目录下D:\AMESim\v1300。2、环境变量的设置环境变量的设置至今我也没弄明白到底是什么道理,网上有很多教程也都不太一样,我的经验就是宁可多,不能少,把感觉靠谱的环境变量都加上去/(ㄒoㄒ)/~~。下面我设置的环境变量。环境变量有用户变量和系统变量之分。用户变量:Adams_CONTROLS_WTIME:20AME_ADAMS_HOME:D:\zy\ADAMS系统变量:Adams_CONTROLS_WTIME:20(这个是我自己随便从上面拷过来的,有没有用并不知道,仿真成功后也懒得删了去检验O(∩_∩)O~)AME:D:\AMESim\v1300AME_ADAMS_HOME:D:\zy\ADAMSMSSD:D:\ProgramFiles\MicrosoftVisualStudio;D:\ProgramFiles\MicrosoftVisualStudio10.0(这个好像是填VC++程序的位置)Path:%AME%;%AME%\win32;%AME%\sys\mingw32\bin;%AME%\sys\mpich\mpd\bin;%AME%\sys\cgns;%AME%\sys\python\win32;C:\Python34\Scripts;C:\Python34\Lib\site-packages\Django-1.8.3-py3.4.egg\EGG-INFO\scripts;C:\Python34\Lib\site-packages\Django-1.8.3-py3.4.egg\django;C:\Python34;C:\ProgramFiles\AMDAPP\bin\x86;C:\ProgramFiles\Intel\iCLSClient\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles\Intel\Intel(R)ManagementEngineComponents\DAL;C:\ProgramFiles\Intel\Intel(R)ManagementEngineComponents\IPT;C:\ProgramFiles\ATITechnologies\ATI.ACE\Core-Static;%AME%\libadams;D:\ProgramFiles\MicrosoftVisualStudio10.0;D:\zy\ADAMS;D:\zy\ADAMS\win32;D:\zy\ADAMS\aview;D:\zy\ADAMS\aview\win32;$AME/$MACHDIR(path变量应该一开始就有,这也是最长最让人头疼的,我解释不清楚,但大致是AME的路径,Adams的路径,VS的路径。用红色字体标出的是有可能的关键路径。)注:这些变量是添加的变量,并不是所有的变量,系统也会自己设置一些变量。二、联合仿真的例子仿真可以分为Adams主控和AMSim主控,就是在那个软件里点击最后的“运行”,这里我只介绍Adams主控的,就是Adams引进AMESim的运算结果,在Adams里进行仿真。在AMESim的help里面有一个联合仿真的例子用的是“天线”如下图所示。“天线”模型是Adams程序里面自带的,但“天线”模型看着复杂一点,这里我的例子是用的自己的测试模型,如下图所示。首先简单介绍一下这个模型的组成和工作,然后再说一下设置的步骤。模型只有两个部分组成:外缸和内杆。外缸内杆外缸是中空的,内杆在外缸中平移,是一个非常简单的平移运动。所有的动作过程就是:内杆相对于外缸发生了一个平移——测量平移的位移和速度——将速度和位移传递到AMESim里面——AMEsim反馈一个力作用在内杆上。这只是一个用来测试的例子并没有任何实际的意义。下面说一下设置的步骤。1、在AMEsim的设置。1)首先在AMESim里添加adams的库。Modeling——categorypathlist—user/corporatelibraries选择下方的browse,选择AMESim安装目录下的Adams文件夹。我选择的文件夹如图所示将文件夹通过add添加到右边的目录中去,点击ok。设置完成后,AMESim的元件界面会出现Adams的图标。2)建立仿真系统Modeling——Interfaceblock——Creatinterfaceicon弹出如下对话框。设置如下点击ok后,在屏幕上点下我们的联合接口摆放好所需要的元件,如图所示五个元件分别是:速度和位移输入、弹簧、质量块、力的传感器、零力源。这些都可以在mechanical里面找到,其中速度和位移的输入是从adams里传递过来的,而测得的力则要传递回adams。最后通过连线把它们连接起来。最终效果如图。输入输出和相应的Adams模型其实没有太大的实际关系,只是强行把它们连在一起。3)下面设置子模型,直接用Premiersubmodel就好了。在设置参数之前,选择VC++编译器。Tool——options——AMESimpreferences——compilation,选择C++。设置参数,点击parametermode在这里强调一下,如果点击了这个按钮也没有报错的话,就离成功非常近了(O(∩_∩)O)实际上,我个人感觉这个步骤的报错率还是挺高的,而且不知道问题出在什么地方。我是不停地添加,修改环境变量、安装新的2010VS(VC++程序)我感觉这两个地方应该是关键。还有一点,需要提醒一下的是,如果说用C++编译失败了,想再换回GNUGCC,然后再做一下其他的非联合仿真的问题,但还是会出现失败的提示(原来曾经成功过,但现在却失败),这可能是因为之前在categorypathlist添加了adams模型的原因,把添加的模型删掉,应该就可以成功的使用AMESim的非联合仿真的其他功能了。点击parametermode按钮成功通过后,就可以设置参数了,这里我是让他们保持初始参数不变的。4)点击simulationmode,这时已经在你的AMESim文件所在的位置生成了联合仿真所需要的文件,我的文件命名是“guan”。.dll文件是关键文件,需要在adams里面调用的。也可以用File——writeauxiliaryfiles来生成这些文件。好了,到这里AMESim的设置就结束了。2、在Adams里面的设置。这是我在Adams里面的模型,前面已经提到了。Adams的工作空间(directory)和文件要和AMESim的文件在同一个文件夹1)有关模型的建立和导入,以及约束的设置,这里就不一一赘述了,因为这个模型非常简单,大家想要试试的话只需要做一个管,再做一个杆就好了。现在把前期的准备叙述如下:模型的材料都设置为钢,没有重力,外缸与地面添加固定约束,外缸和内杆添加移动副,在移动副上添加motion:motion为默认值10*time;在外缸的中心处施加一个力force,力的方向沿着杆的方向,大小为0。2)利用measure测量内杆的速度和位移速度和位移的图像如图,就是匀速直线运动。3)建立两个变量:速度和位移通过element——systemelements——creatastatevariabledefined……弹出下面的对话框,设置如下,将表达式指向刚刚测量出的位移通过同样的步骤建立第二个变量,速度。建立完成后的目录栏4)建立联合仿真所需要的数组点击elements——dataelement——CreateanADAMSArray,弹出下面的对话框,并设置如下数组设置。Type选择u(inputs),variables选择刚才生成的两个变量,位移和速度,他们会作为Adams的输出,AMESim的输入。再次点击elements——dataelement——CreateanADAMSArray,建立第二个数组,设置如下(设置主要是:name,type,size。Id用系统默认就好)下面设置第三个数组Y数组里面就是由AMESim传递到Adams的力,他作为AMESim的输出传递到Adams里面。5)将数组Y的值(也就是力)赋给我们添加在外缸上的力。之前我们设置的力为零,现做如下改变。Function改为ARYVAL(ARRAY_Y,1)6)创建一个GSEGSE是用来建立Adams和AMESim的联系点击elements——systemelements——Createageneralstateequation(GSE)设置如下:注意这里我们选择的是discrete的仿真方式,如果选择continuous的话,设置会不同。(两种仿真的区别大家可以在网上查到。)7)设置Adams的求解器。点击setting——solver——Executable…设置如下这里的solverlibrary选择的是前面设置AMESim时生成的guan_.dll文件8)进行仿真。首先在adams里面建立一个仿真的脚本点击simulation——setup——createanewsimulationscript打开对话框进行如下设置Scripttype选择:Adams/SolverCommands在文本框中输入:SIMULATE/DYNAMIC,END=5.0,DTOUT=1.0E-003,点击ok。回到AMESim中的simulation模块,选择“settherunparameters”将仿真的时间改为下图所示最后在Adams中选择simulation——simulate——runascriptedsimulation,选择刚才的脚本,点击运行。Adams会弹出information对话框。分析结束后,可以分别在Adams和AMESIM中查看力和速度的变化。AMESim中速度的变化就是这样一个大
本文标题:Adams和AMESim联合仿真的设置和简单例子(都是13版本)
链接地址:https://www.777doc.com/doc-1864881 .html