AMESim仿真脚本工具(AMESim Simulator Scripting)
2013-01-29
1 简介
AMESim为我们提供了一套完整的脚本工具,使得用户可以在更高级的语言中(Python,MATLAB,Scilab 或Visual Basic Application)完成模型仿真[1]。
2 路径设置
本文是在AMESim Rev10和Matlab R2007b中完成,Matlab版本若高于此版本,可能会发生意想不到的错误。
首先,检查Matlab路径列表中是否已包含以下的路径:
%AME%\v1000\scripting\matlab\amesim (其中,%AME%是AMESim的安装路径)若不包括,请按以下步骤添加:
1.打开Matlab,点击菜单栏中File->Set Path,打开路径设置对话框;
2.在打开的对话框中,点击Add Folder,弹出路径浏览器;
3.添加%AME%\scripting\matlab\amesim到其中;
4.点击Save->Close。
完成设置,如下图所示。
图1 路径设置
3 示例
下面以一个简单的质量—弹簧—阻尼系统来对AMESim的脚本工具进行简要说明。
图2 质量—弹簧—阻尼系统
3.1 AMESim模型建立与仿真
在AMESim中对质量—弹簧—阻尼系统进行仿真[2]:
(1)打开AMESim,在草图模式(Sketch mode)下,建立如图2所示的系统,保存文件为MSD.ame;
(2)在子模型模式下(Submodel mode)为模型选择合适的数学模型;
(3)在参数模式下(Parameter mode)设置所有参数为缺省值;
(4)在仿真模式下(Simulation mode),设置仿真时间为8s,通讯间隔0.01s,运行仿真,得到质量块的位移曲线(图3)。
(5)保存文件并退出。
图3 质量块位移曲线
3.2 Matlab环境下AMESim脚本命令的运用
在Matlab中,运用AMESim脚本命令(ameloadt和amerun)对AMESim模型进行分析。
首先,需要设置Matlab的当前工作路径(Current Directory)为AMESim模型的存储路径(我的是D:\AMETest)。
图4 设置Matlab当前工作路径
由于我们已经关闭AMESim,所以我们需要用AMELoad命令来载入模型,接收参数[1]。
(1)在Windows Xp SP3系统中,点击开始->运行,输入cmd,进入DOS对话框;
(2)输入D:,进入D盘;再输入cd AMETest进入AMETest文件夹;
(3)输入AMELoad MSD,载入MSD模型。
DOS运行界面如图5所示。
图5 DOS运行界面
完成以上步骤后,我们可以看到在AMETest文件夹中多了许多文件,这和我们在AMESim中运行模型时产生的文件是一致的。
图6 AMETest中的文件
下面我们用ameloadt这个命令来载入模型文件,将AMESim的结果导入Matlab中,并利用Matlab绘制如图3的曲线。
(1)在Matlab的Command Window中输入:
>> [R,S]=ameloadt('MSD');
这样,AMESim模型的运行结果将保存在矩阵R中,变量名将保存在矩阵S中。
(2)再在Command Window中输入:
>> plot(R(1,:), R(3,:))
>> grid on;xlabel(S(1,:));ylabel(S(3,:))
得到Matlab绘制的曲线如下:
图7 Matlab绘制的质量块位移曲线
除了ameloadt外,AMESim提供了很多脚本命令,在Command Window中输入help amesim可以查看这些命令。
下面,我们在Matlab中利用amerun命令来离线仿真AMESim模型。
(1)在Matlab的Command Window中输入:
>> clear
清除workspace中的变量,释放内存;
(2)在Matlab的Command Window中输入:
>> [R,S]=amerun('MSD',0,8,0.01);
将会得到以下结果:
Start run ...
SIN0 instance 1 reduced the maximum time step to 0.25s.
Requesting amesim_runtime license ...
got the license for amesim_runtime, continuing
Total CPU time: 0.016 seconds
AMESim model MSD_ terminated normally
... The end
There are 15 variables
There are 802 points per variable
这样就可以进行一次起始时刻为0,终止时刻为8s,通讯间隔为0.01s的仿真。仿真结束后,结果将自动保存到矩阵R和S中。
(3)再在Command Window中输入:
>> plot(R(1,:), R(3,:))
>> grid on;xlabel(S(1,:));ylabel(S(3,:))
可以得到和图7一样的曲线。
若要清除AMETest文件夹中的模型文件,可在DOS中使用AMEClean Name命令,其中Name是模型名,本文中应为MSD。这样,即可清除文件。
参考文献:
[1] AMESim Reference Manual Rev 9.France:LMS Imagine,2009.
[2] 付永领,祁晓野.AMESim系统建模和仿真—从入门到精通[M].北京:北京航空航天大学出版社,2006.