我正在使用 Matlab 2012a 和Simulink Coder (aka Real-Time Workshop)。我想使用 Simulink Coder 编译模型,但保留模型回调的功能。
考虑以下简单示例。我有一个 Simulink 模型,callBackTest
它读取一个常量并输出到一个 since。使用PreLoadFcn 模型回调input1
在模型工作区中定义myValues.m
并加载到模型工作区中。PreLoadFcn 回调在模型首次打开时执行。通过使用 PreLoadFcn 回调,将在每次打开模型时自动定义。input1
假设myValues.m
最初编码为input1=1
。当你运行模拟时,yout
将是一个 1 的数组。此外,如果我使用 Simulink 编码器编译模型,输出也将是一个 1 数组。但是,如果我myValues.m
这样修改input1 = 2
并且不重新编译,实时输出仍然是 1。这是错误的,那么如何使用已编译的模型将文件中的变量读入模型工作区?