我使用 Simulink Coder 从大型模型生成代码。我使用带有可调参数的 rsim 目标,以便能够通过参数文件提供可执行变量输入。
我可以通过代码生成设置指定哪些模型参数应该可调(默认情况下,所有参数都将在编译时内联到生成的代码中):
代码生成选项 > 优化 > 信号和参数 > 配置默认参数行为
在这里,我可以手动从所有工作区变量中选择我想要全局可调的变量:
Q:有没有办法以编程方式将变量(给定其名称)添加到此列表?
例如,如果有 50 个变量的列表,我希望通过 MATLAB 脚本将它们添加到可调列表中,而无需手动添加每一个变量。或者循环列表并为每个列表设置可调设置。
我可以使用
rsimgetrtp('model_name')
生成一个包含可调参数列表的参数结构。但我一开始就找不到一个函数来实际设置参数。
我使用 Matlab 2015b,因为它的遗留代码。
我终于找到了解决办法:
您可以通过以下对象参数设置模型的可调参数:
set_param(gcs, 'TunableVars', 'var1,var2,var3')
set_param(gcs, 'TunableVarsStorageclass', 'Auto,Auto,Auto')
set_param(gcs, 'TunableVarsTypeQualifier', ',,')
您需要设置所有三个参数,以使列表的长度一致。
注意模型需要先初始化。
您可以检查模型参数配置对话框以获取新参数