Main Content

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

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

  • モデルの設計エラー。

  • 不要なモデル要素。

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

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

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

  1. モデルを開きます。

    sldvdemo_fuelsys_logic_simple

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    speed==0 & press < zero_thresh
  2. レポートに戻ります。[制約] セクションへとスクロールします。

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

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

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

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

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

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

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

関連するトピック