このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Simulink のチェック
Simulink のチェックの概要
シミュレーションのモデルを構成するには、Simulink® のモデル アドバイザー チェックを使用します。
参考
モデル アドバイザー チェック (Simulink Coder)
Simulink Check のチェック (Simulink Check)
簡易初期化モードへの移行の概要
簡易初期化モードは、シミュレーション結果の一貫性を向上させるために R2008b で導入されました。このモードは、条件付き実行サブシステムの出力端子の初期条件を指定しないモデルでは特に重要です。詳細については、簡易初期化モードおよびクラシック初期化モードを参照してください。
[簡易初期化モードへの移行] でモデル アドバイザー チェックを使用すると、モデルの簡易初期化モードへの移行に役立ちます。
参考
接続されていないライン、入力端子、出力端子を特定
チェック ID: mathworks.design.UnconnectedLinesPorts
接続されていないラインや端子をチェックします。
説明
このチェックでは、接続されていないラインや端子がリストに表示されます。接続されていないラインや端子があると、データ型、サンプル時間、次元などの信号属性を伝播できない場合があります。
メモ
Ground/Terminator ブロックに接続されている端子は、このテストにパスします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
ライン、入力端子、出力端子が接続されていない。 | 信号を接続します。問題を特定するには、接続されていない項目のリストをダブルクリックします。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check™ ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
ブロックの入力端子または出力端子を示す構造体の配列を取得するには、PortConnectivity
コマンドを使用します。
参考
PortConnectivity
コマンドの詳細は、共通のブロック プロパティを参照してください。
モデル アドバイザーの対象外指定の概要 (Simulink Check)
ルート モデルの Inport ブロックの仕様をチェック
チェック ID: mathworks.design.RootInportSpec
ルート モデルの Inport ブロックで次元、サンプル時間、データ型が完全に定義されていることをチェックします。
説明
次元、サンプル時間、データ型が完全に定義されていないルート モデルの Inport ブロックを使用すると、予期しないシミュレーション結果を招きます。Simulink ソフトウェアでは、明示的にこれらの項目に値を割り当てないと、下流のブロックから次元、サンプル時間、データ型が逆方向に伝播されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
ルートレベルの Inport ブロックに未定義の属性がある。 | ルートレベルの Inport ブロックの属性を定義します。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
次の構成はこのチェックにパスします。
[コンフィギュレーション パラメーター]、[ソルバー]、[周期的なサンプル時間の制約] が
[サンプル時間に依存しない]
に設定されている。エクスポート関数モデルで "継承サンプル時間" のフラグが設定されていない。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
最適化設定をチェック
チェック ID: mathworks.design.OptimizationSettings
最適でないコードの生成やシミュレーションを引き起こす可能性がないかどうか、最適化をチェックします。
説明
このチェックでは、コード効率の向上とシミュレーション時間の短縮を可能にする最適化の状況を確認します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
指定された最適化がオフになっている。 | [コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化] ペインで、以下の最適化チェック ボックスをオンにします。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化] ペインで、以下の最適化チェック ボックスをオンにします。
[コンフィギュレーション パラメーター] ダイアログ ボックスで、以下の最適化チェック ボックスをオンにします。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [最適化] ペインで、以下の最適化チェック ボックスをオンにします。 メモ モデル アドバイザーは、モデルに Stateflow® チャートがある場合のみ、これらのパラメーターをチェックします。
|
アプリケーションのライフスパン (日) が無限に設定されている。これにより、計算コストの高い 64 ビット カウンターが使用される可能性があります。 | このカウンターを使用しない場合は、終了時間を選択します。 |
指定した診断は、モデルのシミュレーションに要する時間を増やす可能性があり、警告 または エラー に設定されている。 | 以下について
|
指定された Embedded Coder® パラメーターがオフになっている。 | Embedded Coder ライセンスがあり、ERT ベースのシステム ターゲット ファイルを使用している場合:
|
ヒント
システムに Model ブロックが含まれ、参照モデルがアクセラレータ モードの場合、モデルをシミュレーションするには、コードの生成とコンパイルが必要です。
チェック
参考
モデル コンフィギュレーション パラメーター: コード生成の最適化 (Simulink Coder)
高速化されたモデル参照シミュレーション中に無視された診断設定をチェック
チェック ID: mathworks.design.ModelRefSIMConfigCompliance
Simulink での高速シミュレーションの実行時にコンフィギュレーション パラメーターの設定が変更される参照モデルがないかどうかをチェックします。
説明
Simulink では、アクセラレータ モードで参照されるモデルについて、[なし]
以外の値に設定されている次のコンフィギュレーション パラメーターの設定を無視します。
配列範囲の超過
[診断] 、 [データ有効性] 、 [Inf または NaN のブロック出力]
[診断] 、 [データ有効性] 、 [特異値行列による除算]
[診断] 、 [データ有効性] 、 [オーバーフロー時にラップ]
また、Simulink では、アクセラレータ モードで参照されるモデルについて、[コンフィギュレーション パラメーター] 、 [診断] 、 [データ有効性] 、 [Data Store Memory ブロック] で次のパラメーターが [すべて無効]
以外の値に設定されている場合、それらの設定も無視します。詳細については、データ ストア診断を参照してください。
書き込み前の読み取りを検出
読み取り後の書き込みを検出
書き込み後の書き込みを検出
結果と推奨アクション
条件 | 推奨アクション |
---|---|
特定された診断の実行結果を表示して、警告またはエラーとして表示される設定を確認する。 | ノーマル モードでモデルのシミュレーションを実行し、診断の警告とエラーを解決します。 |
参照モデルに対して無視されたパラメーター調整情報をチェック
チェック ID: mathworks.design.ParamTunabilityIgnored
[モデル パラメーター設定] ダイアログ ボックスにパラメーター調整情報が含まれているかどうかをチェックします。
説明
[モデル パラメーター設定] ダイアログ ボックスで指定されている調整情報は、Simulink ソフトウェアによって無視されます。このチェックにより、モデルが他のモデルで参照されている場合に、Simulink ソフトウェアによって無視されるパラメーター調整情報を含んでいるモデルを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
無視されるパラメーター調整情報がモデルに含まれている。 | リンクをクリックし、MATLAB® ワークスペースで相当する Simulink パラメーター オブジェクトに変換します。 |
参考
生成されたコードにおける調整可能なキャリブレーション パラメーターの作成 (Simulink Coder)
暗黙的な信号の関連付けをチェック
チェック ID: mathworks.design.ImplicitSignalResolution
指定した信号および状態を Simulink.Signal
オブジェクトに関連付けようとするモデルを特定します。
説明
Simulink ソフトウェアですべての名前付き信号および状態を関連付けるのは効率的ではありません。インクリメンタルなコード生成およびモデル参照の速度が低下します。このチェックでは、暗黙的な信号の関連付けをオフにして強制的に関連付けを行うことのできる信号および状態を特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
一部の信号および状態が関連付けられていない。 | 暗黙的な信号の関連付けをオフにし、関連付けを行うことのできる信号と状態ごとに強制的に関連付けを行います。 |
参考
最適なバーチャル バスをチェック
チェック ID: mathworks.design.OptBusVirtuality
非バーチャルになる可能性のあるバーチャル バスを特定します。これらのバスを非バーチャルにすると、コードの生成効率が向上します。
説明
このチェックでは、サブシステムの境界にまたがるバーチャル バスが組み込まれているブロックを特定します。これらのバスを非バーチャルに変更すると、コードの生成効率が向上します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
サブシステムの境界にまたがるバーチャル バスがブロックで指定されている。 | 強調表示されているバスを非バーチャルに変更します。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
不確かな初期条件をもつ Discrete-Time Integrator ブロックをチェック
チェック ID: mathworks.design.DiscreteTimeIntegratorInitCondition
Initial Condition ブロックにも Constant ブロックにも接続されていない状態端子および初期条件端子のある Discrete-Time Integrator ブロックを特定します。
説明
状態端子および初期条件端子のある Discrete-Time Integrator ブロックは、Initial Condition ブロックまたは Constant ブロックに接続されていない限り、適切に初期化されない可能性があります。この問題は、Discrete-Time Integrator ブロックを使用して 2 次動的システムまたは高次動的システムのモデルを作成する場合に発生する可能性が高くなります。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルの初期化の段階で Discrete-Time Integrator ブロックが初期化されない。 | Constant ブロックまたは Initial Condition ブロックを追加して外部の初期条件端子に接続します。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
IC ブロック
Constant ブロック
モデル アドバイザーの対象外指定の概要 (Simulink Check)
無効なライブラリ リンクを特定
チェック ID: mathworks.design.DisabledLibLinks
モデルの無効なライブラリ リンクを検索します。
説明
ライブラリ リンクが無効になっていると、予期しないシミュレーション結果となる可能性があります。モデルを保存する前に、無効なリンクを関連付けます。
メモ
このチェックは、ブロックのアップグレードについてモデルをチェックと内容が重複する場合があります。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
ライブラリ リンクが無効になっている。 | コンテキスト メニューで [ライブラリ リンク] 、 [リンクの関連付け] オプションをクリックします。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
ライブラリ リンクを見つけるには、モデル ブラウザーを使用します。
リンク切れを有効にするには、モデル内のブロックを右クリックしてコンテキスト メニューを表示します。[ライブラリ リンク] 、 [リンクの関連付け] を選択します。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
モデル参照の境界を越えるバーチャル バスからの多数の関数の引数がないかをチェック
チェック ID: mathworks.design.CheckVirtualBusAcrossModelReferenceArgs
モデル参照の境界を超えるバーチャル バス信号をチェックして、モデル参照の境界を超えてバーチャル バスを使用することで関数の引数の数が大幅に増大する場合にフラグを立てます。
説明
コード生成プロセスの速度を向上させるために、このチェックを使用して生成される関数の引数の数を減少させることができます。チェックによって 1 つの関数に対して多数の引数が生成されるモデルが見つかった場合は [モデルの更新] をクリックしてモデルが生成する引数を減らすように変更できます。
結果と推奨アクション
モデル参照の境界を超えるバーチャル バス信号の結果として多数の関数の引数を生成するメソッドは、コード生成プロセスの速度を低下させます。
条件 | 推奨アクション |
---|---|
このチェックがモデルを変更することで削減できる現在のモデル コンフィギュレーションの多数の引数を生成するメソッドがリストされます。 | [モデルの更新] をクリックします。 |
[モデルの更新] をクリックすると、Inport ブロック パラメーターと Outport ブロック パラメーターがリセットされ、Signal Conversion ブロックが必要に応じて挿入されることで、モデルの生成される関数の引数の数が削減されます。
参考
パラメーター付きのライブラリ リンクを特定
チェック ID: mathworks.design.ParameterizedLibLinks
モデルでパラメーター付きのライブラリ リンクを検索します。
説明
ライブラリ リンクに対して意図的でないパラメーター化が行われると、モデル内で予期しないパラメーター設定を生じる可能性があります。その結果、不適切なモデル処理が行われる場合があります。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
パラメーター付きのリンクがリストされている。 | リンクのパラメーター化が意図されていることを確認します。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
モデル内のブロックを右クリックしてコンテキスト メニューを表示します。
[Link Options]
を選択して[Go To Library Block]
をクリックし、ライブラリの元のブロックを確認します。ライブラリ リンクをパラメーター化するには、コンテキスト メニューから
[Look Under Mask]
を選択し、パラメーターを選択します。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
未解決のライブラリ リンクを特定
チェック ID: mathworks.design.UnresolvedLibLinks
指定のライブラリ ブロックが見つからない、関連付けられていないライブラリ リンクのモデルを検索します。
説明
関連付けられていないライブラリ リンクがないかをチェックします。関連付けられていないライブラリ リンクが存在している場合、モデルのシミュレーションは行われません。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
関連付けられていないライブラリ リンクがある。 | 欠損しているライブラリ ブロックまたは代替ブロックを置きます。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
Variant Subsystem ブロックに変更するための Configurable Subsystem ブロックを特定
チェック ID: mathworks.design.CSStoVSSConvert
モデルを検索して、モデル レベルまたはサブシステム レベルで Configurable Subsystem ブロックを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Configurable Subsystem ブロックが特定された。 | 互換性の問題を避けるため、これらのブロックを Variant Subsystem ブロックに変換します。Configurable Subsystem を参照してください。 |
機能および制限事項
このチェックはライブラリ モデルで実行できます。
参考
Variant Model ブロックを特定し、Model ブロックの選択肢を含む Variant Subsystem に変換
チェック ID: mathworks.design.ConvertMdlrefVarToVSS
モデルを検索して Variant Model ブロックを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルで使用可能な Variant Model ブロックがリストされている。 | これらのブロックを Variant Subsystem ブロックに変換します。 |
参考
空の条件があるバリアント オブジェクトを使用してバリアント ブロックを特定します
チェック ID: mathworks.design.emptyVariantObjects
モデルを検索して、空のバリアント オブジェクトがあるバリアント ブロックまたはライブラリを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
空のバリアント オブジェクトがあるモデルまたはライブラリのバリアント ブロックがリストされている。 | バリアント オブジェクトで有効な条件を使用します。 |
参考
関数呼び出し接続の使用をチェック
チェック ID: mathworks.design.CheckForProperFcnCallUsage
関数呼び出しの接続性に適用され、モデルの実行に影響する可能性のあるモデル診断設定をチェックします。
説明
非確定的なモデル実行にならないように、接続性診断の設定をチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
コンフィギュレーション パラメーターコンテキスト依存の入力は [警告] に設定されます。これは非確定的なモデル実行になる可能性があります。 | コンフィギュレーション パラメーターコンテキスト依存の入力を [エラー] に設定します。 |
参考
マルチタスク、厳密な型指定、優先順位の低下などの問題について、Data Store Memory ブロックをチェック
チェック ID: mathworks.design.DataStoreMemoryBlkIssue
Data Store Memory ブロックに関連するモデル作成の問題を確認します。
説明
マルチタスク データの整合性、厳密な型指定、上位スコープのデータ ストアの優先順位が低くなっていないかどうかを確認します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
[データ ストア名の重複] のチェックが なし または 警告 に設定されている。 | [コンフィギュレーション パラメーター] パラメーター ボックスの [診断]、[データ有効性] ペインで データ ストア名の重複 チェックを エラー に設定することを検討してください。 |
データ ストア変数名が次のいずれかで厳密に型指定されていない。
| 次の操作のいずれかを実行して、データ型を 自動 以外に指定します。
|
[マルチタスク データ ストア] のチェックが なし または 警告 に設定されている。 | [コンフィギュレーション パラメーター] パラメーター ボックスの [診断]、[データ有効性] ペインで マルチタスク データ ストア チェックを エラー に設定することを検討してください。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
Data Store Memory ブロックのストレージ クラス (Simulink Coder)
モデル アドバイザーの対象外指定の概要 (Simulink Check)
Data Store ブロックについて読み取り/書き込みの診断が有効であるかどうかをチェック
チェック ID: mathworks.design.DiagnosticDataStoreBlk
モデルのデータ ストア ブロックに対して、読み取り/書き込みの診断順序のチェックをオンにして実行時の問題を検出します。
説明
読み取り/書き込みの診断順序のチェックを確認します。読み取り/書き込み診断を有効にすることで、潜在的な実行時の問題を検出します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
[書き込み前の読み取りを検出] のチェックが無効になっている。 | [コンフィギュレーション パラメーター] ダイアログ ボックスの、[診断]、[データ有効性] ペインで、書き込み前の読み取りを検出を有効にすることを検討します。 |
[読み取り後の書き込みを検出] のチェックが無効になっている。 | [コンフィギュレーション パラメーター] ダイアログ ボックスの、[診断]、[データ有効性] ペインで、読み取り後の書き込みを検出を有効にすることを検討します。 |
[書き込み後の書き込みを検出] のチェックが無効になっている。 | [コンフィギュレーション パラメーター] ダイアログ ボックスの、[診断]、[データ有効性] ペインで、書き込み後の書き込みを検出を有効にすることを検討します。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
.
実行時の診断を行うと、シミュレーションの速度が大幅に低下することがあります。Simulink でシミュレーション時に警告やエラーが発生しないことを検証したら、
[すべて無効]
に設定してください。
参考
モデリング エラーに対して Data Store ブロック サンプル時間をチェック
チェック ID: mathworks.design.DataStoreBlkSampleTime
Data Store ブロックのサンプル時間に起因するモデル作成エラーを特定します。
説明
連続サンプル時間または固定マイナー ステップのサンプル時間の Data Store ブロックをチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデル内の Data Store ブロックに、連続サンプル時間または固定マイナー ステップのサンプル時間がある。 | リストされたブロックを離散化するか、これらのブロックを Memory ブロック、または Goto ブロックおよび From ブロックと置き換えます。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
データ ストア アクセスに関する順序の問題がないかどうかをチェック
チェック ID: mathworks.design.OrderingDataStoreAccess
結果の精度を落とす読み取り/書き込みの問題がないか探します。
説明
[ブロック線図の更新] の実行中、Data Store ブロックに書き込み前の読み取り、読み取り後の書き込み、書き込み後の書き込み条件に関連した問題を特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
読み取りと書き込み (書き込み前の読み取りまたは読み取り後の書き込み条件) が順不同で発生している。 | Data Store Read ブロックが Data Store Write ブロックの前に実行されるようにモデルを再構成することを検討してください。 |
単一のタイム ステップ内で複数の書き込みが発生している。 | タイム ステップごとに 1 回だけデータを書き込むようにモデルを変更するか、次のヒントを参照してください。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
このチェックでは静的な解析が実行されるため、不適切な使い方のすべてのインスタンスが特定されないことがあります。特に、Function-Call Subsystem、Stateflow チャート、コード生成用の MATLAB、For Iterator Subsystem および For Each Subsystem では、検出漏れや誤検出が生じることがあります。さらに包括的なチェックを行う場合は、[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断]、[データ有効性] ペインで次の診断を有効にすることを検討してください。書き込み前の読み取りを検出、読み取り後の書き込みを検出、書き込み後の書き込みを検出 が含まれます。
参考
バス信号を使った構造体パラメーターの使用のチェック
チェック ID: mathworks.design.MismatchedBusParams
一致しない構造体を使用してバス信号を初期化するブロックと Simulink.Signal
オブジェクトを特定します。
説明
モデルでは、MATLAB 構造体を使用してバス信号を初期化できます。たとえば、Unit Delay ブロックを通してバス信号を渡す場合、[初期条件] パラメーターを構造体に設定できます。構造体を使用したバスの初期化に関する基本情報については、バス要素の初期条件の指定を参照してください。
このチェックを実行し、初期条件構造体の形状や数値データ型をバス信号のものと一致させることで、効率的で読み取り可能なコードが生成されます。これらの特性の一致により不要な明示的型変換が回避され、フィールド単位での構造体代入が、たとえば memcpy
の呼び出しに置き換わります。
部分構造体
このチェックでは、部分構造体を使用してバス信号を初期化するブロックと Simulink.Signal
オブジェクトがリストされます。モデル作成の反復処理中は、部分構造体を使用してバスの信号要素のサブセットに焦点を当てることができます。完成したモデルに対しては、完全な構造体を使用して以下を実行できます。
読み取り可能で効率的なコードを生成する。
未指定の信号を明示的に初期化するモデル作成スタイルをサポートする。部分構造体を使用すると、Simulink は未指定の信号を暗黙的に初期化します。
完全構造体および部分構造体の詳細については、初期化用の完全な構造体の作成および初期化用の部分構造体の作成を参照してください。
データ型の不一致
このチェックによって、初期条件構造体がデータ型の不一致を生じさせるブロックと Simulink.Signal
オブジェクトがリストされます。これらの構造体のフィールドは数値データ型であり、対応するバス信号要素のデータ型と一致しません。
このチェックでは、初期条件のデータ型を入力信号に暗黙的に変換するブロック (Unit Delay ブロックなど) の不一致を検出しません。
生成コード内で調整可能なグローバル構造体として表示されるように初期条件構造体を構成するときは、データ型を一致させることで不要な明示的型変換を回避してください。バス信号用の調整可能な初期条件構造体の生成 (Simulink Coder)を参照してください。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
ブロックまたは信号オブジェクトで部分構造体を使用する | 関数 |
構造体フィールドのデータ型が対応する信号要素のデータ型と一致しない | 構造体を |
参考
レート変換の実行用に Delay ブロック、Unit Delay ブロックおよび Zero-Order Hold ブロックをチェック
チェック ID: mathworks.design.ReplaceZOHDelayByRTB
レート変換に使用されている Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックを特定します。これらのブロックを実際の Rate Transition ブロックに置き換えます。
説明
モデルで Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックを使用して入力信号と出力信号間のレート変換を行う場合、Simulink はこれらのブロックを組み込みの Rate Transition ブロックに内部で置き換えます。コンパイルされたブロック線図では、置き換えられたブロックの左上隅に黄色のシンボルと文字 "RT" が表示されます。この置き換えは、モデルの動作に次のような影響を与える場合があります。
これらのブロックは、信号を遅延させたりゼロ次ホールドを実装したりするためのアルゴズム設計プロパティを失います。代わりに、レート変換動作を得ます。
このモデル化手法は、特定の変換構成 (Delay ブロックおよび Unit Delay blocks ブロックの場合は低速から高速、Zero-Order Hold ブロックの場合は高速から低速) でのみ機能します。ブロックのサンプル時間は遅い方のレート (Delay ブロックおよび Unit Delay ブロックの場合は変換元、Zero-Order Hold ブロックの場合は変換先) と等しくなるように設定します。
下流ブロックまたは上流ブロックのサンプル時間が変更されると、これらの Delay ブロック、Unit Delay ブロックおよび Zero-Order Hold ブロックでレート変換が実行されない可能性があります。たとえば、変換元と変換先のサンプル時間が等しくなるように設定すると、レート変換は停止されます。この場合、ブロックでは元のアルゴリズム設計プロパティが想定されます。
ブロックのサンプル時間で表示されるサンプル時間レートに関する情報は不完全です。データ転送を処理するために、ブロック符号は 2 つの異なるレートで実行されます。ただし、ブロックのサンプル時間とサンプル時間の色分けでは、そのブロックはシングルレートのブロックとして表示されます。サンプル時間情報を使用するツールおよび MATLAB スクリプトの動作は、この情報に基づいたものになります。
代わりの方法として、Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックを実際の Rate Transition ブロックに置き換えることができます。
この手法では、ブロックの動作結果が明確になります。Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックはそのアルゴリズム設計に基づいて機能し、それぞれ信号を遅延させたり保持したりします。Rate Transition ブロックのみが実際のレート変換を実行します。
レート変換に実際の Rate Transition ブロックを使用すると、確定的動作または実装するメモリ バッファーのタイプを指定する必要がある場合にデータ転送を処理するための構成可能なソリューションが実現します。
このチェックを使用して、信号間のレート変換を行うために Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックが内部で置き換えられるモデル内のインスタンスを特定します。[モデルのアップグレード] をクリックして、これらのブロックを実際の Rate Transition ブロックに置き換えます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
レート変換に使用する Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックのインスタンスがモデルに含まれていない。 | 対処不要です。 |
レート変換に使用する Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックのインスタンスがモデルに含まれている。 | このチェックによってこれらのインスタンスが特定され、モデルをアップグレードできます。
|
Delay ブロック、Unit Delay ブロックまたは Zero-Order Hold ブロックを実際の Rate Transition ブロックに置き換えない場合、Simulink は引き続き、これらのブロックを組み込みのレート変換ブロックに内部で置き換えます。
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
slDataTypeAndScale の呼び出しをチェック
チェック ID: mathworks.design.CallslDataTypeAndScale
内部関数 slDataTypeAndScale
の呼び出しを識別します。
説明
以前のバージョンの Simulink では、旧バージョンで保存したモデルを開くと、データ型を処理するためにコードの自動アップグレードがトリガーされるものがありました。自動アップグレードによって内部関数 slDataTypeAndScale
の呼び出しが挿入されます。Simulink ではこの関数の一部の使用を引き続きサポートしていますが、この関数の呼び出しを削除するとより明確で高速なコードになります。
Simulink は以下の場合の slDataTypeAndScale
の呼び出しをサポートしていません。
最初の引数が
Simulink.AliasType
オブジェクトである。最初の引数が
IsAlias
プロパティが true に設定されたSimulink.NumericType
オブジェクトである。
[slDataTypeAndScale の呼び出しをチェック] を実行すると置き換えが必要であるかまたは推奨される slDataTypeAndScale
の呼び出しが識別されます。多くの場合、チェックを実行して推奨アクションに従うと呼び出しが削除されます。残っている呼び出しは無視できます。slDataTypeAndScale
への呼び出しが存在しないことを確認していない場合は、チェックを実行します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
必要な置き換えのケース | slDataTypeAndScale の呼び出しを手動または自動で置き換えます。リストされているケースでは slDataTypeAndScale の呼び出しを置き換える必要があります。 |
推奨される置き換えのケース | リストされているケースでは、slDataTypeAndScale への呼び出しを手動または自動で置き換えることを推奨します。 |
手動検査のケース | 手動でアップグレードする必要があるかどうかを判断するために、リストされた各ケースを検査します。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
ヒント
slDataTypeAndScale
への呼び出しをモデルに手動で挿入しないでください。この関数は内部的にのみ使用されていました。[slDataTypeAndScale の呼び出しをチェックします] を実行すると、Simulink 関数
slRemoveDataTypeAndScale
が呼び出されます。この関数を直接呼び出すとより幅広い変換オプションが提供されます。ただし、より多くの変換オプションが必要になることは非常にまれです。
参考
データ型とスケールのアップグレードの詳細は、MATLAB コマンド ウィンドウで以下のコマンドを実行してください。
help slDataTypeAndScale
help slRemoveDataTypeAndScale
モデル アドバイザーの対象外指定の概要 (Simulink Check)
ベクトルとして扱われるバス信号のチェック
チェック ID: mathworks.design.BusTreatedAsVector
Simulink によってベクトルとして扱われるバス信号を特定します。
説明
Simulink ソフトウェアによって暗黙的にベクトルに変換されるバス信号を使用することはできません。代わりに、バス信号とその接続先のブロック入力端子の間に Bus to Vector 変換ブロックを挿入するか、または Simulink.BlockDiagram.addBusToVector
コマンドを使用します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
バス信号が暗黙的にベクトルに変換される。 |
|
Simulink によってベクトルとして扱われるバス信号を特定するようにモデルが構成されていない。 | [コンフィギュレーション パラメーター] ダイアログ ボックスの[診断]、[接続性] ペインで、[ベクトルとして扱われるバス信号] を |
アクション結果
[変更] をクリックすると、Bus to Vector ブロックが、バス信号をベクトルに暗黙的に変換するブロックの入力端子に挿入されます。
ヒント
[Outport と Merge ブロックに対する初期化パラメーターの整合性をチェック] を実行する前に、このチェックを実行してください。
詳細については、自動バス変換の特定を参照してください。
参考
潜在的に遅れる Function-Call Subsystem の戻り値をチェック
チェック ID: mathworks.design.DelayedFcnCallSubsys
Simulink ソフトウェアによって暗黙的な Signal Conversion ブロックが挿入されたため、潜在的に遅れる関数呼び出しの戻り値を特定します。
説明
Simulink ソフトウェアでは、信号が連続メモリに配置されるように、関数呼び出しイニシエーターのブロック入力端子の前に暗黙的な Signal Conversion ブロックを自動的に挿入できます。これによって、Function-Call Subsystem の呼び出しから信号値を返す際に 1 ステップの遅延が発生する場合があります。この遅延は、Function-Call Subsystem 内の信号ブロックから確実に信号が発生することで回避できます。遅延を許容できる場合は、影響する入力端子の前に Unit Delay ブロックを挿入してください。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
リストされているブロックの入力端子に、暗黙的な Signal Conversion ブロックがある可能性がある。 | リストされている信号について、信号の戻り値に 1 ステップの遅延を許容できるかどうかを決定します。
|
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
Signal Conversion ブロック
Unit Delay ブロック
モデル アドバイザーの対象外指定の概要 (Simulink Check)
連続サンプル時間と浮動小数点でないデータ型をもつブロックの出力信号を特定
チェック ID: mathworks.design.OutputSignalSampleTime
連続サンプル時間の浮動小数点でない出力信号を特定します。
説明
浮動小数点でない信号では、情報を失うことなく連続変数を正しく表現することができない可能性があります。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
連続サンプル時間信号が浮動小数点でないデータ型である。 | 特定した信号のサンプル時間を離散化するか、または固定マイナー ステップ ([0 1]) に変更します。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
Merge ブロックの使用をチェック
チェック ID: mathworks.design.MergeBlkUsage
予期しない動作につながる可能性のあるパラメーター設定の Merge ブロックを特定し、モデルの簡易初期化モードへの移行を支援します。
メモ
このチェックは簡易初期化モードへの移行の概要の他のチェックと一緒に実行してください。
説明
簡易初期化モードは、シミュレーション結果の一貫性を向上させるために R2008b で導入されました。詳細については、簡易初期化モードおよびクラシック初期化モードを参照してください。
このモデル アドバイザー チェックでは、クラシック初期化モードを使用する場合に問題を生じる可能性があるモデル内のMergeブロックの設定を特定します。また、Merge ブロックが一貫した動作を行うための設定を提案します。このサブチェックの結果には次の 2 種類のステートメントがあります。失敗と警告です。失敗ステートメントは、簡易初期化モードにモデルを移行する前に手動で対処しなければならない問題を特定します。警告ステートメントは、移行後に起こり得る動作の問題や変化を特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Merge ブロックの実行時診断設定をチェックします。 |
|
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 ブロックに、同じ条件付き実行サブシステム、または条件付き実行 Model ブロックによって駆動される入力信号が複数含まれていないことを確認します。 |
信号オブジェクトを使用して [初期出力] 値を指定する Merge ブロックをチェックします。 | 次の動作を許容できることを確認します。 簡易初期化モードでは、信号オブジェクトが Merge ブロックの [初期出力] パラメーターを指定できません。信号オブジェクトを使用して Merge ブロックの出力信号を初期化することはできますが、初期化の結果は Merge ブロックの結果で上書きされることがあります。 メモ Simulink では信号オブジェクトの初期値が無視されたという警告が生成されます。 |
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
Outport ブロックの使用をチェック
チェック ID: mathworks.design.InitParamOutportMergeBlk
予期しない動作につながる可能性のあるパラメーター設定の Outport ブロックと条件付きサブシステムを特定し、モデルの簡易初期化モードへの移行を支援します。
メモ
このチェックは簡易初期化モードへの移行の概要の他のチェックと一緒に実行してください。
説明
簡易初期化モードは、シミュレーション結果の一貫性を向上させるために R2008b で導入されました。このモードは、条件付き実行サブシステムの出力端子の初期条件を指定しないモデルでは特に重要です。詳細については、簡易初期化モードおよびクラシック初期化モードを参照してください。
このモデル アドバイザー チェックでは、簡易初期化モードを使用する場合に問題を生じる可能性があるモデル内の Outport ブロックと条件付きサブシステムを特定します。また、Outport ブロックが一貫した動作を行うための設定を提案します。このサブチェックの結果には次の 2 種類のステートメントがあります。失敗と警告です。失敗ステートメントは、簡易初期化モードにモデルを移行する前に手動で対処しなければならない問題を特定します。警告ステートメントは、移行後に起こり得る動作の問題や変化を特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
経過時間を必要とする反復サブシステム内のブロックをチェックします。 | 反復サブシステム階層内では、2 つの連続した実行の間で経過した時間を保持するサービスを必要とするブロックを使用しないでください。 反復サブシステムは、指定されたタイム ステップで複数回実行できるため、経過時間の概念を 2 つの実行間で明確に定義できません。反復サブシステム内でこれらのブロックを使用すると、予期しない動作が発生する可能性があります。 |
信号のバッファー要件が競合する Outport ブロックをチェックします。 | Outport ブロックには、標準データ信号と共に、ブロックを介して渡される関数呼び出しトリガーまたは関数呼び出しデータに依存する信号があります。一部の標準データ信号は、対応するサブシステムの出力信号を初期化するために、明示的な信号バッファーを必要としますが、関数呼び出しに関連付けられた信号をバッファリングすると、関数呼び出しのデータ依存性に違反することになります。 関数呼び出しに関連付けられた信号を渡すようにモデルを修正する場合は、別々の Outport ブロックを使用してください。関数呼び出しのデータ依存性違反の例については、Simulink Subsystem のセマンティクスを参照してください。 標準データ信号では、次のいずれかの理由で、信号の追加コピーが必要になることがあります。
|
バス信号で駆動され、その [初期出力] 値がスカラーでない Outport ブロックをチェックします。 | バス信号で駆動される Outport ブロックの場合、クラシック初期化モードは初期化モード初期条件 (IC) 構造体をサポートしませんが、簡易初期化モードではサポートします。したがって、モデルを従来のモードから簡易モードに移行する場合は、[初期出力] パラメーターにスカラーを指定します。移行が完了した後に、バス信号のさまざまな要素に対して異なる初期値を指定するには、IC 構造体を使用します。詳細については、初期条件構造体の作成を参照してください。 |
明示的な信号コピーを必要とする Outport ブロックをチェックします。 | 対応するサブシステムの出力信号を初期化するには、Outport ブロックを駆動するバス信号の明示的なコピーが必要です。Signal Conversion ブロックを Outport ブロックの前に挿入し、Signal Conversion ブロックの [出力] パラメーターを 標準データ信号には、次のいずれかの理由で信号の追加コピーが必要になることがあります。
|
ブロックがディセーブルになった場合にリセットするよう設定されている Outport ブロックから [初期出力] 値を継承する、マージした Outport ブロックをチェックします。 | Outport ブロックが Merge ブロックを駆動している場合は、[ディセーブル時の出力] パラメーターを [リセット] に設定しないでください。 |
入れ子の条件付き実行サブシステムで駆動される、マージされた Outport ブロックをチェックします。 | Outport ブロックの新しい動作を許容できるかどうかを判断してください。許容できない場合は、簡易初期化モードに移行する前にモデルを変更して、新しい動作に対処してください。 |
ブロックのディセーブル時にリセットされるマージした Outport ブロックをチェックします。 | Outport ブロックの [ディセーブル時の出力] パラメーターを 詳細については、Outport を参照してください。 |
無効な初期条件ソースにより未定義となった [初期出力] 値をもっている Outport ブロックをチェックします。 | 次の動作を許容できることを確認します。 [初期出力] パラメーターが未指定 ( 簡易初期化モードの場合、Outport ブロックが [初期出力] 値を継承できる有効なソースは次のとおりです。Constant ブロック、Initial Condition ブロック、Merge (初期出力をもつ) ブロック、Stateflow チャート、関数呼び出しモデル参照または条件付き実行サブシステム ブロック。 |
自動的なレート変換をもつ Outport ブロックをチェックします。 | Simulink は Outport ブロックの入力時に Rate Transition ブロックを挿入しました。各 Outport ブロックの [初期出力] パラメーターを指定します。 必要ない場合は、以下の手順を実行します。
|
特殊な信号ストレージ要件と未定義の [初期出力] 値をもつ Outport ブロックをチェックします。 | 次の動作を許容できることを確認します。 Outport ブロックの [初期出力] パラメーターを指定します。この値を |
ディセーブル時にリセットされる Outport ブロックの [初期出力] 設定をチェックします。 | Outport ブロックの [初期出力] パラメーターを指定します。 ディセーブル時にリセットするように構成されているブロックの [初期出力] 値を指定しなければなりません。 |
関数呼び出しデータ依存信号をパス スルーする Outport ブロックに対する [初期出力] 設定をチェックします。 | Outport ブロックの [初期出力] 値は、関数呼び出しデータに依存する信号がそれらを介して渡されるため、指定できません。[初期出力] 値を設定するには、以下の手順を実行します。
|
信号オブジェクトを使用して [初期出力] 値を指定する Outport ブロックをチェックします。 | 次の動作を許容できることを確認します。 簡易初期化モードでは、信号オブジェクトが Outport ブロックの [初期出力] パラメーターを指定できません。Outport ブロックの入力または出力信号は信号オブジェクトを使用して初期化できますが、この初期化結果は、Outport ブロックの初期化結果で上書きされる可能性があります。 メモ 条件付き実行サブシステム Outport ブロックを使用して作業している場合、Simulink では信号オブジェクトの初期値が無視されたという警告が生成されます。 |
警告をもつインスタンスがあるライブラリ ブロックをチェックします。 | 簡易初期化モードに移行する前に、各ブロックの警告サブチェック結果を調べます。 |
Ground ブロックへ未接続または接続済みのマージした Outport ブロックをチェックします。 | 次の動作を許容できることを確認します。 Outport ブロックは Merge ブロックを駆動しますが、その入力は接続されていないか、または、Ground ブロックに接続されています。クラシック初期化モードでは、未接続の Outport ブロックや Ground に接続された Outport ブロックは、親の条件付き実行サブシステムが実行された場合でも、マージ信号を更新しません。しかし、簡易初期化モードでは、これらの Outport ブロックは、親の条件付き実行サブシステムが実行されると、マージ信号を 0 の値で更新します。 |
移行時に入力信号から [初期出力] 値を取得する Outport ブロックをチェックします。 | 次の動作を許容できることを確認します。 Outport ブロックの [初期出力] パラメーターは、指定されていません。このため、簡易初期化モードは Outport ブロックの [初期出力] 値が入力信号から派生していると仮定します。この仮定の結果、異なる初期化動作が生じることがあります。 この動作が許容できない場合は、簡易初期化モードに移行する前にモデルを変更してください。 |
明示的な [初期出力] をもっている外部の Outport ブロックをチェックします。 | 次の動作を許容できることを確認します。 クラシック初期化モードでは、Outport ブロックの [初期出力] パラメーターと [ディセーブル時の出力] パラメーターは、ソースの Outport ブロックのパラメーターに一致しなければなりません。 簡易初期化モードでは、Simulink は、外部の Outport ブロックの [初期出力] パラメーターを |
初期化中に条件付き実行サブシステムから入力を読み取るブロックをチェックします。 | 次の動作を許容できることを確認します。 Discrete-Time Integrator ブロックなどの一部のブロックは、クラシック初期化モードで、初期化時に条件付き実行サブシステムから入力を読み取ります。Simulink は最適化手法としてこの手順を実行します。 この最適化は、簡易初期化モードでは実行できません。初期化後の最初のタイム ステップにおける、条件付き実行サブシステムの出力は、対応する Outport ブロックで宣言される初期値とは異なる可能性があるためです。特に、この不一致はサブシステムが最初のタイム ステップでアクティブになる場合に起こります。 |
[初期出力値のソース] として [ダイアログ] を使用する Outport ブロックに対して移行の競合をチェックします。 | ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。 Outport ブロックは現在の設定を維持し、指定された [初期出力] 値を使用します。 |
[初期出力値のソース] として [入力信号] を使用する Outport ブロックに対して移行の競合をチェックします。 | ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。 現在、Outport ブロックは、[初期出力] に 移行後、パラメーター [初期出力の値のソース] は、この動作を反映するために |
SimEvents® セマンティクスをもつ Outport ブロックに対する移行の競合をチェックします。 | ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。 Outport ブロックは引き続き、[初期出力] に |
可変サイズの入力と未指定の [初期出力] をもつ最も内部の Outport ブロックに対する移行の競合をチェックします。 | これらの Outport ブロックでは、ブロックの親のサブシステムが再度有効になった場合にのみ信号サイズが変化します。このため Simulink は暗黙的に [初期出力] パラメーターが未指定の [] であっても、パラメーターはゼロに等しいと仮定します。この結果、パラメーターを指定しない限り、モデル アドバイザーはモデルが簡易初期化モードに移行したときに、パラメーターを明示的にゼロに設定します。 ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、移行できないか、別の方法で移行中であるかのいずれかです。[移行できないインスタンスをもつライブラリ ブロックをチェックします] の結果を確認して、各 Outport ブロックの他のインスタンスの別の移行パスについて調べます。 |
[初期出力値のソース] として既定のグラウンド値を使用する Outport ブロックに対して移行の競合をチェックします。 | [初期出力] パラメーターは [] (空の行列) に設定され、Outport の出力は無効な初期条件ソースになります。したがって、ブロックでは既定の初期値を簡易初期化モードの初期出力として使用します。ライブラリ リンクが同じ Outport ブロックの他のインスタンスは、エラーがあるか、別の方法で移行中であるかのいずれかです。 |
[初期出力] の明示的な仕様をもたずにマージされた Outport ブロックに対して移行の競合をチェックします。 | 各 Outport ブロックの他のインスタンスの別の移行パスについて知りたい場合は、サブチェック [移行できないインスタンスをもつライブラリ ブロック] の結果を調べてください。残りの Outport ブロックではそれぞれ簡易初期化モードで [初期出力] が [] (空の行列) に設定され、[ディセーブル時の出力] が 保持 に設定されます。 |
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
Discrete-Time Integrator ブロックの使用をチェック
チェック ID: mathworks.design.DiscreteBlock
予期しない動作につながる可能性のあるパラメーター設定の Discrete-Time Integrator ブロックを特定し、モデルの簡易初期化モードへの移行を支援します。
メモ
このチェックは簡易初期化モードへの移行の概要の他のチェックと一緒に実行してください。
説明
簡易初期化モードは、シミュレーション結果の一貫性を向上させるために R2008b で導入されました。詳細については、簡易初期化モードおよびクラシック初期化モードを参照してください。
このモデル アドバイザー チェックでは、簡易初期化モードを使用する場合に問題を生じる可能性があるモデル内の Discrete-Time Integrator ブロックの設定を特定します。また、Discrete-Time Integrator ブロックが一貫した動作を行うための設定を提案します。このサブチェックの結果には次の 2 種類のステートメントがあります。失敗と警告です。失敗ステートメントは、簡易初期化モードにモデルを移行する前に手動で対処しなければならない問題を特定します。警告ステートメントは、移行後に起こり得る動作の問題や変化を特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
[初期条件設定] パラメーターが | Discrete-Time Integrator ブロックの新しい動作を許容できるかどうかを判断してください。許容できない場合は、簡易初期化モードに移行する前にモデルを変更して、新しい動作に対処してください。 |
[初期条件設定] パラメーターが | ブロックに対して周期的なサンプル時間を使用するか、[初期条件設定] を |
経過時間を必要とする反復サブシステム内のブロックをチェックします。 | 反復サブシステム階層内では、2 つの連続した実行の間で経過した時間を保持するサービスを必要とするブロックを使用しないでください。 反復サブシステムは、指定されたタイム ステップで複数回実行できるため、経過時間の概念を 2 つの実行間で明確に定義できません。反復サブシステム内でこれらのブロックを使用すると、予期しない動作が発生する可能性があります。 |
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
簡易初期化モードに移行するためのモデル設定をチェック
メモ
このチェックは単独で実行しないでください。このチェックは簡易初期化モードへの移行の概要の他のチェックと一緒に実行してください。
チェック ID: mathworks.design.ModelLevelMessages
予期しない動作につながる可能性のある Model ブロックの設定とモデル コンフィギュレーション パラメーターを特定し、モデルの簡易初期化モードへの移行を支援します。
説明
簡易初期化モードは、シミュレーション結果の一貫性を向上させるために R2008b で導入されました。詳細については、簡易初期化モードおよびクラシック初期化モードを参照してください。
このモデル アドバイザー チェックでは、簡易初期化モードへ移行する場合に問題を生じる可能性があるモデル コンフィギュレーション パラメーターとモデル内の Model ブロックの問題を特定します。このサブチェックの結果には次の 2 種類のステートメントがあります。失敗と警告です。失敗ステートメントは、簡易初期化モードにモデルを移行する前に手動で対処しなければならない問題を特定します。警告ステートメントは、移行後に起こり得る動作の問題や変化を特定します。
このモデル アドバイザー整合性チェックを実行した後で [結果の探索] ボタンをクリックすると、メッセージはライブラリリンク以外のブロックにのみ関係します。
メモ
これらの変更を元に戻すのは難しいため、簡易初期化モードにモデルを移行する前に、[ファイル] 、 [別名で復元ポイントを保存] を選択してモデルをバックアップしてください。
詳細については、モデル コンフィギュレーション パラメーター: 接続性の診断を参照してください。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
すべての Model ブロックが簡易初期化モードを使用していることを確認します。 | Model ブロックによって参照されるモデルを簡易初期化モードに移行した後、最上位モデルを移行します。 |
簡易初期化モード設定を確認 | [コンフィギュレーション パラメーター] 、 [指定不足の初期化の検出] を |
アクション結果
[設定の変更] をクリックすると、次のような変更が行われます。
Model パラメーターが
[simplified]
に設定されます。Outport ブロックの [初期出力] パラメーターが空の文字ベクトル
[]
に設定されている場合、SourceOfInitialOutputValue
パラメーターは [入力信号] に設定されます。Outport に空の [初期出力] と可変サイズ信号がある場合、[初期出力] はゼロに設定されます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
モデルでの S-Function のチェック
チェック ID: mathworks.design.SFuncAnalyzer
Simulink モデルまたはサブシステムで S-Function の品質チェックを実行します。
説明
S-Function アナライザーは、指定されたモデルの改良点や潜在的な問題を特定するために S-Function の品質チェックを実行します。このチェックでは、ソース コードが現在のフォルダーにない場合など、ビルド依存関係を自動で派生できない場合にエラーが表示されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
連続状態が mdlOutputs メソッドで変更される。 | メジャー タイム ステップで連続状態を変更し、S-Function コードで関数 ssSetSolverNeedsReset を使用します。 |
連続状態が mdlUpdate メソッドで変更される。 | メジャー タイム ステップで連続状態のみ変更し、S-Function コードで関数 ssSetSolverNeedsReset を使用します。 |
S-Function の離散状態がマイナー ステップで mdlOutputs で変更される。 | 関数 ssIsMajorTimeStep によってガードされるメジャー ステップのみで離散状態を変更します。 |
S-Function モード ベクトルがマイナー ステップで mdlOutputs メソッドで変更される。 | 関数 sslsMajorTimeStep によってガードされるメジャー ステップのみでモード ベクトルを変更します。 |
S-Function が内部状態を宣言するために静的変数またはグローバル変数を使用している。 | 関数 ssSetNumDiscStates またはデータ ストアの作成によるグローバル データのモデル化を使用して状態を明示的に宣言します。 |
S-Function には連続状態があるが、サンプル時間は連続と宣言されていない。 | 関数 ssSetSampleTime を使用して連続サンプル時間を指定します。 |
S-Function には離散状態があるが、mdlOutputs メソッドと mdlUpdate メソッドが組み合わされている。 | mdlOutputs メソッドと mdlUpdate メソッドを個別に定義して、mdlUpdate メソッドのみで離散状態を変更します。 |
状態のようなデータまたは複数のサンプル時間がある場合に、S-Function は SS_OPTION_CAN_BE_CALLED_CONDITIONALLY オプションを設定します。 | S-Function に状態のようなデータまたは複数のサンプル時間がある場合、オプションを削除します。 |
MEX コンパイラがマシンに存在しません。 | マシンに存在しているかを確認するか、MEX コンパイラをインストールします。 |
モデルのコンパイル中に S-Function でエラーが発生する。 | [診断ビューアー] 出力を確認してモデルを再コンパイルします。 |
微分端子を駆動する連続でない信号をチェック
チェック ID: mathworks.design.NonContSigDerivPort
微分端子を駆動する連続でない信号を特定します。
説明
微分端子を駆動する連続でない信号は、信号が値を変更するたびにソルバーがリセットされる原因となり、シミュレーションの速度が低下します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
微分端子を駆動する連続でない信号がモデル内に存在する。 |
|
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
S-Function に対する実行時の診断
チェック ID: mathworks.design.DiagnosticSFcn
S-Function ブロックがモデル内にある場合、配列範囲とソルバーの整合性をチェックします。
説明
S-Function ブロックが、Simulink の組み込みブロックに適用される ODE ソルバーの整合性ルールに従っているかどうかを検証します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
[ソルバー データの不整合] が なし に設定されている。 | [コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー データの不整合] を [警告] または [エラー] に設定します。 |
[配列範囲の超過] が なし に設定されている。 | [コンフィギュレーション パラメーター] ダイアログ ボックスで、[配列範囲の超過] を [警告] または [エラー] に設定します。 |
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
モデル内の単位の不一致を特定
チェック ID: mathworks.design.UnitMismatches
モデル内の端子間で単位が一致していないインスタンスを特定します。
説明
モデル内の端子間で単位が一致していないインスタンスをチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
単位の不一致が見つかった | 一致していない単位設定のうちの 1 つを変更し、別の端子の単位設定に合わせます。 |
参考
モデル内の自動単位変換を特定
チェック ID: mathworks.design.AutoUnitConversions
モデル内の自動単位変換のインスタンスを特定します。
説明
モデル内の自動単位変換のインスタンスを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
自動単位変換が見つかった | 変換された単位が、そのモデルに対して想定されていた単位であるか確認します。 |
参考
モデル内の許可されていない単位系を特定
チェック ID: mathworks.design.DisallowedUnitSystems
モデル内の許可されていない単位系のインスタンスを特定します。
説明
モデル内の許可されていない単位系のインスタンスを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
許可されていない単位系が見つかった | 構成された単位系に適合する単位を選択するか、別の単位系を選択します。詳細については、単位系の制限を参照してください。 |
参考
モデル内の未定義の単位を特定
チェック ID: mathworks.design.UndefinedUnits
モデル内にある、単位データベースで定義されていない単位仕様のインスタンスを特定します。
説明
モデル内にある、単位データベースで定義されていない単位仕様のインスタンスを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
未定義の単位が見つかった | その単位を Simulink がサポートする単位に変更します。 |
参考
モデル内のあいまいな単位を特定
チェック ID: mathworks.design.AmbiguousUnits
単位データベース内やモデル内で重複した単位名など、あいまいな単位の仕様のインスタンスを特定します。
説明
単位データベース内やモデル内で重複した単位名など、あいまいな単位の仕様のインスタンスを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
あいまいな単位が見つかった | 警告を無視するか、形式 unit_system::unit_name を使用して対応する単位系で単位を指定することができます。 |
参考
ブロックのアップグレードについてモデルをチェック
チェック ID: mathworks.design.Update
一般的なブロックのアップグレードの問題がないかチェックします。
説明
Simulink ソフトウェアの新しいバージョンを使用することで互換性問題が発生しないかどうか、モデルのブロックをチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
互換性問題があるブロックが見つかった。 | [変更] をクリックして、検出されたブロックの問題を修正します。 |
レベル 2 の API S-function の更新状況をチェックする。 | レベル 1 の S-function をレベル 2 と置き換えます。 |
アクション結果
[変更] をクリックすると旧バージョンの Simulink からのブロックを最新バージョンに置き換えます。
参考
コンパイル時間情報を必要とするブロックのアップグレードについてモデルをチェック
チェック ID: mathworks.design.UpdateRequireCompile
一般的なブロックのアップグレードの問題がないかチェックします。
説明
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 ブロックに置き換えます。その後、ブロックを置き換えするために外挿法または端子のデータ型を変更してください。 |
モデルは Unit Delay ブロックを含んでおり、その [サンプル時間] が連続サンプル時間を継承する | Unit Delay ブロックを Memory ブロックに置き換えます。 |
マルチタスクについて Data Store Memory ブロックをチェック
アクション結果
[変更] をクリックすると旧バージョンの Simulink からのブロックを最新バージョンに置き換えます。
参考
SLX ファイル圧縮がオフになっているかどうかをチェック
チェック ID: mathworks.design.CheckSLXFileCompressionLevel
Git™ リポジトリのサイズを減らすために SLX ファイル圧縮がオフになっているかどうかをチェックします。
説明
SLX モデルの圧縮がオフになっているかどうかをチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデル、ライブラリ、またはサブシステムが SLX 形式で保存されている。ファイル圧縮はオンになっている。 | ファイル圧縮をオフにしてソース管理でストレージを最適化することを検討してください。 |
機能および制限事項
このチェックは、Git ソース管理にチェックインしたモデル、ライブラリ、およびサブシステムに対して実行できます。
参考
モデルまたはライブラリが最新バージョンで保存されていることをチェック
チェック ID: mathworks.design.CheckSavedInCurrentVersion
モデル、ライブラリ、またはサブシステムが Simulink の最新バージョンで保存されていることをチェックします。
説明
モデル ファイルが Simulink の最新リリースで保存されているかどうかをチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Simulink の最新バージョンで保存されていないモデル、ライブラリ、またはサブシステム | モデル ファイルを Simulink の最新バージョンで再保存することを検討してください。 |
機能および制限事項
このチェックはモデル、ライブラリ、サブシステムに対して実行できます。
ヒント
プロジェクトを使用すると、プロジェクト内のすべてのモデルとライブラリを Simulink の最新リリースに保存することができます。すべてのプロジェクト モデル、ライブラリ、MATLAB コード ファイルのアップグレードを参照してください。
参考
モデルで SB2SL ブロックをチェック
チェック ID: mathworks.simulink.SB2SL.Check
モデルに旧式の SB2SL ブロックが含まれていないことをチェックします。
説明
モデルに旧式の SB2SL ブロックが含まれているかどうかチェックします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルに旧式の SB2SL ブロックが含まれています | モデルを最新の SB2SL ブロックにアップグレードすることを検討します。 |
アクション結果
[SB2SL ブロックの更新] をクリックすると、ブロックを最新バージョンに置換します。
参考
モデル履歴プロパティのチェック
チェック ID: mathworks.design.SLXModelProperties
編集されたモデル履歴プロパティがあるかチェックします。
説明
ソース管理ツールのキーワード代入で使用できる、編集されたモデル履歴プロパティ値があるかどうかモデルをチェックします。このキーワード代入は、SLX ファイル形式とは互換性がありません。
MDL ファイル形式では、ソース管理ツールのキーワード代入を使用できるようにいくつかのモデル プロパティを設定できます。モデルを SLX 形式で保存すると、ソース管理ツールはキーワード代入を実行できません。そのようなキーワード代入からのモデル ファイル内の情報は、MDL ファイルを SLX として最初に保存したときにキャッシュされ、二度と更新されません。それ以降、モデルの [モデル プロパティ] の [履歴] ペインと Model Info ブロックでは、古い情報が表示されることになります。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデル履歴プロパティが編集されている | 手作業または自動でプロパティを既定値にリセットします。リセット ボタンをクリックするか、検査ボタンをクリックしてそれらのプロパティを手作業で変更し、[モデル プロパティ] ダイアログを開いて [履歴] ペインを確認します。 |
機能および制限事項
このチェックはライブラリ モデルで実行できます。
参考
外部のソース管理ツールと交信できる Model Info ブロックの特定
チェック ID: mathworks.design.ModelInfoKeywordSubstitution
キーワード代入によって外部のソース管理ツールから変更可能な Model Info ブロックを検出するには、このチェックを使用します。
説明
このチェックは、外部のソース管理ツールによって上書き可能なドル記号で囲まれた Model Info ブロック内の文字ベクトルを検索します。サードパーティのソース管理ツールのキーワード拡張を使用すると、モデル ファイルを送信するときにファイルが破損する可能性があります。SLX モデル ファイル形式ではキーワード代入は使用できません。
ソース管理ツールへのより柔軟なインターフェイスとしては、Model Info ブロックではなく Simulink プロジェクトを使用します。プロジェクトを使用したソース管理についてを参照してください。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Model Info ブロックに次のようなフィールドが含まれています。 | レポートのフィールドの一覧を確認して、Model Info ブロックからキーワード文字ベクトルを削除します。 |
参考
モデルでアップグレード可能な SerDes Toolbox ブロックをチェック
チェック ID: mathworks.design.serdesUpgrades
旧式の SerDes Toolbox™ の以前のバージョンに保存されたブロックをリストします。
説明
このチェックは、現在のリリースとの互換性を保つためにアップグレード可能な SerDes Toolbox ブロックを検索してリストします。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
SerDes Toolbox の古いバージョンに保存されたブロックが見つかった。 | [SerDes Toolbox のブロックをアップグレード] をクリックし、現在のリリースに対応するように SerDes Toolbox ブロックをアップグレードします。 |
アクション結果
[SerDes Toolbox のブロックをアップグレード] をクリックすると、現在のリリースに対応するように旧式の SerDes Toolbox ブロックがアップグレードされます。
参考
Design and Simulate SerDes Systems (SerDes Toolbox)
Check model for legacy 3DoF or 6DoF blocks
チェック ID: mathworks.design.Aeroblks.CheckDOF
旧式の 3DoF ブロックおよび 6DoF ブロックをリストします。
説明
このチェックでは、3.13 (R2014a) より前のライブラリ バージョンの 3DoF ブロックおよび 6DoF ブロックを検索します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
古いバージョンの 3DoF ブロックまたは 6DoF ブロックで構成されたブロックが見つかった。 | [Replace 3DoF and 6DoF Blocks] をクリックして、ブロックを最新バージョンに置き換えます。 |
アクション結果
[Replace 3DoF and 6DoF Blocks] をクリックすると、ブロックは最新バージョンに置き換えられます。
参考
Equations of Motion (Aerospace Blockset)
モデルで Aerospace Blockset ナビゲーション ブロックをチェック
チェック ID: mathworks.design.Aeroblks.CheckNAV
3.21 (R2018a) より前の Three-Axis Inertial Measurement Unit ブロック、Three-Axis Gyroscope ブロックおよび Three-Axis Accelerometer ブロックを検索します。
説明
このチェックでは、R2018a で更新された Three-Axis Inertial Measurement Unit ブロック、Three-Axis Gyroscope ブロックおよび Three-Axis Accelerometer ブロックを検索します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
R2018a より前の Three-Axis Inertial Measurement Unit ブロック、Three-Axis Gyroscope ブロックおよび Three-Axis Accelerometer ブロック。 | R2018a 以降では、以前に定常状態条件を求解していない場合は、すぐにモデルを保存します。以前にモデルの定常状態条件を求解している場合は、これらの定常状態条件を再度求解してからモデルを保存します。 |
参考
Three-axis Accelerometer (Aerospace Blockset)
Three-axis Gyroscope (Aerospace Blockset)
Three-axis Inertial Measurement Unit (Aerospace Blockset)
プロモート済みのパラメーターを使用するために、ライブラリでマスク ブロックをチェックし更新します
チェック ID: mathworks.design.CheckAndUpdateOldMaskedBuiltinBlocks
プロモート済みパラメーターを使用するように更新する必要があるライブラリがあるかチェックします。
説明
このチェックでは、R2011b より前に作成されたライブラリを検索して、プロモート済みパラメーターを使用するように更新する必要があるマスク ブロックがあるか調べます。R2011b 以降は、ブロック パラメーターがプロモートされていないと、リンク付きブロック内の値はライブラリ ブロック内でその値にロックされます。このチェックでは、Subsystem、Model reference、S-Function および M-S-Function のタイプのブロックは除外されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
更新する必要があるライブラリが見つかった | [更新] をクリックします。ライブラリが更新されたら、チェックを再度実行します。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
imread() の不要な関数呼び出しを含むマスク イメージ表示コマンドのチェックおよび更新
チェック ID: mathworks.design.CheckMaskDisplayImageFormat
チェックによって、関数 imread()
の不要な呼び出しを含むマスク イメージ表示コマンドを使用するマスクを識別します。
説明
このチェックでは、関数 imread()
の不要な呼び出しを行うマスク表示コマンドを検索し、それらのコマンドを、関数 imread()
を呼び出さないマスク表示コマンドで更新します。2013a 以降、RGB の 3 要素行列ではなくイメージ パスによって指定されたマスク イメージに対して、パフォーマンスとメモリの最適化機能を利用できるようになりました。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
関数 imread() の不要な呼び出しを行うマスク表示コマンドが検索されます。 | [更新] をクリックします。ブロックが更新されたら、チェックを再度実行します。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
マスクのチェックと更新を行って、マスク ワークスペースに対するアイコン描画コマンドの依存関係を確認
チェック ID: mathworks.design.CheckMaskRunInitFlag
このチェックは、マスク アイコン描画コマンドがマスク ワークスペースに依存するかどうかを特定します。
説明
このチェックは、マスク アイコン描画コマンドがマスク ワークスペースに依存するかどうかを特定し、それに合わせて、RunInitForIconRedraw
プロパティを更新します。マスク ワークスペースに依存しない場合、RunInitForIconRedraw
の値は off
に設定され、マスク ワークスペースに依存する場合、値は on
に設定されます。
マスク ワークスペースに依存しない場合に RunInitForIconRedraw
の値を off
に設定すると、ブロック アイコンの描画前にマスク初期化コードを実行しないことでパフォーマンスが最適化されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
マスク ワークスペースに依存するまたは依存しないマスク描画コマンドが見つかった。 | [更新] をクリックします。ブロックが更新されたら、チェックを再度実行します。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
MaskTabNames パラメーターを使用してマスク ダイアログでタブを指定するマスク ブロックを特定
チェック ID: mathworks.design.CheckAndUpdateOldMaskTabnames
このチェックでは、MaskTabNames
パラメーターを使用してマスク ダイアログでタブを指定するマスク ブロックを特定します。
説明
このチェックでは、MaskTabNames
パラメーターを使用してプログラムでマスク ダイアログにタブを作成するマスク ブロックを特定します。R2013b 以降、ダイアログ コントロールはマスク ダイアログ上のタブでパラメーターをグループ化するために使用されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
MaskTabNames パラメーターを使用してプログラムでマスク ダイアログにタブを作成するマスク ブロックが検出される。 | [アクション] セクションで利用可能な [アップグレード] をクリックします。ブロックが更新されたら、チェックを再度実行します。 |
機能および制限事項
このチェックはライブラリ モデルで実行できます。
参考
厳密な単精度の設計に対して問題のある演算を特定
チェック ID: mathworks.design.StowawayDoubles
このチェックでは、厳密な単精度の設計に対して、倍精度演算が導入されているブロックおよび最適でないモデル設定を特定します。
説明
このチェックでは、厳密な単精度の設計に対して、倍精度演算が導入されているブロックおよび最適でないモデル設定を特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルで倍精度浮動小数点演算が検索されます。 | 以下を検証します。
|
厳密な単精度設計用に最適化されていないライブラリ標準をモデルで使用しています。 | 以下を検証します。
|
論理信号が boolean データとして実装されていません。 | 以下を検証します。
|
機能および制限事項
Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
ブロック CompiledSampleTime での get_param 呼び出しのチェック
チェック ID: mathworks.design.CallsGetParamCompiledSampleTime
ブロック CompiledSampleTime
パラメーターを返す get_param
関数呼び出しを含む MATLAB ファイルを作業環境内で特定するにはこのチェックを使用します。
説明
(サブシステムを含む) マルチレート ブロックでは、Simulink はブロック内のサンプル レートの cell 配列としてブロックのコンパイルされたサンプル時間を返します。戻り値は、double のペアの cell 配列です。この戻り値を double のペアとしてのみ受け入れる MATLAB コードでは、マルチレート ブロックと共に呼び出された場合にエラーを返すことがあります。ユーザーの環境でこのようなコードを特定するにはこのチェックを使用します。代わりに double のペアの cell 配列を受け入れるように、これらのコードのインスタンスを修正します。
たとえば、マルチレート ブロックのコンパイルされたサンプル時間を割り当てられている変数 blkTs を考えてみます。
blkTs = get_param(block,'CompiledSampleTime');
blkTs が double のペアであり、ブロックがシングルレート ブロックである場合にのみ元のコードが機能する例をいくつか示します。
例 1
if isinf(blkTs(1)) disp('found constant sample time') end
blkTs が cell 配列になるため、Simulink は次のエラー メッセージを表示します。
代わりに、blkTs を cell 配列または double のペアにすることができるこのコードを使用します。Undefined function 'isinf' for input arguments of type 'cell'
if isequal(blkTs, [inf,0]) disp('found constant sample time') end
例 2
if all(blkTs == [-1,-1]) disp('found triggered sample time') end
上の例では、blkTs が cell 配列になるため、Simulink は次のエラーを表示します。
Undefined function 'eq' for input arguments of type 'cell'
代わりに、blkTs を cell 配列または double のペアにすることができるこのコードを使用します。
if isequal(blkTs, [-1,-1]) disp('found triggered sample time') end
例 3
if (blkTs(1) == -1) disp('found a triggered context') end
blkTs はまた cell 配列になるため、Simulink は次のエラーを表示します。
Undefined function 'eq' for input arguments of type 'cell'
代わりに、以下のコードを使用します。
if ~iscell(blkTs) blkTs = {blkTs}; end for idx = 1:length(blkTs) thisTs = blkTs{idx}; if (thisTs(1) == -1) disp('found a triggered context') end end
上記のコードはトリガー タイプのサンプル時間をチェックします (トリガーまたは非同期)。ブロックがトリガーまたは非同期に加えて一定のサンプル時間 ([inf,0]) をもつ場合またはブロックに複数の非同期レートがある場合、この代替プロパティはトリガー タイプのサンプル時間を検出します。
このチェックは環境内の MATLAB ファイルをスキャンします。チェックにより、ブロックのコンパイルされたサンプル時間を出力するための get_param
呼び出しを含む MATLAB コードのインスタンスが検出された場合、アップグレード アドバイザーはこれらの結果を表示します。マルチレート ブロックからブロックのコンパイルされたサンプル時間を受け入れるコードを変更することが勧められます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
get_param(block,CompiledSampleTime) を呼び出す MATLAB ファイルがない | なし |
get_param(block,CompiledSampleTime) を呼び出す MATLAB ファイルが一部ある | ファイルがマルチレート ブロックからブロックの CompiledSampleTime パラメーターを使用する場合、double のペアの cell 配列としてパラメーターを受け入れるようにこれらのファイルを修正します。 |
参考
すべてのシミュレーション出力が 1 つの Simulink.SimulationOutput オブジェクトとして返されるかどうかをチェック
チェック ID: mathworks.design.CheckSingleSimulationOutput
このチェックは、シミュレーション結果が 1 つの Simulink.SimulationOutput
オブジェクトとして返されるかどうかを特定するために使用します。
説明
このチェックでは、モデルをスキャンしてパラメーター ReturnWorkspaceOutputs
が有効になっているかどうかを確認します。このパラメーターを有効にすると、シミュレーションを対話形式で実行する際にシミュレーション出力が Simulink.SimulationOutput
で返されます。シミュレーション出力には、信号、状態、出力、DSM のログ、スコープ、To Workspace
ブロックのログが含まれます。
ReturnWorkspaceOutputs
を有効にすると、次が提供されます。
シミュレーション データの管理が簡単になる。
SimulationMetadata
に自動でアクセスできる。複数の並列シミュレーションやバッチ シミュレーションと互換性がある。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
シミュレーション出力が 1 つの Simulink.SimulationOutput オブジェクトとして返されない | すべてのシミュレーション出力を 1 つの |
参考
パラメーターの初期化と調整に関する問題についてモデルをチェック
チェック ID: mathworks.design.ParameterTuning
パラメーターを初期化または調整するときに発生するモデルの問題を特定するには、このチェックを使用します。
説明
このチェックでは、次のようなパラメーターの初期化および調整の問題についてモデルをスキャンします。
ブロック間のレートの不一致
条件付き実行サブシステムでのゼロ除算の問題
Index Vector ブロック内の無効な制御端子の値
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルにはレート変換の問題があります。 | [モデル コンフィギュレーション パラメーター] の [ソルバー] ペインで [データ転送に対するレート変換を自動的に取り扱う] を選択します。 |
モデルには制御ポートをもつ条件付き実行サブシステム内に、ゼロ除算の問題があります。 | コマンド プロンプトで次を実行します。 set_param(control_port,'DisallowConstTsAndPrmTs', 'on') |
モデルには条件付き実行サブシステム内に、無効な制御端子の値があります。 | コマンド プロンプトで次を実行します。 set_param(control_port,'DisallowConstTsAndPrmTs', 'on') |
アクション結果
[モデルのアップグレード] を選択して、パラメーターの初期化と調整に関連するモデルの問題を解決します。
参考
モデル参照の境界を超えるバーチャル バスがないかをチェック
チェック ID: mathworks.design.CheckVirtualBusAcrossModelReference
モデル参照の境界を超えるバーチャル バス信号をチェックします。
説明
このチェックでは、非バーチャルなバス信号に変更するために更新が必要なバーチャル バス出力をもつ参照モデル内のルートレベルの Inport ブロックと Outport ブロック、および Model ブロックを特定します。
このチェックによって問題が特定された場合、[モデルの更新] をクリックして、以下の状況にあるバーチャル バスが設定されているルートレベルの Inport ブロックと Outport ブロックを非バーチャル バスを使用するように変換します。
ルートレベルの Inport ブロック — [非バーチャル バスとして出力] パラメーターを有効にして、Inport ブロックの後に Signal Conversion ブロックを挿入します。Signal Conversion ブロックはバーチャル バスを出力するように構成されます。
ルートレベルの Outport ブロック — [親モデル内の非バーチャル バスとして出力] パラメーターを有効にします。
Model ブロック — Outport ブロックが問題に対応するために更新される端子の場合、Model ブロックの対応する端子の後に Signal Conversion ブロックが挿入されます。Signal Conversion ブロックはバーチャル バスを出力するように構成されます。
推奨アクションと結果
問題を解決するには、[モデルのアップグレード] をクリックします。
メモ
最上位モデルに対して [モデル階層を解析してアップグレード シーケンスを続行] チェックを実行してから、モデル参照階層の下方向に向かってチェックを実行します。
[モデルのアップグレード] をクリックすると、バーチャル バスに設定されたルートレベルの Inport ブロックおよび Outport ブロックが影響を受け、モデル内で非バーチャル バスを使用するように変換されます。ここで以下を行います。
関数プロトタイプ コントロールを使用します。
[I/O 引数 step メソッド]
オプションを使用して C++ コードを生成します。または、C++ コード生成の関数仕様設定を
[既定の step メソッド]
に変更することもできます。[コンフィギュレーション パラメーター] 、 [コード生成] 、 [インターフェイス] ペインで、[C++ クラス インターフェイスの設定] をクリックします。
ダイアログ ボックスで、[関数の仕様] パラメーターを
[既定の step メソッド]
に設定します。
可変次元の信号をもつバスを使用します。
Outport ブロックの信号に関連付けられた非自動ストレージ クラスを使用します。
モデルが必要とするターゲット生成ライセンスをもつ場合にのみ非自動ストレージ クラスの変換が発生します。たとえば、ERT ターゲットには Embedded Coder ライセンスが必要です。
Outport ブロックが非バーチャル バスによって駆動されるエクスポート関数モデルを使用します。
修正された Outport ブロックを含むモデルを参照する Model ブロック — [モデルのアップグレード] をクリックすることで、[モデル階層を解析してアップグレード シーケンスを続行] チェックによって修正された Outport ブロックをもつモデルを参照する Model ブロックが更新されます。
参考
Check model for custom library blocks that rely on frame status of the signal
チェック ID: mathworks.design.DSPFrameUpgrade
このチェックによって、信号のフレーム状態に依存する、モデル内のカスタム ライブラリ ブロックが特定されます。
説明
このチェックでは、信号のフレーム状態に依存する、モデル内のカスタム ライブラリ ブロックを検索します。ブロックを解析し、修正を推奨し、修正が必要な理由を提示します。修正は手動で行わなければなりません。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
このチェックによって、信号のフレーム状態に依存するカスタム ライブラリ ブロックを検出します。 | アップグレード アドバイザーによって提供される推奨事項に従ってください。 |
機能および制限事項
このチェックは、モデル内のカスタム ライブラリ ブロックに対してのみ実行できます。
修正は手動で行わなければなりません。
このチェックは、DSP System Toolbox™ がインストールされている場合にのみ表示されます。
参考
S-Function のアップグレードの問題がないかモデルをチェック
チェック ID: 'mathworks.design.CheckForSFcnUpgradeIssues'
モデルでこのチェックを使用して、S-Function のアップグレードの互換性の問題を特定します。これらの問題には、32 ビット API の使用、互換性のないオプションを指定したコンパイル、または推奨されない実数/虚数分離型の複素数 API の使用が含まれる可能性があります。一般的な問題と修正に関連する情報は、下の結果と推奨事項の節で説明します。
説明
S-Function をアップグレードして最新リリースの機能を使用する場合、このチェックはモデルをスキャンして、S-Function のアップグレードの非互換性に関する問題に対して警告します。このチェックの結果が警告またはエラーである場合、説明に従って C MEX S-Function を修正してください。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
カスタムビルドの S-Function がサポートされていない。 | 互換性のある使用可能なオプションを指定して S-Function を再コンパイルします。詳細については、カスタムビルドの MEX ファイルが現在のリリースでサポートされていないを参照してください。 |
S-Function が最新の API ( | 最新のフラグ ( |
S-Function は 32 ビット関数を使用する。 | MEX ファイルが 32 ビット関数を呼び出しているの手順に従ってコードを変更します。 |
推奨されない実数/虚数分離型の複素数 API (mxGetPi、mxSetPi、mxGetImagData、mxSetImagData) を、S-Function が使用している。 | インターリーブされた複素数 API を使用して、最新のフラグ ( |
タイプセーフではない非推奨のデータ API (mxGetData、mxSetData) を、S-Function が使用している。 | タイプセーフなデータ API を使用して、コードを再コンパイルします。詳細については、MEX ファイルが型なしのデータ アクセス関数を呼び出しているを参照してください。 |
S-Function は将来のリリースでコンパイルされるが、現在のリリースではサポートされていない。 | ファイルを再コンパイルするには、現在のリリースでサポートされていない MATLAB リリースで MEX ファイルがビルドされたを参照してください。 |
参考
System object の構文の更新
チェック ID: 'mathworks.design.CheckSystemObjectUpdate'
このチェックを使用して、古い構文を含むモデルでカスタムの MATLAB System object™ を特定して更新します。
説明
このチェックでは、モデルをスキャンして古い System object 構文を特定します。チェックにパスした場合、すべての構文は最新の状態です。チェックに失敗した場合は、構文を更新できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
System object 構文は最新の状態。 | なし |
System object 構文の更新が必要。 | MATLAB System ブロックに関連付けられている一意の System object ごとにレポートが生成されます。[更新] を使用して構文を更新します。 |
参考
ラピッド アクセラレータ信号ログのチェック
チェック ID: mathworks.design.CheckRapidAcceleratorSignalLogging
ラピッド アクセラレータ モードでモデルをシミュレートするとき、グローバルで無効にされているモデル内にログ記録された信号を検出するにはこのチェックを使用します。ラピッド アクセラレータ モードは信号ログをサポートします。信号ログをグローバルで有効にするにはこのチェックを使用します。
説明
このチェックはモデルをスキャンし、シミュレーションがラピッド アクセラレータ モードであるかどうか、およびモデルに信号ログをもつ信号が含まれるかどうかを確認します。チェックがインスタンスを検出し、信号ログがグローバルで無効になっている場合、信号ログをグローバルで有効にするオプションが表示されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
シミュレーション モードがラピッド アクセラレータでない。 | なし信号ログはラピッド アクセラレータ モードで有効にすることができます。 |
シミュレーション モードがラピッド アクセラレータである。アップグレード アドバイザーは信号ログが有効になっている信号を検出しなかった。 | なしモデルは信号ログを使用しません。信号のログを記録する場合は信号に対する信号ログをグローバルで有効にします。 |
シミュレーション モードがラピッド アクセラレータである。アップグレード アドバイザーは信号ログが有効になっている信号を検出した。ただし、信号ログのグローバル設定は無効になっていた。 | 信号ログを有効にして信号のログを記録する場合は、信号ログをグローバルで有効にします。 |
信号ログが既にグローバルで有効になっていた。 | なし |
アクション結果
[変更] を選択すると、モデルでグローバルに信号ログが有効になります。
参考
ブロックへのバーチャル バス入力のチェック
チェック ID: mathworks.design.VirtualBusUsage
一連のブロックについてバス入力信号をチェックします。
説明
一連のブロックについてバス入力信号をチェックします。
R2015b 以降では、非バスまたは非バーチャル バス入力を必要とするブロックへのバーチャル バス信号入力はエラーを発生させる可能性があります。出力データ型としてバス オブジェクトを指定する可能性があるブロックの例には、Bus Creator ブロックやルートの Inport ブロックがあります。この状況でバーチャル バス入力がある場合にエラーを発生させるブロックには次のものがあります。
Assignment
Delay
Delay ブロックは、[ブロック パラメーター] ダイアログ ボックスが次のように使用された場合のみ、エラーを引き起こす可能性があります。
MATLAB 構造体またはゼロである初期条件を設定する。
[状態名] の値を指定する。
Permute Dimension
Reshape
Selector
Unit Delay
Unit Delay ブロックは、[ブロック パラメーター] ダイアログ ボックスが次のように使用された場合のみ、エラーを引き起こす可能性があります。
MATLAB 構造体またはゼロである初期条件を設定する。
[状態名] の値を指定する。
Vector Concatenate
結果と推奨アクション
条件 | 推奨アクション |
---|---|
バーチャル バス信号が次のブロックに入力されている:
| アップグレード アドバイザーで [変更] をクリックします。 チェックにより Bus to Vector ブロックが挿入され、バーチャル バス入力信号からベクトル信号への変換が試みられます。アップグレード アドバイザーが特定した修正できない問題について、手動でモデルを変更します。詳細については、自動バス変換の特定を参照してください。 |
アクション結果
[変更] をクリックすると、ブロックの入力端子に Bus to Vector ブロックが挿入されます。
多くのモデルでは、アップグレード アドバイザーを実行すると、バス信号がベクトルとして扱われないようにモデルが変更されます。ただし、一部のモデルでは、このチェックを実行した後も互換性問題が発生する可能性があります。こうした問題を解決するには、モデルを手動で変更します。
モデルに変更を加えていなくても、アップグレード アドバイザーを使用してモデルをコンパイルした後に、モデルを保存する必要がある (モデルが変更未保存 (ダーティ) である) ことが、Simulink エディターによって示される場合があります。このモデルでこの問題が再発生しないようにするには、モデルを保存します。
モデル化パターン | 問題 | 解決法 |
---|---|---|
[データ型] が | バス信号データの読み取りまたは書き込みを行う Data Store Read ブロックまたは Data Store Write ブロックに関連する Data Store Memory ブロックはバス オブジェクトを使用しなければなりません。 | Data Store Memory ブロックで、[データ型] 信号属性を |
入力のバス型に一致する Signal Conversion ブロックの [出力] パラメーター | [出力] パラメーターが [出力] パラメーターが | 入力信号のコピーを作成するには、[出力] を |
複数のバス入力をもつ Merge、Switch、または Multiport Switch ブロック | 複数のバス入力をもつ Merge、Switch、または Multiport Switch ブロックで、これらの入力の名前と階層が同じであることが要求される。 | モデルを再構成し、バス入力が同じ名前と階層をもつようにします。 |
バーチャル バスを出力し、[端子の次元] の値を指定するルート Inport ブロック | バーチャル バスに出力するルート Inport ブロックが次元を継承しなければならない。 | Inport ブロックの [端子の次元] 信号属性を |
非バーチャル バス入力を使用する Mux ブロック | Mux ブロックが非バーチャル バス信号を受け取れない。 | 出力を配列として扱うには、Mux ブロックを Vector Concatenate ブロックに置き換えます。 バーチャル バス出力を使用する場合は、Bus Creator ブロックを使用して信号を結合します。 |
バーチャル バス信号入力を使用しない Bus to Vector ブロック | 非バス信号は Bus to Vector ブロックを必要としない。 | Bus to Vector ブロックを削除します。 |
バーチャル バス入力を使用する Assignment ブロック | アップグレード アドバイザーが Assignment ブロックの | Assignment ブロックの前に Bus to Vector ブロックを追加します。 |
非バーチャル バスを使用する S-Function | Level-2 C S-Function ではない S-Function が非バーチャル バス信号をサポートしない。 | S-Function を Level-2 C S-Function に変更します。 S-Function Builder ブロックを使用して Level-2 C S-Function を作成することを検討してください。 |
パラメーター化されたデータ型を使用する Stateflow チャート | Stateflow チャートでは、データ型がバス オブジェクトの場合、他の入力または出力によって、入力または出力のデータ型をパラメーター化できない。 | パラメーター化された端子に対して、[データ型] を |
Stateflow チャートでバス演算が実行されるサブシステム | Stateflow チャートのサブシステム内の Inport ブロックは、信号がバスの場合にバス オブジェクトのデータ型を要求します。 | Inport ブロックで、[データ型] を |
バス ソースとして使用される Ground ブロック | Ground ブロックの出力信号をバスのソースにできない。 | [定数値] が 0 に設定され、[出力データ型] 信号属性が |
単一の要素のバス オブジェクト データ型をもつルートの Outport ブロック | バス オブジェクトが Outport ブロックのデータ型として指定されている場合、Outport ブロックへの入力はバスでなければなりません。 | Outport ブロックで、[データ型] を |
参考
一定のサンプル時間でルートの出力端子をチェック
チェック ID: mathworks.design.CheckConstRootOutportWithInterfaceUpgrade
AUTOSAR ターゲット、関数プロトタイプのコントロールまたはモデル C++ クラス インターフェイスで使用された一定のサンプル時間でルートの出力端子を特定するにはこのチェックを使用します。
説明
AUTOSAR ターゲット、関数プロトタイプのコントロールまたはモデル C++ クラス インターフェイスを使用する場合、一定のサンプル時間でのルートの出力端子はサポートされません。この条件でルート Outport ブロックを特定し、推奨されているように変更するには、このチェックを使用します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
AUTOSAR ターゲット、関数プロトタイプのコントロールまたはモデル C++ クラス インターフェイスで使用された一定のサンプル時間をもつルートの出力端子。 | 以下のいずれかを検討してください。
|
参考
モデルの階層構造を解析してアップグレード シーケンスを続行
チェック ID: com.mathworks.Simulink.UpgradeAdvisor.UpgradeModelHierarchy
子モデルをチェックし、順を追ってアップグレード チェックを行います。
説明
このチェックでは、このモデルの子モデルを特定し、コンパイルなしのチェックとコンパイル チェックの両方を実行するアップグレード チェックを順番に行います。アップグレード アドバイザーには、これらのタスクを支援するツールが用意されています。
チェックにより子モデルが検出された場合、それぞれの子モデルでアップグレード アドバイザーを実行し、アップグレード シーケンスを続行します。モデルの階層構造がある場合、それぞれの子モデルを順番にチェックして更新しなければなりません。
子モデルがない場合でも、コンパイルなしのチェックとコンパイル チェックの両方を実行するまでチェック シーケンスを続行する必要があります。
アップグレード チェックは次の順序で実行しなければなりません。コンパイル時の情報が不要でブロック線図の更新を伴わない項目から先にチェックし、その後にコンパイル チェックを実行します。
[アップグレード シーケンスを続行] をクリックして次のチェックを実行します。子モデルがある場合、これにより次のモデルが開きます。チェックがパスするまで [アップグレード シーケンスを続行] をクリックし続けます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
子モデルが見つかった | [アップグレード シーケンスを続行] をクリックして次のチェックを実行します。子モデルがある場合、これによって現在のアップグレード アドバイザーのセッションが閉じられ、階層内の次のモデルでアップグレード アドバイザーが開きます。 |
子モデルがないが、より多くのチェックを実行する | 子モデルがない場合、[アップグレード シーケンスを続行] をクリックし、コンパイル チェックを選択してアップグレード アドバイザーを更新します。コンパイル チェックはブロック線図の更新をトリガーします (^ でマークされます)。次のチェックを実行し、推奨されるアクションを実行します。このチェックに戻ったら、このチェックがパスするまで [アップグレード シーケンスを続行] をクリックします。 |
ヒント
モデルの階層構造をアップグレードするためのベスト プラクティスは、リーフ モデルからルート モデルまで順に各モデルをチェックしてアップグレードしていくことです。
[アップグレード シーケンスを続行] をクリックすると、アップグレード アドバイザーは階層内で検出できる最下層のリーフ モデルを開きます。その後の手順で、リーフ モデルからルート モデルに順に階層をアップグレードしていきます。
アップグレード アドバイザーを開くとき、選択されているチェックはコンパイル時の情報を必要とせず、ブロック線図の更新をトリガーしません。既定では、ブロック線図の更新をトリガーするチェックは、実行するように選択されておらず、^
の印が付いています。階層でアップグレード アドバイザーを使用する場合、[アップグレード シーケンスを続行] を繰り返しクリックして、一連の解析を進めます。
アップグレード アドバイザーは、それぞれのモデルおよびライブラリをリーフからルートに向かって順に開き、コンパイルなしのチェックを選択します。これらのチェックを実行し、推奨されたアクションがある場合はそれを行い、[アップグレード シーケンスを続行] をクリックして次のモデルを開き、この作業を繰り返します。
階層のルートに到達すると、アップグレード アドバイザーは各モデルを同じ順序でもう一度開き (ライブラリは開きません)、モデルのコンパイルが必要なチェックのみを選択します。これらのチェックを実行し、推奨されたアクションがある場合はそれを行い、[アップグレード シーケンスを続行] をクリックして次のモデルを開きます。階層の最後に到達しこのチェックをパスするまで続行します。
参考
データ ストアへのアクセスのチェック
チェック ID: mathworks.design.ConflictsForDataStoreReadWriters
データ ストアに対する読み取りおよび書き込みの際の実行順序に注意が必要になる可能性があることを特定します。
説明
同じデータ ストアに読み取りおよび書き込みを行うブロックの実行順序によって、シミュレーション結果が変化する可能性があります。同じ階層のブロックが同じデータ ストアにアクセスする場合、その実行順序は確定的ではありません。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Data Store Memory ブロックが同じ階層内の複数のブロックからアクセスされる。 | ブロックの実行順序を強制するために、次を行うことを検討します。
|
参考
Data Store Read ブロックと Data Store Write ブロックの相対的な実行順序のチェック
チェック ID: mathworks.design.TaskBasedSorting
Data Store Read ブロックと Data Store Write ブロックの、レガシの並べ替えとタスクベースの並べ替えの間の相対的な実行順序の変更をチェックします。
説明
レガシ モデルでは、ブロックの実行順序を決定するのにブロックの並べ替えを使用していました。タスクベースの並べ替えでは、Data Store Memory ブロックが含まれる相対的な実行順序は変更される可能性があります。このチェックでは変更が検出され、元の実行順序でモデルを更新するオプションが提供されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Data Store Memory ブロックの変更がある場合の実行順序。元の実行順序が必要。 | [変更] ボタンをクリックする。 |
参考
モデルとライブラリへの参照における大文字小文字の不一致のチェック
チェック ID: mathworks.design.CaseSensitiveBlockDiagramNames
モデルとライブラリへの大文字小文字を区別しない参照を特定して修正します。
説明
R2020a より、Simulink モデル名およびライブラリ名では大文字と小文字が区別されます。このチェックでは大文字小文字を区別しないモデルおよびライブラリへの参照が検出され、修正するオプションが提供されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
チェックによりモデルおよびライブラリへの参照における大文字小文字の不一致が検出される。 | アップグレード アドバイザーによって提供される推奨事項に従ってください。 |
参考
モデルで Signal Builder ブロックをチェック
チェック ID: mathworks.design.Sigbldr.upgradeCheck
モデルで Signal Builder ブロックを検索します。
説明
モデルで Signal Builder ブロックを検索し、同等の構成の Signal Editor ブロックに置き換えます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルに Signal Builder ブロックが 1 つ以上含まれている。 | すべての Signal Builder ブロックを同等の Signal Editor ブロックに置き換えるには、関連するリンクをクリックします。 |
参考
MATLAB Function ブロックの出力次元のチェック
チェック ID: mathworks.simulink.MLFBOutputDimensions
[出力列ベクトルを 1 次元データとして解釈] プロパティが有効になっているすべての MATLAB Function ブロックをリストします。このプロパティが有効になっている場合、ブロックは N 行 1 列のサイズの出力列ベクトルを、N と等しい信号サイズの 1 次元信号に変換します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
1 次元の出力データを生成する MATLAB Function ブロックでプロパティが有効になっている | [修正する] ボタンをクリックしても、MATLAB function ブロックのプロパティは無効になりません。プロパティを無効にするには、次のようにします。
プロパティを無効にすると MATLAB function ブロックのサイズの伝播が変わるため、モデルのシミュレーションの動作を確認してください。 |
1 次元のデータを生成しない MATLAB Function ブロックでプロパティが有効になっている | [修正する] ボタンをクリックして MATLAB function ブロックのプロパティを無効にします。 |
参考
切断された接続をもつウィルキンソン電力分配器コンポーネントを使用する RF Blockset Divider ブロックがないかモデルをチェック
チェック ID: mathworks.design.rfblockset.ce.checkDisconnectedDividerBlocks
モデルを検索して、端子 3 の端子接続が切断されているウィルキンソン電力分配器を使用する RF Blockset™ Divider ブロックをリストします。
説明
R2021a から、ウィルキンソン電力分配器コンポーネントを使用する RF Blockset Divider ブロックの端子の位置が変更されます。このチェックでは、R2021a より前の端子 3 の端子接続が切断されているウィルキンソン電力分配器コンポーネント モデルを使用する Divider ブロックを検索してリストします。[変更] ボタンを使用して接続を再結線できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルに、端子 3 の端子接続が切断されているウィルキンソン電力配電器を使用する RF Blockset Divider ブロックが含まれている。 | [変更] ボタンをクリックして、RF Blockset Divider ブロックの端子 3 の切断されている接続を再結線します。 |
アクション結果
[変更] ボタンをクリックすると、RF Blockset Divider ブロックの端子 3 の切断されている接続が再結線されます。
メモ
[変更] ボタンを使うと、モデル内のウィルキンソン電力分配器コンポーネントを使用する Divider ブロックの端子 3 で切断されているすべての接続の自動的な再結線を試みます。精度を確保するためには、以下を実行しなければなりません。
アップグレード アドバイザーの [結果] ペインにリストされている詳細を確認します。
最初のリストには、モデルが複雑なために手動による再結線を必要とするウィルキンソン電力配電器を使用する RF Blockset Divider ブロックが列挙されます。
2 番目のリストには、自動的に再結線されるブロックが列挙されます。
修正または未修正の Divider ブロックはそれぞれ緑と赤で一時的に強調表示されます。[結果] ペインの下部にある [Remove all temporary block highlighting] リンクをクリックして、強調表示を解除します。
参考
Environment Controller ブロックを特定して Variant Source ブロックに置換
チェック ID: mathworks.design.ReplaceEnvironmentControllerBlk
モデルで Environment Controller ブロックを検索します。
説明
モデルで Environment Controller ブロックを検索し、[バリアント制御モード] パラメーターが 'sim codegen switching'
に設定された Variant Source ブロックに置き換えます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
モデルに Environment Controller ブロックが 1 つ以上含まれている。 | Environment Controller ブロックを [バリアント制御モード] パラメーターが 'sim codegen switching' に設定された Variant Source ブロックに置き換えます。 |
機能および制限事項
このチェックはライブラリ モデルで実行できます。
このチェックは、参照モデルおよびリンク付きブロックでの Environment Controller ブロックの特定には使用できません。
参考
VariantActivation が [Simulink.VariantControl から継承] に設定されていながらも Simulink.VariantControl を使用しないバリアント ブロックを特定
チェック ID: mathworks.simulink.InheritVATFromSlVarCtrlCheck
モデル内のアクティベーションのタイミングを継承する Simulink.VariantControl
型のバリアント制御変数がないバリアント ブロックを特定します。
説明
[バリアントのアクティベーションのタイミング] が [Simulink.VariantControl から継承]
に設定されたバリアント ブロックで、Simulink.VariantControl
型のバリアント制御変数がないバリアント ブロックを特定します。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
アクティベーションのタイミングが [Simulink.VariantControl から継承] のバリアント ブロックに Simulink.VariantControl 型のバリアント制御変数がない。 | 少なくとも 1 つのバリアント制御変数の型を Simulink.VariantControl に変更します。 |
機能および制限事項
このチェックはライブラリ モデルで実行できます。
参考
マシンを親とするデータのチェック
チェック ID: mathworks.stateflow.MachineParentedData.check
マシンを親とするデータのインスタンスに対してモデルをチェックします。
説明
マシンを親とするデータによって、モデルが生成コードやその他のコードの最適化を再利用することを妨ぎます。マシンを親とするデータは多くの Simulink 機能や Stateflow 機能とも互換性がありません。Stateflow データをモデルの他のチャートやブロックからアクセスできるようにするには、[データ ストア メモリ]
のスコープのチャートを親とするデータを使用します。詳細については、チャートからのデータ ストア メモリへのアクセス (Stateflow)を参照してください。
メモ
R2023a 以降では、Stateflow チャートでマシンを親とするデータはサポートされません。アップグレード アドバイザーを使用して、マシンを親とするデータを、チャートを親とするデータ ストア メモリに変換してください。詳細については、アップグレード アドバイザーの使用およびマシンを親とするデータのチェックを参照してください。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Simulink モデルには Stateflow マシンを親とするデータが含まれます。 | マシンを親とするデータを、モデル ワークスペースの値を使用するチャートを親とするデータに変換することで、モデルをアップグレードします。 |
アクション結果
[モデルのアップグレード] をクリックすると、マシンを親とするデータを使用する、チャートを親とするデータがチャートに作成されます。
マシンを親とするデータ オブジェクトが
[パラメーター]
のスコープをもつ場合、新しいチャートを親とするデータ オブジェクトは[パラメーター]
のスコープをもちます。値はSimulink.Parameter
オブジェクトとしてモデル ワークスペースに保存されます。マシンを親とするデータ オブジェクトが他のスコープをもつ場合、新しいチャートを親とするデータ オブジェクトは
[データ ストア メモリ]
のスコープをもちます。値はSimulink.Signal
オブジェクトとしてモデル ワークスペースに保存されます。
機能および制限事項
自動変換は次の場合に失敗します。
モデル ワークスペースにマシンを親とするデータと同じ名前をもつ
Simulink.Parameter
オブジェクトまたはSimulink.Signal
オブジェクトが含まれている。モデルにチャートを親とするデータ、イベント、メッセージが含まれていて、マシンを親とするデータと同じ名前をもつ。
マシンを親とするデータが
Simulink.Parameter
オブジェクトまたはSimulink.Signal
オブジェクトと等価なものをもたない Stateflow セマンティクスを使用する。
ヒント
ライブラリ チャートやライブラリからリンクした Atomic サブチャートがモデルに含まれている場合は、ライブラリをアップグレードする前に、ライブラリを使用するすべてのモデルをアップグレードする必要があります。
ライブラリを使用する最上位モデルをそれぞれ開いてアップグレードします。
最上位モデルをアップグレードすると、ライブラリ内のマシンを親とするデータごとに、モデル ワークスペースに
Simulink.Parameter
オブジェクトまたはSimulink.Signal
オブジェクトが作成されます。最上位モデルを保存して閉じます。
ライブラリ モデルを開いてアップグレードします。
ライブラリ モデルをアップグレードすると、チャートを親とするデータが作成され、ライブラリ内のマシンを親とするデータと置き換わります。
ライブラリ モデルを保存して閉じます。
参考
Simulink および MATLAB ワークスペースとのパラメーターの共有 (Stateflow)
チャートからのデータ ストア メモリへのアクセス (Stateflow)
チャートでデータを使用する場合のベスト プラクティス (Stateflow)
リンクされたライブラリからのクローンを特定
チェック ID: mathworks.cloneDetection.libraryEdittime
モデル内のリンクされたライブラリ ファイルからのクローンを特定します。
説明
クローンは、ブロック タイプおよび接続が同一であるモデル化パターンです。クローン検出器 (Simulink Check)により、モデル全体のクローンが特定されます。クローン パターンを特定し、クローンをライブラリ ブロックへのリンクに置き換えることにより、モデルでコンポーネントを再利用できます。
このチェックでは、モデル内に存在するリンクされたライブラリからのクローンが強調表示されます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
リンクされたライブラリからのクローン パターンがモデルに含まれている。 | クローン検出器アプリから、クローンをライブラリ ファイルへのリンクに置き換えます。 |
機能
このチェックを実行して次のことが可能です。
リンクされたライブラリからの厳密クローンと類似クローンの両方を強調表示する。詳細については、厳密クローンと類似クローン (Simulink Check)を参照してください。
リンクされたライブラリからのサブシステム クローンとモデル全体のクローンの両方を強調表示する。詳細については、クローンの検出場所の指定 (Simulink Check)を参照してください。
制限
モデル内のバリアントや Stateflow チャートに含まれるクローンについては、このチェックで特定できません。
サブシステムに 2 レベルを超える深さの入れ子になったサブシステムがある場合、このチェックでクローンは強調表示されません。
モデル内のクローンを置き換えた場合、その変更を元に戻すことはできません。
アクション結果
[修正] ボタンをクリックすると、クローン検出器アプリが開きます。[クローンの置換] をクリックすると、クローンはリンクされたライブラリ ファイルへのリンクに置き換えられます。
参考
クローン検出を使用したコンポーネント再利用の有効化 (Simulink Check)
厳密クローンをサブシステム参照に置換 (Simulink Check)
Bus Selector ブロックと Bus Creator ブロックを In Bus Element ブロックと Out Bus Element ブロックにリファクタリング
チェック ID: mathworks.m2m_edittime.BusPortsXform
Bus Selector ブロックと Bus Creator ブロックを In Bus Element ブロックと Out Bus Element ブロックにリファクタリングします。
説明
モデルを簡略化するには、入力用の Bus Selector ブロックと出力用の Bus Creator ブロックの代わりに、In Bus Element ブロックと Out Bus Element ブロックを使用することをお勧めします。詳細については、バス要素端子を使用したサブシステム インターフェイスとモデル インターフェイスの簡略化を参照してください。
このチェックでは、モデルの Bus Selector ブロックと Bus Creator ブロックが強調表示され、それらのブロックを In Bus Element ブロックと Out Bus Element ブロックに変換できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
Bus Selector ブロックと Bus Creator ブロックがモデルに含まれている。 | Bus Selector ブロックと Bus Creator ブロックを In Bus Element ブロックと Out Bus Element ブロックに置き換えます。 |
機能および制限事項
モデル アドバイザーで [修正] ボタンをクリックすると、モデルをリファクタリングできます。
モデルを変換した後、その変更を元に戻すことはできません。
アクション結果
[修正] ボタンをクリックすると、モデルが変換され、適切な Bus Selector ブロックと Bus Creator ブロックが In Bus Element ブロックと Out Bus Element ブロックに置き換えられます。
参考
編集時チェックを使用したモデルの準拠性のチェック (Simulink Check)