人在仿真软件万博1manbetx

万博1manbetxSimulink &基于模型的设计

万博1manbetxSimulink函数大受欢迎

R2014b的发布将一个历史悠久的statflow特性带到了模型级别:万博1manbetx仿真软件的功能.这些块,类似于独立的MATLAB函数,通过允许您从模型的任何地方调用相同的块集——甚至从状态流程图内部!

一个与众不同的区块

万博1manbetxSimulink函数不同于任何其他的Simulink模块,甚至不同于其他用户定义的函数,比如函数调用子系统。首先,该区块并不使用传统的港口。相反,与MATLAB函数一样,您需要指定参数。

在Simulink函数万博1manbetx中,参数由外观独特的Argument端口块表示。

参数导入和参数输出

因为它们不是传统的端口,所以你不会在Library Browser中找到这些块。要添加或删除参数,你要在块的掩码上输入:

如何指定Simulink函数参万博1manbetx数

要在模型中使用Si万博1manbetxmulink函数,需要使用Function Caller块。

您还可以从状态流程图调用Simulink函数万博1manbetx

万博1manbetxSimulink通过函数名将这个块的每个实例与一个函数关联起来;它要求模型层次结构中的每个函数名都是唯一的。

参考模型中的函数

说到层次结构,Simulink函数的一个非常实用的用法是在引用的模型上下文中。万博1manbetx在引用模型中定义的函数是在其父模型的作用域中。但是,参考模型必须遵循一些非常特殊的设计规则,就像它们包含函数调用子系统时一样

遵守这些规则的最简单的方法是创建一个模型,它只包含你的Simulink函数块集合,就像这样:万博1manbetx

functionCollection

现在,将Model块添加到父模型中,将其指向这个集合,您就可以从父模型或层次结构上的任何其他模型调用这些函数中的任何一个。

整个模型层次结构中的函数名必须是唯一的

生成代码

由Simulink函数生成的代码与您所期万博1manbetx望的一样是模块化和直接的。每个函数都在它自己的源文件中定义。函数原型总是采用以下形式:

void foo(type_T in1, type_T in2, type_T *out1, type_T *out2)

万博1manbetxSimulink足够聪明,可以识别出当您试图模拟引用传递时,并且您将输出命名为与输入相同的名称(就像我在timestwo上图中的例子)。当你这样做时,生成的函数原型看起来就像这样:

空白foo (type_T * x)

现在轮到你了

这开启了一种全新的建模方式。你能创造出什么样的设计模式?

|

评论

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