0

这个问题与我在玩一些积木时遇到的问题有关。这是我的模型,在此处输入图像描述

如您所见,有两种连接,第一种连接的输入(从上到下)是u[1],u[2],u[3],其他块非常不言自明(所有默认值,除了startTime = 5步进输入块)。

据我所知,第一种连接只输出角速度,但不输出角和角加速度(它们都为零),这有点不现实(我会解释为什么这样做)。第二个连接也输出角速度。

我的问题是,在第二次连接中,离合器似乎工作正常(5秒后离合器接合(相对角速度w_rel = 0))

但是,第一个连接的行为完全不同。我们可以看到它们都是法兰连接,角速度都是从 计算出来的flange_a/b.phi,所以我们应该期望无论输入(realExperssion1)是什么,离合器都没有角速度差。但有趣的是,当我模拟模型时,离合器的左法兰没有移动,而右法兰在旋转。这是我的结果的两个图。

连接1 在此处输入图像描述

连接2 在此处输入图像描述

实际上,我应该期望看到flange_a.phiflange_b.phi都为零,然后我不小心删除__Dymola_InlineAfterIndexReduction = true移动块中的注释,然后模型的行为符合我的预期。如果有人可以帮助我解释我所看到的,我将不胜感激。多谢!

4

1 回答 1

3

Move模型的文档清楚地说明了

用户必须保证输入信号彼此一致

在您的情况下,它们并不一致。所以我对你得到一个奇怪的答案并不感到惊讶。我不清楚你为什么甚至试图走这条路。你在信息中暗示你会解释原因,但我当然不明白你的动机。我怀疑该Move模型的存在是为了允许用户为 Dymola 将在索引减少期间使用的位置、速度和加速度提供他们自己的显式函数,而不是从基础方程生成这些函数。除非你能提供一致的功能,否则你真的不应该使用这个块。

您确实应该使用仅指定位置、速度和加速度之一的源。如果那不可能,那么恐怕您必须解释原因,以便我们可以尝试了解您在这里真正想要实现的目标。

于 2013-08-10T14:13:41.537 回答