0

我希望我的 Simulink Level 2 S 函数能够顺序运行一系列测试用例。每个测试用例填充一个包含多个数值数组的结构。我目前正在尝试分两步实现上述目标:

  • 步骤 1:使用 M 文件生成测试用例,作为结构数组保存到 Workspace
  • 第 2 步:将工作区中的结构数组读取到我的模型中,使用 2 M 级文件 S 函数来处理测试用例。

第 2 步对我来说是有问题的,因为我无法找到让 S-Function 块接受来自工作区的结构数组变量作为输入的方法。我想尝试避免使用 simin 方法(此处是另一个 Stackoverflow 讨论),因为它似乎需要将整个结构表示为单个数据列,并且我想保持结构完整。还尝试使用带有结构数组作为变量名的常量块,但这会返回块的“块参数值的无效设置”。

对于正确设置此设置的任何建议,我们将不胜感激。如果绝对必要,也可以使用不同的方法来构建模型。谢谢!

编辑:意识到我可以使用load导入 S 函数 M 文件本身中的数据。这适用于我的项目。但是,我仍然有兴趣知道是否存在针对此问题的常规解决方案。

4

1 回答 1

1

如果您只想访问工作区,我会考虑在您的 M 文件 S-function中使用evalin(caller,'expression') :

mystruct = evalin('base','MyStructFromWorkspace');
/* (process mystruct) */

它也应该可以解决问题。

于 2012-08-17T15:30:48.310 回答