我在大学的一项实际工作中遇到了问题。
这项工作是在Erlang,我必须建立一个飞机交通和碰撞避免系统。
我的问题是:如何在考虑速度的情况下模拟飞机轨迹?我想过使用一个过程...
有没有人有想法?
最佳指导。
答案 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。