Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

saveResult

比較結果の MLDATX ファイルへの保存

説明

saveResult(DiffRes,fileName) は、比較結果を Simulink.sdi.DiffRunResult オブジェクト DiffRes に保存し、元の実行データを MLDATX ファイル fileName に保存します。関数 Simulink.sdi.load または関数 open を使用して、実行と比較の結果を含む MLDATX ファイルをシミュレーション データ インスペクターに読み込むことができます。

saveResult(DiffRes,fileName,saveRuns) は、saveRuns に指定される値に従って、比較の結果を元の実行データと共に、あるいは元の実行データなしで保存します。

すべて折りたたむ

この例では、シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、シミュレーション データの実行を比較し、解析して、結果を保存する方法を示します。

シミュレーション データの作成

まず、データを記録するモデルのシミュレーションを行ってシミュレーション データを作成します。この例では ex_sldemo_absbrake モデルを使用し、Desired relative slip の値を変更する場合の影響を解析します。

モデルを読み込みます。関数 set_param を使用して、相対すべりの初期値を指定し、モデルのシミュレーションを行います。

load_system('ex_sldemo_absbrake')

set_param('ex_sldemo_absbrake/Desired relative slip','Value','0.24')
out_1 = sim('ex_sldemo_absbrake');

関数 set_param を使用して、相対すべりの異なる値を指定し、再度モデルのシミュレーションを行います。

set_param('ex_sldemo_absbrake/Desired relative slip','Value','0.25')
out_2 = sim('ex_sldemo_absbrake');

グローバル許容誤差値を使用した実行の比較

まず、関数Simulink.sdi.getAllRunIDsを使用して、最新の 2 つのシミュレーション実行に対応する実行 ID を取得します。

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

次に、関数Simulink.sdi.compareRunsを使用して実行を比較します。グローバル相対許容誤差の値 0.2 およびグローバル時間許容誤差の値 0.5 を指定します。

runResult = Simulink.sdi.compareRuns(runID1,runID2,'reltol',0.2,'timetol',0.5);

返されたSimulink.sdi.DiffRunResultオブジェクトの Summary プロパティをチェックします。

runResult.Summary
ans = struct with fields:
       OutOfTolerance: 2
      WithinTolerance: 2
            Unaligned: 0
        UnitsMismatch: 0
                Empty: 0
             Canceled: 0
          EmptySynced: 0
     DataTypeMismatch: 0
         TimeMismatch: 0
    StartStopMismatch: 0
          Unsupported: 0

実行内で 2 つの信号の比較が許容範囲内、2 つが許容範囲外でした。

比較結果のプロット

プロットを使用して比較結果を解析できます。関数getResultByIndexを使用して、比較の結果を含む DiffRunResult オブジェクトからの Ww 信号の信号結果にアクセスします。Simulink.sdi.DiffSignalResult オブジェクトの Status プロパティをチェックします。

signalResult_Ww = getResultByIndex(runResult,1)
signalResult_Ww = 
  DiffSignalResult with properties:

             Name: 'yout.Ww'
           Status: OutOfTolerance
          AlignBy: 'Path'
        SignalID1: 120877
        SignalID2: 120923
    MaxDifference: 12.4878
            Sync1: [1x1 timeseries]
            Sync2: [1x1 timeseries]
             Diff: [1x1 timeseries]

signalResult_Ww.Status
ans = 
OutOfTolerance

Ww 信号の比較の結果は許容範囲外です。差分信号をプロットして結果を解析します。

figure(1)
plot(signalResult_Ww.Diff)

比較結果の保存

比較の結果を MLDATX ファイルに保存して、後で解析したり、同僚と共有したりできます。関数saveResultを使用して実行データと比較結果を保存できます。

saveResult(runResult,'desiredSlipResults')

MLDATX ファイル desiredSlipResults は作業ディレクトリに作成されます。関数Simulink.sdi.loadまたは関数openを使用して MLDATX ファイルの結果を表示します。

入力引数

すべて折りたたむ

保存するデータを含む実行の比較結果。Simulink.sdi.DiffRunResult オブジェクトとして指定します。

結果を保存する MLDATX ファイルの名前。string または文字配列として指定します。

例: 'ComparisonResults'

比較される実行の元の実行データを保存するかどうか。logical の 1 (true) または 0 (false) として指定します。既定では、関数 saveResult は元の実行データを比較の結果と共に保存します。

R2020a で導入