【问题标题】:How can I call a Simulink function that is located 2 levels above the Function Caller block?如何调用位于 Function Caller 模块上方 2 层的 Simulink 函数?
【发布时间】:2019-08-30 09:20:23
【问题描述】:

我在 Simulink 函数下方有两个级别的函数调用程序块。如果我只调用一个级别的函数,模型将完美地模拟。分开两个级别时,Simulink 将返回错误:[Provide Input argument specification and Output argument specification for the Function Caller block 'X/X_Z_s/SDA_SDB' 因为相应的 Simulink 函数无法解析到此层次结构、模型或任何参考模型。] 我不能将函数和函数调用者放在其他地方。

有人知道如何解决这个问题吗?我已经工作了两天了。

【问题讨论】:

  • Welcome to SO!... 你能把参数中的实际行放在你的问题中调用哪个函数吗?
  • 谢谢!不幸的是,我不允许给你 actual 行,所以我已经对其进行了编码。我希望你仍然能够帮助我。

标签: matlab function simulink function-call


【解决方案1】:

问题不在于层次结构,还在于“输入”和“输出参数规范”。您必须在此处提供接口数据类型和维度。

示例

【讨论】:

  • 好的,这确实做了一些事情。现在我得到了错误:[块'...'调用的范围函数'...'尚未在模型中定义。对作用域函数的调用必须在模型中解析。确保范围名称(子系统模块或引用模型模块)没有空格。]
  • @trisp3ar 你有什么“功能原型”?
  • 函数原型等于被调用的 Simulink 函数块中描述的精确函数。
  • @trisp3ar 您使用的是什么版本的 MATLAB?
  • 我正在使用 R2019a (9.6.0.1072779) 我刚刚被告知此功能可能不起作用,因为该块是使用 AUTOSAR 工具箱生成的。 AUTOSAR 可能限制了它的使用。你有这方面的信息吗?
【解决方案2】:

所以解决方法很简单。没有解决办法。 AUTOSAR-Toolbox 限制了某些 Matlab/Simulink 功能的使用,因此很难在 Matlab/Simulink-、SO-community 和其他论坛的帮助下解决问题。 如果您遇到由 AUTOSAR-Toolbox 引起的问题/错误,通常在没有任何工具箱的情况下也可以正常工作,即使效率低下,您也最好只是解决它。

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    相关资源
    最近更新 更多