制限
サンプル時間とソルバーの制約
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
コマンドおよびget_param
コマンドでは、これらのプログラム上の名前を使用します。コマンド ラインでブロック パラメーターに変更を加える場合、モデルを保存する前にモデルを実行します。これを行わないと、無効なブロック パラメーターが保存される可能性があります。
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 の操作点を使用して初期化できます。詳細については、モデルの初期化のための操作点データの使用を参照してください。
Simscape ブロックを含むモデルの場合、リリース間で状態が正確に復元されるとは保証されません。変数を除外するなど、Simscape ライブラリのブロックやアルゴリズムを更新した場合、モデルの内容を変更していなくても、ログに記録される Simulink の状態の数が、前のリリースと異なることもあります。そのため、前のリリースで保存された操作点を Simulink の操作点やデータセットや類似ツールを使用して復元すると、異なる結果になる可能性があります。
Simulink の操作点と Simscape の操作点を同時に適用すると、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 ソルバー モジュールが選択されないことがあります。