【问题标题】:Add a Simulink block to set system-wide parameters添加 Simulink 模块以设置系统范围的参数
【发布时间】:2014-05-20 22:01:54
【问题描述】:

我有一个 Simulink 模型,其中包含许多影响许多不同模块的系统范围参数。我现在处理这个问题的方法是将整个模型封装在顶层的封装子系统中并在那里管理参数。这样做会使参数对所有块可见。但是,我宁愿让我的模型位于顶层并在其中包含一个参数块,我可以使用它来操纵系统参数。

我不知道图片在这里是否有帮助,但它们不会伤害:

上图显示了我当前设置的示例。请注意,整个设计嵌套在一个名为“系统参数”的封装子系统中

这张图片显示了我希望如何 显示顶层。这似乎是一个更直观的界面。它还允许在模型之间更轻松地复制我的参数块,这是我对它的主要兴趣。我真的很想将它转换为一个库块,我可以在基于相同硬件系统的少数模型中使用它。但是,问题在于System Parameters 块中的参数对模型中的其余块不可见(至少不直接可见)。

有没有办法让像第二张图片中的块这样的块可以使其参数轻松地用于模型的其余部分?

【问题讨论】:

    标签: matlab simulink


    【解决方案1】:

    对于其他模块可用的参数,它们需要位于模型工作区或基础工作区中。您可以向您的模块添加一个初始化回调,将掩码参数复制到任一工作区,但在我看来,更好的做法是让一个 MATLAB 脚本定义在 @987654322 期间调用的基本工作区中的所有参数@模型回调。然后,您只需将该 MATLAB 脚本与您的模型一起分发给最终用户。

    【讨论】:

    • 这似乎是个好主意,但是如果在我的设置块的InitFcn 之前调用FIR Compiler 6.3(在图像中)的InitFcn 怎么办?似乎它会导致错误。有没有办法在 Simulink 模型首次打开时也调用该函数,以便将一些初始值放入基础工作区?
    • 是的,模型回调可能是更安全的选择(尽管您可以使用块优先级)。有关详细信息,请参阅mathworks.co.uk/help/simulink/ug/model-callbacks.html。我建议使用PreLoadFcnInitFcn 回调。
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多