Level1 Matlab S-function - “工作向量”

时间:2015-07-16 13:20:48

标签: matlab simulink s-function

我在模型中多次使用Matlab 1级S函数,但不希望相互覆盖全局/持久变量。

解决方案可能是工作向量,但关于1级S函数工作向量的文档很少。我在哪里获得ssSetNumRWork函数的SimStruct S?

谢谢!

1 个答案:

答案 0 :(得分:1)

正确的做法是将代码升级为2级S函数,这不应该是困难的。

1级m代码S函数没有工作向量(并且所有ssGet / Set函数都用于c代码S函数)。他们不再被推荐的原因是他们的功能有限 - 没有使用2级功能就没有好办法解决这个问题。

您可以使用持久变量(在1级S函数的每个子函数内)。但全局变量使得它们随处可见,所以试图使用它们而不希望每个人都看到它们似乎毫无意义。 (注意:你绝不应该使用全局变量。)

话虽如此,如果您真的想要使用Level-1功能,那么在每个S-Function中,您可以使用getappdatasetappdata函数来充当工作向量存储。但是,如果您要解决这个问题,无论如何升级到2级S功能都会更容易。