以编程方式查找 Simulink 块参数接受的有效值/数据类型



在 Simulink 中,我可以获取已经使用 get_param 函数给出的块对话参数的值。但是,我有兴趣找到块对话参数接受的可能有效值。例如,Sum块仅接受其Inputs参数的 + 和 - 符号的任意组合。有没有办法以编程方式找出这些信息?

澄清一下,我想要一个函数/方法,我可以在其中传递 Simulink 块的名称和该块的对话框参数作为输入。例如,我将传递Sum作为 Simulink 块名称,Inputs作为该块的参数传递。

我期望的输出是,+-字符,以便我理解我只能将+-字符用于此块的Inputs参数。

块特定参数页面在每个表的Values列中列出了不同 Simulink 块参数的有效(和默认)值。有没有办法以编程方式查找此信息,即在某个函数中传递块类型/处理程序并获取该块的特定参数的验证规则?

谢谢!

如果您查看在 C MEX S-FUNCTIONS 中检查参数的可能性,它是"免费"实现的 C 代码,用于检查参数。至少在这种情况下,没有办法获得一组可接受的参数。唯一的可能性是务实地测试是否接受特殊值:

value_to_test='++9'
old=get_param('s1/Add','Inputs')
try
set_param('s1/Add','Inputs',value_to_test);
accepted=true;
set_param('s1/Add','Inputs',old);
except
accepted=false;
end

除了已经建议的解决方案之外,您还可以查看增益模块:

dlgParams = get_param(gcbh, 'DialogParameters');
dlgParams.Gain.Validity
%A struct with all accepted data, like: datatype, complexity, sign
dlgParams.Gain.Validity.Sign
%Returns: {'positive'  'negative'  'zero'}

这看起来很有希望。但是,类似的属性不适用于 Sum 块。不过,你可以检查(dlgParams.Inputs)结构以获取想法。

写作为答案,因为我还不能发表评论。

最新更新