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

Simulink.sdi.markSignalForStreaming

信号のログ作成をオンまたはオフにする

説明

Simulink.sdi.markSignalForStreaming(block,portIndex,log) は、log'on' と指定した場合に、指定された block の指定された portIndex にある信号をログ作成用にマークします。信号のログ作成を停止するには、log'off' と指定します。

Simulink.sdi.markSignalForStreaming(portHandle,log) は、log'on' と指定した場合に、portHandle によって指定された端子の信号をログ作成用にマークします。信号のログ作成を停止するには、log'off' と指定します。

Simulink.sdi.markSignalForStreaming(lineHandle,log) は、log 'on' と指定した場合に、指定された lineHandle を持つ信号をログ作成用にマークします。信号のログ作成を停止するには、log'off' と指定します。

すべて折りたたむ

この例では、slexAircraftExample モデルを使用して、制御システムの入力信号と出力信号の比較を示します。例では、ストリーミング対象の信号をマークした後に、シミュレーション実行用の実行オブジェクトを取得します。実行オブジェクトの信号 ID で、比較する信号を指定します。

% Load model slexAircraftExample and mark signals for streaming
load_system('slexAircraftExample')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

% Simulate model slexAircraftExample
out = sim('slexAircraftExample');

% Get run IDs for most recent run
allIDs = Simulink.sdi.getAllRunIDs;
runID = allIDs(end);

% Get Run object
aircraftRun = Simulink.sdi.getRun(runID);

% Get signal IDs
signalID1 = getSignalIDByIndex(aircraftRun,1);
signalID2 = getSignalIDByIndex(aircraftRun,2);

if (isValidSignalID(aircraftRun,signalID1))
    % Change signal tolerance
    signal1 = Simulink.sdi.getSignal(signalID1);
    signal1.AbsTol = 0.1;
end

if (isValidSignalID(aircraftRun,signalID1) && isValidSignalID(aircraftRun,signalID2))
    % Compare signals
    sigDiff = Simulink.sdi.compareSignals(signalID1,signalID2);

    % Check whether signal result status
    match = sigDiff.Status
end
match = 
OutOfTolerance

この例では、端子ハンドルを使用してログを作成する信号をマークする方法を示します。

モデルの読み込みとストリーミングする信号のマーク

get_param を使用して、対象信号を含むブロックに対する端子ハンドルを取得します。次に、ハンドルを使用してログを作成する必要がある信号をマークします。

load_system('vdp')

% Get port handles
x1_handles = get_param('vdp/x1','PortHandles');
x1 = x1_handles.Outport(1);
x2_handles = get_param('vdp/x2','PortHandles');
x2 = x2_handles.Outport(1);

% Mark signals for streaming
Simulink.sdi.markSignalForStreaming(x1,'on');
Simulink.sdi.markSignalForStreaming(x2,'on');

モデルのシミュレーションとシミュレーション データ インスペクターでの信号の表示

モデルのシミュレーションを実行してから、シミュレーション データ インスペクターを開いてログが作成された信号を表示します。

sim('vdp');

Simulink.sdi.view

この例では、ライン ハンドルを使用してログを作成する信号をマークする方法を示します。

システムの読み込みとログを作成する信号のマーク

モデルを読み込み、get_param を使用してモデル内の信号のハンドルを取得します。その後、ライン ハンドルを使用してログを作成する対象信号をマークします。

load_system('slexAircraftExample')

lines = get_param('slexAircraftExample','Lines');

sig1handle = lines(1).Handle;
sig2handle = lines(2).Handle;

Simulink.sdi.markSignalForStreaming(sig1handle,'on')
Simulink.sdi.markSignalForStreaming(sig2handle,'on')

モデルのシミュレーションと信号の表示

モデルのシミュレーションを実行し、ログ作成用にマークされた信号をシミュレーション データ インスペクターで表示します。

sim('slexAircraftExample')

Simulink.sdi.view

入力引数

すべて折りたたむ

出力端子の 1 つに接続された目的の信号をもつブロックのブロック パス。

例: 'slexAircraftExample/Pilot'

ストリーミング用にマークする信号に接続されている端子のインデックス。

例: 1

信号に必要なログ状態。

  • 'on' –– 信号のログ作成を有効にする。

  • 'off' –– 信号のログ作成を無効にする。

信号に接続するソース ブロックの出力端子の端子ハンドル。

例: x1_handles.Outport(1)

信号のライン ハンドル。

例: lines(1).Handle

R2015b で導入