modelica中的数值抖振

modelica中的数值抖振,modelica,dymola,Modelica,Dymola,我在Dymola中遇到了一个有趣的现象,我认为它的原因可能来自于我的模型,但我不知道什么样的事情可能会导致这种情况。如果有人能给我一点提示,我将不胜感激 我的问题是,当我绘制结果时,模拟将在特定时间“停止”(它正在运行,但速度非常慢),一个测试错误是否在公差范围内的块将以非常高的频率生成事件 从“公差范围内”块回溯,它是标准库中的一个“错误块,具有3个信号 u1-传感器数据,u2-参考值,y-输出信号[u1-u2=y] (不幸的是,我不能上传我的情节,因为我的声誉很低) 以下是我放大(多次)这些

我在Dymola中遇到了一个有趣的现象,我认为它的原因可能来自于我的模型,但我不知道什么样的事情可能会导致这种情况。如果有人能给我一点提示,我将不胜感激

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

从“公差范围内”块回溯,它是标准库中的一个“错误块,具有3个信号

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

(不幸的是,我不能上传我的情节,因为我的声誉很低)

以下是我放大(多次)这些信号的“尾巴”(它们停止运行的地方)时发现的情况

对于错误.y信号: 在我的容错目标周围,我可以看到非常微小(1e-10)但频率很高的抖动,但仅在模拟开始运行非常缓慢的尾部。它的行为类似于锯齿形信号

对于u1(传感器数据)信号: 我放大到与signal error.y相同的刻度,但是我没有看到任何抖动

对于u2(参考)信号: 始终不变

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


你所描述的听起来就像在聊天。您真正需要注意的情况是,事件一侧的系统动力学将其推向事件。换句话说,如果x>c,der(x)非常感谢Micheal,知道这一点真的很好。“公差内”块实际上是一个“>=”块,因此它会不断生成事件。我将该块更改为滞后块,以避免生成事件。正如你所说,系统达到一个平衡点,这个状态也是一个条件。有趣的是,这个调谐器在很多地方使用,只有一个调谐器有这个问题。我的系统有点像一个运动平台,我希望平台有一定的高度,只有一条腿(总是那条腿)会给我这种问题。