Simulink代码生成:Step函数接口配置

本文研究Simulink生成代码时的step函数的名称和参数。

1 问题引入

在之前的一篇博客《Simulink代码生成:Simulink Function子系统及其代码》中,博主为了满足生成带有非空参数的函数这个需求,使用了Simulink Function子系统,基本上解决了问题。

但是这样的方案将Simulink Function子系统作为顶层模型,完全不符合一般的建模方式。通过更多的研究后,发现保持以前的建模方案,也可以通过配置生成特定接口的Step函数。本文就将这个方法记录下来。

2 配置过程

本节简单演示一下Step函数接口配置的方法。

1)建立一个简单的Simulink模型,包含一个输入接口、一个输出接口、一个Gain模块;
在这里插入图片描述
2)配置Embedded Coder的离散求解器和目标文件,参考《Simulink代码生成: Embedded Coder配置》一文,不再赘述;

3)打开配置:Model Configuration Parameters – Code Generation – Interface – Config Model Functions;
在这里插入图片描述
4)在弹出的窗口中自定义 C Initialize Function Name 为 User_Initialize_Function ,定义 C Step Function Name 为 User_Step_Function ,然后勾选下面的 Configure arguments for Step function prototype,表示为函数原型配置参数;
在这里插入图片描述
5)点击下面的 Get default 按钮,就会检测到模型中的输入输出port,并提示配置;默认配置是把In1配置成 Value(也可以选指针、常量等),把Out1配置成 Pointer,把返回值配置成 Void ;名字分别可以手动修改成Input和Output,然后点击OK就完成了;
在这里插入图片描述

3 代码生成

在第2章的配置后,Ctrl + B生成代码,打开C文件如下;
在这里插入图片描述
可以看到,Step函数和初始化函数都变成了配置的名字,并且Step函数中按照配置的要求,将Inport生成为传参的形式,将Outport生成为指针参数。

然后打开头文件也可以看到对应的函数声明,也是自定义的。
在这里插入图片描述
在第二章中,也可以将输出端口配置为函数的返回值,或者输入端配置成其他形式,后面会相应地生成代码。

4 总结

Step函数接口配置是一个比较细小的配置项,但是可以满足生成传参函数的需求。对于数组、结构体等接口,也可以通过配置dimensions和Bus类型来达到,与Simulink Function子系统的配置方法类似。

>>返回个人博客总目录

猜你喜欢

转载自blog.csdn.net/u013288925/article/details/115336084
今日推荐