Main Content

find

Simulink.SimulationOutput オブジェクトのプロパティの照会とアクセス

    説明

    res = find(simOut,varName)varName で指定されたシミュレーション データを Simulink.SimulationOutput オブジェクト simOut から返します。名前が varName のプロパティが存在しない場合、戻り値は空になります。

    Simulink.SimulationOutput オブジェクト内のデータには、関数 get を使用するかドット表記を使用してアクセスすることもできます。これらのオプションのいずれかを使用してプロパティにアクセスする場合、指定したプロパティが指定したオブジェクトに存在しないと診断が発行されます。

    すべて折りたたむ

    シミュレーション結果を単一の出力オブジェクトとして返すようにしてモデルをシミュレートすると、すべてのログ データおよびシミュレーション メタデータに Simulink.SimulationOutput オブジェクトを使用してアクセスできます。

    この例のモデルでは [単一のシミュレーション出力] パラメーターが有効になっており、いくつかの異なるログ記録方法を使用してデータをログに記録します。

    • Sine Wave ブロックの出力は、信号のログを使用してログに記録されます。

    • Gain ブロックの出力は、To Workspace ブロックを使用してログに記録されます。

    • Gain ブロック、Chirp Signal ブロック、Square Wave Generator ブロックの出力は、Record ブロックを使用してログに記録されます。

    • Square Wave Generator ブロックの出力は、出力ログを使用してログに記録されます。

    モデルは時間データを記録するようにも設定されます。

    モデルを開きます。

    mdl = "LoggingBlocks";
    open_system(mdl)

    The model LoggingBlocks.

    Simulink.SimulationInput オブジェクトを作成してシミュレーションをモデル用に構成します。関数 setModelParameter を使用して StopTime パラメーターを 20 に設定します。

    simIn = Simulink.SimulationInput(mdl);
    simIn = setModelParameter(simIn,'StopTime','20');

    モデルのシミュレーションを実行します。関数 sim の出力 out は、シミュレーションからログに記録されるすべてのデータが含まれる Simulink.SimulationOutput オブジェクトです。ブロックごと、ログのタイプごとのデータは、ブロックまたはモデルで指定されているログ変数の名前と一致するプロパティとして保存されます。

    out = sim(simIn);

    ログ データには、ドット表記、関数 get、または関数 find を使用してアクセスできます。

    ドット表記を使用して、To Workspace ブロックを使用してログ記録された Big Sine 信号にアクセスします。

    simout = out.simout
      timeseries
    
      Common Properties:
                Name: 'Big Sine'
                Time: [51x1 double]
            TimeInfo: tsdata.timemetadata
                Data: [51x1 double]
            DataInfo: tsdata.datametadata
    

    関数 get を使用して、信号ログを使用してログ記録された Sine 信号にアクセスします。

    logsout = get(out,"logsout")
    logsout = 
    Simulink.SimulationData.Dataset 'logsout' with 1 element
    
                             Name  BlockPath               
                             ____  _______________________ 
        1  [1x1 Signal]      Sine  LoggingBlocks/Sine Wave
    
      - Use braces { } to access, modify, or add elements using index.
    
    

    関数 find を使用して、出力ログを使用してログ記録された Square Wave 信号にアクセスします。

    yout = find(out,"yout")
    yout = 
    Simulink.SimulationData.Dataset 'yout' with 1 element
    
                             Name         BlockPath             
                             ___________  _____________________ 
        1  [1x1 Signal]      Square Wave  LoggingBlocks/Outport
    
      - Use braces { } to access, modify, or add elements using index.
    
    

    シミュレーション メタデータには、ドット表記または関数 getSimulationMetadata を使用してアクセスできます。

    simMetadata = getSimulationMetadata(out)
    simMetadata = 
      SimulationMetadata with properties:
    
            ModelInfo: [1x1 struct]
           TimingInfo: [1x1 struct]
        ExecutionInfo: [1x1 struct]
           UserString: ''
             UserData: []
    
    

    シミュレーション メタデータは Simulink.SimulationMetadata オブジェクトとして返されます。SimulationMetadata オブジェクトは、シミュレーションに関する情報を構造体値をもつプロパティにグループ化し、シミュレーションに関連する string および追加データを指定できるプロパティをもちます。

    SimulationMetadata オブジェクト上の ExecutionInfo プロパティにアクセスします。実行情報には、シミュレーションが停止時間 20 まで警告やエラーなしで実行されたことが示されます。

    simMetadata.ExecutionInfo
    ans = struct with fields:
                   StopEvent: 'ReachedStopTime'
             StopEventSource: []
    
        StopEventDescription: 'Reached stop time of 20'
             ErrorDiagnostic: []
    
          WarningDiagnostics: [0x1 struct]
    
    

    入力引数

    すべて折りたたむ

    シミュレーション結果。Simulink.SimulationOutput オブジェクトとして指定します。

    返されるシミュレーション データ。string または文字ベクトルとして指定します。

    関数 find を使用して、ログ変数の名前を指定することにより、シミュレーションからログ記録されたデータ (信号ログ データ、ログ出力、状態など) にアクセスします。たとえば、既定の信号ログ変数名 logsout を使用するときは、"logsout" と指定して信号ログ データにアクセスします。

    例: "logsout"

    データ型: char | string

    出力引数

    すべて折りたたむ

    シミュレーション結果。次のいずれかの形式で返されます。

    戻り引数の形式は、アクセスするデータの型およびシミュレーション用のモデルの構成によって決まります。

    バージョン履歴

    R2009b で導入