Omnet++ getSpeed()函数的值与计算值不同

Omnet++ getSpeed()函数的值与计算值不同,omnet++,veins,sumo,Omnet++,Veins,Sumo,我使用OMNeT++-4.6、sumo-0.22.0和venves-4a2 我感兴趣的是在收到信息时计算车辆的速度。我使用了getSpeed()函数来实现它。但问题是,当我根据时间和距离(使用公式s=d/t)手动计算速度时,值是不同的 例如,在t=55.104470531278 s且距离d=29.0477 m时,通过调用函数getSpeed()获得的速度为s=3.34862 m/s=10.8 km/h。 另一方面,手动计算的速度为s=0.52713 m/s=1.9 km/h 我需要帮助来理解为什

我使用OMNeT++-4.6、sumo-0.22.0和venves-4a2

我感兴趣的是在收到信息时计算车辆的速度。我使用了getSpeed()函数来实现它。但问题是,当我根据时间和距离(使用公式s=d/t)手动计算速度时,值是不同的

例如,在t=55.104470531278 s且距离d=29.0477 m时,通过调用函数getSpeed()获得的速度为s=3.34862 m/s=10.8 km/h。 另一方面,手动计算的速度为s=0.52713 m/s=1.9 km/h


我需要帮助来理解为什么使用getSpeed()获得的值不同。

getSpeed()
返回车辆的当前速度(精确地说是上一个模拟步骤中的速度,默认为1s),而您的计算给出了过去~55秒的平均速度(假设您的模拟在时间0开始).

getSpeed()
返回车辆的当前速度(精确到上一个模拟步骤中的速度,默认为1s),而您的计算给出了过去~55秒的平均速度(假设您的模拟在时间0开始)。

为了支持Michaels的回答:您如何准确计算速度?我称为getSpeed()onData()函数中的函数(在我的场景中,此函数在节点接收消息时执行),以便了解每个节点接收消息时的速度。我想知道如何手动计算速度,然后将其与从
getSpeed()
获得的值进行比较。ist是整个时间内的平均速度吗,就像Michael怀疑的那样?我使用公式s=d/t(t是当前模拟时间)手动计算速度。好的。我知道t是什么,但是你从哪里得到d呢?为了支持Michaels的回答:你到底是如何计算速度的?我在onData()函数中调用了getSpeed()函数(在我的场景中,当节点接收到消息时,这个函数被执行)为了知道每个节点在收到消息时的速度,我想知道如何手动计算速度,然后与从
getSpeed()
获得的值进行比较。ist是整个时间内的平均速度吗,就像Michael怀疑的那样?我使用公式s=d/t(t是当前模拟时间)手动计算速度。好的。我得到了t是什么,但是你从哪里得到d呢?因此,从我的理解是,在节点收到消息的每一刻,我都要计算平均速度,我应该使用公式(s=d/t)手动计算?如果你想要当前(有时称为本地)速度(最后一秒),使用
getSpeed()
,如果你想要平均速度(有时称为旅行)在时间t之前的整个行程中的速度使用d/t。这实际上取决于你所说的速度。大多数时候,人们想要的是当前速度,而这不是你计算的结果,而是
getSpeed()的结果
。感谢您的澄清。因此,根据我的理解,在节点收到消息的每一时刻,我都要计算平均速度,我应该使用公式(s=d/t)手动计算?如果您想要当前(有时称为本地)速度(最后一秒),请使用
getSpeed()
,如果您想要平均速度(有时称为行程)t使用d/t。这取决于你所说的速度。大多数时候,人们想要的是当前的速度,而不是你计算的结果,而是
getSpeed()
的结果。谢谢你的澄清。