単位の整合性チェックと伝播
Simulink® は、コンポーネント間の単位の整合性チェックを実行します。互いに (場合によっては単位を伝播する中間ブロックを介して) 接続する端子は同じ単位を使用しなければなりません。たとえば、単位 ft/s
を使用する端子を、単位 m/s^2
を使用する端子に接続することはできません。
既定では、接続されている 2 つの端子間の単位で不一致が検出されると、Simulink には不一致の警告 が表示されます。Ctrl + D キーを押すと、モデルで単位の不一致を表示できます。
この接続を有効にするには、以下を行います。
両方の端子の単位を同じ単位に明示的に設定する。
接続している端子の一方の [単位] パラメーターを
[inherit]
に設定する。一致しない単位がスケーリング ファクターまたはオフセットで区切られている場合または逆数の単位である場合、一致しない単位間に Unit Conversion ブロックを挿入する。これらの単位は "変換可能" です。詳細については、単位の変換を参照してください。
[自動単位変換を許可] コンフィギュレーション パラメーターを選択する。詳細については、単位の変換を参照してください。
メモ
Simulink は単位式でバリエーションをサポートします。たとえば、ある端子の単位が m/s^2
で、接続される端子の単位が m/s/s
であるとします。このような場合、Simulink では単位の不一致に関する警告を表示しません。
Simulink で以下のいずれかの条件が検出されると、不一致に関する警告 が表示されます。
許可されていない単位系
未定義の単位
Simulink は単位設定の整合性をチェックし、コンポーネント境界を越えて単位を伝播します。参照モデルを含むモデルで、Simulink は最上位モデルから独立して参照モデルをコンパイルします。このように独立してコンパイルすると、参照モデルは最上位モデルから単位を継承できません。
参照モデルの端子の [単位] が [inherit
] に設定されている場合は、参照モデルで上流または下流のブロックから単位を継承できます。端子が上流または下流のブロックから単位を継承しない場合は、どの単位を使用する最上位モデルの端子にも接続できます。
Simulink は、"計算をしない" ブロックと呼ばれるデータを変更しない以下のブロックを介して単位を渡します。
Bus Creator
Bus Selector
Bus to Vector
Data Type Conversion
Demux
From
Goto
Inport
Merge
Model
Mux
Outport
Rate Transition
Signal Conversion
Signal Specification
Subsystem
Variant Sink
Variant Source
メモ
単位が異なる 2 つ以上の信号を Mux ブロックに指定すると、Simulink は Mux ブロックが出力するベクトル信号に空の単位を適用します。ベクトル信号には共通の単位がなければなりません。
メモ
モデルに非バーチャル バスがある場合 (合成インターフェイスのガイドラインを参照)、Simulink はバスの単位を空に設定します。非バーチャル バスは単位をもつことができません。ただし、バス要素信号そのものに単位がある場合、Simulink はこれらを変更しません。
Simulink は、新しいデータを出力として生成するブロックを介して単位を伝播しません。単位をもつ信号がこれらのブロックを介して渡されると、これらの信号の単位は空になります。新しいデータを出力として生成するために単位を維持しないブロックの例を示します。
Sum
Gain
Filter
Product
Simulink と Simscape との間の単位の伝播
物理システムをモデル化する場合、Simulink で開発されたコンポーネントを Simscape™ およびその関連物理モデリング製品で開発されたコンポーネントに統合する必要があるかもしれません。Simscape コンポーネントは通常の Simulink 信号ではなく物理信号を使用します。したがって、Simulink コンポーネントと Simscape コンポーネントの間で信号を接続するには、Simulink-PS Converter (Simscape) および PS-Simulink Converter (Simscape) コンバーター ブロックが必要です。
Simscape コンポーネントの入力および出力信号の単位を指定するには、コンバーター ブロックの単位を明示的に指定します。信号を Simscape から Simulink に変換する PS-Simulink Converter (Simscape) ブロックで単位を指定すると、Simulink は接続されている Simulink 端子に単位の設定を伝播します。ただし、Simulink は Simulink から Simscape コンポーネントに信号の単位を伝播できません。単位を伝播するには、Simulink-PS Converter (Simscape) ブロックの単位を明示的に指定しなければなりません。詳細については、物理単位 (Simscape)を参照してください。
参考
ブロック
- Unit Conversion | Unit System Configuration | Inport | In Bus Element | Outport | Out Bus Element | Signal Specification | MATLAB Function