最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

操作点の動作

操作点を使用したブロック、S-Function、モデル変更の操作について説明します。

操作点内でのブロックの状態の変更

  • ブロックの状態を取得または設定するには、loggedStates を使用します。xout が Simulink® からワークスペースにエクスポートされた状態ログである場合、loggedStates フィールドの構造は xout.signals と同じになります。

  • ログに記録されていない状態は変更できません。これらの状態を変更するとシミュレーションと一致しなくなる可能性があるため、Simulink ではこの変更は許可されていません。

S-Function

C-MEX およびレベル 2 の MATLAB® S-Function の API を使用して、S-Function で ModelOperatingPoint オブジェクトを操作することができます。S-Function 内におけるこれらの API の実装方法の詳細は、S-Function Compliance with the ModelOperatingPointを参照してください。

操作点のコンプライアンス レベルが宣言されていないか unknown または disallowed と宣言された、PWork ベクトルでデータ構造体へのポインターを格納している S-Function では、操作点はサポートされません。詳細については、S-Function Compliance with the ModelOperatingPointを参照してください。

モデルの変更と操作点の復元

モデルの操作点を保存した後、モデルを変更し、それらの変更を反映して操作点を復元できます。

  • 操作点を保存してから復元するまでの間に、モデルの名前を変更できます。

  • 操作点のインターフェイスのチェックサムは、主にモデルのコンフィギュレーション設定とモデルで使用されるサンプル時間に基づいています。操作点を保存してから復元するまでの間に、非構造的な変更であれば、モデルに変更を加えることができます。そのような変更を追跡するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断] ペインにある [Operating point interface checksum mismatch] 診断を使用します。これを使用して、復元された操作点のインターフェイスのチェックサムが現在のインターフェイスのチェックサムと一致するかどうかを確認できます。操作点のインターフェイス チェックサムの不一致を参照してください。

    以前に保存した操作点の復元可能性を損なうことなく、モデルに以下の非構造的な変更を行えます。

    メモ

    これらの変更により、モデルのサンプル時間数が変わることがあります。それにより、モデルのインターフェイス チェックサムが操作点保存および復元チェックサムと一致しなくなることがあります。[Operating point interface checksum mismatch] 診断を [警告] (既定の設定)、[エラー]、または [なし] に設定して、チェックサムを比較しないようにします。

  • 操作点を保存してから操作点を使用してシミュレーションを復元するまでの間に、モデルに構造的な変更を加えることはできません。例としては、操作点保存後のブロックの追加や削除、モデルのサンプル時間の変更、ソルバー タイプの可変ステップから固定ステップへの変更などがあります。

  • 不一致が生じる可能性があるのは、保存されている操作点を生成したときと異なるソルバーを使用してシミュレーションを実行しようとした場合です。Simulink では、このようなソルバーの変更が可能です。たとえば、ode15s ソルバーを使用してシミュレーションの最初のスティッフな部分を解き、最終的な操作点を保存することができます。その後、ode45 を使用して、復元された操作点でシミュレーションを継続できます。つまり、この診断はソルバーの変更を確認するためのものであり、シミュレーションの問題を示すものではありません。

メモ

可変ステップ ソルバーを使用する場合、最大ステップ サイズを auto に設定すると、Simulink の新しいシミュレーションでは復元された ModelOperatingPoint オブジェクトの最大ステップ サイズが使用されます。2 つのシミュレーションの連結された操作点の軌跡が中断なしで実行したシミュレーションと一致するようにするには、最大ステップ サイズの値を指定します。

操作点の保存と復元の制限

メモ

場合によっては、部分的な状態情報を保存することで、操作点の使用に関する一部の制限を回避できることがあります。状態データを保存する 2 通りの方法の比較については、操作点と最終状態のログの比較を参照してください。

ブロックのサポート

次のブロックは操作点をサポートしていません。

  • Stack ブロックと Queue ブロックでは、[Push full stack] オプションの既定の設定は [Dynamic reallocation] です。この既定の設定は ModelOpeartingPoint オブジェクトをサポートしません。その他の設定 ([無視][警告] および [エラー]) は ModelOperatingPoint オブジェクトをサポートします。

  • Simscape™ Multibody™ First Generation のブロック

Simulink は、ブロックの出力を操作点の一部として保存しようとします。S-Function の場合、これは関数で操作点が不要であると宣言されていても起こります。ブロック出力がカスタム タイプである場合、Simulink では操作点を保存できず、エラーが表示されます。S-Function での操作点の使用の詳細については、S-Functionを参照してください。

モデル参照では、操作点が部分的にサポートされます。詳細については、モデル参照を参照してください。

シミュレーション

  • シミュレーション モードはノーマルまたはアクセラレータのいずれかのみを使用できます。

  • 操作点をノーマル モードで保存し、アクセラレータ モードで復元することはできません。その逆も同様です。

  • 一部のブロックのログに記録されない状態を変更することはできません。詳細については、操作点内でのブロックの状態の変更を参照してください。

コード生成

操作点機能では Simulink Coder™ または Embedded Coder® のコード生成はサポートされません。

モデル参照

  • アクセラレータ モードの参照モデル内にあるブロックのログが作成された状態は変更できません。

  • 次のブロックがアクセラレータ モードの参照モデルに含まれている場合、操作点はサポートされません。

    • レベル 2 の MATLAB S-Function

    • MATLAB System

    • n-D Lookup Table

    • S-Function (カスタムの操作点または PWork ベクトルを含む)

    • To File

    • Simscape ブロック

詳細は、参照モデルの状態情報を参照してください。

モデル関数

関数 model に操作点を入力することはできません。

関連するトピック