Main Content

モデル スライサーの考慮事項および制限事項

モデル スライサーを操作するときは、以下の動作および制限事項を考慮してください。

モデルのコンパイル

モデル スライサーを開くと、モデルがコンパイルされます。コンパイル エラーを回避するために、モデル スライサーを開く前にモデルがコンパイル可能であることを確認してください。

モデルの強調表示およびモデルの編集

スライスの強調表示がアクティブのときは、モデルを編集できません。モデルの編集モードに切り替え、強調表示を保持することができます。再びスライス モードに切り替えると、スライス化の構成が再計算され、強調表示が更新されます。

スタンドアロンのスライス モデルの生成

スライス モデルの生成では、モデルを強調表示するために 1 つ以上の開始点が必要となります。スライス モデルの生成は、以下の項目をサポートしません。

  • 上流への伝播 (双方向を含む) の依存関係

  • 制約

  • アクティブな強調表示にある除外点

スライス モデルの生成では、書き込み可能な作業フォルダーが MATLAB® 内に必要です。

スライス モデルの考慮事項

強調表示されたモデルからスライス モデルを生成すると、モデルの簡略化によってシミュレーションの動作が変わったり、スライス モデルをコンパイルできないことがあります。以下に例を示します。

  • モデルの簡略化によって、スライス モデルで並べ替えられた実行順序が、元のモデルと比較して変化し、スライス モデルのシミュレーション動作に影響する可能性があります。

  • 作成するスライス モデルにバスを含めるが、そのバスのソース信号を含めない場合、関連付けられていないバス要素がスライス モデルに含まれる可能性があります。

  • マスクされたブロックのコンテンツのサブセットをインライン化したスライス モデルを生成する場合、必ずサブシステムのコンテンツをマスク パラメーターに関連付けるようにしてください。コンテンツとマスクが関連付けられない場合、スライス モデルがコンパイルされない可能性があります。

  • ソース モデルでバス信号が使用されている場合、必ずスライス モデルの信号を正しく初期化するようにしてください。スライス モデルを作成する前に、ソース モデルのバス信号の明示的なコピーを含めることを検討してください。たとえば、[出力] オプションが [信号のコピー] に設定された Signal Conversion ブロックを含めることができます。

  • ソルバー ステップ サイズを auto に設定すると、Simulink® は最大タイム ステップの一部を、モデル内のブロックに基づいて計算します。タイム ステップの決定に影響するブロックがスライス モデルから削除される場合、スライス モデルのタイム ステップはソース モデルのタイム ステップと異なる可能性があります。タイム ステップの相違はシミュレーションの相違の原因となることがあります。ステップ サイズの設定を、ソース モデルで計算される値と明示的に同じにすることを検討してください。

端子属性の考慮事項

モデルの簡略化の際にモデル スライサーによって削除されるブロックを使用すると、継承されるサンプル時間、信号の次元、データ型などのコンパイル属性を決定できます。モデル スライサーは、指定不足のモデルの端子属性を解決するために、モデルの簡略化の際にスライス モデルの端子属性を変更する場合があります。モデル スライサーがこれらの不整合を解決できない場合、モデルの端子属性の不整合を次のように解決できます。

  • 伝播ルールに従わず、ソース モデルで属性を明示的に指定する。

  • ソース モデルで属性の伝播に関連するブロックをスライス モデルに含める。モデルをスライスする前に、これらのブロックを追加の開始点としてソース モデルの強調表示に追加します。

  • モデルの端子属性に関わる Model ブロックをスライス モデルにインライン化しない。スライス モデルにインライン化できるモデル項目の詳細については、インライン コンテンツ オプションを参照してください。

Simulink におけるモデル参照の処理方法により、同一モデルへのモデル参照をもつ 2 つのモデルを同時にコンパイルできません。以下の条件が真の場合、スライス モデルの生成後にモデル スライサーは [スライサーはロックされています (属性チェックのため)] モードになります。

  • 親モデルに参照モデルが含まれる

  • 親モデルの強調表示された部分に参照モデルが含まれる

  • 次のいずれかの理由により、参照モデルがスライス モデルにインライン化されていない

    • [モデル スライサー オプション][インライン コンテンツ オプション] ペインで Model ブロックのインライン化をしないように選択されている

    • モデル スライサーが参照モデルをインライン化できない。モデル スライサーがインライン化できないモデル項目の詳細については、インライン コンテンツ オプションを参照してください。

親モデルの強調表示された部分の調整を続行するには、まずスライス強調表示モード を有効にしなければなりません。

シミュレーション時間枠の考慮事項

モデルのステップ サイズとシミュレーション時間枠の開始時間および終了時間の入力値によっては、モデル スライサーは実際のシミュレーションの開始時間および終了時間を変更する場合があります。

  • 入力した終了時間または開始時間がモデルのソルバーのタイム ステップ間にある場合、モデル スライサーは代わりに入力値より前のタイム ステップと一致する終了時間または開始時間を使用します。Simulink におけるステップ サイズの詳細については、ソルバーの比較を参照してください。

  • シミュレーション時間枠の終了時間はシミュレーション合計時間を超えることはできません。

シミュレーション ベースのスライス モデルの簡略化

シミュレーション時間枠を使用してモデルをスライスする場合、スタンドアロンの簡略化モデルを作成する際に、スイッチ ブロック、論理演算子ブロック、その他のブロックなど、ソース モデルの一部のブロックが置き換えられることがあります。たとえば、常に 1 つの入力を渡すスイッチ ブロックは削除され、アクティブな入力が直接出力先に接続されます。使用されていない入力信号もスタンドアロンのモデルから削除されます。

次の表では、モデルの簡略化の際にモデル スライサーが置き換える可能性のあるブロックについて説明します。

ソース モデルのブロック簡略化

Switch

Multiport Switch

1 つの入力端子のみアクティブである場合、アクティブな入力をブロック出力に接続する信号によって、Switch が置き換えられます。

Enabled Subsystem または Model

サブシステムまたはモデルが常に有効である場合、制御入力が削除され、標準的なサブシステムまたはモデルに変換されます。

サブシステムが決して有効にならない場合、サブシステムは初期条件で定義される定数値に置き換えられます。

Triggered Subsystem または Model

サブシステムまたはモデルが常にトリガーされる場合、トリガー入力が削除され、標準的なサブシステムまたはモデルに変換されます。

サブシステムが決してトリガーされない場合、サブシステムは初期条件で定義される定数値に置き換えられます。

Enabled and Triggered Subsystem または Model

サブシステムが常に実行される場合、標準的なサブシステムまたはモデルに変換されます。

サブシステムが決して実行されない場合、サブシステムは初期条件で定義される定数値に置き換えられます。

Merge

1 つの入力端子のみアクティブである場合、Merge はアクティブな入力をブロック出力に接続している信号に置き換えられます。

If

If Action

1 つのアクション サブシステムのみアクティブである場合、標準的なサブシステムまたはモデルに変換され、If ブロックが削除されます。

Switch Case

Switch Case Action

1 つのアクション サブシステムのみアクティブである場合、標準的なサブシステムまたはモデルに変換され、Switch Case ブロックが削除されます。

Logical Operator

ブロックが常に true を出力するか、常に false を出力する場合、定数に置き換えられます。

入力信号が常に true または常に false の場合、入力信号は定数に置き換えられます。

Simulink ソフトウェア機能に関するモデル スライサーのサポートの制限事項

モデル スライサーは以下の機能をサポートしません。

  • Simulink Test™ のテスト ハーネスの解析

  • Simscape™ 物理モデリング ブロックを含むモデル

  • 代数ループを含むモデル

  • データのインポートまたはエクスポートのエントリなど、スライス モデルの生成で初期状態をソース モデルから読み込むこと。スライス モデルの初期状態は、スライス モデルのコンフィギュレーション パラメーターで、明示的に定義してください。

  • 複数のレートをもつサブシステムおよび参照モデルのコンポーネントのスライス。

  • Function Call Triggered Subsystem およびモデル ブロックの、コンポーネントに基づいたスライス生成。

シミュレーション ステッパーに関するモデル スライサーのサポートの制限事項

モデル スライサーをシミュレーション ステッパーとともに使用するとき、[ステップを戻す] の後のスライスの強調表示は、必ずしも単一のステップに限定されません。強調表示は [シミュレーション ステップ オプション][保存するバック ステップ間の間隔] によって影響を受ける可能性があります。詳細については、Interval between stored back stepsを参照してください。

Simulink ブロックに関するモデル スライサーのサポートの制限事項

この表には、Simulink ブロックに関する、モデル スライサーのサポートの制限事項がリストされています。

ブロック制限

For Each Subsystem ブロック

For Each Subsystem 内のブロックのシミュレーションへの影響は無視されます。そのため、シミュレーション時間枠を適用した場合に返される依存関係の分析結果は、シミュレーション時間枠を使用しない依存関係の分析と同じになります。

MATLAB Function ブロック

モデル スライサーではすべての出力は、上流方向のすべての入力に依存すると想定されます。また、すべての入力は、下流方向のすべての出力に影響すると想定されます。

Merge ブロック

シミュレーション時間枠を使用してスライスを生成した場合、単一のパスが実行されたときにのみ Merge ブロックはスタンドアロン モデルにおいて削除されます。

Model ブロック

[シミュレーション モード][アクセラレータ] に設定されている場合、モデル スライサーは Model ブロックのグローバル データ ストア メモリで発生するデータの依存関係を解決しません。

モデル スライサーは、サードパーティからの保護モデルの参照への参照の内容を解析しません。保護モデル参照を含むモデルをスライスする場合、モデル スライサーはモデル参照全体をスライス モデルに含めます。

S-function ブロック

モデル スライサーではすべての出力は、上流方向のすべての入力に依存すると想定されます。また、すべての入力は、下流方向のすべての出力に影響すると想定されます。

モデル スライサーは、シミュレーション時間枠に依存するモデル情報にアクセスしている S-Function ブロックに起因する依存関係を判別しません。

Simulink Functions

依存関係は Simulink Function 定義からそのすべての Function Callers に伝播します。

依存関係は Function Callers からその Simulink Function 定義および他のすべての Function Callers に伝播します。

モデル参照のインライン化は、端子スコープ内の Simulink Function を含むモデルのスライス生成時はサポートされません。

Stateflow に関するモデル スライサーのサポートの制限事項

  • Stateflow® のチャートまたは状態遷移表を含むモデルを強調表示すると、モデル スライサーは、Chart ブロックまたは State Transition Table ブロックからの出力が、Chart ブロックまたは State Transition Table ブロックへのすべての入力に依存するとみなします。

  • Stateflow のチャートまたは状態遷移表を含むモデルをスライスした場合、モデル スライサーはチャートや表を簡略化しません。チャートまたは表全体が、スライス モデルに含まれます。

  • Stateflow のチャートまたは状態遷移表で機能の依存関係を強調表示するときにシミュレーション時間枠の定義を行わない場合、モデル スライサーは、チャートまたは表のすべての要素がアクティブであるとみなします。モデル スライサーは、そのようなチャートや表の内容全体を強調表示します。

  • 定義したシミュレーション時間枠に関して Stateflow のチャートまたは状態遷移表の機能の依存関係を強調表示する場合、モデル スライサーは、選択した開始点に影響するステートと遷移のみを強調表示するのではありません。指定した時間枠内のアクティブな要素を強調表示します。

  • モデル スライサーは Stateflow のグラフィカル関数と Stateflow の他のチャートにおける関数呼び出しとの間の依存関係を判別しません。

  • 選択した時間枠中にアクティブではなかったグラフィカル関数とその内容は、強調表示されたままになる場合があります。

  • イベントによってプリエンプトされたステートへの移行は、強調表示されたままになる可能性があります。たとえば、親ステートに入った後に、イベント アクションによりステートを出て移行をプリエンプトして子ステートに入ることがあります。このような場合、モデル スライサーは子ステートへの移行を強調表示します。

Stateflow のアクティビティベースのタイム スライスに関する考慮事項

'実行されたサブステート' 判定カバレッジによって測定されるステート アクティビティは、以下の during/exit アクションを指します。

  • ステートへの移行はアクティビティを構成しない。

  • ステートまたは遷移にとってのアクティブな時間区間には、選択したステートが終了し次のステートに移行する瞬間が含まれる。

  • ステートまたは遷移の非直接的な終了はアクティビティを構成しない。たとえば、ステート C が、その親ステート P の終了によって終了する場合、ステート C はアクティブとは見なされない。

Stateflow チャートの判定カバレッジの詳細については、Stateflow チャートの判定カバレッジ (Simulink Coverage)を参照してください。

アクティビティベースのタイム スライスを使用したアクティブな時間区間の強調表示を行う場合、ステートと遷移をアクティビティの制約としてのみ選択することができます。以下の Stateflow オブジェクトを定数として選択することはできません。

  • パラレル ステート

  • 条件をもたない遷移 (判定カバレッジの対象とならないラベルなしの遷移など)

  • ライブラリにリンクされたチャート内のステートおよび遷移

  • 兄弟のない XOR ステート。たとえば、ステート P の唯一の子ステートが C である場合、ステート P は、実行されたサブステートの判定カバレッジの対象とならないため、ステート C をアクティビティ制約として選択することはできない

参考

|