Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在Simulink中进行模拟时,根据常量块的值更新开关块中的参数值_Matlab_Simulink - Fatal编程技术网

Matlab 在Simulink中进行模拟时,根据常量块的值更新开关块中的参数值

Matlab 在Simulink中进行模拟时,根据常量块的值更新开关块中的参数值,matlab,simulink,Matlab,Simulink,这就是我要做的 模型如下: 我想将模拟中的阈值参数值更改为常量块值的函数。(即0.4*恒定块值) 这是我想在模拟过程中更改的参数: 我可以在模拟过程中轻松更改常量块的值,但我希望开关块的阈值同时更改。您可以使用附加的关系运算符块来完成此操作 所以有一个测试,对于阈值信号>0.4*1,它通过0或1。然后,如果该信号大于0.5,则触发您的开关,以拆分这两种情况。您可以使用附加的关系运算符块来完成此操作 所以有一个测试,对于阈值信号>0.4*1,它通过0或1。然后,如果该信号大于0.5,则触发

这就是我要做的

模型如下:

我想将模拟中的阈值参数值更改为常量块值的函数。(即0.4*恒定块值)

这是我想在模拟过程中更改的参数:


我可以在模拟过程中轻松更改常量块的值,但我希望开关块的阈值同时更改。

您可以使用附加的关系运算符块来完成此操作


所以有一个测试,对于
阈值信号>0.4*1
,它通过0或1。然后,如果该信号大于0.5,则触发您的开关,以拆分这两种情况。

您可以使用附加的关系运算符块来完成此操作


所以有一个测试,对于
阈值信号>0.4*1
,它通过0或1。然后,如果该信号大于0.5,则触发开关,将两种情况分开。

非常感谢,但是有没有一种方法可以在不添加额外块的情况下动态更改阈值(即常量值=sp,阈值=0.4*sp,我可以更改sp,使阈值改变)如果,
sp=100
,您只需将
0.4*100
放入开关块的输入框中,Simulink就会将其计算为
40
。如果您是从Matlab脚本运行变量,则可以使用工作空间变量
sp=100
,并在块参数框中键入
0.4*sp
。这有帮助吗?非常感谢,但是如果,比如说,
sp=100
,是否有一种方法可以在不添加额外块的情况下动态更改阈值(即,常量值=sp,阈值=0.4*sp,我可以更改sp,使阈值发生变化),您只需将
0.4*100
放入开关块的输入框中,Simulink就会将其计算为
40
。如果您是从Matlab脚本运行变量,则可以使用工作空间变量
sp=100
,并在块参数框中键入
0.4*sp
。这有用吗?