大家好,最近群里很多人开始关注Amesim的二次开发功能。我们都知道,Amesim的元件库是相当丰富的,每个元件具有1个或者多个子模型,但我们在建模的时候,令人痛苦的是,有时候元件库里面没有我们需要的元件。
实际上,我们可以利用Amesim自带的工具,轻松地创建一个元件和子模型。我们今天做一个信号进行判断再输出,主要端口与参数包括:
一个信号输入口,变量名为x
一个信号输出口,变量名为y
上限参数为max,当x>smax,则y=smax
下限参数为min,当x<smin,则输出信号y=smin
当smin≤x≤smax,则y=x
步骤一 绘制元件图标:
通过Amesim工具栏里面的“工具-图标设计器”功能,打开图标设计器,绘制限位函数的图标,完成端口设置。图标文件保存为svg格式。
步骤二 建立子模型:
通过“工具-子模型编辑器”,设置好端口和变量。分别是输入端口x,输出端口y,限位参数smax和smin,当右上角显示为绿色状态,就可以自动生成代码框架。
步骤三 增加代码:
自动生成的代码框架,已经将端口以及参数等自动处理好,我们只需要增加如下C代码即可。
步骤四 编译元件:
默认是用gcc编译器进行编译,但是编译出的子模型仅Amesim可以使用,如果联合仿真需要用C++编译器,则需要在子模型编辑器里面的首选项中,勾选上其它编译器,推荐勾选的编译器如下:
步骤五 元件测试:
在测试元件之前,需要在Amesim工具栏“草图-更新库列表”的功能,将编译好的子模型路径添加进来,否则Amesim无法找到新的元件和子模型。
本次测试,将sin函数输出限制到±0.5之间,测试结果显示二次开发的子模型正确。
总结:
Amesim元件二次开发主要过程包括:
绘制图标(工具-图标设计器)
建立子模型(工具-子模型编辑器)
增加代码(C代码)
编译元件(首选项-编译器设置)
测试元件先加库(草图-更新库列表)