如何在运行时改变 Simulink 中增益模块的增益值



Simulink 中的增益模块和连续模块要求用户指定增益。这可以是工作区变量。但我想在运行时改变这种增益。我似乎无法为此找到解决方案。这个想法很简单,但我不敢相信实施起来如此困难。

我尝试使用另一个块写入工作区,但发现"到工作区"块仅在模拟结束或暂停后写入工作区。

我可以将变量存储在数据存储器块中,但在这种情况下我不知道如何指定增益/PID 块的增益值。

如果您关闭了内联参数(位于配置集的"优化"页面上),则只需打开增益块对话框并更改值即可。 如果要使用工作区变量,则可以更改工作区变量的值,并在模拟运行时执行更新图(^D)。

还有一个称为滑块增益的块,它允许您使用滑块 UI 更改增益值。

在某些时候可能会有所帮助:尝试使用 MATLAB 功能块(可以直接在 Simulink 中使用的 Matlab 用户定义函数)。

作为命令行替代方法,您可以使用 SET_PARAM 函数在模型仿真期间更改模块的增益值。

例如,以下代码会将名为"my_model.mdl"的模型顶层名为"My Gain"的块的增益值更改为值 20:

set_param('my_model/My Gain','Gain','20');

但请注意,在运行时只能使用 SET_PARAM 更改可调参数。

最新更新