Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

不適切な値を原因とするデッド ロジックの検出

デッド ロジックの検出は、以下の特定に役立ちます。

  • モデルの設計エラー。

  • 不要なモデル要素。

  • 実行すべきなのに実行されないモデル要素。

この例では、燃料比コントローラーのモデルを解析して、モデルにデッド ロジックが含まれているかどうかを判定します。デッド ロジックの検出により、Stateflow® チャート内の遷移条件が非アクティブで残される原因となる、不適切な変数値を見つけます。

燃料供給装置モデルの解析

1.モデルを開きます。

open_system('sldvdemo_fuelsys_logic_simple')

現在のフォルダーが書き込み可能であることを確認します。

2.デッド ロジックの検出を設定します。

[Design Verifier] タブの [モード] セクションで、[設計エラー検出] を選択します。

3.[エラー検出の設定] を選択します。

4. [コンフィギュレーション パラメーター] ダイアログ ボックスの [Design Verifier][設計エラー検出] ペインで、次を行います。

  1. デッド ロジック (一部)オプションを有効にします。

  2. 網羅的解析を実行オプションが選択されている場合、オフにします。

  3. [解析するカバレッジ オブジェクティブ] を [条件判定] に設定します。ドロップダウン メニューから選択できるオプションは、[判定]、[条件判定]、および [MCDC] です。

5.[設計エラーの検出] をクリックします。

6.結果のダイアログ ボックスに、109 個中 2 個のオブジェクティブがデッド ロジックであることが示されます。

dead_logic_ri_results.png

結果の確認とモデルでの追跡

1.解析レポートを作成します。結果インスペクター ウィンドウで、[HTML] をクリックします。

2.[デッド ロジック] セクションにスクロールします。テーブルにはデッド ロジックの 2 つのインスタンスがリストされています。

3.[説明] 列で、デッド ロジックのインスタンスの 1 つが press < zero_thresh という偽条件になっています。デッド ロジックの結果は、シミュレーションにおいてこの偽条件が実行されなかったことを示しています。このロジックは、Sens_Failure_Counter.INC 遷移の一部です。

4.[モデル項目] リンクをクリックします。Simulink によってチャート内の遷移が強調表示されます。

dead_logic_sldvdemo.png

デッド ロジックの原因の調査

1.遷移を制御する論理ステートメントは次のとおりです。

speed==0 & press < zero_thresh

2.レポートに戻ります。[制約] セクションまでスクロールします。

3.入力 control logic/Input Data "press" の値は 0 ~ 2 に制約されています。リンクをクリックしてモデル エクスプローラーで入力を開きます。

4.モデル エクスプローラーで [モデル ワークスペース] を選択します。コンテンツ テーブルで、zero_thresh を選択します。zero_thresh の値は 250 です。

press の制約された値は常に zero_thresh より小さくなるため、偽条件が実行されることはありません。

入力制約の更新とモデルの再解析

1.zero_thresh の値を 0.250 に変更します。

2.モデルを再解析します。[Design Verifier] タブで [設計エラーの検出] をクリックします。

3.新しい結果では、オブジェクティブはデッド ロジックではなくなっています。

参考

デッド ロジックの検出