Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink の単位の取り扱い

Simulink® 信号には物理単位を指定できます。詳細については、Simulink の単位を参照してください。

Simulink-PS Converter や PS-Simulink Converter などのインターフェイス ブロックは、Simscape™ 物理ネットワークとそれに接続する Simulink ブロックとの間の境界を扱います。これらの Converter ブロックは、物理量信号の単位も扱います。

  • Simulink-PS Converter ブロックで、[入力信号の単位] パラメーターを使用して単位を指定します。このパラメーターによって、ブロックの PS 出力端子における物理量信号の単位が定義されます。この物理量信号は、Simscape 物理ネットワークの入力信号として機能します。

  • PS-Simulink Converter ブロックで、[出力信号単位] パラメーターを使用して単位を指定します。この単位は、ブロックに入る入力物理量信号の単位に相当するものでなければなりません。このブロックは、変換係数と等しいゲインを適用してから Simulink 信号を出力します。

Simulink-PS Converter ブロックまたは PS-Simulink Converter ブロックに接続された Simulink 信号に物理単位を指定すると、ソフトウェアはこの単位をブロック内に指定された単位と比較します。パラメーター値が、ブロックに接続された Simulink 信号の物理単位と一致しない場合は、警告が表示されます。

Simulink 単位データベースは固定されています。単位の追加や単位の定義の変更はできません。関数 pm_addunit を使用して Simscape 単位レジストリに新しい単位を追加し、この単位を Simulink-PS Converter ブロックまたは PS-Simulink Converter ブロックで使用すると、次のようになります。

  • 単位定義が Simulink データベースの単位定義と競合すると、互換性のない単位に関する警告が表示されます。

  • Simulink データベースに存在しない単位を追加すると、未定義の単位に関する警告が表示されます。

これらの警告は Simulink データベースにのみ適用されることに注意してください。Simscape 物理ネットワークは想定どおりに機能します。

たとえば、モーター回転数を 1 分あたりの回転数 (rpm) ではなく 1 秒あたりの回転数として表示するとします。

  1. rpm に基づいて定義した新しい単位 rps を追加します。

    pm_addunit('rps', 1/60, 'rpm');
  2. 「永久磁石の DC モーター」モデル例を開くには、MATLAB® コマンド ウィンドウに以下を入力します。

    ssc_dcmotor
    
  3. モデルのシミュレーションを実行します。Motor RPM スコープ ウィンドウでシミュレーションの結果を調べます。

  4. Sensing サブシステム (ブロック線図では w) を開き、PS-Simulink Converter ブロックをダブルクリックして、[出力信号単位] パラメーターの値として「rps」と入力します。

  5. シミュレーションを再実行します。

    モデルが正しく機能し、スコープには 1 秒あたりの回転数の結果が表示されます。

    ただし、PS-Simulink Converter ブロックの Simulink 出力信号には警告バッジが付き、The units 'rps' are undefined というメッセージが表示されます。詳細メッセージによって、単位が Simulink 単位データベースに定義されていないことが説明されています。

    pm_getunits コマンドを発行すると、返される単位リストに rps があるのがわかります。これは、単位が Simscape 単位レジストリに正しく定義されたことを意味します。言い換えれば、警告は Simulink 単位チェックにのみ適用されます。

  6. 単位の一貫性に関する警告をオフにするには、MATLAB コマンド ウィンドウに以下を入力します。

    set_param('ssc_dcmotor','UnitsInconsistencyMsg','none');