在Simulink中,我可以获得已使用get_param
函数给出的块对话参数的值。但是,我有兴趣找到块对话参数接受的可能有效值。例如,Sum
块仅接受其Inputs
参数的+和 - 符号的任意组合。有没有办法以编程方式找出这些信息?
为了澄清,我想要一个函数/方法,我可以在其中传递Simulink Block的名称和该块的对话框参数。例如,我将Sum
作为Simulink块名称传递,并将Inputs
作为该块的参数传递。
我期望输出的是+
和-
个字符,因此我理解我只能使用+
和-
个字符作为此块{{1}参数。
页面Block-specific Parameters列出了每个表的Inputs
列中不同Simulink块参数的有效(和默认)值。有没有办法以编程方式查找此信息,即在某个函数中传递块类型/处理程序并获取该块的特定参数的验证规则?
谢谢!
答案 0 :(得分:3)
如果你看一眼at the possibilities to check parameters in C MEX S-Functions,那就是#34;免费"实现了检查参数的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
答案 1 :(得分:0)
除了已经建议的解决方案,你可以检查一下Gain块:
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)结构中的想法。
写作答案,因为我还没有发表评论。