主要内容

集成注意事项MATLAB功能

使用非直接馈通在MATLAB功能堵塞

在Si金宝appmulink®块,直接馈通该块的输出由输入端口信号的值直接控制的装置。在非直接馈通,输出信号的值并不在模拟期间依赖于输入信号的值中的至少一个功能。

默认情况下,MATLAB功能块启用直接馈通。如果你禁用直接馈通,Simulink的语义确保输出仅依赖于当前的状态。金宝app使用非直接馈通,您可以使用MATLAB功能在反馈回路块,防止代数循环。

要使用非直接馈通:

  • 启用的内联函数MATLAB功能通过使用块coder.inline在顶级函数体。

  • 打开的属性MATLAB功能Block和清除允许直接馈通。有关更多信息,请参阅指定MATLAB功能块属性

非直接馈通的限制

不要程序输出依赖于输入或更新的持久性变量。例如,不以非直接馈通块使用此代码:

计数器=计数+ 1;%更新状态输出=计数器;基于更新的状态%计算输出
相反,使用以下代码:
输出=计数器;基于当前状态%计算输出计数器=计数+ 1;%更新状态
有关更多信息,请参阅在MATLAB函数初始化持久变量

如果允许直接馈通被禁用,则无法调用自定义代码函数MATLAB功能块,因为它是不可能的强制执行的自定义代码的功能的输出仅取决于当前状态。调用的自定义代码函数MATLAB功能块触发一个错误。

也可以看看

相关话题