Main Content

Simulink.sdi.addTrigger

シミュレーション データ インスペクターで表示の更新を制御するトリガーを信号に追加する

R2020b 以降

    説明

    Simulink.sdi.addTrigger(sig) はノーマル モードおよび自動レベルを使用した立ち上がりエッジ トリガーを、Simulink.sdi.Signal オブジェクト sig に追加します。トリガーは、信号のストリーミング用の新しいデータを表示するためにシミュレーション データ インスペクターのプロットが更新されるタイミングを決定します。

    Simulink.sdi.addTrigger(sig,Name,Value) は、1 つ以上の名前と値のペアの引数によって指定されたトリガー設定をもつ指定された信号にトリガーを追加します。たとえば、'Mode','Normal' はトリガーのノーマル モード動作を構成します。シミュレーション データ インスペクターのトリガーは、Scope ブロックのトリガーと同じように動作します。トリガー タイプと設定の詳細については、スコープの [トリガー] パネルを参照してください。

    すべて折りたたむ

    シミュレーション データ インスペクターの信号にトリガーを追加し、新しいデータを表示するためにプロットを更新するタイミングを決定する基準を指定します。トリガーにより過渡信号の動作を取得し、周期信号の表示を安定させて測定を行うことができます。

    Triggers モデルのシミュレーションを実行します。モデル内のデータはシミュレーション データ インスペクターに記録されます。

    open_system('Triggers');
    out = sim('Triggers');

    次に、トリガーを Pulse 信号に追加します。トリガーを 0.5 のしきい値をもつ立ち下がりエッジ トリガーとして構成します。

    trigRun = Simulink.sdi.getCurrentSimulationRun('Triggers');
    pulseSig = getSignalsByName(trigRun,'Pulse');
    Simulink.sdi.addTrigger(pulseSig,'Type','Edge','Level',0.5);

    Simulink.sdi.view を使用してシミュレーション データ インスペクターを開き、Pulse 信号の横にあるトリガー アイコンをクリックして構成を確認することにより、このトリガーが追加され、正しく構成されていることを確認できます。関数 Simulink.sdi.getTrigger を使用して、トリガー イベントおよびトリガー構成の生成に使用される信号を確認することもできます。

    [sig,trigOpts] = Simulink.sdi.getTrigger;
    
    sig.Name
    ans = 
    'Pulse'
    
    trigOpts
    trigOpts = struct with fields:
                           Mode: 'Auto'
                           Type: 'Edge'
                       Position: 0.5000
                          Delay: 0
        SourceChannelComplexity: 'Scalar'
                       Polarity: 'Positive'
                      AutoLevel: 1
                          Level: 0.5000
                     UpperLevel: 0
                     LowerLevel: 4.6673e-62
                     Hysteresis: 0
                        MinTime: 0
                        MaxTime: Inf
                        Timeout: 0
                        Holdoff: 0
    
    

    シミュレーション データ インスペクターが新しいデータでプロットを更新するタイミングを制御するためにトリガーを使用しない場合は、関数 Simulink.sdi.removeTrigger を使用してトリガーを削除できます。

    Simulink.sdi.removeTrigger

    シミュレーション データ インスペクターの UI または関数 Simulink.sdi.getTrigger を使用して、トリガーが削除されたことを確認できます。関数 Simulink.sdi.getTrigger は、シミュレーション データ インスペクターで構成されているトリガーがない場合に、Simulink.sdi.Signal オブジェクトの空の配列を返します。

    sig = Simulink.sdi.getTrigger;
    size(sig)
    ans = 1×2
    
         0     0
    
    

    入力引数

    すべて折りたたむ

    トリガーイベントの検出に使用される信号。Simulink.sdi.Signal オブジェクトとして指定します。

    名前と値の引数

    引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

    R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

    例: 'Type','PulseWidth','Polarity','Falling' は立ち下がりエッジの自動レベルのトリガーを自動モードで構成します。

    トリガー イベントに応答して表示が更新されるタイミング。'Mode' と次のいずれかのオプションで構成されるコンマ区切りのペアとして指定します。

    • Auto — 各トリガー イベントに応答してプロットは更新され、表示される時間範囲にわたりトリガー イベントが発生しない場合、プロットは更新されます。

    • Normal — 各トリガー イベントに応答してプロットは更新されます。

    • Once — 最初のトリガー イベントに応答してプロットは更新されます。シミュレーション データ インスペクターを使用してトリガーを手動でリセットできます。

    例: 'Mode','Normal' はノーマル モードを使用するようにトリガーを構成します。

    トリガー イベントがプロットに表示される場所。'Position' と数値のパーセンテージで構成されるコンマ区切りのペアとして指定します。既定の設定では、トリガー イベントは、0.5 の位置、または時間範囲内の 50% の位置で、プロットの中央に表示されます。

    例: 'Position',.3 はトリガー イベントを時間範囲内の 30% の位置に配置します。

    信号に追加するトリガーのタイプ。'Type' と次のいずれかのオプションで構成されるコンマ区切りのペアとして指定します。

    • Edge — 信号がしきい値を横切るときにトリガーします。

    • PulseWidth — 指定した時間内に信号が下方しきい値と上方しきい値間を 2 回横切るときにトリガーします。

    • Transition — 指定した時間内に信号が上方しきい値と下方しきい値を横切るときにトリガーします。

    • Runt — 指定した時間内に信号が下方しきい値または上方しきい値を 2 回横切るときにトリガーします。

    • Window — 上方しきい値と下方しきい値で定義される範囲の内部または外部に信号が指定した期間とどまったときにトリガーします。

    • Timeout — 信号が指定した時間より長い間しきい値より高いまたは低い状態を維持したときにトリガーします。

    トリガーの各タイプに対するオプションの詳細については、スコープの [トリガー] パネルを参照してください。

    例: 'Type','PulseWidth' はパルス幅トリガーを構成します。

    トリガー イベントを発生させる信号値の方向の変更。'Polarity' とトリガー タイプに対する有効な極性で構成されるコンマ区切りのペアとして指定します。

    トリガー タイプ極性オプション

    Edge

    • Rising — 信号が値を増加しながらしきい値を横切るときにトリガーします。

    • Falling — 信号が値を減少しながらしきい値を横切るときにトリガーします。

    • Either — 信号が値を増加または減少しながらしきい値を横切るときにトリガーします。

    PulseWidth

    • Positive — 信号が下方しきい値を 2 回目に横切ったときに立ち上がりパルスでトリガーします。

    • Negative — 信号が上方しきい値を 2 回目に横切ったときに立ち下がりパルスでトリガーします。

    • Either — 立ち上がりパルスと立ち下がりパルスの両方でトリガーします。

    Transition

    • RiseTime — 指定した時間内に信号が増加して下方しきい値から上方しきい値を横切ったときにトリガーします。

    • FallTime — 指定した時間内に信号が減少して上方しきい値から下方しきい値を横切ったときにトリガーします。

    • Either — 指定した時間内に信号が増加または減少して下方しきい値と上方しきい値を横切ったときにトリガーします。

    Runt

    • Positive — 信号が上方しきい値を横切ることなく、下方しきい値を 2 回目に横切ったときに立ち上がりパルスでトリガーします。

    • Negative — 信号が下方しきい値を横切ることなく、上方しきい値を 2 回目に横切ったときに立ち下がりパルスでトリガーします。

    • Either — 指定した値のしきい値内にとどまった立ち上がりパルスまたは立ち下がりパルスでトリガーします。

    Window

    • Inside — 信号が MinTimeMaxTime 間にわたり、指定した値の範囲内にとどまったときにトリガーします。トリガー イベントは信号が指定された値の範囲を出るときに発生します。

    • Outside — 信号が MinTimeMaxTime 間にわたり、指定された値の範囲外にあるときにトリガーします。トリガー イベントは信号が指定された値の範囲に再び入ると発生します。

    • Either — 信号が MinTimeMaxTime 間にわたり、指定された値の範囲内または範囲外にあるときにトリガーします。

    Timeout

    • Rising — 信号が指定された時間より長い間しきい値より高い状態を維持したときにトリガーします。

    • Falling — 信号が指定された時間より長い間しきい値より低い状態を維持したときにトリガーします。

    • Either — 信号が指定された時間より長い間しきい値より高いまたは低い状態を維持したときにトリガーします。

    例: 'Type','Edge','Polarity','Rising' は立ち上がりエッジ トリガーを構成します。

    自動的にトリガー レベルを決定するかどうか。'AutoLevel' および true または false で構成されるコンマ区切りのペアとして指定します。

    トリガーのしきい値を指定する場合は、'AutoLevel'false として指定します。

    例: 'AutoLevel',false はユーザー指定レベルを使用するようにトリガーを構成します。

    トリガー イベントのしきい値。'Level' と数値スカラーで構成されるコンマ区切りのペアとして指定します。

    'Level' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'Edge' または 'Timeout' として指定する場合のみです。

    例: 'Type','Timeout','Level','0.5'0.5 のしきい値をもつタイムアウト トリガーを構成します。

    トリガー イベントを発生させるためにしきい値の前後で必要な信号値の変化。'Hysteresis' と数値スカラーで構成されるコンマ区切りのペアとして指定します。トリガーに対してヒステリシスを指定すると、トリガー イベントに対するノイズ除去が発生します。

    'Hysteresis' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'Edge' または 'Timeout' として指定する場合のみです。

    例: 'Type','Timeout','Hysteresis','0.05' はトリガー イベントを発生させるためにしきい値の前後で信号値が 0.05 を超えて変化する必要があるタイムアウト トリガーを構成します。

    トリガー イベントの上限しきい値。'UpperLevel' と数値スカラーで構成されるコンマ区切りのペアとして指定します。

    'UpperLevel' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'PulseWidth''Transition''Runt'、または 'Window' として指定する場合のみです。

    例: 'Type','PulseWidth','UpperLevel','0.9'0.9 の上限しきい値をもつパルス幅トリガーを構成します。

    トリガー イベントの下限しきい値。'LowerLevel' と数値スカラーで構成されるコンマ区切りのペアとして指定します。

    'LowerLevel' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'PulseWidth''Transition''Runt'、または 'Window' として指定する場合のみです。

    例: 'Type','PulseWidth','LowerLevel','0.1'0.1 の下限しきい値をもつパルス幅トリガーを構成します。

    トリガー イベントの時間の下限。'MinTime' と数値スカラーで構成されるコンマ区切りのペアとして指定します。'MinTime' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'PulseWidth''Transition''Runt'、または 'Window' として指定する場合のみです。時間の下限の重要性はトリガーのタイプによって異なります。

    • 'PulseWidth' — トリガー イベントの最小パルス幅。

    • 'Transition' — トリガー イベントの最小立ち上がり時間または最小立ち下がり時間。

    • 'Runt' — トリガー イベントの最小パルス幅。

    • 'Window' — トリガー イベントの値の範囲内または範囲外で費やされた最小時間。

    例: 'Type','PulseWidth','MinTime','0.1'100ms の最小パルス幅をもつパルス幅トリガーを構成します。

    トリガー イベントの時間の上限。'MaxTime' と数値スカラーで構成されるコンマ区切りのペアとして指定します。'MaxTime' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'PulseWidth''Transition''Runt'、または 'Window' として指定する場合のみです。時間の上限の重要性はトリガーのタイプによって異なります。

    • 'PulseWidth' — トリガー イベントの最大パルス幅。

    • 'Transition' — トリガー イベントの最大立ち上がり時間または立ち下がり時間。

    • 'Runt' — トリガー イベントの最大パルス幅。

    • 'Window' — トリガー イベントの値の範囲内または範囲外で費やされた最大時間。

    例: 'Type','PulseWidth','MaxTime','0.5'500ms の最大パルス幅をもつパルス幅トリガーを構成します。

    タイムアウト トリガーの時間のしきい値。'Timeout' と数値スカラーで構成されるコンマ区切りのペアとして指定します。

    'Timeout' の名前と値のペアを指定できるのは、'Type' の名前と値のペアを 'Timeout' として指定する場合のみです。

    例: 'Type','Timeout','Timeout','0.5' は信号が 500ms より長い間しきい値より高いまたは低い状態を維持したときにイベントを発生させるタイムアウト トリガーを構成します。

    トリガー位置からのトリガー イベント オフセット。'Delay' と数値スカラーで構成されるコンマ区切りのペアとして指定します。

    例: 'Type','Edge','Delay','0.1' はトリガー イベントの後にトリガー位置マーカーが 100ms に表示されるエッジ トリガーを構成します。

    トリガー イベント間の最小時間。'Holdoff' と数値スカラーで構成されるコンマ区切りのペアとして指定します。トリガー イベントの後、少なくともホールドオフ時間の間、表示は再び更新されません。

    例: 'Type','Edge','Holdoff','1'1s のホールドオフをもつエッジ トリガーを構成します。トリガー イベントの後、少なくとも 1s の間、表示は更新されません。

    代替機能

    トリガーを信号に追加して、シミュレーション データ インスペクター UI を使用してトリガー オプションを構成できます。詳細については、トリガーを使用したデータ ストリーミングの表示の制御を参照してください。

    バージョン履歴

    R2020b で導入