VSソルバーと数学モデル

VehicleSim製品には、3種の主要プログラムがあります:

  1. カスタムVSブラウザーは、グラフィカルユーザーインターフェイス(GUI)を提供します。
  2. カスタムVSソルバーは、シミュレーション試験で車両数学モデルの応答を計算します。
  3. VS Visualizerは、アニメーションとプロットでシミュレーションの結果を表示します。

ここでは、VSソルバーについて解説します。

 

VSソルバーと数学モデル

VSソルバーは、数学モデル内の変数の時刻歴を計算することを目的としています。その設計は1990年に車両運動モデル向けに導入され、対象となる変数には運動(座標、角度、速度、加速度)、力とモーメント、コントロールを始めとする多種の情報が含まれます。

dlls_small2.png

CarSimのような製品には、カスタムVSソルバーのセットが含まれます。Windows向けには、これがDLLファイルになります。シミュレーションされる車両の種類に基づいて、適切なDLLが自動的にロードされます。クリックすると、詳細をご覧いただけます。

VSソルバーのアーキテクチャは、ここ最近ではSuspensionSimのマルチボディプログラムに使用され、サスペンションや同様のメカニカルシステムにおける準静的平衡状態のシーケンスを処理します。VSソルバーのアーキテクチャは、BikeSim、CarSimおよびTruckSimに含まれるタイヤシミュレータープログラムにも使用されています。

機械生成されたマルチボディ方程式

VSソルバーのソースコードの多くは、VS Lisp(当初の名前はAutoSim)というシンボリック式マルチボディプログラムによって機械生成されています。25年以上に渡り継続的に使用および開発されているVS Lispは、オートバイや、自動車、トラックのような特定の3次元マルチボディシステム向けにカスタマイズされている高度に最適化された運動方程式を生成するため、Mechanical Simulation社の開発チームにより日常的に使用されています。カスタムソルバーは、二輪オートバイや三輪オートバイ、独立フロントとリアサスペンションの自動車、独立フロントとソリッド車軸リアサスペンションの自動車など、根本的に異なるモデルに対して生成されます。例えば、CarSimには36、TruckSimには52、BikeSimには3つのカスタムパラメトリックモデルが含まれます。

echo_top_small.png
VSエコーファイルの上部は、システムパラメーターに関する情報を提供します。クリックすると、詳細をご覧いただけます

 

3次元パラメトッリクモデルに正しくかつ効率的なコードを自動生成する機能を用いて、測定可能な車両特性をパラメーターとして使用する(汎用的なマルチボディ座標や軸方向、力の位置などではなく)VSソルバーを作成します。コードはすべてANSI Cで生成され、Windowsおよび主要なリアルタイムコンピューターのプラットフォームすべてをサポートするためにMechanical Simulation社がコンパイルします。そのため、方程式を改訂する必要なく、同じモデルコードがすべてのプラットフォームに使用されます。

VS Lispが車両マルチボディシステムの非線形3次元キネマティクス方程式と運動方程式のためのコードをすべて生成するので、開発チームは剛体ボディ(タイヤモデル、パワートレイン、クローズドループコントローラー、路面ジオメトリなど)の3次元運動に基づかないシステムやコンポーネント、コントロールのための洗練されたコードを手動で書くことに注力することができました。

パラメーターと設定可能関数

echo_tire_small.png

VSエコーファイルの各セクションは、システムパートに関する情報を提供します。各パラメーターは、キーワード、値、単位および記述と共に表示されます。この図は、タイヤモデルとドライバーモデルのステアリングコントローラーのパラメーターの一部を表示しています。クリックすると、詳細をご覧いただけます。

VSソルバー内の数学モデルはパラメトリック数学モデルで、パラメーターを方程式内のプレースホルダーとして使用して計算を実施する内蔵の方程式を持ちます。数百のパラメーターに対し、ランタイム時にVSソルバーに値が提供されます。

パラメーターは数値を持ちます。値は数字、数字を含む式(例:1/16)、または他のパラメーターを含む式(例: Y_S = -L_TRACK(1)/2)で設定することができます。すべてのパラメーターには、入力Parsfileを読み込む前にデフォルト値が代入されます。パラメーターに新規の値が与えられなければ、デフォルト値がそのまま有効になります。

通常の車両モデルの計算の約半分には、非線形もあり得る内部変数間の固定関係が含まれます。幾つか例を挙げると、目標速度対時間、タイヤ力とモーメント対スリップと荷重、サスペンショントーとキャンバー対ジャウンスなどです。このような関係は、スプレッドシートで作成されたり、実験室の試験装置で測定されたり、またはSuspensionSimあるいは他のマルチボディツールを持つサブシステムのシミュレーションで取得される場合もあります。または、試験やモデルの種類によって、線形係数で置き換えられる、もしくは完全に無効にされる場合もあります。VSソルバーは、元々このような関係をテーブルで表現していました。ここ最近は、VS設定可能関数で表されます。名前から分かるように、この関数はパラメーターによる設定が可能で、定数、線形係数、内蔵の様々な内挿および外挿手法を用いた1次元テーブル、また場合によっては内蔵の様々な内挿および外挿手法を用いた2次元テーブルを使用します。ランタイム時に提供されるシンボリック式で関数の置き換えが可能な場合もあります。

outputs_small.png
VSソルバーは、各シミュレーションの設定に対してカスタマイズされた詳細な機械生成のドキュメンテーションを提供します。ドキュメントはテキスト、タブ付きテキストおよびスプレッドシートとして提供されます。この図は、距離・追跡センサーに関わるシミュレーションに利用可能なすべての出力変数を一覧化したスプレッドシートを示します。クリックすると、詳細をご覧いただけます。


インデックス付きパラメーターと関数

VehicleSimの車両モデルは、タイヤやホイール、スプリングなどモデル内で繰り返されるパートのパラメーターに一貫した名前を使用します。繰り返されるパートのパラメーターや設定可能関数にはインデックスが付けられ、1つのテキストファイルを複数回使用して様々なコンポーネントに値を設定できるようにします。例えば、車両モデルの複数のタイヤに同じタイヤ特性のセットを使用することは一般的です。モデルはメモリ内に個別の方程式と値を持ちますが、ファイルが複数回読み込まれる場合には同じファイルから値を設定することが可能です。

標準I/Oファイル

VSソルバーは、Parsfileと呼ばれるキーワードに基づく簡略式のテキストファイルからすべての設定情報を受け取ります。このファイルは、VSソルバーやVS Visualizerで使用するため、VSブラウザー(GUI)によって自動的に生成されます。

state_variables_small.png

この図は、すべての状態変数を記載したテキストファイルの一部を示します。ここには、車両モデルの標準的変数や、移動目標オブジェクトのようなオプションで追加された変数、またVSコマンドでユーザーが定義した変数が含まれます。クリックすると、詳細をご覧いただけます。

簡略化された形式で、十分にドキュメント化されています。上級ユーザーはしばしば、外部ソフトウェアを使用してカスタムの自動化設定用にParsfileを生成します。

方程式を解決するという第1の役割に加え、VSソルバーは多数のドキュメンテーションファイルを生成します:

  1. VSソルバーは、シミュレーションが開始する直前にエコーParsfileを書き込み、シミュレーション終了直後に別のParsfileを書き込みます。エコーファイルにはすべての設定可能関数と共に、使用されたすべてのパラメーターが記載されます。ラン内で使用されたすべてのオプションに関する包括的な情報を提供します。
  2. ステータスレポート、場合によっては警告またはエラーメッセージと共に、ランの設定に関わったすべてのParsfileを記載するログファイルが書かれます。
  3. モデル内のすべての状態変数、すべての出力変数およびすべての入力変数を一覧化するドキュメンテーションファイルを生成することができます。この機能は通常、VSブラウザーのRun Control画面のViewボタンを使用してアクセスします。ドキュメンテーションファイルは、簡略式のテキストファイルやタブ付きテキストファイル(GUIでのポイントアンドクリックコントロールをサポートするため)、スプレッドシートファイルとして書かれます。
difeqn_small2.png

TruckSim VSソルバー内で機械生成されたソースコードは、十分な長さがあり適切で効率的です。クリックすると、詳細をご覧いただけます。

高い拡張性

VSソルバーは、Windows OS向けに動的にリンクされたライブラリ(DLL)ファイルとして提供されます。通常、VSブラウザーの制御の下に実行されますが(GUIコントロールに基づく)、DLLのロードと連動が可能ないずれのプログラムからも実行可能です。RTシステムでは通常、MathWorks社のSimulink Coder(旧名Real-Time Workshop)で使用するために、コンパイルされたS-Functionソルバーとして提供されます。

  1. モデルはVSコマンドを用いたユーザーによる拡張が可能です。ランタイム時にシンボリック式機能を利用することができ、これによりユーザーは新規出力変数やコントローラー、自動化オプションを追加することができます。
  2. モデルは必要に応じ、入力および出力変数の配列を通してSimulink、LabVIEWおよびASCETのような外部シミュレーションプログラムと通信します。この配列は、外部モデルと連携するために必要に応じてランタイム時に構成されます。
  3. モデルは、十分にドキュメント化され、ほぼいずれのシミュレーション環境とも連携して利用可能な標準のアプリケーションプログラムインターフェイス(API)と通信します。
  4. ソースコードは標準ANSI Cで、必要に応じてWindows(32ビットと64ビット)および様々なリアルタイムシステム向けにリコンパイルされます。これは、利用可能な多数のシミュレーション環境間の互換性を保証します。