Main Content

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

sldiagnostics

Simulink システムの診断情報を表示する

    説明

    sldiagnostics(modelName) はコマンド ウィンドウで、次の統計情報を含む Simulink® モデルまたはサブシステムの診断情報を返します。

    • ブロック カウント — 固有のブロックの名前と数

    • Stateflow® カウント — 固有の Stateflow オブジェクトの名前と数

    • モデル サイズ — 状態、出力、入力、直達のフラグ、およびサンプル時間の数

    • ライブラリ使用率統計 — すべてのライブラリ ブロックと参照ライブラリの名前と数

    • コンパイル統計 — 各フェーズのコンパイルで使用された時間とメモリ

    sldiagnostics(modelName,option1,...,optionN) は、option1,...,optionN でリストされた診断について、コマンド ウィンドウで Simulink モデルまたはサブシステムの診断情報を返します。たとえば、オプション CountBlocks を使用すると、モデルまたはサブシステム内の固有のブロックの名前と数がリストされます。

    [txtRpt,sRpt] = sldiagnostics(___) は、前述の構文のいずれかを使用して、診断情報を txtRpt で書式設定されたテキストとして、sRpt で構造体配列として返します。

    すべて折りたたむ

    Simulink モデルまたはサブシステムの診断情報を生成してコマンド ウィンドウに表示します。

    BangBangControlUsingTemporalLogicExample の例を開いて、ルート モデル sf_boiler の診断情報を生成します。

    openExample('stateflow/BangBangControlUsingTemporalLogicExample');
    sldiagnostics('sf_boiler')

    モデルを開かず、読み込みもしなかった場合、sldiagnostics はモデルを読み込んで、診断情報を生成します。

    Simulink モデルまたはサブシステムの特定の診断情報を生成してコマンド ウィンドウに表示します。

    BangBangControlUsingTemporalLogicExample の例を開いて、sf_boiler/Bang-Bang Controller サブシステム内のブロックおよび Stateflow オブジェクトの数に関連した診断情報を生成します。

    openExample('stateflow/BangBangControlUsingTemporalLogicExample');
    sldiagnostics('sf_boiler/Bang-Bang Controller','CountBlocks','countSF')

    モデルを開かず、読み込みもしなかった場合、sldiagnostics はモデルを読み込んで、診断情報を生成します。

    モデルの診断情報を生成し、結果を書式設定されたテキストおよび構造体配列として保存します。

    BangBangControlUsingTemporalLogicExample の例を開いて、ルート モデル sf_boiler の診断情報を生成します。myReport および strucRpt にこれらのレポートを保存します。

    openExample('stateflow/BangBangControlUsingTemporalLogicExample');
    [myReport,strucRpt] = sldiagnostics('sf_boiler');

    モデルを開かず、読み込みもしなかった場合、sldiagnostics はモデルを読み込んで、診断情報を生成します。

    モデルでコンパイルに使用した時間とメモリを生成し、この情報を使用してモデルの性能を評価します。

    コンパイル時間とメモリ使用量のデータ収集

    モデル vdp を読み込みます。

    model = 'vdp';
    load_system(model);

    vdp のコンパイル時間診断情報を生成し、結果を txtRpt および strucRpt に保存します。

    [txtRpt,strucRpt] = sldiagnostics(model,'CompileStats');

    txtRptvdp の各フェーズのコンパイル時間と説明を書式設定されたテキストとして保存します。sRpt は、vdp の各フェーズで使用されたコンパイル時間とメモリを構造体として保存します。

    strucRpt
    strucRpt = struct with fields:
             Model: 'vdp'
        Statistics: [1×200 struct]
    
    

    strucRpt.Statistics 配列のサイズは、コンパイル中に実行されたコンパイルおよびビルド フェーズの数を示します。フェーズ 20 におけるコンパイル時間とメモリ使用量に関する統計を確認します。

    strucRpt.Statistics(20)
    ans = struct with fields:
                Description: 'Finding and refreshing Model blocks'
                    CPUTime: 0
              WallClockTime: 0.0010
            ProcessMemUsage: 0.0430
        ProcessMemUsagePeak: 0
              ProcessVMSize: 0
    
    

    レポート情報は以下のとおりです。

    CPUTime - CPU が Simulink フェーズをアクティブに処理するのにかかった時間 (秒単位)。

    WallClockTime - Simulink プロセスの 1 つのフェーズが完了するまでのリアルタイム経過時間 (秒単位)。WallClockTime は、CPUtime、入出力時間、およびプログラミング遅延の合計です。

    ProcessMemUsage - Simulink 演算フェーズの実行に使用されたワーキング セット サイズ (メガバイト単位)。プロセスのワーキング セット サイズは、そのプロセス コンテキストに物理的にマッピングされたメモリ容量です。

    ProcessMemUsagePeak - Simulink 演算フェーズの実行に使用されたピーク ワーキング セット サイズ (メガバイト単位)。

    ProcessVMSize - 演算フェーズの開始時に MATLAB™ プロセスにコミットされたバーチャル メモリまたはアドレス空間の量。

    モデルの性能解析

    次の主要なメトリクスを使用して、vdp の性能を解析します。

    • 合計経過時間 - vdp の各フェーズの時計時間の合計。

    • 合計メモリ - vdp の各フェーズで使用されたメモリの合計。

    • ピーク メモリ - vdp のすべてのフェーズのうちの 1 つのフェーズで使用された最大メモリ。

    ElapsedTime = sum([strucRpt.Statistics(:).WallClockTime])
    ElapsedTime = 10.1960
    
    TotalMemory = sum([strucRpt.Statistics(:).ProcessMemUsage])
    TotalMemory = 153.1289
    
    PeakMemory = max([strucRpt.Statistics(:).ProcessMemUsagePeak])
    PeakMemory = 35.0273
    

    考慮事項

    • CompileStats 診断オプションは、モデルを初めて読み込むときに使用する必要があります。そうしないと、sldiagnostics は以前にコンパイルされたモデルのオブジェクトを再利用してしまうため、モデルの時間とメモリ使用量のレポート値が小さくなります。

    • メモリ使用量統計情報は Microsoft® Windows® プラットフォームでのみ確認できます。

    入力引数

    すべて折りたたむ

    診断情報を生成する Simulink モデルの名前またはサブシステムのパス。文字ベクトルまたは string として指定します。

    例: 'sf_boiler', 'sf_boiler/Bang-Bang Controller'

    データ型: char | string

    特定の診断情報セットを表す診断オプション。文字ベクトルまたは string として指定します。一部の診断オプションはルート モデルでのみ機能します。次の表は、診断オプション、互換性のある入力システム タイプ、および予期される出力のリストです。

    診断オプション

    入力システム タイプ

    出力

    'CountBlocks'

    ルート モデル、ライブラリ、またはサブシステム

    システムで使用されている固有のブロックの名前と数。これは、マスク サブシステムで入れ子にされているブロックや非表示のブロックを含みます。

    'CountSF'

    ルート モデル、ライブラリ、またはサブシステム

    システムで使用されている固有の Stateflow オブジェクトの名前と数。

    'Sizes'

    ルート モデル

    モデルで使用されている状態、出力、入力、直達のフラグ、およびサンプル時間の数。

    'Libs'

    ルート モデル、ライブラリ、またはサブシステム

    システムで参照されているすべてのライブラリ ブロックおよび固有のライブラリの名前と数。

    'CompileStats'

    ルート モデル

    モデルの各フェーズのコンパイルで使用された時間とメモリ。この情報は、モデルのコンパイル速度とメモリの問題のトラブルシューティングに役立ちます。

    'RTWBuildStats'

    ルート モデル

    CompileStats オプションを使用している場合に返される Simulink Coder™ のビルド統計およびすべての統計。

    このオプションは、既定の解析に含まれていないため、明示的に指定しなければなりません。

    'All'

    ルート モデル

    すべての診断 (RTWBuildStats で提供されるものも含む)。

    sldiagnostics は以下の場合に警告を出します。

    • 診断オプションおよび入力システム タイプに互換性がない。

    • 入力システム タイプが Simulink ライブラリである。該当するシステムでは、[ブロック線図の更新] などのモデルのコンパイルを必要とするオプションでは、sldiagnostics は診断を生成できません。

    例: 'CountBlocks'

    データ型: char | string

    出力引数

    すべて折りたたむ

    Simulink システムの診断情報を書式設定されたテキストとして保存する診断レポート。文字ベクトルとして返されます。

    Simulink システムの診断情報を保存する診断レポート。構造体配列として返されます。この構造体配列には、診断オプションに対応する次のフィールドがあります。

    • blocks

    • stateflow

    • sizes

    • links

    • compilestats

    • rtwbuildstats

    データ型: struct

    バージョン履歴

    R2006a で導入