首页 文章

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

提问于
浏览
1

我在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 回答

  • 1

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

    enter image description here

相关问题