【问题标题】:Script to replace variables used in simulink blocks with a value用值替换 simulink 模块中使用的变量的脚本
【发布时间】:2013-07-19 07:44:19
【问题描述】:

有没有办法将 Simulink 模块中使用的变量替换为存储在 Matlab 基础工作区(或模型工作区)中的实际值?

例如 在增益块中,“Gain”参数设置为“gain_A”。 “gain_A”在基础工作区中定义为“0.5”。 预期脚本会将增益块中的“gain_A”替换为“0.5”。

我尝试过的一种方法是使用Simulink.findVars(modelname, 'Name', 'gain_A'),它将返回一个对象,该对象包含一个属性,其中包含使用变量“gain_A”的所有块。但是,它并没有告诉我它用于哪个参数(例如“增益”)。

感谢您的帮助 =)

【问题讨论】:

    标签: matlab simulink


    【解决方案1】:

    不确定这是否可行,但您可以将Simulink.findVarsget_param 结合起来以获取Simulink.findVars 标识的每个块的所有块参数吗?根据Get a Block Parameter Value and Attributes

    block_parameters = get_param(block_path,'DialogParameters')
    

    然后您可以确定每个变量(例如gain_A)用于哪个参数。

    【讨论】:

    • 谢谢!我认为这会奏效。我只是有点担心大型模型的性能,因为我需要遍历每个对话框参数来查找相应的变量。您知道是否有一种方法可以像在编译期间那样手动解析符号? link
    • 对不起,没有。我不得不承认我什至不知道在编译期间解析符号。 羞愧地低着头
    • 别担心!谢谢你的建议。我会试一试,看看它的表现如何。
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 2023-03-03
    • 2014-06-08
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多