使汽车以正确的速度沿着道路行驶(NetLogo)

时间:2018-07-23 11:46:01

标签: netlogo infrastructure face

目前,我正在NetLogo中开发基础结构模型,但我很难让乌龟走上这条路。我确实使用gis扩展名。

该模型的目标是模拟交通流量,因此模型中的汽车需要沿着道路行驶。但是,当我尝试进行这项工作时,汽车根本不走道路。

to load
  ca
  clear-patches
  show "Wegenbestand laden..."
  set data gis:load-dataset Input_bestand_shp
  show "Wegen geladen"

  show "Data importen..."
  let timing 1
  foreach gis:feature-list-of data
  [[b] -> ask patches gis:intersecting b
    [
    set pspeed gis:property-value b "snelheid"
    set road gis:property-value b "gid"
    set status gis:property-value b "status"
    set a_dir_x gis:property-value b "s_d_x"
    set a_dir_y gis:property-value b "s_d_y"
    set b_dir_x gis:property-value b "e_d_x"
    set b_dir_y gis:property-value b "e_d_y"
    if status = "gesloten" [ set pspeed 0]
    if pspeed = 30 [ set maxdruk Algemene_capaciteit_straat / 5 ]
    if pspeed = 80 [ set maxdruk Algemene_capaciteit_autoweg / 5]
    if pspeed = 130 [ set maxdruk Algemene_capaciteit_snelweg / 5]
    set fid gis:property-value b "did"
    show timing
    set timing (timing + 1)
  ]
  ]

  show "Data geimporteerd"

  ask patches [ set pcolor scale-color blue pspeed 0 130 ]

  set-default-shape turtles "car"

  ;set exp-count 1
  ;set border patches with [ count neighbors != 8 ]
end

to setup
  clear-turtles
  clear-all-plots

  reset-ticks

  setup-turtles
end

to setup-turtles
  ;een turtle is 5 autos
  ask patch Start-X Start-Y
  [sprout Verkeersintensiteit_geslotenweg / 5 [ set color red ]]

  ;1 tick = 1 minute
  ask patches[
    ask turtles-here[
      set speed pspeed / 60
      set currentroad road
      set dir_x b_dir_x
      set dir_y b_dir_y
    ]
  ]
end

to go
  setup-turtles
  ;1 tick = 1 minute
  ask turtles [
      facexy dir_x dir_y
      fd speed
  ]
end

使用上面的代码,我首先测试了是否有任何方向可行。但是,汽车要么随机停车,要么完全朝错误的方向行驶,我不知道该怎么办。

输入是在顶点上分割的线段。 a_dir_x和其他的a_dir_x显示每个段的前面和后面以给出方向。坐标系为WGS 84 UTM 31N。

我正在考虑的另一件事是使用移动功能,该功能应该更易于使用。在那种情况下,我需要知道单元格的大小,而我不知道在NetLogo中如何确定。

有人对此有任何想法或经验吗?谢谢!

here is an image of the interface tab

0 个答案:

没有答案