VS API: VehicleSimアプリケーションプログラムインターフェイス

vb_small.png

VB BasicからVSソルバーを実行します。クリックすると、詳細をご覧いただけます。

VehicleSim製品の数学モデルは、幾通りかの方法で拡張が可能です:

  1. VS数学モデルは、Simulinkのような他のシミュレーション環境のモデルに接続可能です。
  2. VSコマンドを使用して方程式や変数を追加できます。
  3. Simulinkの場合と同様に、変数をカスタムプログラムで置き換えることができます。
  4. 数学モデルの変数は、C/C++ポインタをサポートするカスタムプログラムにより直接アクセス可能です。

ここでは、VS APIを用いるカスタムシミュレーションプログラムを使用するための(上記)オプション3と4について解説します。

VS API: VehicleSimアプリケーションプログラムインターフェイス

VSソルバーは、入力ファイルの読み込み、出力ファイルの書き込み、内部数学モデルからの変数計算を行うVehicleSim製品内のプログラムです。各固有のVSソルバーは、異なる種類の車両あるいは他のシミュレーション対象システムを表すためのものですが、ファイルの読み込みや書き込み、微分方程式の解決や他のソフトウェアとの通信においては、すべて同様に動作します。

timeline_large.png

この図はAPIドキュメントからの引用で、シミュレーション中の各時間ステップの後半のオペレーションシーケンスを示します。クリックすると、フルサイズでご覧いただけます。

VSソルバーはWindows OS向けに動的にリンクされたライブラリ(DLL)ファイルとして提供されます。よって、すべてのVSソルバープログラムに存在する関数のセットであるVSアプリケーションプログラムインターフェイス(API)を用いて、他のソフトウェアにより制御されます。

同じソルバーDLLがすべてのWindowsシミュレーション環境(内蔵、Simulink、LabView、ASCET、コマンドラインEXE等)に使用されます。他のソフトウェアが使用されない場合は、DLLがロードされVSブラウザー(例: carsim.exe)によって直接実行されます。Simulinkのような他のソフトウェアに対するサポートは小さな「ラッパープログラム」によって処理され、VSソルバーをロードして実行し、必要に応じて他のソフトウェアと通信します。

VSブラウザーや市販のシミュレーションソフトウェアでのVSソルバーDLLの使用をサポートするのに加え、VS APIはカスタムWindowsプログラムで使用する場合にも有効に動作します。

VS APIでの基本制御

このAPIは、初期化、実行、終了といったシミュレーションの基本ステップをサポートします。DLLのロードおよびパブリック関数へのアクセスが可能なプログラミング言語であれば、いずれもVSソルバーを用いたシミュレーション実行に使用することができます。

matlab_small.png
MATLAB Mファイルを使用して、モデル拡張と共にVSソルバーを実行できます。クリックすると、詳細をご覧いただけます。

変数はSimulinkや他の市販シミュレーション環境で使用する場合と同様に置き換えが可能です。入力変数と出力変数用に配列が設定されています(このような場合には、VSソルバーとカスタムラッパープログラム間を行き来します)。

事例ソースコード(Visual Basic、MATLAB、C)が提供され、VS APIを用いたVSソルバーの実行方法を示します。

VS APIは、VS道路の3次元ジオメトリへのアクセスも提供し、前方の道路ジオメトリを見るユーザー定義の車両モデルや高度ドライバーモデルのような外部モデルでの使用を可能にします。

C/C++での先進制御

ANSI CからのVSソルバーの実行は、変数や関数がCポインタを通して直接共有できるため、VBあるいはMATLABからの実行よりも簡便です。

VS APIは、キーワードを持つ数学モデル内のいずれの変数またはパラメーターにもアクセスを提供します。これには、数百のパラメーターと数千の変数が含まれます。

custom_c_small.png
カスタムCプログラムは、VSソルバーが使用するコールバック関数のインストールが可能です。クリックすると、詳細をご覧いただけます。

VSソルバーは、シミュレーション中の様々な時点での外部定義されたコールバック関数の使用もサポートします。このAPIを用いて外部定義された関数へのポインタを提供し、それがシミュレーションの各時間ステップ中に複数回使用される関数リストに追加されます。コールバック関数のサポートにより、入力と出力の配列を用いた時間ステップごとに1回の通信を利用する場合よりも、ラッパーとVSソルバー間の連携がより強固になります。

事例アプリケーション

VehicleSim製品には、MATLAB、VBおよびANSI Cの事例カスタムプログラムが含まれ、VSソルバーのロードや実行方法を示し、場合によりVS数学モデルと連動するためカスタムプログラムを使用します。

ドライビングシミュレーター

CarSimとTruckSimの数学モデルは、1400を超えるドライビングシミュレーターに使用されています。 その大多数は、通常のWindowsバージョンの製品で実施されました。ドライビングシミュレーターのメーカーは、サードパーティーのビジュアライゼーションソフトウェアとデータベースをVS数学モデルと組み合わせます。DLLとの通信は、VS API関数を使って処理されます。

callback_small.png

外部Cプログラムで定義されたコールバック関数は、VSソルバー内から呼び出しが可能です。クリックすると、詳細をご覧いただけます。

モータースポーツチームのアプリケーション

CarSimは現在、洗練された一流チームでシミュレーション生成の負荷を軽減するために使用されています。幾つか例を挙げると、VS APIはサードパーティーのタイヤモデル、高度なダンパーモデル、詳細な空力マップ、代替えエンジンやトランスミッションの実行を可能にします。非対称性が高いサスペンションや、事前組み込みコンポーネント、サードスプリング、インバーターなど複雑で詳細な調整にも対応可能です。

レースエンジニアは、彼等の競争水準に特有なすべての先進システムやコンポーネントと共に最も迅速に利用できるシミュレーションを取得するため、CarSimを拡張します。CarSimは、現在7ポストリグのシミュレーションや、最適化の検討実施、ラップタイムでのタイヤ磨耗効果の検討、機械系対空力のグリップ設定におけるトレードオフの調査、またデファレンシャルやコントロールシステムの設定最適化などに使用されています。

CarSimエンジニアは、自身の理論や知見を迅速で安定した実績あるシミュレーションツールに追加したいと考えるNASCARやFormula 1、ALMS、IndyCarシリーズのレースエンジニアと共に作業をしてきました。