ドライバーモデルDLLファイルで外部ドライバーモデルを有効化

Vissimを使用すると、運転手モデルを外部のユーザー定義の運転手モデルと置き換えることができます。外部運転手モデルは、シミュレーションのすべてまたは一部の車両に使用できます。

シミュレーション中は、外部運転手モデルを使用できる各車両ごとに各時間ステップにおいてDLLファイルが呼び出されます。その後は、DLLファイルによって車両の挙動が制御されます。Vissimは次のデータをDLLファイルに転送します。

  • 車両の現在の状態
  • 車両環境の現在の状態(下流側の次の信号機よりも現在の車両に近い場合の、優先ルール(1 = ブロック、3 = 自由)の番号と状態)。
  • 近傍車両の前端と後端の世界座標
  • 視線内のルートまたは経路でEgo車両が使用している車線中央のスプライン
  • 交錯エリアのデータ
  • ユーザー定義の車両属性の値は、DLLに送信でき、そこで変更できます。

加速、減速、車線変更挙動は、DLLファイルで計算されます。結果はVissimに返されます。

目的の車両タイプの外部運転手モデルを有効にします (車両タイプの使用)

外部ドライバーモデルDLLファイルは、シミュレーション実行で、複数のコアとともに使用できます。そのためには、各ドライバーモデルDLLファイルは、マルチスレッディングをサポートしている必要があります。これは、DLLファイルをそれに応じてプログラムしなければならない以下のような事例では、該当しません:

  • 外部コントロールされた車両が1台しかいない。
  • 外部コントロールされたすべての車両が同じリンクにある。

外部運転手モデルは、プログラミング言語CまたはC++でDLLファイルとして実装する必要があります。構造については、ドキュメントを参照してください。ストリングを転送する場合は、UTF-8でエンコードしてください。

英語版のドキュメント

  • ..\Program Files\PTV Vision\PTV Vissim 2023\API\DriverModel_DLL\Interface_Description.pdf
サンプルファイル
  • ..\Program Files\PTV Vision\PTV Vissim 2023\API\DriverModel_DLL\DriverModel.cpp