ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

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

Simulink のチェック

Simulink のチェックの概要

シミュレーションのモデルを構成するには、Simulink® のモデル アドバイザー チェックを使用します。

参考

接続されていないライン、入力端子、出力端子を特定します

接続されていないラインや端子をチェックします。

説明

このチェックでは、接続されていないラインや端子がリストに表示されます。接続されていないラインや端子があると、データ型、サンプル時間、次元などの信号属性を伝播できない場合があります。

    メモ:   Ground/Terminator ブロックに接続されている端子は、このテストに合格します。

結果と推奨アクション

状況推奨アクション
ライン、入力端子、出力端子が接続されていない。信号を接続します。問題を特定するには、接続されていない項目のリストをダブルクリックします。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

ヒント

ブロックの入力端子または出力端子を示す構造体の配列を取得するには、PortConnectivity コマンドを使用します。

参考

PortConnectivity コマンドの詳細は、「共通のブロック プロパティ」を参照してください。

ルート モデルの Inport ブロックの仕様をチェックします。

ルート モデルの Inport ブロックで次元、サンプル時間、データ型が完全に定義されていることをチェックします。

説明

次元、サンプル時間、データ型が完全に定義されていないルート モデルの Inport ブロックを使用すると、予期しないシミュレーション結果を招きます。Simulink ソフトウェアでは、明示的にこれらの項目に値を割り当てないと、下流のブロックから次元、サンプル時間、データ型が逆方向に伝播されます。

結果と推奨アクション

状況推奨アクション
ルートレベルの Inport ブロックに未定義の属性がある。ルートレベルの Inport ブロックの属性を定義します。

参考

最適化設定をチェック

最適でないコードの生成やシミュレーションを引き起こす可能性がないかどうか、最適化をチェックします。

説明

このチェックでは、コード効率の向上とシミュレーション時間の短縮を可能にする最適化の状況を確認します。

結果と推奨アクション

状況推奨アクション
指定された最適化がオフになっている。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化] ペインで、以下の最適化チェック ボックスをオンにします。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化]、[信号とパラメーター] ペインで、以下の最適化チェック ボックスをオンにします。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化]、[Stateflow] ペインで、以下の最適化チェック ボックスをオンにします。

「アプリケーションのライフスパン (日)」 が無限に設定されている。これにより、計算コストの高い 64 ビット カウンターが使用される可能性があります。 このカウンターを使用しない場合は、終了時間を選択します。
指定した診断は、モデルのシミュレーションに要する時間を増やす可能性があり、[警告] または [エラー] に設定されている。以下について [なし] を選択します。
  • [診断][ソルバー][ソルバー データの不整合]

  • [診断][データ有効性][配列範囲の超過]

  • [診断][データ有効性][シミュレーション範囲のチェック]

指定された Embedded Coder® パラメーターがオフになっている。Embedded Coder ライセンスがあり、ERT ベースのシステム ターゲット ファイルを使用している場合は、次のチェック ボックスをオンにします。

ヒント

システムに Model ブロックが含まれ、参照モデルがアクセラレータ モードの場合、モデルをシミュレーションするには、コードの生成とコンパイルが必要です。

参考

参照モデルに対して無視されたパラメーター調整情報をチェックします。

[モデル パラメーター コンフィギュレーション] ダイアログ ボックスにパラメーター調整情報が含まれているかどうかをチェックします。

説明

[モデル コンフィギュレーション パラメーター] ダイアログ ボックスで指定されている調整情報は、Simulink ソフトウェアによって無視されます。このチェックにより、モデルが他のモデルで参照されている場合に、Simulink ソフトウェアによって無視されるパラメーター調整情報を含んでいるモデルを特定します。

結果と推奨アクション

状況推奨アクション
無視されるパラメーター調整情報がモデルに含まれている。リンクをクリックし、MATLAB® ワークスペースで相当する Simulink パラメーター オブジェクトに変換します。

参考

「パラメーター」.

暗黙的な信号の関連付けをチェックします。

指定した信号および状態を Simulink.Signal オブジェクトに関連付けようとするモデルを特定します。

説明

Simulink ソフトウェアですべての名前付き信号および状態を関連付けるのは効率的ではありません。インクリメンタルなコード生成およびモデル参照の速度が低下します。このチェックでは、暗黙的な信号の関連付けをオフにして強制的に関連付けを行うことのできる信号および状態を特定します。

結果と推奨アクション

状況推奨アクション
一部の信号および状態が関連付けられていない。暗黙的な信号の関連付けをオフにし、関連付けを行うことのできる信号と状態ごとに強制的に関連付けを行います。

参考

「出力データの信号オブジェクトの関連付け」.

最適なバーチャル バスをチェックします。

非バーチャルになる可能性のあるバーチャル バスを特定します。これらのバスを非バーチャルにすると、コードの生成効率が向上します。

説明

このチェックでは、サブシステムの境界にまたがるバーチャル バスが組み込まれているブロックを特定します。これらのバスを非バーチャルに変更すると、コードの生成効率が向上します。

結果と推奨アクション

状況推奨アクション
サブシステムの境界にまたがるバーチャル バスがブロックで指定されている。強調表示されているバスを非バーチャルに変更します。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

参考

不確かな初期条件をもつ Discrete-Time Integrator ブロックをチェックします。

Initial Condition ブロックにも Constant ブロックにも接続されていない状態端子および初期条件端子のある Discrete-Time Integrator ブロックを特定します。

説明

状態端子および初期条件端子のある Discrete-Time Integrator ブロックは、Initial Condition ブロックまたは Constant ブロックに接続されていない限り、適切に初期化されない可能性があります。この問題は、Discrete-Time Integrator ブロックを使用して 2 次動的システムまたは高次動的システムのモデルを作成する場合に発生する可能性が高くなります。

結果と推奨アクション

状況推奨アクション
モデルの初期化の段階で Discrete-Time Integrator ブロックが初期化されない。Constant ブロックまたは Initial Condition ブロックを追加して外部の初期条件端子に接続します。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

参考

無効なライブラリ リンクを特定します。

モデルの無効なライブラリ リンクを検索します。

説明

ライブラリ リンクが無効になっていると、予期しないシミュレーション結果となる可能性があります。モデルを保存する前に、無効なリンクを関連付けます。

結果と推奨アクション

状況推奨アクション
ライブラリ リンクが無効になっている。コンテキスト メニューの [リンク オプション] 設定の [リンクを戻す] を使用します。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

ヒント

  • ライブラリ リンクを見つけるには、モデル ブラウザーを使用します。

  • リンク切れを有効にするには、モデル内のブロックを右クリックしてコンテキスト メニューを表示します。[リンク オプション] を選択して [リンクを戻す] をクリックします。

参考

「無効リンクまたはパラメーター付きリンクの復元」.

パラメーター付きのライブラリ リンクを特定します。

モデルでパラメーター付きのライブラリ リンクを検索します。

説明

ライブラリ リンクに対して意図的でないパラメーター化が行われると、モデル内で予期しないパラメーター設定を生じる可能性があります。その結果、不適切なモデル処理が行われる場合があります。

結果と推奨アクション

状況推奨アクション
パラメーター付きのリンクがリストされている。リンクのパラメーター化が意図されていることを確認します。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

ヒント

  • モデル内のブロックを右クリックしてコンテキスト メニューを表示します。[リンク オプション] を選択して [ライブラリ ブロックに移動] をクリックし、ライブラリの元のブロックを確認します。

  • ライブラリ リンクをパラメーター化するには、コンテキスト メニューから [マスク内の表示] を選択し、パラメーターを選択します。

参考

「無効リンクまたはパラメーター付きリンクの復元」.

未解決のライブラリ リンクを特定します

指定のライブラリ ブロックが見つからない、関連付けられていないライブラリ リンクのモデルを検索します。

説明

関連付けられていないライブラリ リンクがないかをチェックします。関連付けられていないライブラリ リンクが存在している場合、モデルのシミュレーションは行われません。

結果と推奨アクション

状況推奨アクション
関連付けられていないライブラリ リンクがある。欠損しているライブラリ ブロックまたは代替ブロックを置きます。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

参考

「関連付けられていないライブラリ リンクの修正」

バリアントの選択をオーバーライドするモデル参照バリアントおよび Variant Subsystem の特定

アクティブ バリアント オブジェクトではなく、オーバーライド オプションを使用してバリアントの選択を指定するモデル参照バリアントおよび Variant Subsystem のモデルまたはサブシステムを特定します。

結果と推奨アクション

条件推奨アクション
バリアントの選択をオーバーライドするモデル参照バリアントまたは Variant Subsystem が特定された。アクティブ バリアント オブジェクトを使用してバリアントの選択を指定します。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

参考

「シミュレーションでのアクティブなバリアントの選択」

Variant Subsystem ブロックに変換する Configurable Subsystem ブロックの特定

モデルを検索して、モデル レベルまたはサブシステム レベルで Configurable Subsystem ブロックを特定します。

結果と推奨アクション

条件推奨アクション
Configurable Subsystem ブロックが特定された。互換性の問題を避けるため、これらのブロックを Variant Subsystem ブロックに変換します。「Subsystem ブロックを Variant Subsystem ブロックに変換します。」を参照してください。

機能および制限事項

このチェックはライブラリ モデルで実行できます。

参考

「Model Variants の設定」

関数呼び出し接続の使用をチェックします

関数呼び出しの接続性に適用され、モデルの実行に影響する可能性のあるモデル診断設定をチェックします。

説明

非確定的なモデル実行にならないように、接続性診断の設定をチェックします。

結果と推奨アクション

条件推奨アクション
[診断]、[接続性]、[無効な関数呼び出し接続][なし] または [警告] に設定されています。これは非確定的なモデル実行になる可能性があります。[診断]、[接続性]、[無効な関数呼び出し接続][エラー] に設定します。
[診断]、[接続性]、[コンテキスト依存の入力][すべて無効] または [ローカル設定を利用] に設定されています。これは非確定的なモデル実行になる可能性があります。[診断]、[接続性]、[コンテキスト依存の入力][エラーとしてすべて有効] に設定します。

参考

Function-Call Subsystem

信号ログの保存形式をチェックします

信号ログの保存形式を確認します。

説明

信号ログの保存形式を確認します。信号ログの保存形式 ModelDataLogs は将来のリリースで削除される予定です。新しい機能を使用するには、ModelDataLogs 形式を使用しているすべてのモデルを、Dataset 形式を使用するように更新します。

結果と推奨アクション

条件推奨アクション

モデルの信号ログ形式が [Dataset] に設定されている。

対処不要です。

モデルの信号ログ形式が [ModelDataLogs] に設定されている。

アップグレード アドバイザーを使用して (関数 upgradeadvisor を使用して) モデルで Dataset 形式を使用するようにアップグレードします。[信号ログの保存形式をチェックします] のチェックを有効にして、チェックを実行し、[形式の更新] ボタンをクリックします。

モデルに Model ブロックが含まれている。モデル参照階層内のモデルには、同じ信号ログの保存形式が必要です。

アップグレード アドバイザーを使用して (関数 upgradeadvisor を使用して) モデルで Dataset 形式を使用するようにアップグレードします。[信号ログの保存形式をチェックします] のチェックを有効にして、チェックを実行し、[形式の更新] ボタンをクリックします。

参考

「信号ログ データ形式の指定」

マルチタスク、厳密な型指定、優先順位の低下などの問題について、Data Store Memory ブロックをチェックします

Data Store Memory ブロックに関連するモデル作成の問題を確認します。

説明

マルチタスク データの整合性、厳密な型指定、上位スコープのデータ ストアの優先順位が低くなっていないかどうかを確認します。

結果と推奨アクション

状況推奨アクション
[データ ストア名の重複] のチェックが [なし] または [警告] に設定されている。 [コンフィギュレーション パラメーター] パラメーター ボックスの [診断]、[データ有効性] ペインで 「データ ストア名の重複」 チェックを [エラー] に設定することを検討してください。
データ ストア変数名が次のいずれかで厳密に型指定されていない。
  • Date Store Memory ブロックの [ブロック パラメーター] ダイアログの [信号属性] ペイン。

  • グローバルなデータ ストア名

次の操作のいずれかを実行して、データ型を [自動] 以外に指定します。
  • Date Store Memory ブロックの [ブロック パラメーター] ダイアログの [信号属性] ペインで [Inherit: auto] 以外のデータ型を選択します。

  • グローバルなデータ ストア名を使用している場合は、そのデータ型を Simulink.Signal オブジェクトで指定します。

[マルチタスク データ ストア] のチェックが [なし] または [警告] に設定されている。 [コンフィギュレーション パラメーター] パラメーター ボックスの [診断]、[データ有効性] ペインで 「マルチタスク データ ストア」 チェックを [エラー] に設定することを検討してください。

参考

Data Store ブロックについて読み取り/書き込みの診断が有効であるかどうかをチェックします

モデルのデータ ストア ブロックに対して、読み取り/書き込みの診断順序のチェックをオンにして実行時の問題を検出します。

説明

読み取り/書き込みの診断順序のチェックを確認します。読み取り/書き込み診断を有効にすることで、潜在的な実行時の問題を検出します。

結果と推奨アクション

状況推奨アクション
[書き込み前の読み取りを検出] のチェックが無効になっている。[コンフィギュレーション パラメーター] ダイアログ ボックスの、[診断][データ有効性] ペインで、「書き込み前の読み取りを検出」を有効にすることを検討します。
[読み取り後の書き込みを検出] のチェックが無効になっている。[コンフィギュレーション パラメーター] ダイアログ ボックスの、[診断][データ有効性] ペインで、「読み取り後の書き込みを検出」を有効にすることを検討します。
[書き込み後の書き込みを検出] のチェックが無効になっている。[コンフィギュレーション パラメーター] ダイアログ ボックスの、[診断][データ有効性] ペインで、「書き込み後の書き込みを検出」を有効にすることを検討します。

ヒント

.

  • 実行時の診断を行うと、シミュレーションの速度が大幅に低下することがあります。Simulink でシミュレーション時に警告やエラーが発生しないことを検証したら、[すべて無効] に設定してください。

参考

モデリング エラーに対して Data Store ブロック サンプル時間をチェックします

Data Store ブロックのサンプル時間に起因するモデル作成エラーを特定します。

説明

連続サンプル時間またはゼロ次ホールドのサンプル時間の Data Store ブロックをチェックします。ゼロ次ホールド サンプル時間は、マイナー ステップのサンプル時間で固定です。

結果と推奨アクション

状況推奨アクション
モデル内の Data Store ブロックに、連続サンプル時間またはゼロ次ホールドのサンプル時間がある。リストされたブロックを離散化するか、これらのブロックを Memory ブロック、または Goto ブロックおよび From ブロックと置き換えます。

参考

データ ストア アクセスに関する順序の問題がないかどうかをチェックします

結果の精度を落とす読み取り/書き込みの問題がないか探します。

説明

[ブロック線図の更新] の実行中、Data Store ブロックに書き込み前の読み取り、読み取り後の書き込み、書き込み後の書き込み条件に関連した問題を特定します。

結果と推奨アクション

状況推奨アクション
読み取りと書き込み (書き込み前の読み取りまたは読み取り後の書き込み条件) が順不同で発生している。Data Store Read ブロックが Data Store Write ブロックの前に実行されるようにモデルを再構成することを検討してください。
単一のタイム ステップ内で複数の書き込みが発生している。タイム ステップごとに 1 回だけデータを書き込むようにモデルを変更するか、次のヒントを参照してください。

ヒント

このチェックでは静的な解析が実行されるため、不適切な使い方のすべてのインスタンスが特定されないことがあります。特に、Function-Call Subsystems、Stateflow チャート、コード生成用の MATLAB、For Iterator Subsystems、および For Each Subsystems では、検出漏れや誤検出が生じることがあります。さらに包括的なチェックを行う場合は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断]、[データ有効性] ペインで次の診断を有効にすることを検討してください。「書き込み前の読み取りを検出」「読み取り後の書き込みを検出」「書き込み後の書き込みを検出」 が含まれます。

参考

部分構造体パラメーターの利用状況をバス信号で確認します

バス信号のパラメーター値に部分構造体を使用するブロックを特定します。

説明

このチェックはバス信号にパラメーター値を提供する構造体を比較して、部分構造体を特定します。このチェックでは以下のリストのテーブルが返されます。

  • バス信号のパラメーター値に部分構造体を使用するブロックのパス

  • 部分構造体を使用するブロック パラメーターの名前

[初期値] パラメーターに部分構造体を使用する Simulink.Signal オブジェクトで定義するすべてのデータ ストアの場合、このチェックでは 2 番目のテーブルに以下の情報がリストされます。

  • 信号オブジェクトの名前

  • 信号オブジェクトのワークスペース (MATLAB またはモデル)

  • 部分構造体を使用する信号オブジェクト パラメーターの名前

結果と推奨アクション

状況推奨アクション

部分構造体を使用するブロック

関数 Simulink.Bus.createMATLABStructure を使用して部分構造体パラメーターをリストされているブロックのパラメーター値の完全構造体に変換します。

部分構造体を使用する信号オブジェクト

関数 Simulink.Bus.createMATLABStructure を使用して部分構造体パラメーターをリストされている信号のパラメーター値の完全構造体に変換します。

ヒント

  • ブロック パラメーター値に部分構造体を指定すると、モデル作成の反復処理を行う際に便利です。部分構造体を使用して、バスの信号のサブセットに焦点を当てることができます。

  • コード生成に完全な構造体を指定すると、次のような利点があります。

    • 生成コードが部分構造体用に生成されたコードよりも読みやすい。

    • 未指定の信号を明示的に初期化するモデル作成スタイルをサポートする。部分構造体を使用すると、Simulink は未指定の信号を暗黙的に初期化します。

参考

slDataTypeAndScale の呼び出しをチェック

内部関数 slDataTypeAndScale の呼び出しを識別します。

説明

以前のバージョンの Simulink では、旧バージョンで保存したモデルを開くと、データ型を処理するためにコードの自動アップグレードがトリガーされるものがありました。自動アップグレードによって内部関数 slDataTypeAndScale の呼び出しが挿入されます。Simulink ではこの関数の一部の使用を引き続きサポートしていますが、この関数の呼び出しを削除するとより明確で高速なコードになります。

Simulink は以下の場合の slDataTypeAndScale の呼び出しをサポートしていません。

  • 最初の引数が Simulink.AliasType オブジェクトである。

  • 最初の引数が IsAlias プロパティが true に設定された Simulink.NumericType オブジェクトである。

[slDataTypeAndScale の呼び出しをチェック] を実行すると置き換えが必要であるかまたは推奨される slDataTypeAndScale の呼び出しが識別されます。多くの場合、チェックを実行して推奨アクションに従うと呼び出しが削除されます。残っている呼び出しは無視できます。slDataTypeAndScale への呼び出しが存在しないことを確認していない場合は、チェックを実行します。

結果と推奨アクション

状況推奨アクション
必要な置き換えのケースslDataTypeAndScale の呼び出しを手動または自動で置き換えます。リストされているケースでは slDataTypeAndScale の呼び出しを置き換える必要があります。
推奨される置き換えのケースリストされているケースでは、slDataTypeAndScale への呼び出しを手動または自動で置き換えることを推奨します。
手動検査のケース手動でアップグレードする必要があるかどうかを判断するために、リストされた各ケースを検査します。

ヒント

  • slDataTypeAndScale への呼び出しをモデルに手動で挿入しないでください。この関数は内部的にのみ使用されていました。

  • [slDataTypeAndScale の呼び出しをチェックします] を実行すると、Simulink 関数 slRemoveDataTypeAndScale が呼び出されます。この関数を直接呼び出すとより幅広い変換オプションが提供されます。ただし、より多くの変換オプションが必要になることは非常にまれです。

参考

データ型とスケールのアップグレードの詳細は、MATLAB コマンド ウィンドウで以下のコマンドを実行してください。

  • help slDataTypeAndScale

  • help slRemoveDataTypeAndScale

バスの使用のチェック

バスの生成に使用される Mux ブロックと、ベクトルとして Simulink で扱われるバス信号を特定します。

説明

モデルには、Simulink ソフトウェアが暗黙的にベクトルに変換するバス信号を含めることはできません。代わりに、バス信号とその接続先のブロック入力端子の間に Bus to Vector 変換ブロックを挿入するか、または Simulink.BlockDiagram.addBusToVector コマンドを使用します。

結果と推奨アクション

状況推奨アクション

モデルはバス信号を作成するために Mux ブロックを使用する。

Mux ブロックを Bus Creator ブロックで置き換えます。

モデルは、バスの生成に使用される Mux ブロックを特定するように構成されていない。

[コンフィギュレーション パラメーター] ダイアログ ボックスの[診断][接続性] ペインで、[Mux ブロックをバス信号の作成に使用][エラー] に設定します。

バス信号が暗黙的にベクトルに変換される。

Simulink.BlockDiagram.addBusToVector を使用するか、Bus to Vector ブロックを挿入します。

モデルは、Simulink がベクトルとして扱うバス信号を特定するように構成されていない。

[コンフィギュレーション パラメーター] ダイアログ ボックスの[診断][接続性] ペインで、[ベクトルとして扱われるバス信号][エラー] に設定します。

アクション結果

[変更] をクリックすると、次のいずれかが行われます。

  • Mux ブロックを Bus Creator ブロックで置き換えます。

  • Bus to Vector ブロックを、バス信号をベクトルに暗黙的に変換するブロックの入力端子に挿入します。

ヒント

  • Bus to Vector 変換ブロックは、Simulink/Signal Attributes ライブラリにあります。

  • [Outport と Merge ブロックに対する初期化パラメーターの整合性をチェック] を実行する前に、このチェックを実行してください。

  • 「バス信号として扱われる非バス信号」 診断では、Simulink が暗黙的に非バス信号をバス信号に変換して、Bus Assignment ブロックまたは Bus Selector ブロックへの信号接続をサポートする時を検出します。この診断は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断][接続性] ペインにあります。

参考

潜在的に遅れる Function-Call Subsystem の戻り値をチェックします。

Simulink ソフトウェアによって暗黙的な Signal Conversion ブロックが挿入されたため、潜在的に遅れる関数呼び出しの戻り値を特定します。

説明

Simulink ソフトウェアでは、信号が連続メモリに配置されるように、関数呼び出しイニシエーターのブロック入力端子の前に暗黙的な Signal Conversion ブロックを自動的に挿入できます。これによって、Function-Call Subsystem の呼び出しから信号値を返す際に 1 ステップの遅延が発生する場合があります。この遅延は、Function-Call Subsystem 内の信号ブロックから確実に信号が発生することで回避できます。遅延を許容できる場合は、影響する入力端子の前に Unit Delay ブロックを挿入してください。

結果と推奨アクション

状況推奨アクション
リストされているブロックの入力端子に、暗黙的な Signal Conversion ブロックがある可能性がある。リストされている信号について、信号の戻り値に 1 ステップの遅延を許容できるかどうかを決定します。
  • 遅延が許容されない場合は、Function-Call Subsystem から入力信号が発生するようにモデルを作り直します。

  • 遅延を許容できる場合は、リストされている各入力端子の前に Unit Delay ブロックを挿入してください。

参考

「Signal Conversion」 ブロック

「Unit Delay」 ブロック

連続サンプル時間と浮動小数点でないデータ型をもつブロックの出力信号を特定します。

連続サンプル時間の浮動小数点でない出力信号を特定します。

説明

浮動小数点でない信号では、情報を失うことなく連続変数を正しく表現することができない可能性があります。

結果と推奨アクション

状況推奨アクション
連続サンプル時間信号が浮動小数点でないデータ型である。特定した信号のサンプル時間を離散化するか、または固定マイナー ステップ ([0 1]) に変更します。

参考

「サンプル時間とは」.

Merge ブロックの使用方法のチェック

グループと同じツリー内の Merge ブロックを解析し、Merge ブロックが同じタイム ステップで実行されるかどうかを調べます。

説明

同じツリーの Merge ブロックを直接駆動するブロックは、タイム ステップごとに相互排他的に実行される必要があります。このチェックでは、同じツリーの Merge ブロックを駆動し、同じタイム ステップで実行される可能性のあるブロックを特定します。

入力パラメーター

最大解析時間 (秒)

チェックを実行する最大解析時間を指定します。

結果と推奨アクション

状況推奨アクション
Merge ブロックが相互接続されてツリー構造が形成されている可能性があります。ブロックが、同じツリーの Merge ブロックを駆動しないようにモデルを作り直します。

参考

Outport と Merge ブロックに対する初期化パラメーターの整合性をチェックします。

予期しない初期化動作を招く可能性のあるパラメーター設定をもつ Outport および Merge ブロックを特定し、モデルを簡易初期化モードに移行します。

説明

R2008b 以降のバージョンでは、条件付き実行サブシステム、Merge ブロック、サブシステムの経過時間、および Discrete-Time Integrator ブロックについて簡易初期化モードを選択できます。簡略化された初期化モードにより、シミュレーション結果の整合性が改善します。これは特に、条件付きで実行されるサブシステムの出力端子について初期条件を指定しないモデルと、S-Function に接続されているサブシステムの出力端子を条件付きで実行したモデルについてあてはまります。詳細は、「簡易モードの使用による、クラシック モードの問題の解決」を参照してください。

    メモ:   この整合性チェックを実行する前に、ブロック線図がこの診断によって設定されたモデル作成標準に準拠していることを確認してください。

    1. モデル アドバイザーで [バスの使用方法をチェック] を実行して、Mux ブロックの使用方法をチェックします。

    2. モデル ウィンドウで、[シミュレーション][
      モデル コンフィギュレーション パラメーター]
      [
      診断]
      [接続性] を選択します。

    3. [Mux ブロックをバス信号の作成に使用][エラー] に設定し.、[OK] をクリックします。

    詳細は、「 診断ペイン: 接続性」を参照してください。

このモデル アドバイザー チェックでは、簡易初期化モードを使用している場合に問題の原因となるモデルの設定を特定します。このサブチェックの結果には次の 2 種類のステートメントがあります。"失敗" および "警告"。失敗ステートメントは、簡易初期化モードにモデルを移行する前に手動で対処しなければならない問題を特定します。警告ステートメントは、移行後に起こり得る動作の問題や変化を示します。

モデル アドバイザー整合性チェックを実行した後で [検索の結果] ボタンを選択すると、ライブラリにリンクしたブロックではないブロックにのみ関連したメッセージが表示されます。

    メモ:   これらの変更を元に戻すのは難しいため、簡易初期化モードにモデルを移行する前に、[別名で復元ポイントを保存] 機能を使用してモデルをバックアップしてください。

結果と推奨アクション

状況推奨アクション
Merge ブロックの実行時診断設定をチェックします。
  1. [コンフィギュレーション パラメーター] ダイアログ ボックスの [診断][データ有効性] ペインで、「同じタイム ステップで実行する複数の駆動ブロックを検出」[エラー] に設定します。

  2. このチェックを再び実行する前に、モデルのシミュレーションでエラーがないことを確認します。

allModel ブロックが簡易初期化モードを使用していることを確認します。Model ブロックによって参照されるモデルを簡易初期化モードに移行した後、最上位モデルを移行します。
PIL シミュレーション モードを使用している Model ブロックをチェックします。簡易初期化モードでは、モデル参照のプロセッサ イン ザ ループ (PIL) シミュレーションをサポートしていません。
単入力 Merge ブロックをチェックします。入力信号と Merge ブロックを生成するために使用される両方の Mux ブロックを 1 つの多入力の Merge ブロックに置き換えます。

簡易初期化モードでは、単入力の Merge ブロックはサポートされていません。

不特定の [初期出力] をもつルート Merge ブロックをチェックします。

"root Merge ブロック" の [初期出力] パラメーターの明示的な値を指定しない場合、Simulinkでは出力データ型の既定の初期値を使用します。

ルートの Merge ブロックは、他の Merge ブロックに接続しない出力端子をもつ Merge ブロックです。既定の初期値の詳細は、「信号値の初期化」を参照してください。

ゼロではない入力端子オフセットをもつ Merge ブロックをチェックします。Merge ブロックの [異なる端子幅を許可] パラメーターをクリアします。

    メモ:   本当にマージを必要とする信号要素に対してのみ Merge ブロックを使用することを検討してください。他の要素は、Concatenate ブロックを使用してマージされた要素と組み合わせることができます。

未接続の入力をもっている Merge ブロックまたは非条件付き実行サブシステムからの入力をもっている Merge ブロックをチェックします。Merge ブロックの [入力数] パラメーターを Merge ブロックの入力の数に設定します。各入力を信号に接続しなければなりません。

Merge ブロックの各入力が、条件付き実行サブシステムによって駆動されることを確認します。Merge ブロックは、 Iterator Subsystem や条件付き実行サブシステムではないブロックでは直接駆動できません。

結合された入力または条件付き実行サブシステムの外側で並べ替えられた入力をもつ Merge ブロックをチェックします。Merge ブロック入力信号の任意の組み合わせまたは並べ替えが、条件付き実行サブシステム内で行われていることを確認します。その設計では、Mux、Bus Creator、または Selector などのブロックが使用されることがあります。
一貫しないサンプル時間をもつ Merge ブロックをチェックします。

各 Merge ブロックの入力信号の [サンプル時間] が同じであることを確認します。

同じでない場合、予測できない動作が生じることがあります。このため、簡易初期化モードでは一貫しないサンプル時間を使用できません。

単一のソースによって駆動される複数の入力端子をもつ Merge ブロックをチェックします。Merge ブロックに、同じ条件付き実行サブシステム、または条件付き実行 Model ブロックによって駆動される入力信号が複数含まれていないことを確認します。
信号のバッファー要件が競合する Outport ブロックをチェックします。

Outport ブロックには、標準データ信号と共に、ブロックを介して渡される関数呼び出しトリガーまたは関数呼び出しデータに依存する信号があります。一部の標準データ信号は、対応するサブシステムの出力信号を初期化するために、明示的な信号バッファーを必要としますが、関数呼び出しに関連付けられた信号をバッファリングすると、関数呼び出しのデータ依存性に違反することになります。

関数呼び出しに関連付けられた信号を渡すようにモデルを修正する場合は、別々の Outport ブロックを使用してください。関数呼び出しのデータ依存性違反の例については、例のモデル sl_subsys_semantics を参照してください。

標準データ信号では、次のいずれかの理由で、信号の追加コピーが必要になることがあります。

  • Outport ブロックが上書きできない出力をもつブロックによって駆動されている。Ground ブロックや Constant ブロックがそのようなブロックの例です。

  • Outport ブロックが同じサブシステム、または現在のサブシステム内の入れ子で、異なる初期出力値をもつサブシステムの別の Outport ブロックで同じ信号ソースを共有している。

  • Outport ブロックが Merge ブロックの入力に接続している。

  • Outport ブロックの入力信号の 1 つが明示的な初期値をもつ Simulink.Signal オブジェクトを指定している。

バス信号で駆動され、その [初期出力] 値がスカラーでない Outport ブロックをチェックします。バス信号で駆動される Outport ブロックの場合、従来の初期化モードは初期化モード初期条件 (IC) 構造体をサポートしませんが、簡易初期化モードではサポートします。したがって、モデルを従来のモードから簡易モードに移行する場合は、[初期出力] パラメーターにスカラーを指定します。移行が完了した後に、バス信号のさまざまな要素に対して異なる初期値を指定するには、IC 構造体を使用します。詳細は、「初期条件 (IC) 構造体の作成」を参照してください。
明示的な信号コピーを必要とする Outport ブロックをチェックします。対応するサブシステムの出力信号を初期化するには、Outport ブロックを駆動するバス信号の明示的なコピーが必要です。

Signal Conversion ブロックを Outport ブロックの前に挿入し、Signal Conversion ブロックの Output パラメーターを [バスをコピー] に設定します。

標準データ信号には、次のいずれかの理由で信号の追加コピーが必要になることがあります。

  • 上書きできない出力をもつブロックが Outport ブロックを駆動している。Ground ブロックや Constant ブロックがそのようなブロックの例です。

  • Outport ブロックが同じサブシステム、または現在のサブシステム内の入れ子で、異なる初期出力値をもつサブシステムの別の Outport ブロックで同じ信号ソースを共有している。

  • Outport ブロックが Merge ブロックの入力に接続している。

  • Outport ブロックの入力信号の 1 つが明示的な初期値をもつ Simulink.Signal オブジェクトを指定している。

ブロックがディセーブルになった場合にリセットするよう設定されている Outport ブロックから [初期出力] 値を継承する、マージした Outport ブロックをチェックします。Outport ブロックが Merge ブロックを駆動している場合は、[ディセーブル時の出力] パラメーターを [リセット] に設定しないでください。
入れ子の条件付き実行サブシステムで駆動される、マージされた Outport ブロックをチェックします。Outport ブロックの新しい動作を許容できるかどうかを判断してください。許容できない場合は、簡易初期化モードに移行する前にモデルを変更して、新しい動作に対処してください。
ブロックのディセーブル時にリセットされるマージした Outport ブロックをチェックします。

Outport ブロックの [ディセーブル時の出力] パラメーターを [保持] に設定します。Outport ブロックが Merge ブロックに接続するため、この設定は必要です。

詳細は、「Outport」を参照してください。

無効な初期条件ソースにより未定義となった [初期出力] 値をもっている Outport ブロックをチェックします。

次の動作を許容できることを確認します。

[初期出力] パラメーターが未指定 ([]) の場合、ソース ブロックから初期出力を継承します。Outport ブロックの少なくとも 1 つのソースが初期値を継承するための有効なソースでない場合、ブロックはそのデータ型に既定の初期値を使用します。

簡易初期化モードでは、Outport ブロックで [初期出力] 値を継承できる有効なソースは、Constant、Initial Condition、Merge (初期出力を含む)、Stateflow® チャート、関数呼び出しモデル参照または条件付きで実行されるサブシステム ブロックです。

自動的なレート変換をもつ Outport ブロックをチェックします。

Simulink は Outport ブロックの入力時に Rate Transition ブロックを挿入しました。各 Outport ブロックの [初期出力] パラメーターを指定します。

必要ない場合は、以下の手順を実行します。

  1. [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで、オプション「データ転送に対するレート変換を自動的に取り扱う」をオフにします。

  2. このモデル アドバイザー チェックを再び実行します。

特殊な信号ストレージ要件と未定義の [初期出力] 値をもつ Outport ブロックをチェックします。

次の動作を許容できることを確認します。

Outport ブロックの [初期出力] パラメーターを指定します。この値を [] (空の行列) に設定し、出力データ型の既定の初期値を使用します。

ディセーブル時にリセットされる Outport ブロックの [初期出力] 設定をチェックします。

Outport ブロックの [初期出力] パラメーターを指定します。

ディセーブル時にリセットするように構成されているブロックの [初期出力] 値を指定しなければなりません。

関数呼び出しデータ依存信号を介して渡される Outport ブロックに対する [初期出力] 設定をチェックします。

Outport ブロックの [初期出力] 値は、関数呼び出しデータに依存する信号がそれらを介して渡されるため、指定できません。[初期出力] 値を設定するには、以下の手順を実行します。

  1. Outport ブロックの [初期出力] パラメーターを [] に設定します。

  2. Outport ブロックではなく、データに依存する信号のソースで初期値を指定します。

経過時間を必要とする Iterator Subsystem 内のブロックをチェックします。

Iterator Subsystem 階層内では、2 つの連続した実行の間で経過した時間を保持するサービスを必要とするブロックを使用しないでください。

Iterator Subsystem は、指定されたタイム ステップで複数回実行できるため、経過時間の概念を 2 つの実行間で明確に定義できません。Iterator Subsystem 内でこれらのブロックを使用すると、予期しない動作が発生する可能性があります。

信号オブジェクトを使用して [初期出力] 値を指定する Outport ブロックをチェックします。

次の動作を許容できることを確認します。

簡易初期化モードでは、信号オブジェクトが Outport ブロックの [初期出力] パラメーターを指定できません。Outport ブロックの入力または出力信号は信号オブジェクトを使用して初期化できますが、この初期化結果は、Outport ブロックの初期化結果で上書きされる可能性があります。

    メモ:   条件付き実行サブシステム Outport ブロックを使用して作業している場合は信号オブジェクトの初期値が無視されたという警告が生成されます。

Ground ブロックへ未接続または接続済みのマージした Outport ブロックをチェックします。

次の動作を許容できることを確認します。

Outport ブロックは Merge ブロックを駆動しますが、その入力は接続されていないか、または、Ground ブロックに接続されています。従来の初期化モードでは、未接続の Outport ブロックや Ground に接続された Outport ブロックは、親の条件付き実行サブシステムが実行された場合でも、マージ信号を更新しません。しかし、簡易初期化モードでは、これらの Outport ブロックは、親の条件付き実行サブシステムが実行されると、マージ信号を 0 の値で更新します。

信号オブジェクトを使用して [初期出力] 値を指定する Merge ブロックをチェックします。

次の動作を許容できることを確認します。

簡易初期化モードでは、信号オブジェクトが Merge ブロックの [初期出力] パラメーターを指定できません。信号オブジェクトを使用して Merge ブロックの出力信号を初期化することはできますが、初期化の結果は Merge ブロックの結果で上書きされることがあります。

    メモ:   信号オブジェクトの初期値が無視されたという警告が生成されます。

移行時に入力信号から [初期出力] 値を取得する Outport ブロックをチェックします。

次の動作を許容できることを確認します。

Outport ブロックの [初期出力] パラメーターは、指定されていません。このため、簡易初期化モードは Outport ブロックの [初期出力] 値が入力信号から派生していると仮定します。この仮定の結果、異なる初期化動作が生じることがあります。

この動作が許容できない場合は、簡易初期化モードに移行する前にモデルを変更してください。

明示的な [初期出力] をもっている外部の Outport ブロックをチェックします。

次の動作を許容できることを確認します。

従来の初期化モードでは、Outport ブロックの [初期出力] パラメーターと [ディセーブル時の出力] パラメーターは、ソースの Outport ブロックのパラメーターに一致しなければなりません。

簡易初期化モードでは、Simulink は、[初期出力] パラメーターを [] (空の行列) に設定し、[ディセーブル時の出力] パラメーターを [保持] に設定します。

出力範囲全体に実行コンテキストを伝播する、条件付き実行サブシステムをチェックします。

次の動作を許容できることを確認します。

サブシステムで [サブシステムの境界全体に実行コンテキストの伝播] パラメーターが選択されています。実行コンテキストは入力範囲全体に伝播されますが、簡易初期化モードで初期化が行われるように、出力側では伝播は無効になります。

Discrete-Time Integrator ブロックをチェックします。

次の動作を許容できることを確認します。

Simulink は、簡易初期化モードで、Discrete-Time Integrator ブロックの初期化動作の整合性とロバスト性が高くなるよう変更を加えました。変更点は以下のとおりです。

  • [初期値として初期条件を使用し、次の値をリセット] パラメーターを削除

  • Integrator の出力にのみ [初期条件] パラメーターを適用

  • 有効化/無効化動作の簡略化

Discrete-Time Integrator の簡易初期化の詳細は、Discrete-Time Integrator ブロックのドキュメンテーションを参照してください。

初期化中に条件付き実行サブシステムから入力を読み取るブロックをチェックします。

次の動作を許容できることを確認します。

Discrete-Time Integrator ブロックなどの一部のブロックは、従来の初期化モードで、初期化時に条件付き実行サブシステムから入力を読み取ります。Simulink は最適化手法としてこの手順を実行します。

この最適化は、簡易初期化モードでは実行できません。初期化後の最初のタイム ステップにおける、条件付き実行サブシステムの出力は、対応する Outport ブロックで宣言される初期値とは異なる可能性があるためです。特に、この不一致はサブシステムが最初のタイム ステップでアクティブになる場合に起こります。

移行できないインスタンスをもつライブラリ ブロックをチェックします。各ブロックで失敗したサブチェック結果を調べ、修正対応を判断します。
警告をもつインスタンスがあるライブラリ ブロックをチェックします。簡易初期化モードに移行する前に、各ブロックの警告サブチェック結果を調べます。
[初期出力値のソース] として [ダイアログ] を使用する Outport ブロックに対して移行の競合をチェックします。

ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。

Outport ブロックは現在の設定を維持し、指定された [初期出力] 値を使用します。

[初期出力値のソース] として [入力信号] を使用する Outport ブロックに対して移行の競合をチェックします。

ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。

現在、Outport ブロックは、[初期出力][] (空行列)、[ディセーブル時の出力][保持] を指定しています。これは、各出力端子は初期化を行わないが、暗黙的にソース ブロックに依存して入力信号を初期化することを意味します。

移行後、パラメーター [初期出力の値のソース] は、この動作を反映するために [入力信号] に設定されます。

SimEvents セマンティクスをもつ Outport ブロックに対する移行の競合をチェックします。

ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。

Outport ブロックは引き続き、[初期出力][] (空の行列)、[ディセーブル時の出力][保持] を使用します。Simulink では、親の条件付き実行サブシステムが SimEvents® ブロックに接続しているため、これらの設定を保持します。

可変サイズの入力と未指定の [初期出力] をもつ最も内部の Outport ブロックに対する移行の競合をチェックします。

これらの Outport ブロックでは、ブロックの親のサブシステムが再度有効になった場合にのみ信号サイズが変化します。このため Simulink は暗黙的に [初期出力] パラメーターが未指定の [] であっても、パラメーターはゼロに等しいと仮定します。この結果、パラメーターを指定しない限り、モデル アドバイザーはモデルが簡易初期化モードに移行したときに、パラメーターを明示的にゼロに設定します。

ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。

[初期出力値のソース] として既定のグラウンド値を使用する Outport ブロックに対して移行の競合をチェックします。[初期出力] パラメーターは [] (空の行列) に設定され、Outport の出力は無効な初期条件ソースになります。したがって、ブロックでは既定の初期値を簡易初期化モードの初期出力として使用します。ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、エラーがあるか、別の方法で移行中であるかのいずれかです。
[初期出力] の明示的な仕様をもたずにマージされた Outport ブロックに対して移行の競合をチェックします。各 Outport ブロックの他のインスタンスの別の移行パスについて知りたい場合は、サブチェック [移行できないインスタンスをもつライブラリ ブロック] の結果を調べてください。残りの Outport ブロックではそれぞれ簡易初期化モードで [初期出力][] (空の行列) に設定され、[ディセーブル時の出力][保持] に設定されます。

アクション結果

[設定の変更] をクリックすると、次のような変更が行われます。

  • Model パラメーターが [simplified] に設定されます。

  • Outport ブロックの [初期出力] パラメーターが空の文字列 [] に設定されている場合、SourceOfInitialOutputValue パラメーターは [入力信号] に設定されます。

  • Outport に空の [初期出力] と可変サイズ信号がある場合、[初期出力] はゼロに設定されます。

参考

微分端子を駆動する連続でない信号をチェックします。

微分端子を駆動する連続でない信号を特定します。

説明

微分端子を駆動する連続でない信号は、信号が値を変更するたびにソルバーがリセットされる原因となり、シミュレーションの速度が低下します。

結果と推奨アクション

状況推奨アクション
微分端子を駆動する連続でない信号がモデル内に存在する。
  • 特定された信号を連続信号にします。

  • これらの信号を受ける連続ブロックを、離散状態のブロックに置き換えます。

参考

S-Function に対する実行時の診断

S-Function ブロックがモデル内にある場合、配列範囲とソルバーの整合性をチェックします。

説明

S-Function ブロックが、Simulink の組み込みブロックに適用される ODE ソルバーの整合性ルールに従っているかどうかを検証します。

結果と推奨アクション

状況推奨アクション
[ソルバー データの不整合][なし] に設定されている。[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断] ペインで、[ソルバー データの不整合][警告] または [エラー] に設定します。
[配列範囲の超過][なし] に設定されている。[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断][データ有効性] ペインで、[配列範囲の超過][警告] または [エラー] に設定します。

参考

対象外の文字がないかファイルをチェック

現在のエンコードと互換性のない文字がないかチェックします。

説明

現在のエンコードで表現できない文字がモデル ファイルにないかチェックします。そのような文字があると、シミュレーション時にエラーが発生し、モデルを保存するときに破損する場合があります。

結果と推奨アクション

条件推奨アクション
整合性のない文字が見つかったslCharacterEncoding を使用して、現在のエンコードをモデル ファイルで指定されたエンコードに変更します。現在のエンコードを変更するには、モデルを閉じなければなりません。そうすると、モデル アドバイザーが閉じます。

ヒント

アップグレード アドバイザーのレポートに、必要なエンコードが表示されます。また、以下のコマンドを使用してモデルからエンコードを取得することもできます。

get_param(modelname,'SavedCharacterEncoding')

slCharacterEncoding を使用して、エンコードを変更します。この設定は現在の MATLAB セッションに適用されるので、MATLAB を再起動して同じモデルを開く場合は、現在のエンコードに再度同じ変更を行う必要があります。

詳細は、以下を参照してください。

参考

既知のブロック アップグレード問題に関してモデルをチェックします

関数 slupdate を使用して、一般的なブロックのアップグレードの問題がないかチェックします。

説明

Simulink ソフトウェアの新しいバージョンを使用することで互換性問題が発生しないかどうか、モデルのブロックをチェックします。

結果と推奨アクション

状況推奨アクション
互換性問題があるブロックが見つかった。[変更] をクリックして、検出されたブロックの問題を修正します。
レベル 2 の API S-function の更新状況をチェックする。レベル 1 の S-function をレベル 2 と置き換えます。

アクション結果

[変更] をクリックすると旧バージョンの Simulink からのブロックを最新バージョンに置き換えます。

参考

コンパイル時間情報を必要とする、既知のブロック アップグレード問題についてモデルをチェックします

関数 slupdate を使用して、一般的なブロックのアップグレードの問題がないかチェックします。

説明

Simulink ソフトウェアの新しいバージョンへのアップグレードで互換性問題が発生していないかどうか、ブロックをチェックします。モデルがコンパイル モードにある場合は、いくつかのブロックのアップグレードで一連の情報やデータが必要となります。そのためのチェックとして、モデルはコンパイル モードに設定された後、アップグレードのチェックが行われます。

結果と推奨アクション

状況推奨アクション
モデルは Lookup Table ブロックまたは Lookup Table (2-D) ブロックを含み、こうしたブロックの一部はルックアップ手法 として [入力の最近傍を使用] または [入力の上の値を使用] を指定します。Lookup Table ブロックおよび Lookup Table (2-D) ブロックを n-D Lookup Table ブロックに置き換えます。ルックアップ手法 として [入力の最近傍を使用] および [入力の上の値を使用] は指定せず、その他のオプションを選択します。
モデルは Lookup Table ブロックまたは Lookup Table (2-D) ブロックを含み、こうしたブロックの一部は内挿をするときにまず乗算を行います。Lookup Table ブロックおよび Lookup Table (2-D) ブロックを n-D Lookup Table ブロックに置き換えます。ただし、n-D Lookup Table ブロックが最初に除算を行うため、この置き換えによる結果に数値的な差が現れる可能性があります。
モデルは Lookup Table ブロックまたは Lookup Table (2-D) ブロックを含みます。こうしたブロックの一部は [ルックアップ手法] として [内挿 - 外挿] を指定しますが、これらの入力と出力は同じ浮動小数点型ではありません。Lookup Table ブロックおよび Lookup Table (2-D) ブロックを n-D Lookup Table ブロックに置き換えます。その後、ブロックを置き換えするために外挿法または端子のデータ型を変更してください。

アクション結果

[変更] をクリックすると旧バージョンの Simulink からのブロックを最新バージョンに置き換えます。

参考

モデルが SLX 形式で保存されていることをチェックします

モデルが SLX 形式で保存されているかチェックします。

説明

モデルが SLX 形式で保存されているかチェックします。

結果と推奨アクション

条件推奨アクション
モデルが SLX 形式で保存されていないSimulink の最新機能を使用できるように SLX ファイル形式にアップグレードすることを検討します。

ヒント

Simulink プロジェクトを使用すると、モデルを SLX 形式にアップグレードして、ソース管理でファイル リビジョン履歴を保存できます。「 Simulink プロジェクト」を参照してください。

参考

モデル履歴プロパティのチェック

編集されたモデル履歴プロパティがあるかチェックします。

説明

ソース管理ツールのキーワード代入で使用できる、編集されたモデル履歴プロパティ値があるかどうかモデルをチェックします。このキーワード代入は、SLX ファイル形式とは互換性がありません。

MDL ファイル形式では、ソース管理ツールのキーワード代入を使用できるようにいくつかのモデル プロパティを設定できます。モデルを SLX 形式で保存すると、ソース管理ツールはキーワード代入を実行できません。そのようなキーワード代入からのモデル ファイル内の情報は、MDL ファイルを SLX として最初に保存したときにキャッシュされ、二度と更新されません。それ以降、モデルの [モデル プロパティ] の [履歴] ペインと Model Info ブロックでは、古い情報が表示されることになります。

結果と推奨アクション

条件推奨アクション
モデル履歴プロパティが編集されている手作業または自動でプロパティを既定値にリセットします。リセット ボタンをクリックするか、検査ボタンをクリックしてそれらのプロパティを手作業で変更し、[モデル プロパティ] ダイアログを開いて [履歴] ペインを確認します。

参考

バス信号の作成に使用する Mux ブロックのチェック

バスの生成に使用される Mux ブロックを識別します。

説明

モデルには、バス信号を出力する Mux ブロックを含めることはできません。代わりに、Mux ブロックを Bus Creator ブロックで置き換えます。

結果と推奨アクション

条件推奨アクション

モデルはバス信号を作成するために Mux ブロックを使用する。

Mux ブロックを Bus Creator ブロックで置き換えます。

モデルは、バスの生成に使用される Mux ブロックを特定するように構成されていない。

[コンフィギュレーション パラメーター] ダイアログ ボックスの[診断][接続性] ペインで、[Mux ブロックをバス信号の作成に使用][エラー] に設定します。

アクション結果

[変更] をクリックすると、Mux ブロックは Bus Creator ブロックで置き換えられます。

ヒント

「バス信号として扱われる非バス信号」 診断では、Simulink が暗黙的に非バス信号をバス信号に変換して、Bus Assignment ブロックまたは Bus Selector ブロックへの信号接続をサポートする時を検出します。この診断は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断][接続性] ペインにあります。

参考

アップグレードの問題についてモデル階層を解析します

子モデルをチェックし、順を追ってモデルの階層構造をアップグレードします。

説明

このチェックでは、このモデルの子モデルを特定し、それぞれの子モデルに対して順番にアップグレード アドバイザーの実行を提供します。モデルの階層構造がある場合、それぞれの子モデルをチェックして更新しなければなりません。アップグレード アドバイザーには、これらのタスクを支援するツールが用意されています。

結果と推奨アクション

条件推奨アクション
子モデルが見つかった[次のモデルを解析] をクリックして、現在のアップグレード アドバイザーのセッションを閉じ、階層内の次のモデルでアップグレード アドバイザーを開きます。

ヒント

モデルの階層構造をアップグレードするためのベスト プラクティスは、リーフ モデルからルート モデルまで順に各モデルをチェックしてアップグレードしていくことです。

[次のモデルを解析] をクリックすると、アップグレード アドバイザーは階層内で検出できる最下層のリーフ モデルを開きます。その後の手順で、リーフ モデルからルート モデルに順に階層をアップグレードしていきます。

アップグレード アドバイザーを開くとき、選択されているチェックはコンパイル時の情報を必要とせず、ブロック線図の更新をトリガーしません。既定では、ブロック線図の更新をトリガーするチェックは、実行するように選択されておらず、^ の印が付いています。階層でアップグレード アドバイザーを使用する場合、[次のモデルを解析] を繰り返しクリックして、一連の解析を進めます。

  1. アップグレード アドバイザーは、それぞれのモデルおよびライブラリをリーフからルートに向かって順に開き、コンパイルなしのチェックを選択します。これらのチェックを実行し、推奨されたアクションがある場合はそれを行い、[次のモデルを解析] をクリックして次のモデルを開き、この作業を繰り返します。

  2. 階層のルートに到達すると、アップグレード アドバイザーは各モデルを同じ順序でもう一度開き (ライブラリは開きません)、モデルのコンパイルが必要なチェックのみを選択します。これらのチェックを実行し、推奨されたアクションがある場合はそれを行い、[次のモデルを解析] をクリックして、次のモデルを開きます。階層の先端に到達するまでこれを続行します。

参考

レガシ Aerospace Blockset ブロックのモデルおよびローカル ライブラリをチェック

古くなったまたはサポートされていない FlightGear バージョンを使用するように構成されているブロックをリストします。

説明

このチェックでは、古くなったまたはサポートされていない FlightGear バージョンを使用するように構成されているブロックを検索してリストします。

結果と推奨アクション

条件推奨アクション
古いバージョンの FlightGear で構成されているブロックが検索されます。[Update FlightGear blocks] をクリックして、ブロックの設定をサポートされる最新バージョンの FlightGear に変更します。次に、MATLAB でサポートされる最新バージョンの FlightGear をダウンロードします。

アクション結果

[Update FlightGear blocks] をクリックすると、ブロックの設定がサポートされる最新バージョンの FlightGear に変更されます。

参考

プロモート済みのパラメーターを使用するために、ライブラリでマスク ブロックをチェックし更新します

プロモート済みパラメーターを使用するように更新する必要があるライブラリがあるかチェックします。

説明

このチェックでは、R2011b より前に作成されたライブラリを検索して、プロモート済みパラメーターを使用するように更新する必要があるマスク ブロックがあるか調べます。R2011b 以降は、ブロック パラメーターがプロモートされていないと、リンク付きブロック内の値はライブラリ ブロック内でその値にロックされます。このチェックでは、Subsystem、Model reference、S-Function および M-S-Function のタイプのブロックは除外されます。

結果と推奨アクション

条件推奨アクション
更新する必要があるライブラリが見つかった[更新] をクリックします。ライブラリが更新されたら、チェックを再度実行します。

参考

imread() の不要な関数呼び出しを含むマスク イメージ表示コマンドのチェックおよび更新

チェックによって、関数 imread() の不要な呼び出しを含むマスク イメージ表示コマンドを使用するマスクを識別します。

説明

このチェックでは、関数 imread() の不要な呼び出しを行うマスク表示コマンドを検索し、それらのコマンドを、関数 imread() を呼び出さないマスク表示コマンドで更新します。2013a 以降、RGB の 3 要素行列ではなくイメージ パスによって指定されたマスク イメージに対して、パフォーマンスとメモリの最適化機能を利用できるようになりました。

結果と推奨アクション

条件推奨アクション
関数 imread() の不要な呼び出しを行うマスク表示コマンドが検索されます。[更新] をクリックします。ブロックが更新されたら、チェックを再度実行します。

参考

厳密な単精度の設計に対して問題のある演算を特定

厳密な単精度の設計に対して、倍精度演算が導入されているブロックを識別します。

説明

厳密な単精度の設計に対して、倍精度演算が導入されているブロックを識別します。

結果と推奨アクション

条件推奨アクション
モデルで倍精度浮動小数点演算が検索されます。 以下を検証します。
  • ブロックの入出力データ型が正しく設定されている。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化] ペインで、[指定不足のデータ型の既定値][single] に設定されている。

  • すべてのターゲット固有の数学ライブラリが単精度の実装をサポートしている。

参考

この情報は役に立ちましたか?