Main Content

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

対話型比較レポートの作成

この例では、シミュレーション データ インスペクターを使用して実行する比較用に、Web ベースの対話型比較レポートを作成して結果を共有およびアーカイブする方法を示します。レポートは自己完結した HTML ファイルで、レポートの表示に必要なのは Web ブラウザーだけです。レポートを使用して、シミュレーション データ インスペクターと同じような方法で比較結果を解析することができます。対話的な表示と印刷可能な表示間でレポートのレイアウトを変更できます。

この例では、セッション ファイルからシミュレーション データ インスペクターに読み込んだデータを使用して、対話型比較レポートを作成する方法を示します。シミュレーション データ インスペクターにデータをインポートする方法、またはシミュレーションのデータをログに記録する方法の詳細については、シミュレーション データ インスペクターでのシミュレーション データの表示を参照してください。

データの読み込みと比較

シミュレーション データ インスペクターを開き、セッション ファイルのデータをシミュレーション データ インスペクターに読み込みます。

Simulink.sdi.view
Simulink.sdi.load("dataToCompare.mldatx");

セッション ファイルには、モデル slexAircraftExample をシミュレートして作成されたデータが保存されています。両方のシミュレーションで、モデルの Pilot ブロックからの矩形波入力を使用しています。使用している入力フィルターの時定数が各シミュレーションで異なります。1 回目の実行には、入力フィルターの時定数が 0.1 のシミュレーション結果が含まれています。2 回目の実行には、入力フィルターの時定数が 1 のシミュレーション結果が含まれています。

入力フィルターの時定数の変更による影響を解析するために、各シミュレーションのデータを含む実行を比較します。

  1. シミュレーション データ インスペクターで、[比較] タブに移動します。

  2. [ベースライン] のリストから Run 1: slexAircraftExample を選択します。

  3. [比較対象] のリストから Run 2: slexAircraftExample を選択します。

  4. [比較] をクリックします。

あるいは、関数 Simulink.sdi.compareRuns を使用してプログラムで実行を比較します。

runIDs = Simulink.sdi.getAllRunIDs;
runID1 = runIDs(end-1);
runID2 = runIDs(end);

diffRes = Simulink.sdi.compareRuns(runID1,runID2);

対話型比較レポートの生成

比較結果を保存するための比較レポートを生成する際は、以下を指定します。

  • レポートに含めるデータ。

  • レポートのタイトルと作成者。

  • ファイルの名前と場所。

  • 既存のレポートの上書きとブロック パスの短縮を回避するオプション。モデルの階層構造全体でデータを記録する場合は、ブロック パスを短縮することを検討してください。

レポートを生成するには、[レポート] をクリックします。

この例では次のようにします。

  1. [タイプ][比較] を選択します。

  2. [コンテンツ] でいずれかのオプションを選択します。この例では、比較ですべての信号が一致しないため、レポートの内容はいずれのオプションでも同じになります。

  3. [タイトル] テキスト ボックスに「Compare: Ts = 0.1 vs. Ts = 1」と入力します。

  4. [ファイル名] テキスト ボックスに「slexAircraftExample_filterComparison.html」と入力します。

  5. [レポートの作成] をクリックします。

生成されたレポートがシステム ブラウザーで自動的に開きます。既定では、シミュレーション データ インスペクターは作業ディレクトリの sdireports という名前のフォルダーにレポートを保存します。

対話型レポートを使用した比較結果の検査

対話型レポートの情報とレイアウトは、シミュレーション データ インスペクターの [比較] ペインに表示されるものと似ています。比較テーブルで、プロットに表示する信号の結果を選択できます。

[プロパティ] テーブルには、比較対象の信号のメタデータが表示され、相違するメタデータが強調表示されています。[プロパティ] テーブル内をスクロールしてすべてのメタデータを確認します。結果テーブルに収まらない数の信号が比較に含まれている場合は、結果テーブル内をスクロールして各信号の比較結果を検査したり、テーブル内の信号を各列のデータで並べ替えたりできます。

たとえば、結果を最大差の順に並べ替えるには [最大差分] 列をクリックします。

境界をドラッグしてレポートのペインのサイズを調整できます。また、列見出し間の境界をドラッグして各テーブルの列の幅を調整できます。たとえば、信号ペインに比較テーブルで使用されていないスペースが残っているため、[プロパティ] ペインを大きくすることができます。

テーブルの情報から、Stick 信号の比較結果の最大差が 0.78 で、許容誤差範囲外であることが分かります。モデルでは、Stick 信号は Signal Generator ブロックからの出力であり、フィルター時定数はこのブロックの出力に影響しないはずです。Stick 信号を選択し、比較結果を調査します。

プロットを調査すると、差異は矩形波の立ち上がりエッジと立ち下がりエッジで発生していることがわかります。slexAircraftExample モデルは可変ステップ ソルバーを使用します。新しい時定数値によってシステム ダイナミクスが変化し、2 つ目のシミュレーションのソルバーではわずかに異なるタイム ステップが計算されるため、差異が発生します。矩形波の遷移が鋭いため、わずかなタイミングの差が大きな振幅の差につながります。

Stick 信号の差異は、システム ダイナミクスの実際の変化というよりはモデリングによるものであるため、シミュレーション データ インスペクターに戻って、Stick 信号の時間の許容誤差を小さい値 (0.01 など) に指定することで、比較結果を許容誤差範囲内に収めることができます。更新された結果を共有するため、新しい比較レポートを生成できます。

比較レポートの印刷

比較結果の解析と表示を確定した後、対話型 Web レポートを使用して結果の包括的なビューを印刷できます。印刷可能なビューに切り替えるには、[印刷可能] ラジオ ボタンを選択するか、"Ctrl" + "P" キーを押してブラウザーに印刷プレビューを表示します。印刷可能なビューでは、すべての信号のメタデータとプロットが上下に並べて表示され、最上部に概要テーブルが示されます。

参考

関連するトピック