这个问题与我在玩积木时遇到的一个问题有关。这是我的模型,

正如您所看到的,有两种连接,第一个连接的输入(从上到下)是u[1],u[2],u[3],其他的块都很清楚(所有默认值,除了步骤输入块的startTime = 5 )。
据我所知,第一种连接只输出角速度,但不输出角加速度和角加速度(它们都是零),这是有点不现实的(我将解释为什么要这样做)。第二个连接也输出角速度。
我的问题是,在第二个连接中,离合器似乎正常工作(5秒后离合器被啮合(相对角速度w_rel = 0))。
但是,第一个连接的行为非常不同。我们可以看到,它们都是法兰连接,角速度都是由flange_a/b.phi计算的,所以不管输入(realExperssion1)是什么,离合器中都没有角速度差。但有趣的是,当我模拟模型时,离合器的左法兰不动,右凸缘是旋转的。这是我结果的两幅图。
Connection1

Connection2

实际上,我希望看到flange_a.phi和flange_b.phi都为零,然后我意外地删除了move块中的注释__Dymola_InlineAfterIndexReduction = true,然后模型的行为与我预期的一样。如果有人能帮我解释我所看到的,我很感激。非常感谢!
发布于 2013-08-10 14:13:41
Move模型的文档清楚地表明
用户必须保证输入信号是一致的。
在你的情况下,它们是不一致的。所以我不太惊讶你会得到一个奇怪的答案。我不清楚你为什么要走这条路。你在信息中暗示你会解释为什么,但我肯定不明白你的动机。我怀疑Move模型的存在是为了允许用户提供自己的位置、速度和加速度的显式函数,Dymola将在指数缩减期间使用这些函数,而不是从基本方程中生成这些函数。除非您能够提供一致的函数,否则根本不应该使用这个块。
你真的应该使用一个源,其中你只指定一个位置,速度和加速度。如果这是不可能的,那么我恐怕你将不得不解释为什么,所以我们可以试着理解你在这里真正想要达到的目标。
https://stackoverflow.com/questions/18154223
复制相似问题