【问题标题】:how to input Matlab "Bus Objects" in to "Level-2 MATLAB S-Functions"如何将 Matlab“总线对象”输入到“Level-2 MATLAB S-Functions”
【发布时间】:2014-12-15 11:43:36
【问题描述】:

是否可以在 Simulink 中为 m 文件 s-function 块使用总线数据类型?

我在 matlab 文档或在线任何地方都没有找到这方面的任何示例。

对于用 C 编写的 s-Function,API 看起来有点像这样

  DTypeId dataTypeIdReg;
  ssRegisterTypeFromNamedObject(S, "myBusObject", &dataTypeIdReg);
  if(dataTypeIdReg == INVALID_DTYPE_ID) return;
  ssSetInputPortDataType(S,0, dataTypeIdReg);

现在我想从我的 *.m 源代码中访问相同的数据类型(C 中的结构,Matlab 中的总线对象)。 您知道有关此的任何示例或教程吗?您可能会注意到,我对 Simulink 环境不太熟悉...

我还发现了关于这是否可能的不同信息

问:2 级 s-Function 是否支持总线对象?

【问题讨论】:

    标签: matlab data-structures simulink bus s-function


    【解决方案1】:

    实际上,如果您在“答案 1”上向下滚动页面,您会看到一行:

    所以两个页面都同意:您不能将总线对象与 MATLAB S-Function 一起使用。如果你想使用带有 S-Function 的总线对象,它必须是 C-Mex S-Function。

    有关一些示例,请参阅此blog post 或此MATLAB Answer,甚至this one

    【讨论】:

    • 哎呀。没看到这个。但有趣的是,如果您查看有关“总线数组”的文档,这些人会告诉您 Matlab 函数(1 级)确实支持总线数组。因此,如果您想避免在 C 中编码,这就是您可能想要寻找的内容
    • 实际上,我不相信任何类型的 S-Function 都支持总线阵列(请参阅 uk.mathworks.com/help/simulink/ug/…)。 Level-1 S-Functions 是非常古老的技术,只是因为历史原因才被支持,但我可以看到它们很快就会被淘汰。据我所知,L1 S-Function 肯定没有新的开发工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2015-05-23
    • 1970-01-01
    • 2015-11-03
    相关资源
    最近更新 更多