Main Content

信号の基礎

"信号" は、時間の経過に伴って値が変化する数量を指し、時間軸のすべての時点で値をもちます。以下のような多くの信号の属性を指定できます。

  • 信号名

  • データ型 (例: 8 ビット、16 ビット、32 ビットの整数)

  • 数値型 (実数または複素数)

  • 次元 (1 次元、2 次元、多次元の配列)

Simulink® では、信号は Simulink ブロック線図内のブロックおよびブロック線図自体によって表される動的システムの出力です。ブロック線図内のラインは、ブロック線図によって定義される信号間の数学的関係を表します。たとえば、ブロック A の出力とブロック B の入力を接続するラインは、B による信号出力が A による信号出力に依存することを示します。

Simulink ブロック線図は矢印付きのラインのある信号を表しています。信号のソースは、ブロックのメソッド (式) の評価中に信号に書き込むブロックに対応します。信号の行く先は、ブロックのメソッド (式) の評価中に信号を読み込むブロックです。モデル内の信号の伝播先が、モデル内のブロックのシミュレーションの順番を表すとは限りません。シミュレーションの順番は、Simulink によって自動的に決定されます。

メモ

Simulink 信号は、物理的なエンティティではなく、数学的なエンティティです。ブロック線図内のラインは、ブロック間の関係を物理的ではなく数学的に表します。Simulink 信号は、電気信号が電話線を通るように、ブロックを接続するラインを通るわけではありません。ブロック線図は、ブロック間の物理的な接続を示すものではありません。

モデルにソース ブロックを追加して、信号を作成できます。たとえば、Simulink の Source ライブラリから Sine, Cosine ブロックのインスタンスをモデルに追加することにより時間と共に関数的に変化する信号を作成可能です。モデルで信号を作成するブロックのリストを表示するには、Sourcesを参照してください。あるいは、ビューアーおよびジェネレーター マネージャーを使用して、ブロックを使わずにモデル内に信号を作成することができます。

信号線のスタイル

Simulink モデルには多くの異なるタイプの信号を含めることができます。ブロック線図の作成時は、すべてのタイプの信号が細い実線で表されます。ブロック線図を更新したりシミュレーションを開始したりすると、指定したライン スタイルで信号が表示されます。これらの信号タイプにより、さまざまな信号タイプを区別できます。すべての信号タイプでカスタマイズできるのは非スカラー信号タイプだけです。詳細については、信号タイプを参照してください。

信号タイプライン スタイル
スカラーおよび非スカラー
非スカラー ([非スカラー ラインを太く表示] オプションを有効にした場合 — 非スカラー ラインを太く表示を参照)

制御信号

バーチャル バス
非バーチャル バス
バス配列
可変サイズ

信号プロパティ

信号の名前の指定およびラベルの設定、記録用のデータの準備またはモデルでの信号のカスタマイズのために、信号のプロパティをモデルで指定する場合があります。プロパティ インスペクター、モデル データ エディターまたは [信号プロパティ] ダイアログ ボックスを使用して次のプロパティを指定します。

  • 信号名とラベル

  • 信号のログ

  • コードの生成に使用する Simulink Coder™

  • 信号のドキュメンテーション

プロパティ インスペクターで信号プロパティにアクセスするには、最初にプロパティ インスペクターを表示します。[モデル化] タブの [設計] で、[プロパティ インスペクター] をクリックします。信号を選択すると、プロパティがプロパティ インスペクターに表示されます。

モデル データ エディターを開くには、[モデル化] タブで [モデル データ エディター] をクリックします。その後、[信号] タブを検証して信号を選択します。

[信号プロパティ] ダイアログ ボックスを使用するには、信号を右クリックして [プロパティ] を選択します。

信号プロパティをプログラムによって指定するには、get_param などの関数を使用して、信号線を作成するブロック出力端子へのハンドルを保持する変数を作成します。その後、set_param を使用して、端子のプログラム上のパラメーターを設定します。次に例を示します。

p = get_param(gcb,'PortHandles')
l = get_param(p.Outport,'Line')
set_param(l,'Name','s9')

信号名とラベル

信号の名前は、モデルで対話形式で設定するかプログラムで設定できます。信号名の構文の要件は、名前の使用方法に応じて異なります。主な要件には以下があります。

  • 信号名の先頭の文字に小なり記号 (<) は使用しないでください。

  • Simulink.Signal オブジェクトに関連付けられた信号名 (Simulink.Signal を参照)。信号名は、有効な MATLAB® の識別子でなければなりません。この識別子は英字で始まり、関数 namelengthmax で指定されている文字数の英数字またはアンダースコアが続きます。

  • データ ログ内で信号を識別および参照するために使用する信号名 (信号ログを使用した信号データの保存 を参照)。このような信号名には、スペースと改行を使用できます。これらの文字を使用することで、名前が確認しやすくなりますが、Access Logged Signals with Spaces and Newlines in Logged Namesに記載されているような特別な取り扱い方法が必要になる場合があります。

  • ブロック線図を理解しやすくする目的でのみ使用し、計算上は重要ではない信号名。このような信号名には、どのような文字でも使用でき、特別な取り扱いは必要ありません。

  • バス オブジェクトの要素である信号。信号名には有効な C 言語識別子を使用します。

  • Bus Creator ブロックへの入力には一意の名前が必要です。重複した名前が存在する場合、Bus Creator ブロックは (signal#) をすべての入力信号名に追加します。ここで、# は入力端子インデックスです。

それぞれの信号名を適切な MATLAB 識別子にすることで、さまざまなモデル コンフィギュレーションを扱うことができます。予期しない要件によって、さらに制約的な構文に従って信号名の変更が必要になる場合があります。関数 isvarname を使用すると、信号名が有効な MATLAB 識別子であるかどうかを判定できます。

以下のいずれかのオプションを使用して信号の名前を対話的に設定します。

信号名は、信号の下に "信号ラベル" として表示されます。

信号の名前をプログラムで設定するには、信号に対して関数 get_param および set_param を使用します。次の表は、信号名および信号ラベルについての Simulink エディターでの操作の概要を示します。

タスク操作
信号線の名前の設定信号をダブルクリックしてその名前を入力。
指定した信号線の分岐の名前の設定分岐をダブルクリック。
信号のすべての分岐の名前の設定 信号を右クリックして [プロパティ] を選択し、ダイアログ ボックスを使用。
信号のラベルおよび名前の削除ラベルで文字を削除するか [信号プロパティ] ダイアログ ボックスで名前を削除。
信号ラベルのみの削除 ラベルを右クリックして [ラベルの削除] を選択。
信号ラベルの編集用テキスト ボックスを開く

信号線をダブルクリック。

ラベルをクリック。

信号線 (ラベルでない) を選択し、F2 を使用。

Mac では、信号線 (ラベルでない) を選択し、control + return を使用。

信号ラベルの移動 ラベルを同じ信号線上の新しい位置にドラッグ。
信号ラベルのコピーCtrl キーを押しながら信号ラベルをドラッグ。
ラベルのフォントの変更信号線 (ラベルでない) を選択し、[書式設定] タブで [フォント プロパティ] ボタンの矢印をクリックし、続いて [モデルのフォント] をクリック。

信号の表示オプション

モデル ブロック線図で信号属性を表示すると、モデルが読みやすくなります。たとえば、Simulink エディターの [デバッグ] タブで [情報のオーバーレイ] メニューを使用して、以下のような信号属性についてモデル レイアウト情報に含めることができます。

  • 端子のデータ型

  • 設計範囲

  • 信号の次元

  • 信号の関連付け

詳細については、信号属性の表示を参照してください。

信号とその伝播元または伝播先のブロックを強調表示することもできます。詳細については、信号の伝播元と伝播先の強調表示を参照してください。

信号の設計属性と状態の保存

ブロック パラメーターおよび信号プロパティを使用して、データ型、最小値と最大値、物理単位、数値の実数/複素数などの信号の設計属性を指定できます。状態を設定するには、ブロック パラメーターを使用できます。このブロック パラメーターと信号プロパティを使用する場合、その仕様をモデル ファイルに保存します。

あるいは、ワークスペースまたはデータ ディクショナリに保存する Simulink.Signal オブジェクトまたは Simulink.ValueType オブジェクトのプロパティを使用することで、これらの属性を指定することもできます。

モデル化の目的に基づいて、使用する戦略を選択します。

モデル化の目的手法

モデルの移植性、可読性、メンテナンスの容易さを向上させる

信号の属性の仕様をモデル ファイルに保存します。外部のオブジェクトを保存および管理する必要はありません。モデル コンフィギュレーション パラメーターの [信号の関連付け][なし] に設定することを検討します。この設定により、モデルによる Simulink.Signal オブジェクトの使用が無効になります。

信号の属性の仕様をモデルから分離して各信号を個別に管理できるようにする

Simulink.Signal オブジェクトを使用します。

信号の属性の仕様をモデルから分離してアプリケーション固有の一連の属性を再利用できるようにする

Simulink.Valuetype オブジェクトを使用します。

並べ替え、グループ化およびフィルター処理が可能なリストを使用して信号の設計属性とコード生成設定を構成するには、モデル データ エディターの使用を検討します。オブジェクトに対しては、モデル エクスプローラーも使用できます。

Simulink.Signal オブジェクトまたは Simulink.ValueType オブジェクトを永久的に保存する場所を決定するには、Simulink モデルの変数とオブジェクトの保存場所の決定を参照してください。

信号のテスト

信号には以下の種類のテストを実行できます。

  • 最小値と最大値 — 多くの Simulink ブロックに対して、出力信号用の有効な値の範囲を指定できます。Simulink はシミュレーション中に指定の範囲を超える信号をブロックが生成するタイミングを検出するための診断を提供します。詳細については、信号範囲の指定を参照してください。

  • 接続の検証 — 多くの Simulink ブロックには、受け入れる信号のタイプに制限があります。モデルのシミュレーションの前に、Simulink は、すべてのブロックをチェックして、ブロックの接続先の端子でそのタイプの信号出力が受け入れられるかどうかを確認し、互換性がない場合はエラーを報告します。シミュレーションを実行する前に信号互換性エラーを見つけるには、ブロック線図を更新します。

Signal Editor ブロックには、シナリオの相互交換可能なグループが表示されます。Signal Editor を使用して相互交換可能なシナリオを表示、作成、編集、および切り替えます。

シナリオは、モデルのテストに役立つ場合があります。

関連するトピック