Sensors

Sensorsツールを使用して、シミュレーション中のイベントを感知し、そのイベントに対する応答を定義します。

センサーの作成

  1. Projectブラウザから、センサーの追加先とするシステムを選択します。
  2. Projectブラウザでシステムを右クリックし、コンテキストメニューからAdd > Control Entity > Sensorの順に選択します。
    または
    Projectブラウザでセンサーフォルダを右クリックし、コンテキストメニューからAdd Sensorを選択します。
    または
    General MDLツールバーのSensorボタンを右クリックします。
    Add Sensorダイアログが表示されます。
  3. センサーのラベルを指定します。
  4. センサーの変数名を指定します。
    デフォルトで、MotionView内のエンティティの変数名は特定の規則に従います。例えば、すべてのセンサーエンティティの変数名は“sen_”で始まります。これは、MotionViewでモデルを構築する場合に従う推奨規則であり、モデル編集やモデル操作において様々なメリットが得られます。
  5. OKをクリックしてウィンドウを閉じるか、Applyをクリックしてエンティティの作成を継続します。
    センサーエンティティをモデルに追加すると、パネル領域にそのセンサーのパネルが自動的に表示されます。

センサの編集

センサーの信号の定義

Signalタブでは、シミュレーションでセンサーの応答のきっかけとなるイベントを定義できます。

  1. 現時点でSensorsパネルが表示されていない場合は、Project Browserまたはmodeling windowで目的のセンサーをクリックして選択します。
    Sensorsパネルが自動的に表示されます。
  2. Expr:ドロップダウンメニューから適切なオプションを選択します。
  3. 選択内容に関連するプロパティを定義します。
    Linearを選択した場合は、変位、速度、または加速度の定数値を入力します。
    Curveを選択した場合は以下の手順に従います。
    1. 補間方法として、AKIMACUBICLINEAR、またはQUINTICを選択します。
    2. Independent variableの下に値を入力します。
      Templexシンタックスで独立変数を指定する必要があります。
    3. Curveコレクターをダブルクリックし、Select a Curveダイアログからカーブを選択することにより、カーブを解決します。
      Note: カーブを使用するには、まず、Curvesパネルを使用して、センサーの動作を表すカーブを定義する必要があります。
    Spline3Dを選択した場合は以下の手順に従います。
    1. 補間方法として、AKIMACUBIC、LINEAR、またはQUINTICを選択します。
    2. Independent variable XおよびIndependent variable Zの式を指定します。
    3. Spline3Dコレクターをダブルクリックして、Select a Spline3DダイアログからSpline3Dエンティティを選択することによって、3Dスプラインを解決します。
      Note: Spline3Dエンティティを使用するには、まず、Spline3Dパネルを使用してスプラインを定義する必要があります。
    Expressionを選択した場合は、変位、速度、または加速度を定義するソルバー式を入力します。

センサーに関するユーザー定義プロパティの使用

必要に応じ、User-Definedタブを使用してセンサー式を定義します。これにより、ユーザーサブルーチンを使用してこの式のプロパティを指定できます。

  1. SignalタブでUser-defined propertiesチェックボックスをクリックします。
    Signalタブが自動的に更新されます。
  2. ユーザーサブルーチンを定義します。
    1. ユーザーサブルーチンに渡されるパラメータを含むUSERソルバー関数を用いた式を与えます。
    2. または、Use local file and function nameチェックボックスをアクティブにして、ソルバーからアクセスできるサブルーチンコードを収めたローカルファイルを指定します。
      このオプションを指定していない場合、MotionSolveでは、そのユーザーサブルーチン読み込みルールに従ってサブルーチンが検索されます。
    3. ドロップダウンメニューから関数タイプを選択します。
    4. サブルーチンについてのローカルファイルを選択します。
      指定するファイルのタイプは、選択した関数タイプによって異なります。例えば、DLL/SOを選択した場合は、.dll拡張子(Windowsの場合)または.so拡張子(Linuxの場合)を持つファイルを指定できます。
    5. エンティティを定義するサブルーチンで関数名を指定するか、MotionViewで指定されたデフォルト名をそのまま使用します。

センサーの比較の定義

Compare Toタブでは、現在の信号の比較対象とする値を定義できます。

  1. Compare Toタブをクリックします。
  2. 信号の比較対象とする値をValueテキストボックスに入力します。
  3. 数値バンド幅を作成するために、値に適用する許容値を指定する値をErrorテキストボックスに入力します。
  4. 応答をトリガするためのオプションを選択します。
    オプション 説明
    Signal is greater than VALUE - ERROR 信号が値より大きいときに応答を実行する場合に選択します。
    Signal is less than VALUE + ERROR 信号が値より小さいときに応答を実行する場合に選択します。
    Abs(Signal) is less than or equal to VALUE + ERROR 信号が値とほぼ同じであるときに応答を実行する場合に選択します。

センサーの応答の定義

Responseタブでは、信号が“Compare To”の範囲内である場合にソルバーで実行するアクション(複数可)を指定できます。

  1. Responseタブをクリックします。
  2. 応答のチェックボックスをクリックすると、その応答がアクティブになります。
    オプション 説明
    Halt simulation センサーが応答すると、シミュレーションが停止します。
    Restart simulation センサーが応答すると、シミュレーションが開始します。
    Print to output センサーが応答すると、結果が出力ファイルに書き出されます。
    Evaluate expression センサーが応答すると、入力された式が評価されます。
    New output step このオプションをアクティブにすると、値の入力が可能になり、その値以降ソルバーで新しい出力ステップを使用できます。
    Integration step size センサーが応答すると、積分ステップサイズがリセットされます。
    Return to command file センサーが応答すると、次のコマンドが読み取られます。
    New pivot sequence センサーが応答すると、ソルバーのピボットの順序がリセットされます。
    Export state variable vector センサーが応答すると、ファイルに状態情報が書き込まれます。
  3. Evaluate expressionを選択すると、さらに多くのオプションを使用できます。最初のドロップダウンメニューでUSERを選択してユーザー式を入力するか、EXPRを選択して2番目のドロップダウンメニューでタイプを選択し、対応するプロパティを定義します。
    Linearを選択した場合は、変位、速度、または加速度の定数値を入力します。
    Curveを選択した場合は以下の手順に従います。
    1. 補間方法として、AKIMACUBICLINEAR、またはQUINTICを選択します。
    2. Independent variableの下に値を入力します。
      Templexシンタックスで独立変数を指定する必要があります。
    3. Curveコレクターをダブルクリックし、Select a Curveダイアログからカーブを選択することにより、カーブを解決します。
      Note: カーブを使用するには、まず、Curvesパネルを使用して、センサーの動作を表すカーブを定義する必要があります。
    Spline3Dを選択した場合は以下の手順に従います。
    1. 補間方法として、AKIMACUBIC、LINEAR、またはQUINTICを選択します。
    2. Independent variable XおよびIndependent variable Zの式を指定します。
    3. Spline3Dコレクターをダブルクリックして、Select a Spline3DダイアログからSpline3Dエンティティを選択することによって、3Dスプラインを解決します。
      Note: Spline3Dエンティティを使用するには、まず、Spline3Dパネルを使用してスプラインを定義する必要があります。
    Expressionを選択した場合は、変位、速度、または加速度を定義するソルバー式を入力します。