使用可变源块接收或输出函数调用信号进行模拟和代码生成
这个例子展示了一个Variant Source块如何在其输入端口接收函数调用信号,并在其输出端口有条件地合并信号。您可以使用这样的可变信号来控制有条件执行的子系统的执行。
探索模式
打开模型slexVariantSourceFunctionCall.slx
.
open_system (“slexVariantSourceFunctionCall.slx”);
该模型包含一个带有条件的Variant Source块= = 1
而且= = 2
在它的输入端口。一个
变量控制变量是否定义在PreLoadFcn
回调模型。variant Source块的输入和输出端口上的变量条件决定了连接到它的块的激活和去激活。
正弦波块连接到两个MATLAB®函数块,正输入
而且负面输入
.的正输入
当正弦波块的值为正时,block生成一个函数调用。的负面输入
block在正弦波块值为时生成函数调用0
或消极。Variant Source块在其输入端口接收这些函数调用信号。Variant Source块的输出端口连接到一个名为计数器
.子系统何时触发= = 1
正弦波块输出正值,当= = 2
正弦波块输出负值。
的输出函数调用参数。变体Source1
Block被设置为在
.这使得块能够接收和输出函数调用信号。要以编程方式启用该选项,使用以下命令:
set_param(“slexVariantSourceFunctionCall /变异源”、“OutputFunctionCall”,“上”)
的允许零主动变量控制参数。变体Source1
Block被设置为在
.当选择此选项并且没有活动的变体选择时,Simulink将禁用连接到变体源块的输入和输出流的所有块。金宝app
模拟模型
要模拟该模型,就模拟选项卡上,单击运行.变量条件传播决定了主动和非主动变量的选择。
当
= = 1
,正输入
是活跃的。当
= = 2
,负面输入
是活跃的。
在这两种情况下,函数调用子系统中的计数值,计数器
,是递增的。如果~ = 1
而且~ = 2
,然后计数器
不执行,因为正弦波块是不活动的。