ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

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

Simulink.Signal

信号の属性を指定

説明

このクラスによって、信号や離散状態がもつ属性、たとえばデータ型、数値型、次元などを指定することができる、ワークスペース オブジェクトを作成できます。以下の目的に信号オブジェクトを使用できます。

  • 信号ソースによってまだ割り当てられていない信号属性 (-1 または auto の値をもつもの) に値を割り当てます。

  • 信号ソースによって明示的に値が割り当てられている信号属性を検証します。そのような属性は、-1 または auto 以外の値をもっています。検証が正常に行われると信号が意図した属性をもっていることが保証されます。

Simulink.Signal オブジェクトは、MATLAB® ワークスペースまたはモデル ワークスペースで作成できます。

信号オブジェクトを使用して信号または離散状態の属性を割り当てるか、検証するには、信号または離散状態に Simulink.Signal オブジェクトを参照するワークスペース変数と同じ名前を付けます。

Signal Specification ブロック: Simulink.Signal の代わり

Simulink.Signal オブジェクトではなく Signal Specification ブロックを使用すると信号ソースによって未指定のプロパティを割り当てることができます。各手法には利点と欠点があります。

  • 信号オブジェクトを使うと、モデルを簡略化し、モデルを編集せずに信号のプロパティ値を変更できますが、信号のプロパティ値をブロック線図に直接表示しません。

  • Signal Specification ブロックを使うと、信号のプロパティ値をブロック線図に直接表示しますが、モデルが複雑化し、信号のプロパティ値の変更を行う必要があります。

  • Signal Specification ブロックはバーチャル バスと非バーチャル バスに使用できます。Simulink.Signal オブジェクトには、非バーチャル バスしか使用できません。

以下の 2 つのモデルは、信号への属性割り当ての 2 つの方法のそれぞれの利点を図示したものです。

最初の例では、Sig1 という名前の信号オブジェクトは入力端子 In1 によって出力される信号のサンプル時間とデータ型を指定します。

Sig1 信号のプロパティを確認するために、モデル エクスプローラーで信号オブジェクトを表示できます。このモデルでは、サンプル時間は -1 で、データ型は auto です。

信号 Sig1 のサンプル時間とデータ型プロパティを指定するために信号オブジェクトを使用すると、モデルを編集せずにサンプル時間またはデータ型を変更できます。たとえば、モデル エクスプローラー、MATLAB コマンド ライン、または MATLAB プログラムを使用して、これらのプロパティを変更できます。

2 番目の例では、Signal Specification ブロックを使用して入力端子 In2 によって出力される信号のサンプル時間とデータ型を指定します。Signal Specification ブロックでは、ダイアグラムの中にデータ型と信号のサンプル時間のプロパティ (ここではそれぞれ uint84) が表示されます。

信号属性の割り当てまたは検証に信号オブジェクトを使用する

この節では、信号属性の割り当てまたは検証に信号オブジェクトを使用する方法について説明します。同じ手法は離散状態にも適用されます。信号属性の割り当てまたは検証に信号オブジェクトを使用するには、以下のようにします。

  1. 属性を割り当てまたは検証する信号と同じ名前の Simulink.Signal オブジェクトを作成します。

    1. モデル エクスプローラーを開きます。

    2. 信号オブジェクトに必要なコンテキストに応じて、[モデルの階層構造] ペインで、ベース ワークスペースかモデル ワークスペースのノードを選択します。信号オブジェクトをモデル ワークスペースに作成する場合は、[ストレージ クラス] パラメーターを [自動] を設定しなければなりません。

    3. [追加][Simulink 信号] を選択します。

  2. 信号ソースで指定されていない属性に対応するオブジェクト、または検証する属性に対応するオブジェクトのプロパティを設定します。詳細は、「プロパティ ダイアログ ボックス」を参照してください。

  3. 信号の明示的または暗黙的な関連付けを行います。

    • 明示的な関連付け: 信号の [信号プロパティ] ダイアログ ボックスで [信号名を Simulink の信号オブジェクトに関連付ける] をチェックします。これは、推奨手法です。詳細は、「明示的または暗黙的な記号関連付け」を参照してください。

    • 暗黙的な関連付け: モデルの [コンフィギュレーション パラメーター]、[診断]、[データ有効性]、[信号の関連付け] オプションを [明示的と暗黙的] または [明示的と暗黙的で警告] に設定します。明示的な関連付けが推奨手法です。

  4. 信号オブジェクトをワークスペース変数に割り当てます。

  5. 信号オブジェクトをソース信号に関連付けます。

検証

信号が信号オブジェクトと一致しないときの結果は複数の要因に依存します。Simulink® はブロック線図の更新時やシミュレーションの実行中あるいはその両方で信号プロパティを検証します。検証の起こるタイミングや方法は、変更される可能性がある内部ルールや、場合によってはコンフィギュレーション パラメーター設定に依存します。

すべての信号検証が信号ソースの属性と信号オブジェクトのプロパティを比較するわけではありません。たとえば、信号オブジェクトを利用して [最小値] および [最大値] の信号値を指定する場合は、信号ソースは、信号オブジェクトと同じ値を指定する (またはオブジェクトから値を継承する) 必要がありますが、そのような検証は、ソースとオブジェクト間の一致にのみ関連し、シミュレーション中の最小値と最大値の施行には関連しません。

[コンフィギュレーション パラメーター]、[診断]、[データ有効性]、[シミュレーション範囲のチェック] の値が [なし] (既定の設定) の場合、信号オブジェクトが指定または検証しても、Simulink はシミュレーション中に最小値と最大値を適用しません。シミュレーション中の最小と最大の信号値を得るには、[シミュレーション範囲のチェック] を [警告] または [エラー] に設定します。詳細は、「信号範囲」「 診断ペイン: データ有効性」を参照してください。

複数の信号オブジェクト

信号オブジェクトのストレージ クラスが Auto の場合にのみ、特定の信号オブジェクトを複数の信号に関連付けることができます。オブジェクトのストレージ クラスが Auto 以外の場合は、信号オブジェクトを 1 つの信号のみに関連付けることができます。

特定の信号は、1 つの信号に関連付けることができます。信号は、信号オブジェクトを 1 回以上参照できますが、各参照は同じ信号オブジェクトに関連付ける必要があります。完全に同じプロパティをもつ 2 つの信号オブジェクトを参照すると、コンパイル時にエラーが発生します。

モデルが任意の信号をもつ 1 つまたは複数の信号オブジェクトに関連付けられている場合、コンパイル時エラーが発生します。このエラーを回避するには、信号が使用するオブジェクトを決定し、他の信号オブジェクトへのすべての参照を削除または再設定します。それにより残りの参照は、選択された信号オブジェクトに関連付けられます。信号の完全なトレースに使用できる手法の説明については、「信号の伝播元と伝播先の表示」を参照してください。

プロパティ ダイアログ ボックス

[データ型]

信号のデータ型。既定のエントリの auto は、Simulink がデータ型を判断するべきであることを示します。隣のプルダウン リストを使って、組み込みデータ型 (たとえば uint8) を指定します。カスタム データ型を指定するには、この型 (たとえば Simulink.NumericType オブジェクトを参照するベース ワークスペース変数) を指定する MATLAB 式を入力します。

バス オブジェクトを信号オブジェクトのデータ型として指定するには、Bus: <object_name> を使用します。バス オブジェクトをデータ型として指定する場合に必要な手順の詳細は、「バス サポート」を参照してください。

[データ型アシスタントを表示] ボタン をクリックして、[データ型] パラメーターに関する設定を行う [データ型アシスタント] を表示します (「データ型アシスタントを利用したデータ型の指定」を参照)。

[実数/複素数]

信号の数値型。有効な値は、auto (Simulink により決定)、realcomplex です。

[次元]

この信号の次元。有効な値は、任意の次元を指定する -1 (既定の設定)、サイズ N のベクトル信号を指定する NMxN 行列信号を指定する [M N] です。

[次元モード]

この信号の次元モード。ドロップダウン リストから以下を選択します。

  • [自動] — 可変サイズの信号と固定サイズの信号が許可されます。

  • [固定] — 固定サイズの信号のみが許可されます。可変サイズの信号は許可されません。

  • [変数] — 可変サイズの信号のみが許可されます。

[サンプル時間]

この信号の値を計算するレート。詳細は、「 サンプル時間の指定」を参照してください。

[サンプル モード]

この信号のサンプリング モード。Simulink はこのフィールドを無視します。

[最小値]

この信号がもつことができる最小値。既定値は [] (指定なし) です。有限で実数の double のスカラー値を指定します。

    メモ:   信号のデータ型としてバス オブジェクトを指定する場合は信号のプロパティ ダイアログ ボックスでバス データの最小値を設定しないでください。Simulink によりこの設定は無視されます。代わりに、データ型として指定したバス オブジェクトのバス要素の最小値を設定してください。バス要素の最小値プロパティの詳細は、Simulink.BusElement を参照してください。

Simulink はこの値を次のように使用します。

  • ブロック線図の更新やシミュレーションの開始時に、Simulink は信号の初期値が最小値より小さいか、あるいは最小値が信号のデータ型の範囲外である場合にエラーを表示します。

  • [シミュレーションの範囲チェック] 診断を有効にすると、Simulink は信号値が最小値より小さい場合、シミュレーション中に警告を出します (「シミュレーション範囲のチェック」を参照)。

[最大値]

この信号がもつことができる最大値。既定値は [] (指定なし) です。有限で実数の double のスカラー値を指定します。

    メモ:   信号のデータ型としてバス オブジェクトを指定する場合は信号のプロパティ ダイアログ ボックスでバス データの最大値を設定しないでください。Simulink によりこの設定は無視されます。代わりに、データ型として指定したバス オブジェクトのバス要素の最大値を設定します。バス要素の最大プロパティの詳細は、Simulink.BusElement を参照してください。

Simulink はこの値を次のように使用します。

  • ブロック線図の更新やシミュレーションの開始時に、Simulink は信号の初期値が最大値より大きいか、あるいは最大値が信号のデータ型の範囲外である場合にエラーを表示します。

  • [シミュレーションの範囲チェック] 診断を有効にすると、Simulink は信号値が最大値より大きい場合、シミュレーション中に警告を出します (「シミュレーション範囲のチェック」を参照)。

[初期値]

シミュレーション前の信号または状態値は最初のタイム ステップを取ります。double のスカラー値または配列を評価する MATLAB 文字列の式を指定することができます。

Valid:

1.5
[1 2 3]
1+0.5

foo = 1.5;
s1.InitialValue = 'foo';

Invalid:

uint(1)
foo = '1.5';
s1.InitialValue = 'foo';

バス オブジェクトを信号オブジェクトのデータ型として使用する場合、[初期値]0 か、バス オブジェクトと一致する MATLAB 構造体を含む文字列に設定します。詳細は、「バス サポート」を参照してください。

初期値が MATLAB 構造体として評価される場合、[コンフィギュレーション パラメーター][診断][データ有効性] ペインで、「指定不足の初期化の検出」[簡易] に設定します。

必要な場合、Simulink は、初期値を変換して、タイプ、実数/複素数、次元が対応するブロック パラメーターの値と整合するようにします。無効な値または式を指定した場合は、モデルの更新時にエラー メッセージが表示されます。また、Simulink は初期値の範囲チェックを行います。信号の初期値が、指定した最小値と最大値およびデータ型に対応する範囲外であるときに警告が表示されます。

従来の初期化モード: このモードでは、以下の信号と状態を表す信号オブジェクトの初期値設定は、対応するブロック パラメーターの初期値が未定義 ([] と指定) の場合はその初期値をオーバーライドします。

  • 条件付き実行サブシステムと Merge ブロックの出力信号

  • ブロックの状態

簡易初期化モード: このモードでは以下のブロックに関連付けられている信号オブジェクトの初期値が無視されます。代わりに、対応するブロックの初期値が使用されます。

  • 条件付き実行サブシステムの Outport ブロック

  • Merge ブロック

[単位]

この信号の値を表現する測定単位 (たとえば、インチ)。このパラメーターを使用してこの信号の説明を記述することができます。Simulink はシミュレーション時にこれを無視します。

[ストレージ クラス]

この信号のストレージ クラス。詳細は、「Simulink Package Custom Storage Classes」を参照してください。

信号オブジェクトをモデル ワークスペースに作成するには、オブジェクトのストレージ クラスに [自動] を設定しなければなりません。

[エイリアス]

この信号の別名。Simulink はこの設定を無視します。このプロパティはコード生成用に使われます。

配置

バイト数で指定するデータ配置境界。この信号に割り当てられているデータの開始メモリ アドレスは [配置] 設定の倍数になります。既定値は -1 です。これは使用に基づいてコード ジェネレーターが最適な配置を決定することを指定します。それ以外の場合は 128 を超えない 2 のべき乗である正の整数を指定します。このフィールドは Simulink Coder™ ソフトウェアで使用するためのものです。「Configure Data Alignment for Function Implementations」を参照してください。Simulink ソフトウェアはこの設定を無視します。

[説明]

この信号の説明。このフィールドは、この信号の説明を記述するためのものです このプロパティは、Simulink Report Generator コード生成用に使われます。

バス サポート

バス オブジェクトをデータ型として使用する

Simulink.Signal では、非バーチャル バスを出力データ型として使用することをサポートしています。

信号オブジェクトの [データ型] をバス オブジェクトに設定すると、信号オブジェクトを非バス信号と関連付けることができません。

初期値に構造体を使用する

バス オブジェクトをデータ型として使用する場合、[初期値]0 かバス オブジェクトと一致する MATLAB 構造体に設定します。

指定する構造体には、バス オブジェクトが表すバスのすべての要素の値を含めなければなりません。

Simulink.Bus.createMATLABStruct を使用すると、バスに対応する完全な構造体を作成できます。

Simulink.Bus.createObject を使用すると、MATLAB 構造体からバス オブジェクトを作成できます。

バス オブジェクトのデータ型を使用するためのコンフィギュレーション パラメーターの設定

バス オブジェクトを信号オブジェクトのデータ型として使用できるようにするには、シミュレーションを開始する前に、[コンフィギュレーション パラメーター][診断][接続性] ペインで 「Mux ブロックをバス信号の作成に使用」error に設定します。この診断に関するドキュメンテーションには、診断で生成されるエラー メッセージに対応できるようにモデルを変換する方法についての説明があります。

プロパティ

名前

アクセス

説明

CoderInfo

RW

Simulink Coder がこの信号のためのコードを生成するのために使用する情報。このプロパティの値は、Simulink.SignalCoderInfo クラスのオブジェクトです。

Description

RW

この信号の説明。このフィールドは、この信号の説明を記述するためのものです (説明)。

DataType

RW

この信号のデータ型を指定する文字列 (データ型)。

Min

RW

この信号がもつことができる最小値 (最小値)。

Max

RW

この信号がもつことができる最大値 (最大値)。

DocUnits

RW

この信号の値を表現するために使用する測定単位 (単位)。

Dimensions

RW

この信号のサイズを指定するスカラーまたはベクトル (次元)。

Complexity

RW

この信号の数値型を指定する文字列。有効な値は、'auto''real''complex' です (実数/複素数)。

SampleTime

RW

この信号を更新するレート (サンプル時間)。

Sampling Mode

RW

この信号のサンプリング モード (サンプル モード)。

InitialValue

RW

シミュレーション前の信号または状態値は最初のタイム ステップを取ります (初期値)。

この情報は役に立ちましたか?