1

嘿,在我的模型中使用 PreLoadFcn 时可能会遇到一个非常简单的问题。

我希望我的模型在开始模拟之前加载一个 m 文件(我认为这就是 preloadfcn 的用途)。

所以我在文件 -> 模型属性 -> 回调 -> PreLoadFcn 中添加了这一行

run('./init.m')

在这个文件中有几个变量集。我的模型引用了这些变量并引发异常,当我简单地单击“开始模拟”时它找不到它们。这表明我,回调没有做它应该做的事情......

文件“init.m”与模拟文件位于同一目录中。

即使尝试将目录添加到 matlab PATH 也没有任何效果。

迎接波斯克伦

4

3 回答 3

1

在运行模型之前在 MATLAB 命令提示符下运行“init”是否有效?如果是这样,您可能应该简单地将回调替换为

init

这将运行脚本“init.m”。

于 2011-02-09T11:05:23.020 回答
1

您可以使用回调跟踪来查看在加载和模拟模型的过程中调用了哪些回调。有关更多信息,请参阅有关回调的文档。

另外,init 是脚本还是函数?它应该是一个脚本,或者它应该使用 evalin('base') 将变量放在基础工作区中。您也可以尝试在 init.m 中放置一个断点以确保它不会被命中。

于 2011-02-10T01:29:02.827 回答
0

我也有同样的问题。现在已经解决了。解决方案很简单。在 PreLoadFcn* 中定义函数后,您只需保存 simulink 文件,然后重新启动它。肯定会奏效的。

问候,哈利

于 2015-04-17T08:55:46.983 回答