Matlab 尝试在simulink中规范化信号时发生非法速率转换

Matlab 尝试在simulink中规范化信号时发生非法速率转换,matlab,simulink,sample-rate,Matlab,Simulink,Sample Rate,我在simulink中有一个信号,我想对其进行规格化,使信号的最高值始终为1。因此,我使用MaxRunningResettable块来记住迄今为止传递的最高值。然后我把信号除以这个值 用一个信号生成模块、正在运行的可重置模块、分割模块和示波器进行一个小测试,运行良好。但当我将此规格化函数添加到simulink模型时,我得到一个错误: “模型初始化失败-发现涉及单位延迟的非法速率转换” 我甚至不需要将这个小测试用例连接到我的另一个模型。简单地把它放到我的模型中,我就得到了这个错误。奇怪的是,当我复

我在simulink中有一个信号,我想对其进行规格化,使信号的最高值始终为1。因此,我使用MaxRunningResettable块来记住迄今为止传递的最高值。然后我把信号除以这个值

用一个信号生成模块、正在运行的可重置模块、分割模块和示波器进行一个小测试,运行良好。但当我将此规格化函数添加到simulink模型时,我得到一个错误: “模型初始化失败-发现涉及单位延迟的非法速率转换”

我甚至不需要将这个小测试用例连接到我的另一个模型。简单地把它放到我的模型中,我就得到了这个错误。奇怪的是,当我复制RunningResettable块时,它会变成黄色,这表明我认为它的采样率不同。我不明白为什么会这样。我已经尝试在RunningReset表后面添加一个零顺序保持块,但是没有帮助

正如我所建议的,我尝试在RunningResettable块的R输入中添加另一个常量块。我尝试了该块的几个采样频率(-1,0,1/fAb),但没有帮助。

好吧,最后我想我发现了我的失败。信号发生器似乎输出连续信号(黑色)。因为在我的模型中,大部分是离散信号,这会导致错误。所以,当我在信号发生器后面简单地添加一个零阶保持块时,一切似乎都很好。零阶保持的采样频率必须调整到系统的其余部分


看起来该块需要一个离散的复位信号,但输出一个连续的信号,因此产生错误。我建议尝试将一个(零)常量块连接到
R
输入。您可能需要更改常量块的采样时间参数以使其正常工作。感谢您的帮助!但遗憾的是,添加一个具有不同采样时间的常数块并没有帮助。我将添加发生错误的另一张图片。好的。我刚刚想到的另一个建议是:您能否尝试在信号发生器的输出上添加一个速率转换块,将其设置为与零常数块(红色)相同的采样时间?这样,MinMaxRunningResettable块的两个输入都将具有相同的采样时间。我认为这似乎与零阶保持相同,因此我认为它是有效的。谢谢