コシミュレーションの実行
Simulink® は、ローカル ソルバーをもつコンポーネント間のコシミュレーションをサポートするか、外部シミュレーション ツールを含めます。たとえば、コシミュレーションには、Simulink とサードパーティ製のツールまたはカスタム コードの間にコシミュレーション ゲートウェイとして実装される S-Function を含めることができます。コシミュレーション コンポーネントは Simulink にインポートされるコシミュレーション モードの Functional Mockup Unit (FMU) であることがあります。
実行タイミング
Simulink シミュレーションでは、ソルバー ステップ サイズは、各周期的な離散型ブロックのサンプル時間の整数の約数でなければなりません。つまり、コシミュレーション コンポーネントがその独自のサンプル時間を定義する場合、Simulink はそれらのタイム ステップでコンポーネントと通信しなければなりません。コシミュレーションには、タイム ステップが内部的に決定され、Simulink に既知ではないコンポーネントを含めることができます。Simulink で利用可能な情報は、FMU ブロックの通信ステップ サイズ パラメーターまたは S-Function 実装のサンプル時間の定義を介するブロック サンプル時間のみです。ブロックのサンプル時間は、Simulink がコシミュレーション コンポーネントと通信しなければならないタイム ステップを決定します。ソルバー ステップ サイズが自動ではない場合、通信ステップ サイズはソルバー ステップ サイズの整数倍でなければなりません。
コシミュレーション コンポーネントがローカル ソルバーを内部的に使用する場合、ブロックの通信ステップ サイズを決定する際に、このローカル ソルバーも考慮される必要があります。ローカル ソルバーのステップ サイズは Simulink に公開されず、通信ステップ サイズを正しく設定するには実装の知識が必要です。非互換性の可能性がある場合のコシミュレーションの動作も、この内部ソルバーの実装により異なります。
参照
[1] Runge, Carl. "Uber empirische Funktionen und die Interpolation zwischen aquidistanten Ordinaten", Zeitschrift für Mathematik und Physik. Vol. 46, 1901, pp. 224–243.
参考
FMU | S-Function | ssGetInputPortIsContinuousQuantity
| ssGetOutputPortIsContinuousQuantity
| ssSetInputPortIsContinuousQuantity
| ssSetOutputPortIsContinuousQuantity