基于NI VeriStand的AMESIM实时仿真流程
一、环境要求
1.1编译器选择
Amesim生成的dll文件只支持veristand2020及以前的版本进行加载模型。下面以AMESIM 2020与veristand2020版本为例。
(注意!!amesim2020版的编译器必须用Amesim自带的32bit的GNU GCC进行编译)
1.2其它版本兼容性
AMESIM与VeriStand的版本兼容测试结果,如下表所示:
二、创建模型
第一步:首先搭建完成仿真模型,在没有仿真接口的情况下验证模型的正确性。模型无错误后回到草图模型,创建接口选择veristand接口(接口工具栏→创建接口),接口数量根据需求选择,接口名称自定义(这里名称最好不要用空格和非标准符号)。点击确认。
第二步:将模型与VeriStand接口模块连接。这里需要注意接口模块不能有未连接的端口。
三、测量和标定变量的设置
在草图模式下将模型创建好之后,通过子系统模式对模型中所有模块选择子系统。然后进入参数模式。在参数模式下,所有需要在实时仿真过程中进行调整的参数都必须设置成“全局变量”,否则在试验过程中将无法改变。如下图所示:
当全局参数较多的时候,可以通过CTRL或SHIFT进行多选,然后采用数表拖拽的方式放到全局参数变量对话框中。
只有数值型的参数才可以作为全局变量,其他参数类型(下拉菜单/文件路径等)不可以作为全局变量。
把变量设置成观测变量,导入到veristand中可对其值进行显示观测(仿真模式下设置)。
四、仿真参数设置
完成参数设置后,进入仿真模式。如下图所示:
在“运行参数”页中,进行如下设置。
打印间隔:计算结果输出的时间步长。此参数是AMESIM的计算结果与VeriStand进行交互的时间步长。
仿真类型:因为是实时仿真,所以这里必须选择单次运行.
积分器类型:这里的积分求解器形式必须选择定步长求解,即固定步长积分器。
在“固定步长积分器”页中,进行如下设置:
使用的步长:仿真模型的计算步长,这里建议与“打印间隔”设置成一致。
其他参数建议可自行设置。
五、编译设置
仿真参数设置完成之后,选择“写仿真文件”。注意这一步很重要不可以忽略。
该步的目的是将所有参数设置的写入最终实时文件生成的缓存中,以备后续生成实时文件使用。如果不进行该步操作,后续下载到VeriStand中将无法运行。
在仿真模式下选择(接口→生成实时文件)。该步对应生成VeriStand所需的模型下载文件。该操作将导致模型重新编译。
选择veristand接口,然后点击生成会显示一下信息,最后点击关闭。
生成的模型下载文件可以在模型所在目录下找到,命名规则为“模型名称.dll”。
需要注意:在工程目录下有还有一个文件为“模型名称“_.dll”,该文件为AMESIM模型的工程文件,不是给VeriStand用的。这两个文件不要混淆。
六、VeriStand设置
在VeriStand中创建工程,打开veristand2020新建工程,并到AMESIM的工程目录下加载相应的dll模型文件。
在左侧Controller中,将Operating System设置为Pharlap,填写实时机的IP地址。Target Rate设置为和AMESIM中Print interval相对应的频率,此频率为控制器实际计算速率。
这里为QuarterCar,确保右侧的Decimation数值1。该数值为模型计算步长与CPU运行步长之间的比例,在没有特殊要求下设为1即可。表示CPU每计算一次,对应模型的一个新输出结果。
两者时间关系如下:
至此设置完成,模型中所有的输入变量都可以在Inports中找到,所有输出变量可以在Outputs通道中找到。两者需要在VeriStand中和硬件板卡对应的I/O通道继续进行关联。模型中所有的标定参数都可以在Parameters中找到,所有的观测变量都可以在Signals中找到。两者需要和面板控件进行关联。
设置完成点击保存,部署下载到实时机中运行。