Main Content

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

sldiagnostics

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

構文

sldiagnostics('sys')
[txtRpt, sRpt] = sldiagnostics('sys')
[txtRpt, sRpt] = sldiagnostics('sys', options)
[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats')
[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats')

説明

sldiagnostics('sys') は、sys で指定されたモデルまたはサブシステムに関する次の診断情報を表示します。

  • 各タイプのブロックの数

  • 各タイプの Stateflow® オブジェクトの数

  • ルート モデルの状態数、出力、入力、およびサンプル時間

  • 参照されるライブラリ名と参照されるブロックのインスタンス名

  • ルート モデルの各コンパイル フェーズに対して使用される時間と追加メモリ

sys によって指定されたモデルが読み込まれていない場合、sldiagnostics は分析を実行する前にモデルを読み込みます。

コマンド sldiagnostics('sys', options) は、options 文字ベクトルとしてリストされる指定した操作に関する診断情報のみを表示します。次の表は、利用可能なオプションとそれに対応する有効な入力と出力をまとめています。

sldiagnostics を使用すると、モデルの名前またはサブシステムのパスを入力できます。一部の分析オプションでは、sldiagnostics でルート モデルしか分析できません。互換性のない入力をこれらの分析のいずれかに指定した場合、sldiagnostics によって警告が発行されます。さらに、Simulink® ライブラリを入力した場合、sldiagnostics は、モデルのコンパイルを必要とするオプション ([ブロック線図の更新]) を実行できません。その代わりに、sldiagnostics によって警告が発行されます。

分析時に、sldiagnostics はライブラリ リンクをたどりますが、モデル参照をたどったり、分析したりはしません。指定したモデルに含まれているすべての Model ブロックと参照先モデルを見つける方法の詳細については、find_mdlrefs を参照してください。

オプション

有効な入力

出力

CountBlocks

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

システム内のすべてのユニーク ブロックとそれぞれの数をリストします。これは、マスク サブシステムまたは非表示のブロックに入れ子になっているブロックを含みます。

CountSF

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

システム内のすべてのユニークな Stateflow オブジェクトとそれぞれの数をリストします。

Sizes

ルート モデル

ルート モデルで使用される直達を示すフラグと同様に、状態数、出力、入力、サンプル時間をリストします。

Libs

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

ライブラリ ブロックの名前と数と同様に、ルート モデルで参照されるすべてのユニーク ライブラリをリストします。

CompileStats

ルート モデル

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

RTWBuildStats

ルート モデル

CompileStats 診断と同じ情報をリストします。2 番目の出力引数 sRpt を付けて起動すると、CompileStats に含まれているものと同じ統計値に加えて Simulink Coder™ のビルドの統計値を保存します。

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

All

該当なし

すべての診断を実行します。

メモ

最初にモデルをシミュレートする前に CompileStats 診断を実行すると、より多くのメモリ使用を示します。ただし、モデルで CompileStats 診断を続けて実行すると、メモリ使用量がより少なくて済みます。

[txtRpt, sRpt] = sldiagnostics('sys') は、テキストのレポート txtRpt として診断情報と構造体配列 sRpt を返します。構造体配列は、診断オプションに対応する次のフィールドを含みます。

  • blocks

  • stateflow

  • sizes

  • links

  • compilestats

[txtRpt, sRpt] = sldiagnostics('sys', options) は指定されたオプションのみを返します。選択したオプションによって指定される解析のタイプが 1 つだけの場合、sRpt はその解析の結果しか含みません。

[txtRpt, sRpt] = sldiagnostics('sys', 'CompileStats') は、txtRptsRpt の時間およびメモリ使用量に関する情報を返します。

[txtRpt, sRpt] = sldiagnostics('sys', 'RTWBuildStats') には、sRpt 出力の CompileStats でレポートされた情報に加えて Simulink Coder のビルドの統計値が含まれます。

  • txtRpt には、Simulink と Simulink Coder の各フェーズにかかった時間の書式設定されたテキスト出力が含まれます (RTWBuildStats を指定した場合)。次に例を示します。

    Compile Statistics For: rtwdemo_counter
    	Cstat1: 0.00 seconds Model compilation pre-start
    	Cstat2: 0.00 seconds Stateflow compile pre-start notification
    	Cstat3: 0.10 seconds Post pre-comp-start engine event
    	Cstat4: 10.00 seconds Stateflow compile start notification
    	Cstat5: 0.00 seconds Model compilation startup completed
    

  • sRpt は、各フェーズの時間およびメモリ使用量を含む MATLAB® 構造体です。次に例を示します。

    sRpt =
    Model:	'myModel1'
    Statistics:	[1x134 struct]
    
    sRpt.Statistics 配列のサイズは、処理中に実行されたコンパイルおよびビルド フェーズの数を示します。Statistics フィールドを確認します。
    sRpt.Statistics(1) = 
    Description:	'Phase1'
    CPUTime:	7.2490
    WallClockTime	4.0092
    ProcessMemUsage:	26.2148
    ProcessMemUsagePeak:	28.6680
    ProcessVMSize:	15.9531
    
    CPUTime および WallClockTime は、フェーズの経過時間を秒単位で示します。ProcessMemUsageProcessMemUsagePeak および ProcessVMSize は、フェーズの実行中のメモリ消費量を MB 単位で示します。

パフォーマンスを把握するには、次の主要メトリクスを確認します。

  • WallClockTime — 各フェーズの実経過時間 (秒単位)。処理の実行にかかった合計時間を求めるには、各フェーズの WallClockTime を合計します。

    ElapsedTime = sum([statRpt.Statistics(:).WallClockTime]);

  • ProcessMemUsage — 各フェーズの消費メモリ量。処理全体のメモリ消費量を求めるには、すべてのフェーズの ProcessMemUsage を合計します。

    TotalMemory = sum([statRpt.Statistics(:).ProcessMemUsage]);

  • ProcessMemUsagePeak — 各フェーズにおける割り当てられたメモリの最大量。処理中のピーク メモリ割り当てを特定するには、すべてのフェーズにおけるこのメトリクスの最大値を求めます。

    PeakMemory = max([statRpt.Statistics(:).ProcessMemUsagePeak]);

    メモ

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

次のコマンドは、Simulink に付属する sldemo_bounce モデルで使用されるブロックの各タイプをカウントしリストします。

sldiagnostics('sldemo_bounce', 'CountBlocks')

次のコマンドは、Stateflow に付属する sf_boiler モデルで使用されるユニークなブロックと Stateflow オブジェクトの両方をカウントしリストします。返されるテキストのレポートは、myReport として得られます。

myReport = sldiagnostics('sf_boiler', 'CountBlocks', 'CountSF')

次のコマンドは、Simulink に付属する f14 モデルを開き、Controller サブシステムで使用されるブロック数をカウントします。

sldiagnostics('f14/Controller', 'CountBlocks')

次のコマンドは、f14 モデルで SizesCompileStats 診断を実行し、結果をテキストのレポートと構造体配列として得ます。

[txtRpt, sRpt] = sldiagnostics('f14', 'Sizes', 'CompileStats')
R2006a で導入