模拟Erlang中的一组飞机

时间:2009-05-08 15:55:36

标签: erlang

我在大学的一项实际工作中遇到了问题。

这项工作是在Erlang,我必须建立一个飞机交通和碰撞避免系统。

我的问题是:如何在考虑速度的情况下模拟飞机轨迹?我想过使用一个过程...

有没有人有想法?

最佳指导。

6 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

也许是一组代表飞机的过程。让他们回应的“雷达平”事件返回当前航线,航向,速度和位置。从那里编程你的逻辑。

我可能过分简化了他们需要做的事情,但你明白了。一个过程绝对是一种方法。

另一种选择只是维持所有飞机的AST。如果不了解项目必须做的更多细节,就很难提供更多信息。

答案 2 :(得分:1)

您可能对this paper(参见第21页)有关Erlang中的建模模拟感兴趣。它提出了一个带有 world 过程的解决方案,以及每个活动实体的一个过程。

答案 3 :(得分:0)

有什么必须是实时的吗?如果不是,实际上,只需要在gen_server或gen_event过程中进行一些简单的速度计算。只是产生一个主管为每个飞机生成gen_server子项,然后当时间过去时,为每架飞机做一个handle_call并让他们更新他们的信息。

答案 4 :(得分:0)

  

我的问题是:如何在考虑速度的情况下模拟飞机轨迹?我想过使用一个过程...

听起来像3d coordinates对我的基本物理。如果您知道平面的方向,那么您可以通过计算距离速度的距离来计算平面的新位置(假设从现在起1秒内)。获得距离后,您需要计算知道方向和距离的平面的新坐标。

通常这些模拟运行虚拟“时钟”并通过将(虚拟)时间刻度增加(例如每个刻度一秒或一分钟)来重新计算所有飞机的位置。通过连接位置计算的“点”,您就可以获得轨迹。

答案 5 :(得分:0)

在Erlang中存在Traffic and Queuing Simulator