人在仿真软件金宝app

金宝appSimulink与基于模型的设计

使用Simu金宝applink函数模拟硬件服务

本周,我想介绍另一个特性,当它与初始化函数重置功能终止函数块。

在R2014b,金宝app仿真软件的功能介绍了。在这篇文章,我们强调了如何使用Simulink函数来金宝app创建导出功能模型.在这种情况下,Simulink函数被金宝app放置在一个模型中。在模拟中,可以使用Function Caller块引用模型并调用函数。

金宝app使用Simulink函数作为函数库

然后,您可以为函数库模型生成代码,并从手写代码中以任何您想要的方式调用这些函数。

相反的

我们当时没有提到的一件事是,可以用完全相反的方式使用Simulink函数和函数调用方块,其中引用的模型有一个函数调用方块,调用顶层模型中的Simu金宝applink函数。

仿真工具

为什么会有人想这么做?简而言之,答案是模拟不能直接用于模拟的定制代码。让我们看看它是如何工作的。

使用函数调用方块调用外部代码

如果我们为子codeGenModel生成代码。SLX在上面的图片模型中,代码看起来像:

生成的代码

默认情况下,这段代码不会生成,因为编译器不知道该函数在哪里timesTwo.然而,如果您正确地配置了您的模型,功能timesTwo你可以从任何地方来。例如,它可以在一个动态库中,您将在嵌入式目标中链接到该动态库。对于这个例子,假设有一个timesTwo本网站提供的服务timesTwo.c文件:

自定义代码

在模型配置中,我指定这个文件应该包含在构建过程中:

自定义代码配置

这允许我生成一个调用我的定制的可执行文件timesTwo.c实现。

结论

总而言之,这个想法是创建一个Simulink函数来模拟外部软件的行为。金宝app你可以构建一个引用你的代码生成模型的仿真工具模型,它会看到Simulink函数。金宝app当需要为子模型生成代码时,它将不知道Simulink函数的存在,而是将链接到您指定的任何外部代码。金宝app

需要注意的是,这种技术只是在Simulink生成的代码中包含定制代码的一种方法。金宝app

如果主机上有自定义代码,我建议使用功能在模拟和代码生成中包装和重用相同的定制代码。

但是,如果代码不可用,例如,因为它可以作为目标嵌入式处理器上的操作系统服务使用,那么这种方法可能会很有趣。

接下来是什么?

现在我们已经介绍了导出功能模型,状态读取器和写入器块,以及使用Simulink函数的这种方式,我相信金宝app我们已经有了所有的部分来制作一个现实的例子来说明我们如何看到初始化函数重置功能终止函数块被使用……下个星期。

|

评论

要留下评论,请点击在这里以登录您的MathWorks帐户或创建一个新的帐户。