このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
シミュレーション データ インスペクター 美国石油学会を使用して、MATLAB®コマンド ラインからシミュレーション データ インスペクターの機能を利用できます。
シミュレーションデータインスペクターでは実行と信号のデータを整理し,各実行と信号に固有の数値識別子を割り当てます。シミュレーションデータインスペクターAPI 関数は、実行または信号そのものを入力として受け入れるのではなく、実行 ID および信号 ID を使用してデータを参照します。ワークスペースの実行 ID にアクセスするには、金宝appSimulink.sdi.getAllRunIDs
または金宝appSimulink.sdi.getRunIDByIndex
を使用できます。getSignalIDByIndex
メソッドを使って金宝appSimulink.sdi.Run
オブジェクトにより信号 身份证件にアクセスできます。
金宝appSimulink.sdi.Run
クラスと金宝appSimulink.sdi.Signal
クラスはデータへのアクセスを提供し、実行および信号メタデータの表示と変更を可能にします。金宝appSimulink.sdi.setSubPlotLayout
、金宝appSimulink.sdi.setRunNamingRule
、金宝appSimulink.sdi.setMarkersOn
などの関数を使用してシミュレーションデータインスペクターの基本設定を変更できます。シミュレーションデータインスペクターの既定の設定に戻すには,金宝appSimulink.sdi.clearPreferences
を使用します。
この例では、実行を作成してそこにデータを追加してから、シミュレーション データ インスペクターでデータを表示する方法を示します。
実行からデータを作成
timeseries
オブジェクトを作成し、正弦信号と余弦信号のデータを含めます。各timeseries
オブジェクトに説明的な名前を付けます。
时间=linspace(0,20100);正弦=正弦(2*pi/5*时间);正弦=时间序列(正弦值,时间);正名='正弦,T=5'; cos_vals=cos(2*pi/8*time);cos\u ts=时间序列(cos\u vals,time);原因名称=“余弦,T = 8”;
実行の作成とデータの追加
関数金宝appSimulink.sdi.view
を使用して、シミュレーション データ インスペクターを開きます。
金宝appSimulink.sdi.view
データをワークスペースからシミュレーションデータインスペクターにインポートするには,関数金宝appSimulink.sdi.Run.create
を使用して金宝appSimulink.sdi.Run
オブジェクトを作成します。运行
オブジェクトの的名字
プロパティと描述
プロパティを使用して、実行に関する情報をそのメタデータに追加します。
sinusoidsRun = 金宝appSimulink.sdi.Run.create;sinusoidsRun。Name =正弦曲线的;sinusoidsRun。描述=“不同频率的正弦和余弦信号”;
関数添加
を使用して、ワークスペースで作成したデータを空の実行に追加します。
添加(sinusoidsRun“var”、正弦、余弦);
シミュレーション データ インスペクターでのデータのプロット
関数getSignalByIndex
を使用して、信号データが含まれる金宝appSimulink.sdi.Signal
オブジェクトにアクセスします。金宝appSimulink.sdi.Signal
オブジェクトのプロパティを使用して,信号のラインスタイルと色を指定し,シミュレーションデータインスペクターにプロットできます。各信号の线条颜色
プロパティと虚线
プロパティを指定します。
sine_sig=getSignalByIndex(sinusoidsRun,1);sine_sig.LineColor=[0 0 1];sine_sig.line虚线=“-”。;cos_sig = sinusoidsRun.getSignalByIndex (2);cos_sig。LineColor = [0 1 0];cos_sig。LineDashed =“——”;
関数金宝appSimulink.sdi.setSubPlotLayout
を使用して,シミュレーションデータインスペクターのプロット領域で2
行1
列のサブプロットレイアウトを設定します。次に,関数plotOnSubplot
を使用して,上のサブプロットに正弦信号をプロットし,下のサブプロットに余弦信号をプロットします。
金宝appSimulink.sdi.setSubPlotLayout (2, 1);plotOnSubPlot (sine_sig 1 1,真实);plotOnSubPlot (cos_sig 2 1,真实);
シミュレーションデータインスペクターを閉じてデータを保存
プロットされた信号データの検査が完了したら、シミュレーション データ インスペクターを閉じて、セッションを MLDATXファイルに保存できます。
金宝appSimulink.sdi.close(“sinusoids.mldatx”)
シミュレーションデータインスペクターのプログラムによるインターフェイスを使用して,同じ実行内の信号を比較できます。この例では,航空機用縦方向コントローラーの入力信号と出力信号を比較します。
最初に,データを含むセッションを読み込みます。
金宝appSimulink.sdi.load (“AircraftExample.mldatx”);
関数金宝appSimulink.sdi.Run.getLatest
を使用してデータ内の最新の実行にアクセスします。
aircraftRun = 金宝appSimulink.sdi.Run.getLatest;
次に,関数金宝appSimulink.sdi.getSignalsByName
を使用して,コントローラーへの入力を表す坚持
信号と,出力を表す阿尔法,拉德
信号にアクセスできます。
stick=getSignalsByName(飞机运行,“棍子”);α= getSignalsByName (aircraftRun“α,rad”);
信号を比較する前に、比較に使用する許容誤差値を指定できます。比較のベースライン信号に指定された許容誤差値が使用されるため、坚持
信号に0.1
の絶対許容誤差値を設定します。
stick.Absol=0.1;
ここで,関数金宝appSimulink.sdi.compareSignals
を使用して信号を比較します。坚持
信号はベースラインで,阿尔法,拉德
信号はベースラインと比較される信号です。
comparisonResults = 金宝appSimulink.sdi.compareSignals (stick.ID alpha.ID);= comparisonResults相匹配。状态
匹配= OutOfTolerance
比較結果は許容誤差の範囲外です。関数金宝appSimulink.sdi.view
を使用して、シミュレーション データ インスペクターを開き、比較結果を表示および解析できます。
2つのシミュレーション実行の比較に使用するグローバル許容誤差値を指定できます。グローバル許容誤差値は実行内のすべての信号に適用されます。この例では,実行比較のグローバル許容誤差値を指定する方法と,比較結果を解析して保存する方法を説明します。
まず,比較するデータを含むセッションファイルを読み込みます。セッションファイルには航空機用縦方向コントローラーの4つのシミュレーションに対するデータが含まれます。この例では,さまざまな入力フィルターの時定数を使用する2つの実行のデータを比較します。
金宝appSimulink.sdi.load (“AircraftExample.mldatx”);
比較する実行データにアクセスするには,関数金宝appSimulink.sdi.getAllRunIDs
を使用して,最新の2つのシミュレーション実行に対応する実行IDを取得します。
runIDs = 金宝appSimulink.sdi.getAllRunIDs;runID1 = runid (end - 1); / /结束runID2 = runIDs(结束);
関数金宝appSimulink.sdi.compareRuns
を使用して実行を比較します。グローバル相対許容誤差の値0.2
およびグローバル時間許容誤差の値0.5
を指定します。
runResult = 金宝appSimulink.sdi.compareRuns (runID1 runID2,“雷托”, 0.2,“timetol”,0.5);
返された金宝appSimulink.sdi.DiffRunResult
オブジェクトの总结
プロパティをチェックし、信号が許容誤差値の範囲内または範囲外のどちらであるのかを確認します。
runResult。总结
ans =带字段的结构:OutOfTolerance: 0 withtolerant: 3 Unaligned: 0 UnitsMismatch: 0 Empty: 0 Canceled: 0 EmptySynced: 0 DataTypeMismatch: 0 TimeMismatch: 0 StartStopMismatch: 0 Unsup金宝appported: 0
3.つの信号の比較結果はすべて指定したグローバル許容誤差の範囲内にあります。
関数saveResult
を使用して、比較の結果を MLDATXファイルに保存できます。
saveResult (runResult“InputFilterComparison”);
シミュレーション データ インスペクターを使用して、実行した比較で使用する信号の許容誤差値をプログラムによって指定できます。この例では、航空機用縦方向飛行制御システムのモデルをシミュレーションして収集したデータを比較します。各シミュレーションは入力フィルターの時定数に異なる値を使用して、入出力信号をログに記録します。シミュレーション データ インスペクターと信号許容誤差を使用して結果を比較し、時定数の変更の影響を解析します。
まず,シミュレーションデータを含むセッションファイルを読み込みます。
金宝appSimulink.sdi.load (“AircraftExample.mldatx”);
セッションファイルには4つの実行が含まれます。この例では,ファイル内の最初の2つの実行からデータを比較します。ファイルから読み込まれた最初の2つの実行について,金宝appSimulink.sdi.Run
オブジェクトにアクセスします。
runIDs = 金宝appSimulink.sdi.getAllRunIDs;runIDTs1 = runIDs (end-3);runIDTs2 = runIDs (end-2);
次に、許容誤差を指定しないで 2.つの実行を比較します。
noTolDiffResult = 金宝appSimulink.sdi.compareRuns (runIDTs1 runIDTs2);
関数getResultByIndex
を使用して问
信号とα
信号の比較結果にアクセスします。
qResult = getResultByIndex (noTolDiffResult, 1);alphaResult = getResultByIndex (noTolDiffResult 2);
各信号結果の状态
をチェックし、比較結果が許容誤差の範囲内または範囲外にあるかどうかを判断します。
qResult。状态
ans = OutOfTolerance
alphaResult。状态
ans = OutOfTolerance
比較では,すべての許容誤差に0
の値を使用するため、超出公差
の結果は信号が同一でないことを意味します。
信号の許容誤差値を指定して,時定数の影響をさらに解析できます。比較対象の信号に対応する金宝appSimulink.sdi.Signal
オブジェクトのプロパティを設定し、許容誤差を指定します。比較ではベースライン信号に対して指定された許容誤差が使用されます。この例では、時間の許容誤差と絶対許容誤差を指定します。
許容誤差を指定するには,最初にベースライン実行から信号
オブジェクトにアクセスします。
runTs1=Si金宝appmulink.sdi.getRun(runIDTs1);qSig=getSignalsByName(runTs1,“问,rad /秒”);alphaSig = getSignalsByName (runTs1,“α,rad”);
AbsTol
プロパティと泰姆托尔
プロパティを使用して,问
信号に対して0.1
の絶対許容誤差と0.6
の時間の許容誤差を指定します。
qSig。AbsTol = 0.1;qSig。TimeTol = 0.6;
α
信号に対して、0.2
の絶対許容誤差と0.8
の時間の許容誤差を指定します。
alphaSig.absol=0.2;alphaSig.TimeTol=0.8;
結果を再度比較します。比較の結果にアクセスし、各信号の状态
プロパティをチェックします。
tolDiffResult = 金宝appSimulink.sdi.compareRuns (runIDTs1 runIDTs2);qResult2 = getResultByIndex (tolDiffResult, 1);alphaResult2 = getResultByIndex (tolDiffResult 2);qResult2。状态
不容忍
alphaResult2。状态
不容忍