ドキュメンテーション

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

信号データの作成と編集

信号エディターを使用して、複数のシミュレーションを整理できる入力信号を作成および編集します。次に、シミュレーション用に信号データを MAT ファイルに保存するか、ルートレベルの端子にマッピングできます。信号エディターには、次の方法でアクセスできます。

  • 関数 signalEditor — 信号エディターはコマンド ラインから起動します。

  • ルート Inport マッパーから — 新しい信号データ用の MAT ファイルを作成するには、[信号][新規 MAT ファイル] を選択します。既存のシナリオから既存の信号データ ファイルをリンクして、そのファイル内の信号を編集するには、[信号][MAT ファイルを編集] を使用します。

  • Signal Editor ブロックから

信号エディターは MAT ファイルでのみ機能します。

信号は、以下の方法で操作できます。

  • 複数のデータセットに含まれる複数の信号を作成および編集する。

  • 信号表記を使用して、MATLAB® 式を使用するより複雑な信号を作成する。

  • 既存のシナリオを使用して、編集および作成可能な既存のデータセットと信号を取得する。

  • 多次元信号を作成および編集する。

信号データの編集時には、次のことが可能です。

  • 表形式の編集または MATLAB を使用して、信号データを変更する。

  • 名前、内挿、単位プロパティなどの信号プロパティを変更する。

  • 信号をドラッグ アンド ドロップして、バスとデータセットの信号階層を変更する。

  • 信号表記と変数を使用して信号データを置換する。

あるいは、外部ソースからデータをインポートして信号エディターで編集することもできます。詳細については、Signal Builder ブロックと Simulink Design Verifier 環境からの信号データのリンクを参照してください。

ルート Inport マッパーの信号エディターとその他の信号エディターの違い

一般に、信号エディターのユーザー インターフェイスは、アクセス方法にかかわらず、同じです。ルート Inport マッパーの信号エディターにおける相違点は次のとおりです。

  • [ファイル] セクションの [保存および同期][保存] コマンドで保存し、ルート Inport マッパーに同期する。

  • [挿入] セクションの [シナリオ] コマンドには常に [モデルからのシナリオ] オプションがある。

モデル名で関数を起動すると、関数 signalEditor の信号エディターのユーザー インターフェイスの [挿入] セクションに [モデルからのシナリオ] オプションが表示されます。

テーブル編集データのサポート

信号エディター ユーザー インターフェイスは、Simulink® がサポートするすべての信号データ型をサポートします。

Signal Builder ブロックと Simulink Design Verifier 環境からの信号データのリンク

[信号][MAT ファイルを編集] を使用して、編集するためにこれらのソースから MAT ファイル データにリンクできます。

Signal Builder からのデータのリンク

MAT ファイル内の Signal Builder ブロックまたは MATLAB からエクスポートしたデータをリンクし、編集できます。次のいずれかの方法を使用してデータをエクスポートします。

  • Signal Builder ブロックの [ファイル]、[データのエクスポート]、[MAT ファイルへ] オプションを順に選択し、MAT ファイルにリンクします。

  • データセットをもつ関数 signalbuilder get で、次のいずれかの手順を実行します。

    • ワークスペース内のデータセットをインポートして MAT ファイルに保存する

    • ワークスペース内のデータセットを MAT ファイルに保存し、MAT ファイルをインポートする

Signal Builder ブロックからエクスポートする場合の詳細については、信号グループのデータのエクスポートを参照してください。

Simulink Design Verifier 環境からのテスト ベクトルのリンク

Simulink Design Verifier テスト ベクトルをリンクして、編集できます。このワークフローには Simulink Design Verifier のライセンスが必要です。

リンクする前に、Simulink Design Verifier の関数 sldvsimdata を使用して、Simulink Design Verifier のテスト構造体を一連の Simulink.SimulationData.Dataset オブジェクトに変換できます。このファイルにはテスト ベクトル構造体 sldvData が含まれます。出力を MAT ファイルに保存し、そのファイルを信号エディターにインポートします。

シナリオを用いた、入力のグループ化および整理

信号エディターはシナリオを使用して、単一のシミュレーションに対して MAT ファイルに保存する入力のセットをグループ化して整理します。既存のシナリオの既存のデータセットを使用して信号データを作成するか、信号を追加する空のシナリオを作成するには、信号エディターの [シナリオ] メニューを使用します。

操作オプション

モデルのルート Inport からシナリオを作成する

[シナリオ][モデルからのシナリオ] を選択します (ルート Inport マッパーから信号エディターにアクセスする場合にのみ利用可能)。

モデル引数を指定して関数 signaleditor を使用することもできます。

メモ

このオプションを使用する場合、結果として生じるシナリオには、入力端子のデータ型と次元を備えた信号が含まれています。

空のシナリオを作成し、最初から信号を作成する

[シナリオ][空のシナリオ] を選択します。

MATLAB ワークスペースからシナリオをインポートする

[シナリオ][ワークスペースから] を選択します。

シナリオを用意したら、次を実行します。

  • 信号の挿入を開始するには、[挿入] セクションのその他のオプションを使用します。詳細については、信号と信号データの作成を参照してください。

  • 階層内の信号の順序を変更するか、信号の名前を変更するには、信号名と階層順序の変更を参照してください。

信号の挿入

信号をシナリオに挿入するには、シナリオを選択してから [挿入] セクションで信号タイプをクリックします。

  • 信号

    [信号] 分割ボタンを使用して、信号データの定義方法を指定します。

  • バス

  • 接地

  • 関数呼び出し

    明示的な周期的サンプル時間をもつルート Inport 用の関数呼び出し信号が必要な場合、代わりにグラウンド信号を挿入します。Simulink によって、関数呼び出しが自動的に実行されます。

新しい信号が [シナリオおよび信号] セクションに表示されます。

同じタイプの複数の信号を挿入することもできます。詳細については、同じプロパティをもつ信号の作成を参照してください。

階層内の信号の順序を変更するか、信号の名前を変更するには、信号名と階層順序の変更を参照してください。

信号のプロパティを編集するには、以下を行います。

参照してください。

信号と信号データの作成

既存のモデル データ (シナリオ) から信号データを作成するか、空のシナリオから開始します。シナリオには、以下の方法で信号とデータを追加します。

信号の挿入後、[プロット/編集] チェック ボックスをクリックしてデータを表示およびプロットします。

ヒント

データが期待したとおりにプロットされない場合、[ズームとパン] セクションの [ウィンドウに合わせる] ボタンを使用します。多次元信号の場合は、編集中の列データに対して適切なプロットが選択されていることを確認します。

基本的な信号データの操作

基本的な信号データを追加および編集するには、信号を選択し、関連する [プロット/編集] チェック ボックスをクリックします。信号のプロットが表示されます。信号のプロットの下には、表形式エディターがあります。

  • 信号のデータ行を挿入または削除するには、それぞれ または を使用します。

  • 信号データのデータ型を変更するには、ドロップダウンから型を選択します。

    メモ

    データ型を固定小数点データ型に、または固定小数点データ型から変更することはできません。

  • 各信号の時間またはデータを変更するには、データ行の関連する列を編集してから、[適用] をクリックして信号のプロットを更新します。

    メモ

    データが固定小数点データの場合、テーブルのデータにマウス ポインターを置くと、データの概要が表示されます。

    • 理想値 — 要求された値。

    • 固定小数点の値 — 理想値を固定小数点値としてキャストした結果の値。

    • 絶対誤差 — 値の絶対誤差。

    • 相対誤差 — キャスト値と元の値との間の差異。

    • 誤差がオーバーフロー、アンダーフローのいずれかなどの追加の誤差情報。

  • プロットまたは表形式の領域のサイズを変更するには、区切り記号を上下に移動します。

  • 多次元信号を作成するには、以下のいずれかの方法を使用します。詳細については、多次元信号の追加と編集を参照してください。

    • [挿入の既定のプロパティ] ダイアログ ボックスの [次元] パラメーターに 1 より大きい次元を入力する。

    • [作成と挿入] ダイアログ ボックスの [データ] パラメーターに、多次元信号を作成する MATLAB を入力する。

表形式エディターを使用して信号データを定義する代わりに、MATLAB 式を使用できます。

MATLAB の式と変数を使用した信号の作成

MATLAB の式と変数を使用して信号を追加するには、信号エディターで [信号][信号の作成] オプションを選択します。

  • 時間 — データの時間範囲を入力します。

  • データ — 信号の MATLAB 式を入力します。

  • データ型 — 信号のデータ型を選択または入力します。

    • double

    • single

    • int8

    • uint8

    • int16

    • uin16

    • int32

    • uint32

    • boolean

    • [fixdt(1,16)]

    • fixdt(1,16,0)

    • fixdt(1,16,2^0,0)

    • string

    • Enum:<class name>

    時間とデータを入力して固定小数点データ型を選択した場合、信号エディターはデータについて固定小数点の推奨されたデータ型を表示します。[Use proposed data type button] () をクリックすると、推奨された固定小数点のデータ型をデータに適用します。

[信号の挿入] をクリックすると、インターフェイスは信号を評価し、ダイアログ ボックス内の信号情報を更新し、信号を [シナリオおよび信号] セクションに追加します。さらに、サンプル数、信号のデータ型および信号の次元も表示されます。

[時間] および [データ] エントリの例を確認するには、[例を表示] ボタンをクリックします。これらのサンプル信号表記の信号を試してみる場合、関連する例で [例を適用] ボタンをクリックします。また、挿入する前に例を変更することもできます。

たとえば、正弦波を作成するには、例の横の [例を適用] ボタンをクリックしてから、[信号の挿入] ボタンをクリックします。ダイアログ ボックスにサンプル数、信号のデータ型および信号の次元が表示されることを確認します。

信号を表示するには、[作成と挿入] ダイアログ ボックスを閉じて、[シナリオおよび信号] セクションに移動し、新しい信号の [プロット/編集] ボタンをクリックします。信号に実数部と虚数部がある場合、両方の部分が 1 つのプロットに表示されます。

ヒント

データが期待したとおりにプロットされない場合、[ズームとパン] セクションの [ウィンドウに合わせる] ボタンを使用します。多次元信号の場合は、編集中の列データに対して適切なプロットが選択されていることを確認します。

ヒント

時間について線形に配置された信号を生成するには、関数 linspace を使用します。例を以下に示します。

  • 時間linspace(0,10,101)

  • データ[0:0.1:10]

MATLAB 式を使用せずに信号データを編集するには、基本的な信号データの操作を参照してください。

信号名と階層順序の変更

[シナリオおよび信号] セクションでは、信号名と階層順序の変更、信号の複製の作成および信号の削除を実行できます。Simulink は信号名の先頭と末尾の空白を無視します。

  • 信号名を変更するには、名前をダブルクリックして変更します。

  • 信号の単位または内挿を変更するには、プラス記号をクリックし、[単位] または [内挿] チェック ボックスをクリックします。

    [単位] 列と [内挿] 列でペインが更新されます。

    • [単位] 列に適切な単位式を入力します。推奨される単位式のリストについては、「許可されている単位」を参照してください。

    • [内挿] 列で、ドロップダウン リストから、[線形] または [ゼロ次ホールド] を選択します。

      メモ

      内挿は、信号エディターのユーザー インターフェイス内における信号プロットのみに影響します。

  • 階層で信号の順序を変更するには、信号をドラッグ アンド ドロップします。たとえば、信号をバスにドラッグ アンド ドロップできます。

    あるいは、[調整] セクションの [上に移動] ボタンと [下に移動] ボタンを使用することもできます。

  • 信号をコピーして、元の信号の下に貼り付けるには、その信号を右クリックして [信号の複製] を選択します。

    代わりに、[調整] セクションの [複製] ボタンを使用することもできます。また、複製する信号の既定のプロパティを調整することもできます。詳細については、同じプロパティをもつ信号の作成を参照してください。

  • 信号をコピーして、階層のどこかに貼り付けるには、[コピー][貼り付け] を選択します。

同じプロパティをもつ信号の作成

事前定義された同じタイプの信号を作成するには、[調整] セクションの [複製] ボタンを使用します。事前定義された信号タイプを変更するには、[既定] アイコン をクリックします。[挿入の既定のプロパティ] ダイアログ ボックスが表示されます。

  • データ型 — ドロップダウン リストから信号のデータ型を選択します。

  • 列挙値[Enum] データ型を選択した場合、このパラメーターが表示されます。列挙型のクラス名を入力します。

    同じ整数値が複数回含まれている列挙型クラスを定義する場合は、たとえば次のようになります。

    classdef(Enumeration) hEnumColors_duplicateValues < Simulink.IntEnumType
      enumeration
        Red(118)
        Yellow(-14)
        Blue(90)
        Green(87)
        White(-14)
        Black(198)
        Brown(90)
        Pink(118)
        Purple(90)
      end
      methods (Static = true)
        function retVal = getDefaultValue()
          retVal = hEnumColors_duplicateValues.Blue;
        end
      end
    end
    

    信号エディターは最初の列挙値 (Red (118)) を正準値として処理し、同じ整数値 118 を基とする後続のすべてのインスタンスを列挙名 Red と同じように扱います。つまり、PinkRed と等しくなります。

  • 内挿 — ドロップダウン リストから、[線形] または [ゼロ次ホールド] を選択します。

  • 単位 — 適切な単位式を入力します。推奨される単位式のリストについては、許可されている単位を参照してください。

  • 次元 — 信号の次元数を入力します。

  • 信号タイプ — ドロップダウン リストから、[実数] または [複素数] を選択します。

  • バス オブジェクト — ドロップダウン リストから、次元を定義するバス オブジェクトを選択します。[バス オブジェクト] パラメーターを既定値 <object name> のままにした場合、信号エディターは空のバスを追加します。

  • 次元 — バス オブジェクトの次元数を入力します。

MATLAB 式による信号データの置換

元の信号データの作成方法にかかわらず、信号データは、MATLAB 式を使用していつでも置換できます。信号データを置換するには、[シナリオおよび信号] セクションでその信号を選択してから、[置換] ボタン () をクリックします。[信号データの作成と置換] ダイアログ ボックスは、[作成と挿入] ダイアログ ボックスで新しい式を挿入するときと同じように使用します。詳細については、MATLAB の式と変数を使用した信号の作成を参照してください。

メモ

データ型を固定小数点データ型に、または固定小数点データ型から変更することはできません。

ヒント

信号を置換するとき、新しい信号の信号次元と実数/複素数は、置換前の信号と一致していなければなりません。

ヒント

時間について線形に配置された信号を生成するには、関数 linspace を使用します。たとえば、以下を使用します。

  • 時間linspace(0,10,11)

  • データ[0:10]

多次元信号の追加と編集

多次元信号を追加するには、以下のいずれかのオプションを使用します。

  • [挿入の既定のプロパティ] ダイアログ ボックスの [次元] プロパティを変更してから、[挿入][空白の信号] を使用して新しい信号を挿入します。

  • [作成と挿入] ダイアログ ボックスの [データ] パラメーターに [(1:10)' (1:10)'] などの多次元信号データを入力します。

信号の [プロット/編集] チェック ボックスをクリックすると、表形式の領域に、信号が次元ごとに列に分けた形式で表示されます。表形式の領域でデータを個別に編集することも、[置換] ボタン をクリックして MATLAB 式によって信号を置換することもできます。[信号データの作成と置換] ダイアログ ボックスは、[作成と挿入] ダイアログ ボックスで新しい式を挿入するときと同じように使用します。詳細については、MATLAB の式と変数を使用した信号の作成を参照してください。

ヒント

信号を置換するとき、新しい信号の信号次元と実数/複素数は、置換前の信号と一致していなければなりません。

たとえば、2 つの列と 1 ~ 10 の時間を持つ信号データを作成するには、以下のようにします。

  1. 信号エディターで [信号][信号の作成] を選択します。

  2. 2 つの列と 1 ~ 10 の時間を持つ信号データを入力します。

    • 時間[1:10]

    • データ[(1:10)' (1:10)']

  3. [信号の挿入] をクリックします。

    階層が新しい信号データで更新されます。

  4. 新しい信号を展開し、新しい信号データの [プロット/編集] チェック ボックスをクリックします。この信号に関連するプロットと表形式データを確認します。

    ヒント

    データが期待したとおりにプロットされない場合、[ズームとパン] セクションの [ウィンドウに合わせる] ボタンを使用します。多次元信号の場合は、編集中の列データに対して適切なプロットが選択されていることを確認します。

  5. データは表内で直接編集できます。

    または、データを新しい式で完全に置き換えることもできます。その場合、[置換] ボタンをクリックし、[信号データの作成と置換] ダイアログ ボックスに新しい時間範囲とデータを入力します。

シナリオへの信号の追加

この例では、リンクされるシナリオをルート Inport マッパー ツールで作成する方法について説明します。その後、信号エディターを起動して、信号を操作したり、このシナリオに信号を追加することができます。

  1. MATLAB コマンド ウィンドウで、次を入力することでいくつかのデータを作成します。

    ts = timeseries([0;20],[0;10]); 
  2. Simulink エディターで、3 つの Inport ブロック、3 つの Gain ブロック、1 つの Mux ブロックおよび 1 つの Scope ブロックを含むモデルを作成します。これらのブロックを次のように接続します。

  3. Gain ブロックのゲインをそれぞれ 51015 に設定します。

  4. Inport ブロックのうちの 1 つをクリックしてから、[入力の接続] ボタンをクリックします。

    ルート Inport マッパー ツールが表示されます。

  5. ルート Inport マッパーの [リンク] セクションで、[ワークスペースから] を選択します。

  6. [ワークスペースから] ウィンドウで、MAT ファイルを保存するための名前を入力し、[OK] をクリックします。

  7. 信号エディターの [シナリオ] セクションで、[信号]、[MAT ファイルを編集] をクリックします。

  8. [信号ファイルの編集] ウィンドウで、新しい MAT ファイルを選択して [OK] をクリックします。

    信号エディターが表示されます。

  9. 信号 Signal をシナリオに追加します。シナリオを右クリックし、[挿入][空白の信号] を選択します。

    この操作によって、これらの既定のプロパティをもつ Signal が追加されます。

    あるいは、[挿入] セクションで信号の型をクリックするか、[信号] 分割ボタンにより信号表記を使用して信号を作成することで、信号を挿入することもできます

  10. 追加する信号の既定のプロパティを変更します。[挿入] セクションで、[既定] を選択します。[挿入の既定のプロパティ] ダイアログ ボックスでデータ型を boolean に変更してから、シナリオを右クリックして、[挿入][空白の信号] を選択します。

    この操作によって、データ型が booleanSignal1 が追加されます。

  11. データ型が boolean であることを確認するには、Signal1 の [プロット] チェック ボックスをクリックします。

信号内のデータの操作

この例では、リンクされたシナリオ内の信号に対してデータを追加および削除する方法について説明します。操作するモデルとデータを作成するには、シナリオへの信号の追加を参照してください。

  1. 信号エディターの [シナリオおよび信号] セクションで、信号 ts の [プロット] チェック ボックスをクリックします。

  2. いくつかのデータを信号 ts に追加します。

    1. 行追加アイコン をクリックし、いくつかの信号を追加します。他の信号間に信号行を追加するには、前の信号をクリックして行追加アイコンをクリックします。

    2. 完了したら、[適用] をクリックします。[適用] をクリックすることで、プロットが更新されます。

  3. 時間 20 の行を信号から削除します。20 を選択して、 をクリックします。

  4. あるいは、ts のすべての信号データを信号表記で定義された信号に置き換えるには、[置換] ボタン をクリックし、[信号データの作成と置換] ダイアログ ボックスを使用して新しいデータを定義します。

変更の保存とルート Inport マッパー ツールへの送信

信号とシナリオの追加および変更が完了したら、[保存および同期] ボタンを使用して変更を MAT ファイルに保存します。信号エディターは、そのデータをルート Inport マッパー ツールにも送信します。

  • ルート Inport マッパー ツールにシナリオが読み込まれると、ルート Inport マッパー ツールは新しいデータを使用して更新します。

  • ルート Inport マッパー ツールにマッピング済みのシナリオがあり、変更がそのマッピングに影響を与える場合、ルート Inport マッパー ツールはシナリオのマッピングを解除します。

参考

| | |

関連するトピック