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

时间:2015-02-24 12:30:01

标签: matlab simulink sample-rate

我在simulink中有一个信号,我想要规范化,以便信号的最高值始终为1.所以我使用MaxRunningResettable-Block来记住到目前为止传递的最高值。然后我将信号除以该值。

使用信号生成块进行一点测试,运行的可复位块,除法块和示波器运行正常。但是当我将这个规范化函数添加到我的simulink模型时,我收到一个错误: “模型初始化失败 - 发现涉及单位延迟的非法速率转换”

我甚至不需要将小测试用例连接到我的其他模型。只需将其放入我的模型中即可得到此错误。奇怪的是,当我复制它时,RunningResettable-block变成黄色 - 表示它具有不同的采样率。我不明白为什么会这样。我已经尝试在RunningResettable后添加一个零顺序保持块,但这没有帮助。

Simulink block sheet with the troublesome RunningResettable-block

建议我尝试将另一个常量块添加到RunningResettable-Block的R输入。我为该块尝试了几个采样频率(-1,0,1 / fAb),但这没有帮助。 Error occuring after adding a constant block to R-input

1 个答案:

答案 0 :(得分:1)

好的,最后我认为我发现了自己的失败。似乎SignalGenerator输出连续信号(黑色)。因为在我的模型中,大多数是离散信号,这会导致错误。因此,当我在信号发生器之后简单地添加一个零阶保持块时,一切似乎都能正常工作。零阶保持的采样频率必须调整到系统的其余部分。

enter image description here