主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

重用一个 Simulink 函数的多个实例

此示例说明如何重用同一 Simulink® 函数的多个实例。模型 slexCounterFunctionMdlRef 包含 update 函数,该函数实现一个计数器。子系统 CounterACounterB 各包含一个计数器实例,从而允许模型重用函数逻辑。

打开模型。

open_system('slexMultiInstanceFunctionsExample');

Simulink model with an UpdateCounterA subsystem, UpdateCounterB subsystem, a Model block referencing CounterA, a Model block referencing CounterB, a Constant block with value 0, a Constant block with value 1000, and multiple Pulse Generater blocks.

实现可重用的 Simulink 函数

slexMultiInstanceFunctionsExample 模型中的函数是 slexCounterFunctionMdlRef 子系统中定义的 update 函数。

要查看 Simulink Function 模块,请打开 CounterA 子系统。

open_system('slexMultiInstanceFunctionsExample/CounterA');

A Simulink Function block with function prototype, output equals update of upper, input, and lower.

子系统 CounterACounterB 各自包含在 slexCounterFunctionMdlRef 模型中实现的计数器的一个实例。由于计数器有多个实例,因此模型可以重用函数逻辑,并可以从多个模块中调用每个实例。

从不同的调用者调用相同的 Simulink 函数

slexMultiInstanceFunctionsExample 模型中的函数调用者位于 UpdateCounterAUpdateCounterB 子系统中。调用表示法 CounterA.updateCounterB.update 可区分计数器逻辑的两个不同实例。

要查看 CounterA 的调用者,请双击 UpdateCounterA 子系统。子系统中的 Function Caller 模块使用 Model 模块名称限定函数名称。在这种情况下,CounterA 是 Model 模块名称,而 update 是函数名称。

sim('slexMultiInstanceFunctionsExample');

另请参阅

| | | |

主题