参考了以下博客:JaySur的博文

1 编译器

要想进行Amesim与Matlab联合仿真,需要确定作为两者联合媒介的编译器(Compiler)。要想与Matlab进行联合仿真,最好使用Microsoft Visual C++最为二者的编译器。

1.1 查询AMESim16的支持的VS版本

打开AMESim16帮助文档,搜索visual studio,得到如下图。可以看出,Windows 64为系统支持下,AMESim16支持的编译器包括 Microsoft Visual Studio 2010-2013,专业版或标准版。这里选择Microsoft Visual Studio 2013。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器

1.2 查询MATLAB支持的编译器版本

查询MATLAB支持的VS版本:MATLAB各版本所能支持的VS编译器可通过这个地址进行查询。
由该网址可以查到,Matlab 2018b开始,就不再对VS2013及以下版本的编译器进行兼容。所以,要想Amesim16与MATLAB联合仿真,则MATLAB的版本最好不要超过2018a,选择的MATLAB版本是MATLAB 2017b。

1.3 安装顺序

需要安装的软件为:

  • Microsoft Visual Studio 2013 pro
  • matlab 2017b
  • Amesim16

安装顺序建议为VS2013->matlab2017->Amesim2016。因为安装Amesim时,它查询到已经安装有Visual Studio 编译器,它会把Visual Studio 安装目录下的部分文件复制到Amesim的安装目录下。
此外,还可能遇到一个问题:原机器上已装matlab2018b,开始没管就先装了vs2013和amesim,后来发现matlab2018不支持vs2017,于是卸载了matlab2018后装了matlab2017,但是amesim找不到matlab的启动路径了,显示

windos找不到文件’C:\Program Files\MATLAB2018\bin\win32\matlab.exe’

这显然是系统环境变量值没有修改,导致windows系统找不到matlab2017的启动路径。因此,建议安装顺序vs2013->matlab2017->amesim

在本机上,

  • VS2013的安装路径是 C:\Program Files (x86)\Microsoft Visual Studio 12.0
  • Amesim16安装路径是:C:\Program Files\Simcenter\v1600\

友情提示:可能会存在一次安装不成功,而导致多次卸载与安装,Amesim在windows10系统下的安装,无法通过【控制面板】->【卸载程序】卸载,而需要使用自带卸载工具。自带卸载工具的位置为%your path%\Amesim,以本机为例,卸载工具位于C:\Program Files\Simcenter\v1600\Amesim,是一个windows批处理文件,全名:AMEUninstall.bat

运行这个文件后会卸载Amesim16,但存在一些文件删除不彻底的问题,需手动删除整个Simcenter文件夹。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_02

2 安装VS2013

此处仅需注意一个问题,vs2013一定要装英文版,中文版的vs2013会导致Amesim编译模型时出现乱码。
如果你机器上已经安装了vs2013英文版,请忽略下列内容。
如果你的机器上装了vs2013中文版,可以通过安装一个英文语言包,再在vs2013的【工具】->【环境】->【区域设置】->English中改过来,详细如下。

  • vs2013英文语言包:下载链接 提取码:gwto ,下载后,双击.exe文件安装,一路next即可。
  • 打开vs2013,点击【工具】->【环境】(忘记截中文版的图,用已经切换的英文界面代替)
  • 点击【区域设置】->【English】
  • 关闭vs2013后并重启,语言切换成功!

3 安装Amesim2016

Amesim的安装参考了以下两个链接:参考链接1参考链接2

Amesim2016解压后,文件结构如下图,该结构的路径为E:\AMESIM2016\ENsImaLR16\Siemens.Simcenter.Amesim.16.0-SSQ。其中,_SolidSQUAD_里包含的是所需的文件,Siemens.Simcenter.Amesim.16.0.iso是安装镜像。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_03

step 1

E:\AMESIM2016\ENsImaLR16\Siemens.Simcenter.Amesim.16.0-SSQ\_SolidSQUAD_\Win64\_SolidSQUAD_位置下的LMS_RLM_Server文件夹复制到指定位置,这里复制到C盘根目录下。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_04


鼠标右击server_install.bat选择【以管理员身份运行】,安装服务。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_05

step 2

服务安装完成后,双击打开安装包里的光盘映像文件Siemens.Simcenter.Amesim.16.0.iso

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_06

step 3

右键管理员身份运行setup_win.bat文件

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_07

step 4

选择安装产品Simcenter Amesim,单机【next】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_08

step 5

一路【next】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_环境变量_09


Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_10

step 6

【User name】和【Organization】随意填写,但必须为英文。

activation code为【DIGJW72BDR29WJ20HVQ60C721】,可在安装包里的文件readme_windows.txt中查看,该文件的位置为E:\AMESIM2016\ENsImaLR16\Siemens.Simcenter.Amesim.16.0-SSQ\_SolidSQUAD_\Win64 填写后单机【next】,并一路【next】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_11


Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_环境变量_12

step 7

安装位置随意,我一般默认安装,不改变安装位置

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_13

Step 8

点击【install】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_14

## Step 9

此时会弹出提示,如果电脑内没有JAVA runtime environment,需要安装。因为我电脑上有java环境,所以直接【OK】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_环境变量_15

Step 10

等待安装。。。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_16

Step 11

点击【next】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_17

Step 12

安装提示如图,可以发现软件安装时检测到了【Microsoft Visual C++】,可以进行后续设置,实现MATLAB联合仿真,点击【next】,并一路【next】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_18


Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_19

Step 13

在许可证配置界面中,选择许可证配置界面中,选择【Specify port@host】,输入【5053@localhost】

Step 14

选择【No, I will restart my computer later】,点击【Finish】

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_环境变量_20

Step 15

创建系统变量,变量名【AME】,变量值为Aesim安装路径,本机为C:\Simcenter\v1600\Amesim 创建系统变量 LMS_LICENSE=5053@localhost

Step 16

启动Amesim时,先以管理员身份运行C盘根目录下rlm.exe。

顺便解释一下【server_remove.bat】【server_install.bat】两个文件,分别是删除和安装RLM server的windows批处理文件,如果需要删除RLM server,则运行【server_remove.bat】。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_21


运行如下,不要关闭这个。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_环境变量_22


再启动Amesim

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_23

4 安装matlab2017b并配置联仿环境

matlab2017的下载安装极为简单,详见链接,此处不再赘述。

4.1 环境变量配置

设置联仿环境时,注意确保有以下几个环境变量即可,这些环境变量,有的是安装软件时自动加的,有的是需要手动添加的,因此检查一下自己的环境变量列表。

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_24

4.2 MATLAB编译器设置

首先打开Matlab 2017b,在命令窗口输入: mex -setup

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_25


选择mex setup C++,如下

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_26

5 可能遇到的问题

5.1 Amesim “Failed to connect to the license server”,怎么办?

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_27


这个问题是许可证有问题,Amessim 2016的许可证需要运行RLM.exe。解决办法参考:

参考1参考2参考3参考4 运行C盘根目录下的rlm.exe来启动一个serve,如果提示

Web server starting on port 5053

(rlm) Port 5053 in use, waiting…

(rlm) Port 5053 in use, waiting…

(rlm) Port 5053 in use, waiting…

将LMS_LICENSE=5053@localhost 这个环境变量值改到5052@localhost,或5060@localhost,5054@localhost。这里改成了LMS_LICENSE=5052@localhost

若之后依然存在Port 5052 in use, waiting…的情况,检查任务管理器是否有其他rlm进程,请关闭。

同时,将C:\LMS_RLM_ServerLMS.lic文件中的一句话改为HOST localhost ANY 5052

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_28


Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_MATLAB_29

5.2 Amesim LMS License Error 怎么办?

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_编译器_30


这个问题是未启动LMS服务器导致的,请C:\LMS_RLM_Server目录下rlm.exe这个文件。

5.3 Amesim编译模型时是乱码怎么办?

如果遇到amesim模型编译时出现乱码,修改系统非unicode软件语言为英语,同时保证vs2013为英文安装。

5.4 Amesim启动不了MATLAB,怎么办?

如下图,在Amesim中点击Tools->Matlab后,出现下图

Ameism matlab联合仿真神经网络 amesim16与matlab联合仿真_环境变量_31


这个问题是由于没有正确在系统环境变量中设置matlab路径,导致amesim(也就是系统)找不到matlab启动位置。我这里由于最早装了matlab2018b,由于配置联仿环境需要,卸载后又装了matlab2017b,但是系统环境变量值没有改过来,导致amesim2016还只认得原来的地址。解决办法就是 4.1 小节中,注意设置好环境变量。

6 验证

现在我们来验证一下联仿环境是否可运行。

  • 打开【AMESim 16->Help->Help】里,在左边的搜索栏中输入【simulink】,打开【Hybrid_bus_steps_simulink】例程:

    - 点击【Amesim 16-Tools-MATLAB®】,它会自动打开【MATLAB 2017b】,并自动添加【AMESIM】的相关路径到【MATLAB PATH】里,然后它会自动打开【Hybrid_bus_steps_simulink.mdl】。(注意,该【.mdl】必须由【matlab 2016b】及以上版本才能打开。)
  • 【MATLAB】打开界面
  • 返回到【Amesim 16】,点击【SIMULATION】,它会将该模型进行编译
  • 经过编译之后,在该模型目录下就会生成【.mexw64】等文件,这东西是联合模块的必要文件
    - 在【Amesim 16】进行编译后,返回到【Simulink】中,点击 【Run】即可(这里将仿真时间从【inf】改为【30s】了,如果是原例程的【inf】,它将不会停止。

    -----------------------------------------------------完结,撒花!------------------------------------------------------
    ---------------------------------------------------有问题可留言讨论--------------------------------------------------