我希望我的Simulink Level 2 S功能能够顺序运行一系列测试用例。每个测试用例都会填充包含多个数值数组的结构。 我目前正试图通过两个步骤实现上述目标:
第2步对我来说是有问题的,因为我无法找到一种方法来让S-function块接受来自Workspace的array-of-structs变量作为输入。我想尝试避免使用simin方法(另一个Stackoverflow讨论,here),因为它似乎需要将整个结构表示为单个数据列,并且我希望保持结构完整。还尝试使用带有struct数组的Constant块作为变量名,但是为块返回“ blockname 参数值的无效设置”。
非常感谢有关正确设置此设置的任何建议。如果绝对必要,也可以使用不同的方法来构建模型。谢谢!
编辑:意识到我可以使用 load 在S函数M文件中导入数据。这适用于我的项目。但是,我仍然有兴趣了解是否存在传统的解决方案。
答案 0 :(得分:1)
如果你只是想访问工作区,我会考虑在你的M文件S函数中使用 evalin(caller,'expression'):
mystruct = evalin('base','MyStructFromWorkspace');
/* (process mystruct) */
它也应该这样做。