Main Content

信号グループ

信号のグループについて

代替可能な信号ソースのグループを表示、作成または編集して、モデルに送り込まれる信号のグループとモデルから送り出される信号のグループとをすばやく切り替えるには、Signal Builder ブロックを使用します。任意の区分的な線形信号の形状 (波形) を定義できます。

メモ

Signal Builder ブロックは、信号グループの操作には推奨されません。代わりに Signal Editor ブロックを使用して相互交換可能なシナリオを表示、作成、編集、および切り替えます。詳細については、信号データの作成と編集を参照してください。モデルを移行する理由の詳細については、Migrate from Signal Builder Block to Signal Editor Blockを参照してください。

モデルをテストする際、特に Simulink® Assertion ブロックと Simulink Coverage™ のモデル カバレッジ ツールと共に使用する場合には、信号グループを使用します。

[モデル コンフィギュレーション パラメーター] の [ソルバー] ペインの設定は、Signal Builder ブロックの出力に影響する可能性があります。ソルバーのシミュレーションに与える影響については、動的システムのシミュレーションの段階ソルバーの比較を参照してください。

メモ

Signal Builder ブロックでは、作成した各信号に対して端子が追加されます。このブロックの [位置] パラメーターによって Signal Builder ブロックが保有可能な端子の数が制限され、結果として作成可能な信号の数が制限されます。詳細については、共通のブロック プロパティPosition パラメーターを参照してください。

関数 signalbuilder を使用しても Signal Builder ブロックを入力できます。

サポートされる波形

Signal Builder ブロックは次の波形をサポートしています。

高速リスタートでの Signal Builder ブロックの使用

高速リスタートを有効にした場合の動作を次に示します。

  • 実行ごとにデータの変更、信号や信号グループの名前の変更、新しいグループの追加を行うことができます。以下は実行できません。

    • 信号や信号グループのインポート

    • 信号の出力設定の変更

  • [すべて実行] ボタンは 1 回だけクリックできます。[すべて実行] ボタンを再度有効にするには、Simulink エディターのツール バーで高速リスタート ボタンを切り替えます。ただし、[すべて実行] では高速リスタートは使用されません。

信号のグループの編集

[Signal Builder] ウィンドウでは、Signal Builder ブロックによって表される信号グループ セットに対して、信号グループの作成、名前の変更、移動、そして削除を実行できます。

信号グループの作成および削除

信号グループを作成するには、次を行います。

  1. Signal Builder で、既存の信号グループをコピーします。

  2. 必要に応じて変更します。

既存の信号グループをコピーするには、以下のようにします。

  1. Signal Builder で、リストからグループを選択します。

  2. [グループ][コピー] を選択します。

    新しいグループが作成されます。

グループを削除するには、リストからそのグループを選択してから、[グループ][削除] を選択します。

信号のグループの名前変更

信号グループの名前を変更するには、以下のようにします。

  1. Signal Builder で、リストからグループを選択します。

  2. [グループ][名前の変更] を選択します。

  3. このダイアログ ボックスに登録されている既存の名前を編集するか新しい名前を入力します。[OK] をクリックします。

信号のグループの移動

グループ ペインのスタック表示でグループの位置を変更するには、以下のようにします。

  1. Signal Builder で、ペインを選択します。

  2. スタック表示で下にグループを移動するには、[グループ][下に移動] を選択します。

  3. スタック表示で上にグループを移動するには、[グループ][上に移動] を選択します。

信号の編集

Signal Builder では、信号グループから信号を作成、切り取りと貼り付け、非表示、削除することもできます。

信号の作成

現在選択されている信号グループ内に信号を作成するには、以下のようにします。

  1. Signal Builder で、[アクティブ グループ] リストから、信号を追加するグループを選択します。

  2. [信号][新規] を選択します。

    追加できる波形の一覧がメニューに表示されます。

    波形説明入力出力

    定数

    一定波形なし

    ステップ

    ステップ波形なし

    パルス

    パルス波形なし

    矩形

    矩形波波形
    • 周波数 (Hz)

      ヘルツ単位の波形周波数

    • 振幅

      波形振幅

    • Y オフセット

      波形垂直オフセット

    • % デューティ比

      信号が正 (0 ~ 100 の値) である周期のパーセント

    ノコギリ

    ノコギリ波形
    • 周波数 (Hz)

      ヘルツ単位の波形周波数

    • 振幅

      波形振幅

    • Y オフセット

      波形垂直オフセット

    離散正弦波

    離散正弦波波形
    • 周波数 (Hz)

      ヘルツ単位の波形周波数

    • 振幅

      波形振幅

    • Y オフセット

      波形垂直オフセット

    • 1 周期のサンプル数

      波形周期単位のサンプル数

    離散ガウス ノイズ

    入力周波数の入力値の平均と標準偏差によるガウス分布に基づく離散ガウス ノイズ波形
    • 周波数 (Hz)

      ヘルツ単位の波形周波数

    • 平均

      確率変数出力の平均値

    • 標準偏差

      確率変数出力の二乗の標準偏差

    • シード (空の場合現在の状態を利用)

      乱数発生器に対する初期シード値

    疑似ランダム ノイズ

    入力周波数の上限値と下限値による二項分布に基づく疑似ランダム ノイズ波形
    • 周波数 (Hz)

      [上限値][下限値] の間で波形が変動するヘルツ単位の周波数

    • 上限値

      信号の上限

    • 下限値

      信号の下限

    • シード

      乱数発生器に対する初期シード値

    ポアソン ランダム ノイズ

    0 と 1 を交互に繰り返すポアソン ランダム ノイズ波形
    • 平均レート (1/秒)

      0 と 1 の遷移の平均レート

    • シード (空の場合現在の状態を利用)

      乱数発生器に対する初期シード値

    カスタム

    カスタム区分的線形波形 (カスタム値は表示領域内に収まらなければなりません)
    • 時間値

      複数の時間座標のベクトル

    • Y の値

      [時間値] の値に対応する複数の信号振幅のベクトル

    MATLAB® ワークスペース変数の評価による結果を含む、いずれのフィールド内の項目もベクトルを評価する任意の MATLAB 表現になります。結果として得られる複数のベクトルは同じ長さになる必要があります。

    メモ

    大量のデータ点 (100,000,000 以上) をもつカスタム波形を追加すると、Signal Builder は警告を表示します。

     
  3. 追加する波形を選択します。

  4. (プロンプトで) 入力を指定して、[OK] をクリックします。

標準波形を選択すると、Signal Builder はその波形をもっている信号を信号グループに追加します。カスタム波形を選択すると、[時間値][Y の値] の入力を促されます。

MATLAB ワークスペース変数を使用して、新しい信号を作成することもできます。

  1. MATLAB コマンド ウィンドウで、2 つの変数 (t と y) のデータを作成します。

    t = 1:10
    y = 1:10

    これらのベクトルは同じサイズでなければなりません。

  2. モデルを作成し、Signal Builder ブロックを追加します。

  3. Signal Builder ブロックをダブルクリックします。

  4. [信号][新規][カスタム] を選択します。

  5. カスタム波形のウィンドウで、[時間値] フィールドに t、[Y の値] フィールドに y を入力して、[OK] をクリックします。

    Signal Builder ブロックのウィンドウに、新しい信号が Signal 2 として表示されます。

信号出力の定義

テスト信号送信用に使用する出力のタイプを指定するには、次の手順に従ってください。

  1. Signal Builder で、[信号][出力] を選択します。

  2. リストから以下を選択します。

    • 端子

      既定の設定。ブロックから個別の信号を送信します。信号 N と名前の付いた出力端子が各信号 N に表示されます。

    • バス

      ブロックから、信号、バーチャル信号、非階層バス信号が送信されます。バスという名前の出力端子が表示されます。

    ヒント

    • [バス] オプションを使用して、非バーチャル信号のバスを作成することはできません。

    • [バス] オプションを使用すると、Signal Builder ブロック信号を再配線することなく、モデル レイアウトを変更できます。Bus Selector を使用して、このバスから信号を選択できないようにします。

    • ビューアーおよびジェネレーター マネージャーを使用するか、信号線のコンテキスト メニューの [ジェネレーターの作成 & 接続] オプションを使用して Signal Builder ブロックを作成する場合、信号出力を定義できません。この場合、ブロックは個別の信号を送信します。

信号のコピーおよび貼り付け

1 つの信号グループから信号をコピーして、新規の信号として別のグループに貼り付けるには、以下のようにします。

  1. Signal Builder で、コピーする信号を選択します。

  2. [編集][コピー] を選択します。

  3. 信号を貼り付ける信号グループを選択します。

  4. [編集][貼り付け] をクリックします。

1 つの軸から信号をコピーして、別の軸に貼り付けてその信号に置き換えるには、次の手順に従います。

  1. コピーする信号を選択します。

  2. [編集][コピー] を選択します。

  3. 更新する軸上の信号を選択します。

  4. [編集][貼り付け] をクリックします。

信号の削除

信号を削除するには、Signal Builder で、その信号を選択してから、[編集] メニューから [削除] または [切り取り] を選択します。Signal Builder が現在のグループから信号を削除します。各信号グループは同数の信号を含んでいなければいけないため、Signal Builder は他のグループ内の同じインデックスを共有するすべての信号も削除します。

信号の名前変更

信号の名前を変更するには、以下のようにします。

  1. Signal Builder で、[信号][名前の変更] を選択します。

    現在の信号名を表示した編集フィールドをもつダイアログ ボックスが表示されます。

  2. 現在の名前を編集するか現在の名前を新しい名前に置き換えます。

  3. [OK] をクリックします。

あるいは、Signal Builder のウィンドウの左下隅にある [名前] フィールドに表示されている信号名を編集します。

信号の置き換え

信号を置き換えるには、以下のようにします。

  1. Signal Builder で、信号を選択して、[信号][置き換え] を選択します。

    波形のメニューが表示されます。このメニューには、一連の標準波形 ([一定]、[ステップ] など) と [カスタム] の波形オプションが登録されています。

  2. 波形の1つを選択してください。

    標準波形を選択すると、Signal Builder はその波形で、現在選択してある信号グループの信号を置き換えます。その他の波形では、Signal Builderはその要求された波形に必要な情報を入力できるダイアログを表示します。

波形説明入力
定数一定波形。なし
ステップステップ波形。なし
パルスパルス波形なし
矩形矩形波波形
  • 周波数 (Hz)

    ヘルツ単位の波形周波数

  • 振幅

    波形振幅

  • Y オフセット

    波形垂直オフセット

  • % デューティ比

    信号が正である周期のパーセント。0 から 100 までの値を入力します。

ノコギリノコギリ波形
  • 周波数 (Hz)

    ヘルツ単位の波形周波数

  • 振幅

    波形振幅

  • Y オフセット

    波形垂直オフセット

離散正弦波離散正弦波波形
  • 周波数 (Hz)

    ヘルツ単位の波形周波数

  • 振幅

    波形振幅

  • Y オフセット

    波形垂直オフセット

  • 1 周期のサンプル数

    波形周期単位のサンプル数

離散ガウス ノイズ入力周波数の入力値の平均と標準偏差によるガウス分布に基づく離散ガウス ノイズ波形。
  • 周波数 (Hz)

    ヘルツ単位の波形周波数

  • 平均

    確率変数出力の平均値

  • 標準偏差

    確率変数出力の二乗の標準偏差

  • シード (空の場合現在の状態を利用)

    乱数発生器に対する初期シード値

疑似ランダム ノイズ入力周波数の上限値と下限値による二項分布に基づく疑似ランダム ノイズ波形。
  • 周波数 (Hz)

    [上限値][下限値] の間で波形が変動するヘルツ単位の周波数

  • 上限値

    信号の上限

  • 下限値

    信号の下限

  • シード

    乱数発生器に対する初期シード値

ポアソン ランダム ノイズ0 と 1 を交互に繰り返すポアソン ランダム ノイズ波形
  • 平均レート (1/秒)

    0 と 1 の遷移の平均レート

  • シード (空の場合現在の状態を利用)

    乱数発生器に対する初期シード値

カスタムカスタム区分的線形波形。カスタム値は表示領域内に収まらなければなりません。
  • 時間値

    複数の時間座標のベクトル

  • Y の値

    [時間値] の値に対応する複数の信号振幅のベクトル

いずれのフィールド内の項目もベクトルを評価する任意の MATLAB 表現になります。結果として得られる複数のベクトルは同じ長さになる必要があります。

メモ

大量のデータ点 (100,000,000 以上) をもつカスタム波形を追加すると、Signal Builder は警告を返します。そこで、アクションをキャンセルできます。

あるいは、Signal Builder のウィンドウの左下隅にある [名前] フィールドに表示されている信号名を編集します。

信号のインデックスの変更

信号のインデックスを変更するには、以下のようにします。

  1. Signal Builder で、信号を選択して、[信号][インデックスの変更] を選択します。

    その信号の既存のインデックスを含むドロップダウン リスト フィールドをもつダイアログ ボックスが表示されます。

  2. ドロップダウン リストから、別のインデックスを選択して、[OK] をクリックします。あるいは、Signal Builderウィンドウの左下隅にある [インデックス] リストからインデックスを選択します。

信号の非表示

既定の設定では、Signal Builder のウィンドウには、信号グループのペインの中に信号グループの波形が表示されます。波形を非表示にするには、以下のようにします。

  1. Signal Builder で、波形を選択して、[信号][隠す] を選択します。

  2. 非表示にした波形を再表示するには、[グループ] ペインを選択して、[信号][表示] を選択します。

  3. リストから信号を選択します。あるいは、Signal Builder の信号リストで非表示波形の名前をダブルクリックしてその波形を非表示したり再度表示にすることもできます。

手動による信号のグループ セットの作成

このトピックでは、信号のグループ セットを手動で作成する方法を説明します。テスト ケースからのものなど、信号データ ファイルがある場合、信号のグループ セットのインポートの説明に従って、そのデータをインポートすることを考えてください。

相互交換可能な信号グループのセットを作成するには、以下のようにします。

  1. Signal Builder ブロックのインスタンスを Simulink の Sources ライブラリからドラッグして、モデル内にドロップします。

    既定の設定では、このブロックは矩形波パルスを出力する 1 つの信号ソースを含む 1 つの信号のグループを表します。

  2. そのブロックの信号エディターを使用して、追加信号のグループを作成し、その信号のグループに信号を追加し、既存の信号および信号のグループを変更し、そのブロックが出力する信号のグループを選択します。

    メモ

    各信号グループは同数の信号を含まなければなりません。

  3. ブロックの出力をブロック線図に接続します。

    このブロックには、そのブロックが出力可能な各信号の出力端子が表示されます。

モデルで希望する数の Signal Builder ブロックを作成することができます。この場合、各ブロックは相互交換可能な信号ソースのグループの別のセットを表します。グループ内に複数の信号が存在する場合、信号の終了時間は異なる可能性があります。ただし、Signal Builder ブロックでは、グループ内の信号の終了時間は一致しなければなりません。一致しない場合、Signal Builder ブロックでは、早い方の終了時間をもつ信号の最後の値を保持して、終了時間を一致させます。

モデルでの信号グループの使用方法については、信号グループのシミュレーションを参照してください。

以下の手順用の信号データ ファイルとデータの書式変更関数

以下のセクションの手順では、3 つのファイル 3Grp_3Sig.xlsSigBldCustomFile.xls、および createSignalBuilderSupportedFormat.m を使用します。これらのファイルにアクセスするには、ライブ スクリプトを開きます。

信号のグループ セットのインポート

このセクションのトピックでは、Signal Builder ブロックに信号データをインポートする方法を説明します。インポートする内容を含む信号データ ファイルが手元に必要です。たとえば、前に実行したテスト ケースからの信号データなどを使用できます。Signal Builder ブロックで受け入れられるデータ形式の説明については、既存のデータセットからの信号のグループのインポートを参照してください。

Signal Builder は double 型の信号だけを受け入れます。

Simulink.SimulationData.Dataset データセットをインポートした場合、固有のグループとしてブロックにインポートされます。

既存のデータセットからの信号のグループのインポート

既存の信号データセットを Signal Builder ブロックに入力するとします。Signal Builder のウィンドウの [ファイル][ファイルからインポート] コマンドを使用すると [ファイルのインポート] ダイアログ ボックスが開きます。このダイアログ ボックスはモーダルです。つまり、このダイアログ ボックスの実行中には別の MATLAB ウィンドウにフォーカスを切り替えることはできません。データをインポートした後、Signal Builder のウィンドウで変更内容を確認するには、以下のいずれかを行います。

  • [ファイルのインポート] ダイアログ ボックスを閉じる。

  • [ファイルのインポート] ダイアログ ボックスと Signal Builder のウィンドウを並べて設定する。

メモ

信号データファイルのインポートの結果は元に戻せません。さらに、[ファイルのインポート] ダイアログ ボックスを開く直前に実行した操作を元に戻すこともできません。[ファイルのインポート] ダイアログ ボックスを閉じると、Signal Builder のウィンドウの [最後の編集を元に戻す] ボタンと [最後の編集のやり直し] ボタンはグレー表示になります。これらのボタンは、データ ファイルをインポートしたかどうかにかかわらずグレー表示になります。

[ファイルのインポート] ダイアログ ボックスでは、以下の適切な形式のファイル タイプを受け入れます。

  • Microsoft® Excel® (.xls, .xlsx)

  • コンマ区切り値 (CSV) テキスト ファイル (.csv)

  • MAT ファイル (.mat)

ヒント

Microsoft Excel のスプレッドシートから信号データをインポートするには、From Spreadsheet ブロックを使用することを検討してください。シミュレーション中に、From Spreadsheet ブロックはスプレッドシートのデータを段階的に読み込みます。From Spreadsheet ブロックを使用する場合、シートの値への変更を処理するために何もする必要はありません。

データセット ファイルは、正しい形式のもののみインポートできます。

Microsoft Excel スプレッドシートの場合

  • Signal Builder ブロックは、最初の行を信号名として解釈します。信号名を指定しないと、Signal Builder ブロックは Imported_Signal # の形式の既定の信号名を割り当てます。ここで # は、無名の信号が追加されるたびに増分する値です。

  • Signal Builder ブロックは、最初の列を時間として解釈します。この列では、時間値が増加しなければなりません。

  • Signal Builder ブロックは、残りの列を信号として解釈します。

  • 複数のシートがある場合

    • 各シートの信号数 (列数) は同じでなければなりません。

    • 各シートの信号セット名は同じでなければなりません (信号セットがある場合)。

    • 各シートの各列の行数は同じでなければなりません。

  • Signal Builder ブロックは、各ワークシートを信号グループとして解釈します。

この例の 3Grp_3Sig.xls には、受け入れ可能な形式の Microsoft Excel のスプレッドシートが含まれています。3 つの信号グループを表す Group1、Group2、Group3 という 3 つのワークシートがあります。

CSV テキスト ファイルの場合

  • 各ファイルには数値のみが含まれます。CSV ファイルでは信号に名前を付けないでください。

  • Signal Builder ブロックは、最初の列を時間として解釈します。この列では、時間値が増加しなければなりません。

  • Signal Builder ブロックは、残りの列を信号として解釈します。

  • 各列には、同じ数の項目が含まれなければなりません。

  • Signal Builder ブロックは、各ファイルを 1 つの信号グループとして解釈します。

  • Signal Builder ブロックは、各信号に Imported_Signal # 形式の既定の信号名を割り当てます。ここで # は信号が追加されるたびに増分する値です。

この例には、正しい形式の CSV ファイルが含まれます。内容は 1 つの信号グループを表しています。

0,0,0,5,0
1,0,1,5,0
2,0,1,5,0
3,0,1,5,0
4,5,1,5,0
5,5,1,5,0
6,5,1,5,0
7,0,1,5,0
8,0,1,5,1
9,0,1,5,1
10,0,1,5,0

MAT ファイルの場合

  • Signal Builder ブロックは、Simulink.SimulationData.Dataset オブジェクトが表すデータ ストアのログをサポートし、このデータを 1 つのグループとして解釈します。

  • Signal Builder ブロックは、時間付き構造体として保存された Simulink 出力をサポートします。

  • Signal Builder ブロックは、Signal Builder データ形式をサポートします。この形式は以下のラベルが必要な cell 配列のグループです。

  • Signal Builder ブロックは、以下をサポートしていません。

    • 構造体としてのみの Simulink 出力

    • 配列としてのみの Simulink 出力

メモ

大量のデータ点 (100,000,000 以上) をインポートすると、Signal Builder は警告を返します。そこで、アクションをキャンセルできます。

この例には、正しくログが記録された MATLAB ワークスペースが含まれます。MATLAB ワークスペースの [保存] コマンドを使用して変数を MAT ファイルに保存します。このファイルを Signal Builder ブロックにインポートします。

選択したデータによるすべての信号データの置換

Simulink ソフトウェアでは、1 つの信号で既定の Signal Builder ブロックを作成します。この信号、およびブロックで表示される可能性のあるその他すべての信号データを置き換えるには、次の手順に従います。

  1. モデルを作成し、Signal Builder ブロックをそのモデルにドラッグします。

  2. ブロックをダブルクリックします。

    既定の信号 1 を示す Signal Builder のウィンドウが表示されます。

  3. Signal Builder で、[ファイル][ファイルからインポート] を選択します。

    [ファイルのインポート] ダイアログ ボックスが表示されます。

  4. [インポートするファイル] フィールドで、信号データ ファイル名を入力するか、[参照] をクリックします。

    ファイル ブラウザーが表示されます。

  5. ファイル ブラウザーを選択した場合は、信号データ ファイルを選択します。3Grp_3Sig.xls を選択します。

    メモ

    正しくない形式のデータ ファイルをインポートしようとすると、エラー メッセージが表示されます。

    [インポートするデータの選択] ペインには、ファイルからの信号データが含まれます。展開アイコンをクリックし、すべての信号を表示します。

  6. インポートする信号を選択します。すべての信号をインポートするには、[すべて選択] をクリックします。

  7. [データの配置の選択] リストから、信号データに対するアクションを選択します。[既存のデータセットを置き換える] を選択します。

    [選択の確認] ボタンが有効になります。Signal Builder ブロックで指定のアクションが実行される前に、信号の選択を確認します。エラーが検出されると、ダイアログにエラー メッセージが表示されます。

  8. [選択の確認] ボタンをクリックします。

  9. [適用] をクリックして、このファイルの内容で既存の信号データを置き換えます。

    [既存のデータセットを置き換える] を選択すると、Signal Builder ブロックの既存の内容を保存する機会が与えられます。

  10. 以下の表に従ってボタンをクリックします。

    目的クリックするボタン

    新しい信号データで置き換える前に Signal Builder ブロックの内容を保存する。

    メモ

    この選択では、任意のモデル名で Signal Builder ブロックを保存することを求めるメッセージが表示されます。Signal Builder ブロックのみが保存され、モデルのその他の内容は保存されません。

    [はい、名前を付けて保存します...]
    Signal Builder ブロックの内容を保存せずに置き換える。[いいえ、保存しないでインポートします]
    置換プロセスを停止する。[キャンセル]

    この例では、[いいえ、保存しないでインポートします] を選択して Signal Builder ブロックの内容を置き換えます。

  11. Signal Builder ブロックは、新しい信号データで更新されます。[OK] をクリックして、[ファイルのインポート] ダイアログ ボックスを閉じ、Signal Builder ブロックを検査します。

  12. [OK] をクリックします。

  13. 更新された Signal Builder のウィンドウを調べ、信号データが損なわれていないことを確認します。

  14. Signal Builder のウィンドウを閉じ、モデルを保存して閉じます。たとえば、signalbuilder1 としてモデルを保存します。

選択した信号を既存のすべての信号グループに追加

信号データ ファイルから信号をインポートして、選択した信号を既存の信号グループの末尾に追加できます。追加する信号名が一意でない場合は、一意な信号名になるまで、それぞれ 1 または 1 より大きい値で増分することにより、名前が変更されます。たとえば、ブロックとデータ ファイルに thermostat という名前の信号が含まれる場合、インポートされた信号は、追加と同時に thermostat1 に名前変更されます。thermostat という名前の信号をさらに 1 つ追加すると、新しく追加されたバージョンには thermostat2 という名前が付けられます。

このトピックでは、選択したデータによるすべての信号データの置換の手順の signalbuilder1 を使用します。

  1. MATLAB コマンド ウィンドウで「signalbuilder1」と入力します。

  2. Signal Builder ブロックをダブルクリックします。

    Signal Builder のウィンドウが表示されます。

  3. Signal Builder のウィンドウで、[ファイル][ファイルからインポート] を選択します。

    [ファイルのインポート] ダイアログ ボックスが表示されます。

  4. [インポートするファイル] フィールドで、信号データ ファイル名を入力するか、[参照] をクリックします。

    ファイル ブラウザーが表示されます。

  5. ファイル ブラウザーを選択した場合は、信号データ ファイルを選択します。3Grp_3Sig.xls を選択します。

    メモ

    正しくない形式の信号データ ファイルをインポートしようとすると、エラー メッセージが表示されます。

    [インポートするデータの選択] ペインには、ファイルからの信号データが含まれます。展開アイコンをクリックし、すべての信号を表示します。

  6. インポートする信号を選択します。次の例には、myGroup1、myGroupB、myGroup_Three という 3 つのグループがあります。myGroup1 のすべての信号を選択します。

  7. [データの配置の選択] リストから、信号データに対するアクションを選択します。[選択した信号をすべてのグループに追加] を選択します。

    [選択の確認] ボタンが有効になります。Signal Builder ブロックで指定のアクションが実行される前に、信号の選択を確認します。選択された信号データが適切ではない場合は、[選択の確認] はグレー表示のままです。たとえば、選択した信号の数が、Signal Builder グループ内で置き換える信号数と同じではない場合、[選択の確認] はグレー表示のままになります。

  8. [選択の確認] ボタンをクリックします。

    この確認により [OK] ボタンと [適用] ボタンも有効になります。

  9. [適用] をクリックして、選択された信号を Signal Builder ブロックのすべての信号グループに追加します。

  10. Signal Builder ブロックは、新しい信号データで更新されます。[OK] をクリックして、[ファイルのインポート] ダイアログ ボックスを閉じ、Signal Builder ブロックを検査します。

  11. [OK] をクリックします。

  12. 更新された Signal Builder のウィンドウを調べ、信号データが損なわれていないことを確認します。信号データ ファイルの信号 Sig1、Sig2、Sig3 が Signal Builder ブロック内で Sig4、Sig5、Sig6 に名前が変更されたことに注意してください。

  13. Signal Builder のウィンドウを閉じ、モデルを保存して閉じます。たとえば、signalbuilder2 としてモデルを保存します。

選択した信号の連続した既存の信号グループへの追加

信号は、選択した順番に連続した信号グループの末尾に追加できます。これは、信号グループの数と同じ数の信号を選択し、異なるグループに各信号を順番に追加することを意味します。追加された各信号の名前は、最後に追加された信号名に変更されます。

このトピックでは、選択したデータによるすべての信号データの置換の手順の signalbuilder1 を使用します。

  1. MATLAB コマンド ウィンドウで「signalbuilder1」と入力します。

  2. Signal Builder ブロックをダブルクリックします。

  3. Signal Builder ブロック内に存在するグループの数に注意してください。たとえば、次の Signal Builder ブロックには、myGroup1、myGroupB、myGroup_Three という 3 つのグループがあります。

  4. Signal Builder のウィンドウで、[ファイル][ファイルからインポート] を選択します。

  5. [インポートするファイル] フィールドで、信号データ ファイル名を入力するか、[参照] をクリックします。

  6. ファイル ブラウザーを選択した場合は、信号データ ファイルを選択します。3Grp_3Sig.xls を選択します。

    メモ

    正しくない形式の信号データ ファイルをインポートしようとすると、エラー メッセージのポップアップ ウィンドウが表示されます。

    [インポートするデータの選択] ペインには、ファイルからの信号データが含まれます。展開アイコンをクリックし、すべての信号を表示します。

  7. インポートする信号を選択します。次の例には、myGroup1、myGroupB、myGroup_Three という 3 つのグループがあります。myGroup1 のすべての信号を選択します。

  8. [選択したデータの位置] リストから、信号データに対するアクションを選択します。[選択した信号を別のグループに追加 (順に)] を選択します。

    [選択の確認] ボタンが有効になります。Signal Builder ブロックで指定のアクションが実行される前に、信号の選択を確認します。

  9. [選択の確認] ボタンをクリックします。

    この確認により [OK] ボタンと [適用] ボタンも有効になります。

  10. [適用] をクリックして、信号を追加します。

    Signal Builder ブロックは、新しい信号データで更新されます。[OK] をクリックして、[ファイルのインポート] ダイアログ ボックスを閉じ、Signal Builder ブロックの 3 つのグループを検査します。

    一番上の信号グループ myGroup1 には、既定の設定で Sig4 を含むすべての信号が表示されます。

  11. [myGroupB] などの別のグループ名をクリックします。既定では非表示の Sig4 が、グループに存在することに注意してください。

  12. このペインに Sig4 を表示するには、ペインの [選択状況領域] で [Sig4] をダブルクリックします。Sig4 を反映してグラフが更新されます。

  13. Signal Builder のウィンドウを閉じ、モデルを保存して閉じます。たとえば、signalbuilder3 としてモデルを保存します。

既存のグループへの信号グループの追加

既存の信号グループのリストの末尾に 1 つ以上の信号グループを追加できます。追加する信号グループと同じ名前の信号グループが既にブロックにある場合、追加する前にグループ名が一意になるまで 1 以上の値で増分されます。たとえば、ブロックとデータ ファイルに MyGroup1 という名前の信号グループが含まれる場合、インポートされた信号グループは、追加と同時に MyGroup2 に名前が変更されます。MyGroup1 という名前の信号グループをさらに 1 つ追加すると、新しく追加されたバージョンには MyGroup3 という名前が付けられます。

このトピックでは、選択したデータによるすべての信号データの置換の手順の signalbuilder1 を使用します。

  1. MATLAB コマンド ウィンドウで「signalbuilder1」と入力します。

  2. Signal Builder ブロックをダブルクリックします。

    Signal Builder のウィンドウが表示されます。

  3. Signal Builder ブロック内に存在する信号グループの数と、各信号グループに存在する信号の数に注意してください。Signal Builder ブロックでは、すべてのグループに同じ数の信号が必要です。たとえば、次の Signal Builder ブロックには、myGroup1、myGroupB、myGroup_Three という 3 つのグループがあります。各グループには 3 つの信号が存在します。

  4. ブロックをダブルクリックします。

  5. [インポートするファイル] テキスト フィールドで、信号データ ファイル名を入力するか、[参照] をクリックします。

  6. ファイル ブラウザーを選択した場合は、信号データ ファイルを選択します。3Grp_3Sig.xls を選択します。

    [インポートするデータ] ペインには、ファイルからの信号データが含まれます。展開アイコンをクリックし、すべての信号を表示します。

  7. このデータ ファイルのグループ内の信号の数を評価します。各グループ内の信号の数が、ブロック内に存在するグループ内の信号の数と一致する場合は、それらのグループの 1 つをブロックに追加できます。

  8. インポートするグループを選択します。次の例には、myGroup1、myGroupB、myGroup_Three という 3 つのグループがあります。myGroupB を選択します。

  9. [選択したデータの位置] リストから、信号グループに対するアクションを選択します。[グループを追加] を選択します。

    [選択の確認] ボタンが有効になります。Signal Builder ブロックで指定のアクションが実行される前に、信号の選択を確認します。

  10. [選択の確認] ボタンをクリックします。

    この確認により [OK] ボタンと [適用] ボタンも有効になります。

  11. [適用] をクリックして、信号を追加します。

    Signal Builder ブロックは、新しい信号データで更新されます。[OK] をクリックして、[ファイルのインポート] ダイアログ ボックスを閉じ、Signal Builder ブロックのグループを検査します。

    新しい信号グループが最後のペインとして追加されていることに注意してください。myGroupB という名前の信号グループは既に存在するため、新しい信号グループの名前は自動的に 1 で増分されます。myGroupB1 を選択します。

  12. Signal Builder のウィンドウを閉じ、モデルを保存して閉じます。たとえば、signalbuilder4 としてモデルを保存します。

既存の信号グループへの同じ名前の信号の追加

Signal Builder ブロック内に存在する信号と同じ名前の信号名を追加すると、追加された信号の名前は 1 で増分されます。増分は、追加された信号名が一意になるまで続けられます。以下に例を示します。

  1. Signal Builder ブロックに Sig1、Sig2、Sig3 を含む信号グループ myGroup1 があるとします。

  2. Sig1 という名前の信号を myGroup1 に追加します。

  3. myGroup1 に追加する前に、Sig1 は Sig4 に増分されるのを観察してください。

異なる信号名をもつ信号のグループの追加

Signal Builder ブロックに存在する信号とは異なる信号名を含む信号グループを追加する場合、追加された信号と同じになるように既存の信号名が変更されます。たとえば、次のようにします。

  1. Signal Builder ブロックに Sig1、Sig2、Sig3 を含む信号グループ myGroup1 があるとします。

  2. 信号名が SigA、SigB、SigC の信号グループ myGroup2 を追加します。

  3. ソフトウェアによって行われる以下の操作を観察してください。

    • myGroup2 を追加する。

    • myGroup2 内の信号と同じになるように myGroup1 内の信号名を変更する。

カスタム形式のデータのインポート

このトピックでは、カスタム形式で設定された信号データをインポートする方法について説明します。インポートする内容を含むファイルからの信号データが手元に必要です。Signal Builder ブロックで受け入れられるデータ形式の説明については、既存のデータセットからの信号のグループのインポートを参照してください。データがそのデータ形式のいずれの形式でもない場合は、そのカスタム形式のデータは次のワークフローでインポートされます。このワークフローでは、フォルダー matlabroot\help\toolbox\simulink\examples (開く) にある以下のファイルをサンプルとして使用します。

  • SigBldCustomFile.xls — Signal Builder ブロックが受け入れない形式を使用する信号データの Microsoft Excel ファイル。次に例を示します。

  • createSignalBuilderSupportedFormat.mMicrosoft Excel のスプレッドシートを読み取るカスタム MATLAB 関数。この例の関数は、以下のように Signal Builder ブロックがサポートする形式にカスタム データの書式を変更しています。

    • grpNames — グループ名の文字ベクトルを含む cell 配列。行数 = 1、列数 = グループ数。

    • sigNames — 信号名の文字ベクトルを含む cell 配列。行数 = 1、列数 = 信号数。

    • time — 時間データを含む cell 配列。行数 = 信号数、列数 = グループ数。

    • data — 信号データを含む cell 配列。行数 = 信号数、列数 = グループ数。

    Signal Builder では、このカスタム関数に対して以下の要件があります。

    • 各グループの信号数は同じでなければならない。

    • 各グループの信号名は同じでなければならない。

    • 各信号のデータ点の数は同じでなければならない。

    • time および data の cell 配列の各要素は、実数の行列を保持する。この行列は、1 行 N 列または N 行 1 列のいずれかになります (N は各信号内のデータ点の数)。

  1. カスタムの信号データの形式を特定します。以下に例を示します。

    SigBldCustomFile.xls
  2. 次の条件を満たすカスタム MATLAB 関数を作成します。

    1. カスタム形式の信号データの読み取りに MATLAB I/O 関数を使用する。たとえば、createSignalBuilderSupportedFormat.m のようになります。

    2. カスタム形式の信号データを、MAT ファイルなど Signal Builder ブロックが受け入れる形式にする。

  3. カスタム MATLAB 関数を使用して、カスタム形式の信号データを、Signal Builder ブロックが受け入れるファイルに書き込みます。以下に例を示します。

    createSignalBuilderSupportedFormat('SigBldCustomFile.xls', 'OutputData.mat')
  4. 書式が変更された信号データ ファイル OutputData.mat を Signal Builder ブロックにインポートします (信号のグループ セットのインポートを参照)。

波形の編集

Signal Builder では、信号グループが出力する波形の形状、色、ライン スタイルおよび太さを変更することができます。

波形の形状変更

Signal Builder では、波形のライン セグメントまたはポイントをマウスまたは矢印キーで選択またはドラッグするか、ライン セグメントまたはポイントの座標を編集して、波形を変更できます。

波形の選択

波形を選択するには、その波形上の任意のポイントでマウスを左クリックします。

Signal Builder は、波形のポイントを表示してその波形が選択状態にあることを示します。

波形を選択解除するには、それ自体が波形上にない波形の軸上の任意のポイントで左クリックするか、Esc キーを押します。

ポイントの操作

波形内のポイントを操作できます。

  • 波形のポイントを選択するには、まずその波形を選択します。次に、マウス カーソルをそのポイントに合わせます。カーソルの形状が変わってポイント上にあることを示します。

    マウスでポイントを左クリックします。Signal Builder は、そのポイントの周囲に円を描いてそのポイントが選択されていることを示します。

  • ポイントを挿入するには、波形を選択し、ポイントを挿入するセクションを Shift キーを押しながらクリックします。

  • ポイントを選択解除するには、Esc キーを押します。

  • ポイントを削除するには、そのポイントを選択し、Backspace キーまたは Delete キーを押します。

  • 関数 signalbuilder でポイントを編集するには、関数 signalbuilder set を使用して波形を置き換えます。プログラムによってポイントを削除することはできません。

セグメントの選択

ライン セグメントを選択するには、まずそのセグメントを含む波形を選択します。次に、そのセグメントを左クリックします。Signal Builder は、セグメントの太さを大きくしてそのセグメントが選択状態にあることを示します。

セグメントを選択解除するには、Esc キーを押します。

セグメントのドラッグ

ライン セグメントを新しい位置にドラッグするには、マウス カーソルをそのライン セグメントに合わせます。キー ストロークごとに、波形がスナップ グリッド (スナップ グリッドを参照) 上の次の位置に移動します。スナップ グリッドが有効でない場合は、0.1 インチずつ移動します。

セグメントのドラッグ

ライン セグメントを新しい位置にドラッグするには、マウス カーソルをそのライン セグメントに合わせます。マウス カーソルの形状が変わってセグメントをドラッグできる方向を示します。

左のマウス ボタンを押し、希望する位置の方向へセグメントをドラッグします。選択されたライン セグメントを移動するために、キーボードの矢印キーを使用することもできます。

ポイントのドラッグ

信号振幅の (垂直) 軸に沿ってポイントをドラッグするには、マウス カーソルをそのポイントに移動させます。カーソルの形状が円に変わって、ポイントをドラッグできる状態にあることを示します。y 軸に平行に、希望する位置までポイントをドラッグします。時間 (水平) 軸に沿ってポイントをドラッグするには、Shift キーを押したままそのポイントをドラッグします。キーボードの矢印キーを使って選択したポイントを移動することもできます。

スナップ グリッド

各波形軸には波形ポイントの正確な位置決めを容易にする非表示のスナップ グリッドがあります。スナップ グリッドの原点は波形軸の原点と一致します。ドラッグしていたポイントまたはセグメントをドロップすると、Signal Builder はそのポイントまたはそのセグメントの各ポイントをそれぞれグリッド上あるいはその最も近くにあるポイントに移動します。Signal Builder の [座標軸] メニューで、スナップ グリッドの水平 (時間) 軸と垂直 (振幅) 軸の間隔を自由に指定することができます。この間隔を狭くすると、ポイントを配置するときの自由度が大きくなりますが、ポイントの位置決めを正確に行うことが難しくなります。既定の場合、グリッド間隔は0です。これはグリッド上の任意の場所にポイントを配置できること、すなわちグリッドが事実上オフであることを意味します。[座標軸] メニューを使用して、希望するグリッド間隔を選択してください。

ポイントの挿入および削除

ポイントを挿入するには、まず波形を選択します。次に、Shift キーを押したまま、ポイントを挿入するポイント上でその波形を左クリックします。ポイントを削除するには、そのポイントを選択し、Del キーを押します。

ポイント座標の編集

ポイントの座標を変更するには、まずそのポイントを選択します。Signal Builder のウィンドウの一番下にある [左ポイント] 編集フィールドに、選択したポイントの座標が表示されます。選択したポイントの振幅を変更するには、[Y] フィールドの値を編集するか新しい値に置き換えて Enter キーを押します。Signal Builder は、ポイントを新規位置に移動します。同様に、[T] フィールドの値を編集して、選択したポイントの時間を変更します。

セグメント座標の編集

セグメントの座標を変更するには、まずそのセグメントを選択します。すると、Signal Builder のウィンドウの一番下にある [左ポイント] 編集フィールドと [右ポイント] 編集フィールドに、選択したセグメントの端点の現在座標が表示されます。座標を変更するには、その対応する編集フィールドの値を編集して Enter キーを押します。

波形の色の変更

信号波形の色を変更するには、その波形を選択してから、Signal Builder の [信号] メニューから [色] を選択します。Signal Builder は MATLAB の色を選択するためのダイアログを表示します。波形の新しい色を選択し、[OK] をクリックします。

波形のライン スタイルおよび太さの変更

Signal Builder は、波形を実線、破線、または点線として表示することができます。既定の場合は実線が使用されます。波形のライン スタイルを変更するには、その波形を選択してから、Signal Builder の [信号] メニューから [ライン スタイル] を選択します。このメニューからライン スタイルを選択します。

波形のラインの太さを変更するには、その波形を選択してから、[信号] メニューから [ライン幅] を選択します。太さの値を編集し、[OK] を選択します。

Signal Builder の時間範囲

Signal Builder の時間範囲は、その出力が明示的に定義される時間のスパンを決定します。既定の場合、時間範囲は 0 ~ 10 秒の間になります。ブロックの時間範囲の開始時間と終了時間を両方とも変更することができます (Signal Builder の時間範囲の変更を参照)。

ブロックの時間範囲の開始時間になる前にシミュレーションが始まると、そのブロックは、渡された最初の 2 つの出力からその初期出力を生成します。ブロックの時間範囲を超えてシミュレーションが実行されると、既定の設定で、そのブロックは、シミュレーションのリマインダーの信号の最終値から推定される値を出力します。Signal Builder の [シミュレーション オプション] ダイアログ ボックスでは、他の最終出力オプションを指定することができます (詳細は、最終時間の以降の信号値を参照)。

メモ

Signal Builder ブロックのツール バーで [シミュレーションの開始] ボタンをクリックすると、シミュレーションではモデルの停止時間が使用されます。波形で指定した時間範囲の終わりが、モデルの停止時間ではありません。

Signal Builder の時間範囲の変更

時間範囲を変更するには、Signal Builder の [座標軸] メニューから [時間範囲の変更] を選択します。

ダイアログ ボックスで、必要に応じて、新しい時間範囲の開始時間と終了時間がそれぞれ反映されるように [最小時間] フィールドと [最大時間] フィールドを編集します。

信号グループのデータのエクスポート

Signal Builder ブロックの信号グループを定義するデータを MAT ファイル、MATLAB ワークスペース、または Signal Editor ブロックにエクスポートできます。

Simulink.SimulationData.Dataset 形式の Signal Builder の信号データを MAT ファイルにエクスポートするには、[ファイル]、[データのエクスポート]、[MAT ファイルへ] を選択します。

  • ファイル名 — データを書き込む MAT ファイルの名前を入力します。

  • グループ インデックス — データをエクスポートする信号グループの番号を 1 つまたは複数入力します。スカラーまたはベクトルで指定します。番号はブロック内の既存のグループと対応していなければなりません。

関数 signalbuilder get を使用して 1 つ以上のデータセットを返すこともできます。以下に例を示します。

[ds1 ds2]=signalbuilder(block,'get',[group1 group2])

信号データを MATLAB ワークスペースにエクスポートするには、[ファイル]、[データのエクスポート]、[ワークスペースへ] を選択します。

Signal Builder は既定の設定で、channels という名前のワークスペース変数にデータをエクスポートします。別の名前の変数にエクスポートするには、その変数の名前を [変数名] フィールドに入力します。Signal Builder は、指定した変数の値としてそのデータを作業領域にエクスポートします。

エクスポートされるデータは構造体の配列です。構造体の xData フィールドおよび yData フィールドは、現在選択されている信号グループ内の信号を定義する座標点を含みます。

Signal Builder ブロックの信号グループ内のすべてのデータにアクセスするには、関数 signalbuilder get を使用します。

[time, data]=signalbuilder(block,'get',signal,group)

以下に例を示します。

% For time 0 to 5, create three signal groups.
block = signalbuilder([], 'create', [0 5], {[2 2] [4 4] [7 8];[0 2] [0 4] [7 10]});
% Get the signals for all three groups.
[time, data]=signalbuilder(block,'get',[1 2],[1:3])
time =

  2×3 cell array

    [1×2 double]    [1×2 double]    [1×2 double]
    [1×2 double]    [1×2 double]    [1×2 double]


data =

  2×3 cell array

    [1×2 double]    [1×2 double]    [1×2 double]
    [1×2 double]    [1×2 double]    [1×2 double]

Signal Builder ブロックから信号データにアクセスして、それを Signal Editor ブロックにエクスポートするには、[ファイル][データのエクスポート][Signal Editor ブロックへ] を選択します。

  1. Signal Builder ブロックから、[ファイル][エクスポート][Signal Editor ブロックへ] を選択します。

    ヒント

    または、Signal Builder to Signal Editor button をクリックします。

  2. ファイル ブラウザーで、保存した信号データを含めるようにファイル名を指定します。

    Signal Editor ブロックがモデルに表示されます。

  3. 信号データを Signal Editor ブロックにエクスポートするには、ブロックをダブルクリックし、エクスポートしたファイル名を [ファイル名] パラメーターで確認します。

  4. インポートされた信号データを信号エディター ユーザー インターフェイスで表示するには、[信号エディターを起動します] (Signal Builder to Signal Editor button) をクリックします。

信号グループのシミュレーション

Signal Builder ブロックを含んでいるモデルを実行するのに、標準のシミュレーション コマンドが使えます。また、Signal Builder のウィンドウの [実行] または [すべて実行] ボタン (すべての信号グループの実行を参照) を使うこともできます。

[すべて実行] ボタンを使用して生成される入力および出力をキャプチャする場合は、SystemTest™ ソフトウェアの使用を検討してください。

信号グループをアクティブにする

Signal Builder は、シミュレーションの実行中に、常にアクティブな信号グループを出力します。アクティブな信号グループは、そのブロック用の Signal Builder のウィンドウが開いている場合、そのダイアログ ボックスで選択してある信号グループです。開いていない場合は、そのダイアログ ボックスが最後に閉じられたときに選択してあった信号グループです。信号グループをアクティブにするには、その信号グループの Signal Builder のウィンドウを開いて、その信号グループを選択します。

異なる信号グループの連続実行

Signal Builder のツール バーには、シミュレーションを実行するための標準 Simulink ボタンが用意してあります。これらのボタンにより、複数ある別々の信号グループを次々と簡単に実行することができます。たとえば、ダイアログ ボックスを開き、信号グループを選択し、シミュレーションを実行し、また別の信号グループを選択し、シミュレーションを実行する、といった操作をすべて Signal Builder のウィンドウから行うことができます。

すべての信号グループの実行

Signal Builder ブロックにより定義されたすべての信号グループを実行するには、そのブロックのダイアログ ボックスを開き、Signal Builder のツール バーから ボタンをクリックします。[すべて実行] ボタンをクリックすると、ブロックで定義された信号グループごとに一連のシミュレーションが実行されます。システムに Simulink Coverage をインストールしてモデル カバレッジ ツールを使用している場合は、[すべて実行] ボタンをクリックすると、各シミュレーションのカバレッジ データを収集して MATLAB ワークスペースに保存し、最後のシミュレーションの終了時にカバレッジの結果を集約したレポートを表示するように設定されます。これにより、一連の信号グループがモデルをどれだけうまくテストできるかをすばやく判定することができます。

メモ

[すべて実行] コマンドが開始した一連のシミュレーションを停止するには、MATLAB コマンド ラインで Ctrl+C を入力します。

Signal Builder ブロックからのシミュレーション

Signal Builder ブロックからのシミュレーションを制御するには、[ファイル][シミュレーション オプション] を選択します。

最終時間の以降の信号値

このコントロールの設定は、Signal Builderブロックで定義される時間よりも長い時間の間シミュレーションが実行された場合におけるブロックの出力を決定します。

  • 残りのシミュレーションが実行されている間に、現在アクティブな信号グループの各信号の最終値を出力するには、[最終値をホールド] を選択します。以下に例を示します。

  • 残りのシミュレーションが実行されている間に、現在アクティブな信号グループの各信号の最終値から推定される値を出力するには、[外挿] を選択します。以下に例を示します。

  • 残りのシミュレーションについてゼロを出力するには、[0 に設定] を選択します。以下に例を示します。

サンプル時間

連続信号を出力するには、[サンプル時間] パラメーターに 0 を入力します。たとえば、以下の画面は周期 10 秒の間連続ガウス波形を出力するように設定してある Signal Builder ブロックの出力を示します。

離散信号を出力させるには、このパラメーターに離散信号のサンプル時間を入力します。次の例は、0.5 秒のサンプル時間をもつ離散ガウス波形を送出するように設定してある Signal Builder ブロックの出力を示します。

ゼロクロッシングを有効にする

Signal Builder ブロックにゼロクロッシング イベントを検出させるには、[ゼロクロッシングを有効にする][オン] (既定の値) に設定します。Signal Builder ブロックは、Signal Builder の信号グループの作成に使用する From Workspace ブロックに対するゼロクロッシング検出を設定します。詳細については、ゼロクロッシング検出を参照してください。

参考

|

関連するトピック