このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。
信号データおよびメタデータにアクセスする
Simulink.sdi.Signal
オブジェクトには、シミュレーション データ インスペクターの信号のデータおよびメタデータが含まれます。Signal
オブジェクト プロパティを使用して信号メタデータを検証し、時間プロットで信号を可視化し、関数金宝appsimulink.sdi.comparesignals
を使用して信号を比較します。
Simulink.sdi.Signal
オブジェクトは内でログししにさされるか,シミュレーションデータインスペクターインスペクターにインポートさされますますます。。Signal
オブジェクトにはいくつかの方法でアクセスできます。一般に、Signal
オブジェクトにアクセスするには、信号が含まれるSimulink.sdi.Run
オブジェクトを最初に取得しなければなりません。
関数Simulink.sdi.getSignal
によって、指定した信号 ID に対応するSignal
オブジェクトが返される。
関数getSignal
によって、指定されたRun
オブジェクト内で指定された信号 ID をもつSignal
オブジェクトが返される。
関数getSignalByIndex
によって、指定されたRun
オブジェクト内で指定されたインデックスにあるSignal
オブジェクトが返される。
ID
—信号の识别子このプロパティは読み取り専用です。
信号をの数値。整数れ。シミュレーションデータデータインスペクターは一意一意のの数数値値値ををを各実行実行
RunID
—実行の识别子このプロパティは読み取り専用です。
信号を含む実行の実行識別子。整数として返されます。シミュレーション データ インスペクターは一意の数値 ID を各実行と信号に割り当てます。
Name
—信号名信号の名前。文字ベクトルまたは string として指定します。Signal
オブジェクトにシミュレーションからログ記録されたデータが含まれる場合、その名前はモデル内の信号に対して指定した名前と一致します。モデルで名前が指定されない場合、その信号名は、その信号を作成したブロックへのブロック パスになります。
例:'fuel'
Domain
—信号タイプ'Signals'
|'Outports'
|'States'
|'Data Store Memory'
|'参数'
| ...信号タイプ。次の値のいずれかとして指定します。
'Signals'
— 信号ログ データ。
'Outports'
— 出力ログ データ。
'States'
— 状態ログ データ。
'Data Store Memory'
— データ ストア メモリ ログ データ。
“参数”
— ログ記録されたパラメーター データ。
'Stateflow'
— Stateflow®データ。
'Simscape'
— Simscape™ データ。
'Assessments'
—金宝app®Test™評価データ。
“分析”
- 実行プロファイリングデータ。
シミュレーション データのログ記録によって作成されたのではないデータのDomain
プロパティは空。
描述
—信号の説明''
(既定値) |文字ベクトル|string信号の説明。文字ベクトルまたは string として指定します。描述
プロパティをし,信号注釈を付けるか,Name
外の信号成分を特定できます。Simscape データをシミュレーション データ インスペクターに記録すると、ノードごとに描述
プロパティが的にされます。
Stored Units
—ディスクに保存される信号データの単位このプロパティは読み取り専用です。
ディスクに保存される信号データの単位。文字ベクトルまたは字符串として指定します。モデルのシミュレーションによって生成された信号については、Signal
オブジェクトの保存された単位はモデルで指定された単位を使用します、単位をもたない信号に対して表示単位を指定する場合、同じ単位を使用して保存された単位が設定されます。異なる単位を使用する別の信号と一緒に信号を解析するには、信号の表示単位を変更します。シミュレーション データ インスペクターは変換を実行し、表示単位を使用してデータをプロットします。
信号の保存された単位を変換するには、関数convertUnits
を使用し。保存された単位の変換は元に戻すことをサポートしておらず、桁落ちが発生する可能性があります。
例:'g/s'
Display Units
—シミュレーション データ インスペクターで信号データを表示するために使用される単位シミュレーション データ インスペクターで信号データを表示するために使用される単位。文字ベクトルまたは string として指定します。信号の表示単位は、ディスクに保存されているデータを反映する保存済み単位とは異なる場合があります。信号の表示単位を変更して、シミュレーション データ インスペクターでデータを解析します。シミュレーション データ インスペクターでの単位の基本設定によって、ログ記録された信号データとインポートされた信号データの表示単位が変更される可能性があります。詳細については、信号の表示単位を参照してください。
例:'m/s'
数据类型
—信号データのデータ型このプロパティは読み取り専用です。
信号データのデータ型。文字ベクトルまたは string として返されます。
例:'double'
Complexity
—信号データの复雑度“真实的”
|"complex"
このプロパティは読み取り専用です。
信号データの复雑度。“真实的”
または"complex"
として返されます。
例:“真实的”
SampleTime
—信号のサンプル時間このプロパティは読み取り専用です。
信号のサンプル時間。文字ベクトルまたはスカラーとして返されます。'连续的'
の値は、可変ステップ シミュレーションを示します。
例:'连续的'
例:'0.1'
模型
—信号をしたモデル名前名前このプロパティは読み取り専用です。
信号をしたモデル名前名前。文字ベクトルとして返されます。モデルのシミュレーションにより作成されなかったデータが含まれるSignal
オブジェクトの模型
プロパティは空。
例:'sldemo_fuelsys'
BlockPath
—信号を作成したブロックのブロック パスこのプロパティは読み取り専用です。
信号を作成したブロックのブロック パス。文字配列として返されます。BlockPath
プロパティはモデルの階層構造が含まれない相対パスです。モデルのシミュレーションにより作成されなかったデータが含まれるSignal
オブジェクトのBlockPath
プロパティは空。
例:'sldemo_fuelsys/Engine Gas Dynamics'
FullBlockPath
—信号をしブロックの完全なパスパスこのプロパティは読み取り専用です。
完全な阶层を含むををブロック完全ななブロックパス。。文字ベクトルとして返されれますます。。。参照FullBlockPath
は绝対含む含む含む配列。その他信号の场合,,,FullBlockPath
はBlockPath
と同じです。モデルのシミュレーションにより作成されなかったデータが含まれるSignal
オブジェクトのFullBlockPath
プロパティは空。
blockName
—信号を作成したブロックの名前このプロパティは読み取り専用です。
信号を作成したブロックの名前。文字ベクトルとして返されます。モデルのシミュレーションにより作成されなかったデータが含まれるSignal
オブジェクトのblockName
プロパティは空。
例:“发动机气体动力学”
PortIndex
—ブロック端子インデックスこのプロパティは読み取り専用です。
信号を作成するブロックの信号に接続されている出力端子のインデックス。モデルのシミュレーションにより作成されなかったデータが含まれるSignal
オブジェクトのPortIndex
プロパティは空。
例:1
Dimensions
—信号の次元このプロパティは読み取り専用です。
信号の次元。整数または整数配列として返されます。
例:[1 2]
渠道
—行列内ののインデックスこのプロパティは読み取り専用です。
行列内ののインデックス。整数配列として返されます。
NumPoints
—信号のサンプル数このプロパティは読み取り専用です。
信号のサンプル数。整数として返されます。
Values
—信号値timeseries
|构造体信号の時間とデータ値。非バス信号またはバス信号のバス階層と一致する構造体のtimeseries
オブジェクトとして返されます。
Rootsource
—インポートされた信号を含む高位の構造体このプロパティは読み取り専用です。
信号を含む高位の構造体の名前。文字ベクトルとして返されます。Rootsource
プロパティにはインポートされた信号の値のみが含まれます。
例:构造体xout
が含まれるSimulink.SimulationOutput
オブジェクトsimOut
をインポートする場合、Rootsource
は'simOut.get('xout')'
です
TimeSource
—インポートされた信号時間データのソースこのプロパティは読み取り専用です。
信号時間データへのパス。文字ベクトルとして返されます。TimeSource
プロパティにはインポートされた信号の値のみが含まれます。
例:构造体xout
が含まれるSimulink.SimulationOutput
オブジェクトsimOut
をインポートする場合、TimeSource
は'simOut.get('xout').time'
です
DataSource
—インポートされた信号データのソースこのプロパティは読み取り専用です。
信号サンプルのパス文字配列としてれ。。。DataSource
プロパティにはインポートされた信号の値のみが含まれます。
例:构造体xout
が含まれるSimulink.SimulationOutput
オブジェクトsimOut
をインポートする場合、DataSource
は'simOut.get('xout').signals(1).values'
です
Children
—合成信号に含まれる信号Simulink.sdi.Signal
ベクトルこのプロパティは読み取り専用です。
合成信号に含まれる信号。Simulink.sdi.Signal
オブジェクトとして返されます。スカラー信号のChildren
プロパティは空。
ComplexFormat
—複素信号の表示形式"real-imaginary"
|"magnitude"
|“大小相”
|“阶段”
シミュレーション データ インスペクターで複素信号データの表示に使用される複素数形式。次のいずれかの値として指定します。Signal
オブジェクトのComplexFormat
プロパティを変更し、オブジェクトに複素信号のデータが含まれる場合にシミュレーション データ インスペクターで信号データが表示される方法を変更できます。
"real-imaginary"
— 信号をプロットすると、信号の実数部と虚数部が一緒に表示されます。信号の虚数部は、[ラインの色]の異なる階調でプロットされます。
"magnitude"
— 信号をプロットすると、信号の振幅が表示されます。
“大小相”
- 信号プロットと信号の振幅が一绪にされます。
“阶段”
- 信号プロットと信号のがされます位相は,[ラインの色]の異なる階調でプロットされます。
データ::char
|string
Checked
—信号がプロットされるかどうか0
またはfalse
(既定値) |1
またはtrue
信号がプロットされるかどうか。logical 値として指定します。Checked
をfalse
に設定すると、すべてのサブプロットから信号がクリアされます。Checked
をtrue
に设定,アクティブサブプロットでがささますます。
データ::logical
LineColor
—信号線の色1
行3
列のベクトルプロット内の信号の色。0
と1
の間の値をもつ1
行3
列の RGB ベクトルとして指定します。
例:[0 0.5 0.5]
データ::双倍的
LineDashed
—信号線のスタイル'-'
|'--'
|':'
|'-.'
シミュレーション データ インスペクターで信号をプロットする際に使用される信号線のスタイル。次のオプションのいずれかとして指定します。
'-'
- 実线
'--'
— 破線
':'
— 点線
'-.'
— 一点鎖線
LineWidth
—信号线の幅1
(既定値) |1
と20
の間の整数シミュレーション データ インスペクターで信号をプロットする際に使用される信号線の幅。1
以上20
以下の整数として指定します。
InterpMethod
—内挿法'linear'
(既定値) |'zoh'
|'none'
データの可視化および比較の同期ステップで使用される内挿法。次のいずれかの値として指定します。
'zoh'
- ゼロ次ホールド插
'linear'
— 線形内挿
'none'
— 内挿なし
内插オプション详细については,シミュレーション データ インスペクターでデータを比較する方法を参照してください。
Abstol
—絶対許容誤差0
(既定値) |スカラー信号比較で使用する絶対許容誤差。正の値のスカラーとして指定します。
シミュレーション データ インスペクターは、OverrideGlobalTol
プロパティが1
またはtrue
に设定て场合に,ベースの信号で指定指定されれたた许容许容误差误差使用使用ますますます。。。シミュレーションシミュレーションシミュレーションシミュレーション データ インスペクターでデータを比較する方法を参照してください。
例:0.1
データ::双倍的
Reltol
—相対許容誤差0
(既定値) |スカラー信号比較で使用する相対許容誤差。正の値のスカラーとして指定します。相対許容誤差は非整数乗数として表されます。たとえば、0.1
は 10 パーセントの許容誤差を指定します。
シミュレーション データ インスペクターは、OverrideGlobalTol
プロパティが1
またはtrue
に设定て场合に,ベースの信号で指定指定されれたた许容许容误差误差使用使用ますますます。。。シミュレーションシミュレーションシミュレーションシミュレーション データ インスペクターでデータを比較する方法を参照してください。
例:0.05
データ::双倍的
时间表
—时间の许容误差0
(既定値) |スカラー信号比較に使用される信号の時間の許容誤差。正の値のスカラーとして指定します。時間の許容誤差 (秒単位) を指定します。
シミュレーション データ インスペクターは、OverrideGlobalTol
プロパティが1
またはtrue
に设定て场合に,ベースの信号で指定指定されれたた许容许容误差误差使用使用ますますます。。。シミュレーションシミュレーションシミュレーションシミュレーション データ インスペクターでデータを比較する方法を参照してください。
例:0.1
データ::双倍的
OverrideGlobalTol
—比較で信号許容誤差を使用するかどうか0
またはfalse
(既定値) |1
またはtrue
グローバル許容誤差値の代わりに比較で信号許容誤差を使用するかどうか。logical 値として指定します。OverrideGlobalTol
プロパティを1
またはtrue
に设定し,Signal
オブジェクト プロパティで定義した許容誤差値を使用します。プロパティを0
またはfalse
に設定してグローバル許容誤差値を使用します。
シミュレーション データ インスペクターにおける許容誤差の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。
データ::logical
SyncMethod
—同期メソッド'union'
(既定値) |'路口'
比較で信号の同期に使用されるメソッド。'union'
または'路口'
として指定します。同期オプションの詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。
convertUnits |
Simulink.sdi.Signal オブジェクトの単位変换 |
export |
Simulink.sdi.Signal オブジェクトをワークスペースまたはファイルにエクスポート |
getastall |
Simulink.sdi.Signal 高高的时间表を |
plotOnSubPlot |
シミュレーション データ インスペクターのサブプロットでSimulink.sdi.Signal オブジェクトをプロット |
シミュレーション データ インスペクターを使用して、実行した比較で使用する信号の許容誤差値をプログラムによって指定できます。この例では、航空機用縦方向飛行制御システムのモデルをシミュレーションして収集したデータを比較します。各シミュレーションは入力フィルターの時定数に異なる値を使用して、入出力信号をログに記録します。シミュレーション データ インスペクターと信号許容誤差を使用して結果を比較し、時定数の変更の影響を解析します。
まず、シミュレーション データを含むセッション ファイルを読み込みます。
Simulink.sdi.load('AircraftExample.mldatx');
セッション ファイルには 4 つの実行が含まれます。この例では、ファイル内の最初の 2 つの実行からデータを比較します。ファイルから読み込まれた最初の 2 つの実行について、Simulink.sdi.Run
オブジェクトにアクセスします。
runids = 金宝appsimulink.sdi.getAllrunids;runidts1 = runids(end-3);runidts2 = runids(end-2);
次に许容を指定しでででつつ実行を比较し。。
noTolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
関数getResultByIndex
を使用してq
信号とalpha
信号の比較結果にアクセスします。
qResult = getResultByIndex(noTolDiffResult,1); alphaResult = getResultByIndex(noTolDiffResult,2);
各信号结果のStatus
をチェック比较が许容の内または外にあるかどうどうかかを判断判断
qResult.Status
ans = OutOfTolerance
alphaResult.Status
ans = OutOfTolerance
比較では、すべての許容誤差に0
の値使用するため,OutOfTolerance
の結果は信号が同一でないことを意味します。
信号の差値指定して时定の影响を解析解析できます。比较比较対象対象対応対応対応Simulink.sdi.Signal
オブジェクトのプロパティを設定し、許容誤差を指定します。比較ではベースライン信号に対して指定された許容誤差が使用されます。この例では、時間の許容誤差と絶対許容誤差を指定します。
許容誤差を指定するには、最初にベースライン実行からSignal
オブジェクトにアクセスします。
runTs1 = Simulink.sdi.getRun(runIDTs1); qSig = getSignalsByName(runTs1,'q, rad/sec');alphasig = getsignalsbyname(runts1,'alpha, rad');
Abstol
プロパティと时间表
プロパティを使用して、q
信号に対して0.1
の絶対許容誤差と0.6
の時間の許容誤差を指定します。
qSig.AbsTol = 0.1; qSig.TimeTol = 0.6;
alpha
信号に対して、0.2
の絶対許容誤差と0.8
の時間の許容誤差を指定します。
Alphasig.Abstol = 0.2;alphasig.timetol = 0.8;
結果を再度比較します。比較の結果にアクセスし、各信号のStatus
プロパティをチェックします。
tolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2); qResult2 = getResultByIndex(tolDiffResult,1); alphaResult2 = getResultByIndex(tolDiffResult,2); qResult2.Status
ans = withIntolance
alpharesult2.status
ans = withIntolance
この例では、Simulink.sdi.Signal
オブジェクトを取得し、シミュレーション データ インスペクターのプログラムによるインターフェイスを使用してそのプロパティを変更する方法を示します。
シミュレーションデータでのデータ作成作成
データを記録するモデルをシミュレーションすると、ログ データが含まれるようにシミュレーション データ インスペクターで実行が作成されます。データをインポートすることによりシミュレーション データ インスペクターで実行を作成することもできます。この例ではSlexaircraftExample
モデルをシミュレーションして、そのデータをDataset
形式でログに記録します。
simOut = sim(“ slexaircraftExample”,'SaveFormat',“数据集”);
Simulink.sdi.Signal
オブジェクトの取得
プログラミングによるシミュレーションではワークスペース変数simOut
にログデータが返されます。その変数でログデータにアクセスできます。ただし,シミュレーションデータ インスペクターのプログラムによるインターフェイスを使用するには、Simulink.sdi.Run
オブジェクトとSimulink.sdi.Signal
オブジェクトのデータアクセスしばなりません。
最初にSimulink.sdi.getCurrentSimulationRun
を使用し,SlexaircraftExample
モデルをシミュレーションしたときに作成されたRun
オブジェクトを取得します。
aircraftRun = Simulink.sdi.getCurrentSimulationRun(“ slexaircraftExample”);
関数getAllSignals
を使用して、実行のすべての信号に対するSignal
オブジェクトにできます。たたSignal
オブジェクトの配列から、最初の信号を選択します。
signals = getAllSignals(aircraftRun); sig = signals(1);
信号プロパティの変更
Simulink.sdi.Signal
オブジェクトには、信号の比較と可視化用にオプションを指定するプロパティがあります。信号のライン スタイルと色を指定します。次に、金宝appsimulink.sdi.setsubplotlayout
を使用シミュレーションデータを构成し信号サブプロットを表示し,关数plotOnSubPlot
を使用て信号プロットします。
sig.linecolor = [1 0.4 0.6];sig.linedashed ='-';金宝appsimulink.sdi.setsubplotlayout(1,1)plotonsubplot(sig,1,1,true)
関数金宝appsimulink.sdi.view
を使用してシミュレーション データ インスペクターを開き、プロットされた信号を表示します。
シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、同じ実行内の信号を比較できます。この例では、航空機用縦方向コントローラーの入力信号と出力信号を比較します。
最初に、データを含むセッションを読み込みます。
Simulink.sdi.load('AircraftExample.mldatx');
関数Simulink.sdi.Run.getLatest
を使用してデータ内の最新の実行にアクセスします。
aircraftRun = Simulink.sdi.Run.getLatest;
次に、関数Simulink.sdi.getSignalsByName
を使用して、コントローラーへの入力を表すStick
信号と、出力を表す阿尔法,rad
信号にアクセスます。
stick = getSignalsByName(aircraftRun,'戳');alpha = getSignalsByName(aircraftRun,'alpha, rad');
信号を比較する前に、比較に使用する許容誤差値を指定できます。比較のベースライン信号に指定された許容誤差値が使用されるため、Stick
信号に0.1
の絶対許容誤差値を設定します。
Stick.Abstol = 0.1;
ここで、関数金宝appsimulink.sdi.comparesignals
を使用して信号を比較します。Stick
信号はベースラインで、阿尔法,rad
信号はベースラインと比較される信号です。
comparisonResults = Simulink.sdi.compareSignals(stick.ID,alpha.ID); match = comparisonResults.Status
match = OutOfTolerance
比較結果は許容誤差の範囲外です。関数金宝appsimulink.sdi.view
を使用,シミュレーションインスペクターを开き比较を表示および解析できます。
この例では、信号を記録して作成されたシミュレーション データ インスペクター実行のSimulink.sdi.Run
オブジェクトにアクセスする方法を示します。Simulink.sdi.Run
オブジェクトから、ログに記録された信号データとメタデータが含まれるSimulink.sdi.Signal
オブジェクトを取得ます。Signal
オブジェクトと関数plotOnSubPlot
を使用して、データをシミュレーション データ インスペクターにプロットできます。
シミュレーション実行の作成およびRun
オブジェクトへのアクセス
ex_vdp
モデルは 2 つの信号を記録します。ログ データが含まれるシミュレーション実行を作成するには、モデルのシミュレーションを実行します。
sim('ex_vdp');
シミュレーション データ インスペクターは、シミュレーションで作成された各実行に一意の数値実行 ID を割り当てるか、データをインポートするか、セッションを開くことによって実行を追跡します。直前に実行したシミュレーションの実行オブジェクトにアクセスするには、関数Simulink.sdi.getAllRunIDs
を使用して、返されるベクトルで最後の実行 ID を取ります。
runids = 金宝appsimulink.sdi.getAllrunids;runID = runIDs(end);
実行実行実行ををすると关数关数关数Simulink.sdi.getRun
を使用て実行にするするSimulink.sdi.Run
オブジェクトを取得ます。Run
オブジェクトを使用して、実行内の信号の数など、実行に関連付けられているメタデータをチェックできます。
vdprun = 金宝appsimulink.sdi.getrun(runid);vdprun.signalcount
ans =INT322
Signal
オブジェクトを使用したデータのプロット
関数getSignalByIndex
を使用して、Run
オブジェクトfuelRun
から信号にアクセスします。
signal1 = getSignalByIndex(vdprun,1);signal2 = getsignalbyIndex(vdprun,2);
関数金宝appsimulink.sdi.setsubplotlayout
を使用しててて列列レイアウトをし。。。
金宝appsimulink.sdi.setsubplotlayout(2,1)
データをプロットする前に、既にプロットされている任意のデータを関数Simulink.sdi.clearAllSubPlots
を使用て消去し。。
Simulink.sdi.clearAllSubPlots
1つごとつのをプロットます最初のサブプロットで信号ををプロットするためためののの检查
プロパティを設定できます。最初のサブプロット以外のサブプロットで信号をプロットするには、関数plotOnSubPlot
を使用し。
signal1.Checked = true; plotOnSubPlot(signal2,2,1,true);
プロットされたデータの表示
直前に作成したプロットを表示するには、関数金宝appsimulink.sdi.view
を使用してシミュレーション データ インスペクターを開きます。
次の MATLAB コマンドに対応するリンクがクリックされました。
matlabコマンドコマンドに入力しててください。。。。ブラウザー
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
Selectweb siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.