Main Content

制限

サンプル時間とソルバーの制約

Simscape™ ブロックの既定のサンプル時間は連続的です。既定のサンプル時間を使用して離散ソルバーで Simscape ブロックをシミュレートすることはできません。

Solver Configuration ブロックでローカル ソルバーに切り替えると、関連する物理ネットワークは離散状態になります。モデルのどこにも Simulink® および Simscape の連続状態が存在しない場合、離散ソルバーを使用してモデルをシミュレートできます。

Simscape ブロックを含む非バーチャル サブシステムのサンプル時間をオーバーライドすることはできません。

代数ループ

Simscape の物理ネットワークは Simulink の代数ループ内に存在してはなりません。つまり、PS-Simulink Converter ブロックの出力を、同じ物理ネットワークの Simulink-PS Converter ブロックの入力に直接接続しないようにする必要があります。

たとえば、以下のモデルには PS-Simulink Converter ブロックと Simulink-PS Converter ブロックの間に直達があります (マゼンタで強調表示)。代数ループを避けるため、強調表示されているループの任意の場所に Transfer Function ブロックを挿入できます。

追加のダイナミクスを導入せずに代数ループをより効果的に回避する方法を、以下の修正モデルに示します。

サポートされていない Simulink のツールと機能

一部の Simulink のツールと機能は Simscape ソフトウェアでは使用できません。

  • 以前のバージョンで使用されていた形式へのモデルのエクスポート ([シミュレーション][保存][以前のバージョン]) は、Simscape ブロックを含むモデルではサポートされていません。

  • Simulink のプロファイラー ツールは Simscape モデルとは併用できません。

  • 保存端子間の物理量信号と物理接続線は Simulink 信号とは異なります。そのため、ビューアーとジェネレーターのマネージャー ツールおよび信号ラベル機能はサポートされません。

制限をもつ Simulink ツール

一部の Simulink ツールは、Simscape ソフトウェアでの使用が制限されています。

  • Simulink の set_param コマンドおよび get_param コマンドを使用すると、Simscape ブロック パラメーターがブロック ダイアログ ボックスまたはプロパティ インスペクターのフィールドに対応している場合は、これらのパラメーターの設定や取得ができます。これらのコマンドを使用して他のブロック パラメーターの検出や変更を行うことは推奨されません。

    コマンド ラインでブロック パラメーターに変更を加える場合、モデルを保存する前にモデルを実行します。これを行わないと、無効なブロック パラメーターが保存される可能性があります。set_param によるブロック パラメーターの変更は、モデルを実行するまで有効になりません。

  • Simscape ブロックは、ここで指定されている制限の範囲内で、Simulink.Parameter オブジェクトを get_param および set_param のパラメーター値として受け入れます。

  • Enabled サブシステムは、Simscape ブロックを含むことができます。サブシステムの Enable 端子については、[有効] ダイアログの [イネーブル時の状態] パラメーターを必ず held に設定します。

    [イネーブル時の状態]reset に設定することはサポートされず、この設定を行うと、シミュレーションで致命的エラーが発生する場合があります。

  • Simscape ブロックは、連続状態をサポートする非バーチャル サブシステム内に配置できます。連続状態をサポートしている非バーチャル サブシステムには、Enabled サブシステムや Atomic サブシステムなどがあります。ただし、物理接続と物理量信号が非バーチャル境界を横切ってはなりません。Simscape ブロックを非バーチャル サブシステムに配置する場合、同じ物理ネットワークに属するブロックはすべて同じ非バーチャル システムに配置してください。

  • 連続サンプル時間ブロックをサポートしない非バーチャル サブシステム (If Action、For Iterator、Function-Call、Triggered、While Iterator など) には、Simscape ブロックを含めることはできません。

  • サンプル時間がユーザー指定の (継承されていない) Atomic サブシステムには、Simscape ブロックを配置することはできません。

  • Simulink で構成可能なサブシステムが Simscape ブロックと連動するのは、すべてのブロック モデリング オプションに一貫した端子シグネチャがある場合のみです。

  • モデルの Simulink の操作点を Simulink.op.ModelOperatingPoint オブジェクトとして保存する場合、ModelOperatingPoint オブジェクトを保存してから別のシミュレーションで初期状態として使用するまでの間は、モデル内の Simscape ブロックを変更できません。詳細については、操作点の動作を参照してください。

    Simscape ブロックを含むモデルは、Simscape の操作点を使用して初期化できます。詳細については、モデルの初期化のための操作点データの使用を参照してください。

  • Simulink と Simscape の両方のブロックを含むモデルの場合、リリース間で状態が正確に復元されるとは保証されません。変数を除外するなど、Simscape ライブラリのブロックやアルゴリズムを更新した場合、モデルの内容を変更していなくても、ログに記録される Simulink の状態の数が、前のリリースと異なることもあります。そのため、前のリリースで保存された操作点を Simulink の操作点やデータセットや類似ツールを使用して復元すると、異なる結果になる可能性があります。

    Simscape のブロックのみを含むモデルの場合は、Simscape の操作点を使用することで、異なるリリース間で一貫した初期化の結果が得られます。詳細については、モデルの初期化のための操作点データの使用を参照してください。

  • ローカル ソルバーを使用する場合、Simscape モデルで Simulink の関数 linmod またはこれに相当する Simulink Control Design™ の関数とグラフィカル インターフェイスによる線形化はサポートされません。

  • モデル参照はサポートされますが、次のような制限があります。

    • すべての物理接続線は参照モデル内になければなりません。これらの線は、参照元のモデル内にある参照モデル サブシステムの境界を横切ることはできません。

    • 参照元のモデルと参照先のモデルは同じソルバーを使用しなければなりません。

    • Simscape ブロックが含まれる保護モデル参照の場合、Simscape ライセンスなしでアクセラレータ モードやラピッド アクセラレータ モードで実行することはできません。

  • PS-Simulink Converter ブロックの出力上に、Simulink 信号オブジェクトを直接作成することはできません。代わりに、PS-Simulink Converter ブロックの出力端子の後に Signal Conversion ブロックを挿入し、Signal Conversion ブロックの出力に信号オブジェクトを指定します。

  • Simscape 実行時パラメーターは実行ごとの調整が可能です。したがって、Simscape にリンクしている Dashboard ブロックの場合、シミュレーション中にダイヤルを変更してもシミュレーション結果には影響しません。

    Simscape ブロック パラメーターの実行ごとの調整に Dashboard ブロックを使用するには、パラメーターを [実行時] 構成可能として指定し、ワークスペース変数と関連付けて、Dashboard ブロックをワークスペース変数にリンクします。詳細については、Simscape 実行時パラメーターについてを参照してください。

  • ラピッド アクセラレータ モードでは、Simulink Compiler は Simscape データ ログをサポートしていません。

Simscape ブロックと互換性のない Simulink ツール

一部の Simulink ツールおよび機能は Simscape ブロックでは使用できません。

  • Simscape では実行順序タグは表示されません。

  • Simscape ブロックはユーザー定義のコールバックを呼び出しません。

  • Simscape ブロックにはブレークポイントを設定できません。

  • 再利用可能なサブシステムには Simscape ブロックを含めることはできません。

  • Simulink 固定小数点ツールを Simscape ブロックで使用することはできません。

  • Report Generator による Simscape ブロックのプロパティのレポートは不完全なものとなります。

コード生成

Simscape 物理モデリング ソフトウェアとそのアドオン製品のファミリではコード生成がサポートされています。ただし、Simscape モデルから生成されたコードには制限事項があります。

  • カプセル化 C++ コードの生成はサポートされていません。

  • 調整可能なパラメーターはサポートされていません。

  • ランタイム パラメーターのインライン化ではグローバルな例外が無視されます。

  • MaxStackSize はサポートされていません。

  • 固定小数点プロセッサでの Simscape モデルのシミュレーションはサポートされていません。

  • エラー メッセージでのブロック診断はサポートされていません。つまり、生成されたコードのシミュレーションでエラー メッセージが表示される場合、関与するブロックのリストは記載されません。

  • Simscape ブロックを含むモデルまたはサブシステムの S-Function への変換はサポートされていません。

コード生成では、Simscape のコード生成機能について説明しています。制限をもつ Simulink ツールでは、モデル参照の制限について説明しています。

Simscape プラットフォームに基づくアドオン製品のコード生成機能にも、さまざまなバリエーションや例外があります。詳細は、各アドオン製品のドキュメンテーションを参照してください。

コード生成と固定ステップ ソルバー

Simscape モデルのほとんどのコード生成オプションでは、固定ステップ Simulink ソルバーの使用が必要です。次の表は、コードの生成方法ごとに使用できるソルバーの選択肢をまとめたものです。

コード生成オプションソルバーの選択肢
アクセラレータ モード
ラピッド アクセラレータ モード
可変ステップまたは固定ステップ
Simulink Coder™ ソフトウェア: RSim ターゲット*可変ステップまたは固定ステップ
Simulink Coder ソフトウェア: RSim 以外のターゲット固定ステップのみ

* RSim ターゲットの場合、Simscape ソフトウェアは Simulink ソルバー モジュールのみをサポートします。モデルの [コンフィギュレーション パラメーター] ダイアログ ボックスで、[コード生成][RSim ターゲット][ソルバーの選択] メニューを確認してください。既定の設定は自動選択ですが、Simulink ソルバー モジュールが選択されないことがあります。