我试图在根模型“outer.mdl”的一个时间步中模拟一个模型“inner.mdl”(几个时间步长)。我想过从Matlab功能块调用simout = sim(“inner.mdl”)。问题是:由于我使用外部sim(绕过代码生成),simout作为MxArray返回,我无法从中检索记录的信号。任何想法都会受到赞赏,无论是关于模拟仿真还是使用我正在尝试的方法获取记录的信号。
我这样做的主要原因是,作为控制器的一部分,我试图在未来几步模拟系统,以某种方式使用该信息。我不想把我的控制器变成代码,即使我摆脱了模拟时间依赖的块,我也不知道如何在没有整个模型及时向前移动的情况下运行一个块的时间步长。
答案 0 :(得分:1)
通常,如果在具有返回此变量的外部函数调用之前将变量初始化为0
或等效,则该变量将为double类型而不是MxArray。不确定这是否适用于simout
,因为我似乎记得simout
是一个结构。还是值得一试。
有关详细信息,请参阅文档中的Working with mxArrays。