首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模型中的数值抖振

模型中的数值抖振
EN

Stack Overflow用户
提问于 2013-08-02 15:09:09
回答 1查看 894关注 0票数 2

我在Dymola遇到了一个有趣的现象,我认为它的原因可能来自我的模型,但我不知道是什么样的事情可能导致这一点。如果有人能在这方面给我一点提示,我非常感激。

我的问题是,模拟将在某一时间“停止”(它正在运行,但速度非常慢),当我绘制结果时,测试(如果错误在允许范围内)的块总是以非常高的频率生成事件。

追溯到“ an ”块,它是标准库中的一个“错误块”,其中包含3个信号。

u1 -传感器数据,u2 -参考值,y -输出信号1-u2=y

(不幸的是,由于声誉不高,我无法上传我的情节)

当我放大(很多次)这些信号的“尾巴”(它们停止运行)时,我发现,

对于错误.y信号:我可以看到非常微小的(1e-10),但高频抖动围绕我的errorTolerance目标,但只有在尾部开始运行非常缓慢。它的行为就像锯齿形信号。

对于u1(传感器数据)信号:我放大到与信号错误.y相同的范围,但是没有看到任何抖动。

用于u2(reference)信号:常量时刻

我想知道是什么原因造成的,因为误差块只是一个简单的负计算,它怎么会引起这种抖动。谢谢!

为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-05 00:49:52

你所描述的听起来就像喋喋不休。您真正需要注意的情况是,事件一侧的系统动态将其推向事件。换句话说,如果是x>c,der(x) <= 0,如果x<=c,der(x) >= 0。另一种情况是,如果这样的事件发生在平衡点。

你说“什么样的事情可能导致这一切”,但在我看来(至少从我对你描述的理解来看)答案是显而易见的。这是你的错误块。您说它“只是一个简单的减法计算”,但是如果块中有任何条件表达式(我假设有),那么就会触发一个事件。

根据您的描述,我的猜测是,您的系统正在达到一个平衡点,正好是条件语句从true到false的临界点。因此,解决方案在那个点上的数值噪声导致它在那个阈值上来回交叉,每次触发一个事件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18020323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档