ドキュメンテーション

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

Constant

ライブラリ

Sources

説明

Constant ブロックは、実数または複素数の定数値を生成します。

このブロックは、次の値に応じて、スカラー、ベクトル、または行列のいずれかの出力を生成します。

  • [定数値] パラメーターの次元

  • ベクトル パラメーターを 1 次元として解釈 パラメーターの設定

ブロックの出力は、[定数値] パラメーターと同じ次元と要素をもちます。このパラメーターにベクトルを指定し、ブロックによってそれがベクトルとして解釈されるようにするには、ベクトル パラメーターを 1 次元として解釈 パラメーターを選択します。そうでない場合は、[定数値] パラメーターの値にベクトルを指定すると、ベクトルは行列として処理されます。

サポートするデータ型

既定の設定では、Constant ブロックはデータ型と実数/複素数が [定数値] パラメーターと同じ信号を出力します。ただし、固定小数点データ型や列挙型データなど、Simulink® がサポートする任意のデータ型として出力を指定することができます。定数列挙値の出力には、Constant ブロックよりも Enumerated Constant ブロックの方が役に立つかもしれません。また、バス オブジェクトを出力データ型として使用すると、モデルを簡略化するのに役立つ場合もあります (詳細は、バス サポートを参照)。

    メモ:   このブロックのデータ型としてバス オブジェクトを指定した場合、ブロックのバス データの最小値および最大値を設定しないでください。Simulink はこれらの設定を無視します。代わりに、データ型として指定したバス オブジェクトのバス要素の最小値と最大値を設定してください。値は有限の実数で double のスカラー値にする必要があります。

    バス要素の最小および最大プロパティの詳細は、Simulink.BusElement を参照してください。

サポートするデータ型の詳細は、Simulink ドキュメンテーションの「Simulink でサポートされているデータ型」を参照してください。

パラメーターとダイアログ ボックス

定数値

ブロックによって出力される定数値を指定します。

設定

既定の設定: 1

最小値: [出力の最小値] パラメーターの値

最大値: [出力の最大値] パラメーターの値

  • MATLAB® によって行列として評価される任意の式を入力できます。これには Boolean キーワード true および false が含まれます。

  • [出力データ型] をバス オブジェクトに設定する場合、次のいずれかを指定します。

    • バス オブジェクトに対応する完全な MATLAB 構造体

    • バス オブジェクトのグラウンド値に対応する構造体を示す 0

    詳細は、バス サポートを参照してください。

  • Simulink は、このパラメーターが非バス データ型の場合、最も近い正の整数方向の丸めと飽和を使用して、入力時のデータ型から指定された出力データ型にオフラインで変換します。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

ベクトル パラメーターを 1 次元として解釈

[定数値] パラメーターが N 要素の行または列ベクトルの場合、長さ N のベクトルを出力するにはこのチェック ボックスをオンにします。

設定

既定の設定: オン

オン

[定数値] パラメーターが N 要素の行または列ベクトルの場合、長さ N のベクトルを出力します。たとえば、ブロックは次元が 1 行 N 列または N 行 1 列の行列を出力します。

オフ

[定数値] パラメーターが N 要素の行または列ベクトルの場合、長さ N のベクトルは出力されません。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

サンプル時間

シミュレーション中に (たとえば、[定数値] パラメーターの調整結果として) Constant ブロックの出力が変化する時間間隔を指定します。

設定

既定の設定: inf

この設定はブロックの出力が変化しないことを示します。この設定は、ブロックの出力を再計算する必要性をなくすことによって、シミュレーションとコードの生成を高速化します。

詳細は、オンライン ドキュメンテーションの「サンプル時間の指定」を参照してください。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

出力の最小値

Simulink がチェックする出力範囲の下限値。

設定

既定の設定: [] (指定なし)

有限で実数の double のスカラー値としてこの値を指定します。

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

Simulink は、最小値を使って以下を行います。

    メモ:   [出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

コマンド ライン情報

パラメーター: OutMin
タイプ: 文字列
値: '[ ]'
既定の設定: '[ ]'

出力の最大値

Simulink がチェックする出力範囲の上限値。

設定

既定の設定: [] (指定なし)

有限で実数の double のスカラー値としてこの値を指定します。

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

Simulink は、最大値を使って以下を行います。

    メモ:   [出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

コマンド ライン情報

パラメーター: OutMax
タイプ: 文字列
値: '[ ]'
既定の設定: '[ ]'

スケーリング

オーバーフローを避け、量子化エラーを最小限に抑えるための固定小数点データのスケーリング方法を指定します。

設定

既定の設定: 最高精度

2 進小数点

2 進小数点の位置を指定します。

勾配とバイアス

勾配とバイアスを入力します。

最高精度

最高精度値を指定します。

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

[2 進小数点] を選択すると、以下が有効になります。

  • 小数部の長さ

  • 最高精度のスケーリングを計算

勾配とバイアス を選択すると、以下が有効になります。

  • 勾配

  • バイアス

  • 最高精度のスケーリングを計算

参考

詳細は、「固定小数点データ型の指定」を参照してください。

出力データ型

出力データ型を指定します。

設定

既定の設定: 継承: '定数値' からの継承

継承: '定数値' からの継承

[定数値] のデータ型を使用します。

継承: 逆伝播による継承

駆動ブロックのデータ型を使用します。

double

出力データ型は double です。

single

出力データ型は single です。

int8

出力データ型は int8 です。

uint8

出力データ型は uint8 です。

int16

出力データ型は int16 です。

uint16

出力データ型は uint16 です。

int32

出力データ型は int32 です。

uint32

出力データ型は uint32 です。

boolean

出力データ型は boolean です。

[fixdt(1,16)]

出力データ型は固定小数点 fixdt(1,16) です。

fixdt(1,16,0)

出力データ型は固定小数点 fixdt(1,16,0) です。

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

出力データ型は固定小数点 fixdt(1,16,2^0,0) です。

Enum:<class name>

列挙型データを使用します。たとえば、Enum: BasicColors などです。

Bus:<object name>

データ型はバス オブジェクトです。

<data type expression>

データ型はデータ型オブジェクトです。たとえば、Simulink.NumericType です。

バス オブジェクトを式として指定しないでください。

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

参考

詳細は、「信号のデータ型の制御」を参照してください。

データ型アシスタントを表示

[データ型アシスタント] を表示します。

設定

[データ型アシスタント] を使用すると、[出力データ型] パラメーターを設定できます。

詳細は、「信号のデータ型の制御」を参照してください。

モード

指定するデータのカテゴリを選択します。

設定

既定の設定: 継承

継承

データ型の規則の継承。継承 を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。次の選択肢からいずれかを選択します。

  • ['定数値' から継承] (既定の設定)

  • 逆伝播による継承

組み込み

組み込みのデータ型。組み込み を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。次の選択肢からいずれかを選択します。

  • double (既定)

  • single

  • int8

  • uint8

  • int16

  • uint16

  • int32

  • uint32

  • boolean

固定小数点

固定小数点データ型。

列挙型

列挙型データ。列挙型 を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこにクラス名を入力することができます。

バス

バス オブジェクト。[バス] を選択すると、右側にある [バス オブジェクト] パラメーターが有効になり、バスの構造を定義するために使用するバス オブジェクトの名前を入力できます。バス オブジェクトを作成または変更する必要がある場合は、[バス オブジェクト] フィールドの右側にある [編集] をクリックして、Simulink バス エディターを開きます。バス エディターの詳細は、「バス エディターによるバス オブジェクトの管理」を参照してください。

データ型を評価する式。[式] を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこに式を入力することができます。

バス オブジェクトを式として指定しないでください。

データ型のオーバーライド

この信号のデータ型オーバーライド モードを指定します。

設定

既定の設定: 継承

継承

コンテキストからデータ型オーバーライド設定を継承します。コンテキストとはブロックのことで、信号を使用している Simulink の Simulink.Signal オブジェクトまたは Stateflow® チャートです。

オフ

コンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。

ヒント

個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。

依存関係

このパラメーターは、[モード]組み込み または 固定小数点 の場合にのみ表示されます。

符号付き/なし

固定小数点データを符号付きにするか、符号なしにするかを指定します。

設定

既定の設定: 符号付き

符号付き

符号付き固定小数点データを指定します。

符号なし

符号なし固定小数点データを指定します。

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

語長

量子化された整数をもつ語のビット サイズを指定します。

設定

既定の設定: 16

最小値: 0

最大値: 32

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

小数部の長さ

固定小数点データ型の小数部の長さを指定します。

設定

既定の設定: 0

2 進小数点には、正の整数または負の整数を入力できます。

依存関係

[スケーリング][2 進小数点] を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

勾配

固定小数点データ型の勾配を指定します。

設定

既定の設定: 2^0

任意の正の実数を指定します。

依存関係

[スケーリング]勾配とバイアス を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

バイアス

固定小数点データ型のバイアスを指定します。

設定

既定の設定: 0

任意の実数を指定します。

依存関係

[スケーリング]勾配とバイアス を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

固定小数点ツールによる変更に対して出力データ型の設定をロックする

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。

設定

既定の設定: オフ

オン

このブロックの出力データ型設定をロックします。

オフ

固定小数点ツールや固定小数点アドバイザーがこのブロックの出力データ型の設定を変更できます。

コマンド ライン情報

パラメーター: LockScale
タイプ: 文字列
値: 'off' | 'on'
既定の設定: 'off'

参考

詳細は、「[出力データ型の設定をロックする] の使用」を参照してください。

バス サポート

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

Constant ブロックは、出力データ型としての非バーチャル バスをサポートしています。バス オブジェクトをデータ型として使用する場合、[定数値]0 またはバス オブジェクトに適合する MATLAB 構造体に設定します。

定数値に構造体を使用する場合

指定する構造体には、バス オブジェクトが表すバスのすべての要素の値を含めなければなりません。ブロック出力は非バーチャル バス信号です。

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

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

出力バスの信号要素が double 以外の数値データ型を使用する場合、uint16(37) などの型指定された表現または 37 などの型指定されていない表現を使用して構造体フィールドを指定できます。フィールドのデータ型を制御するには、バス オブジェクトを Simulink.Parameter オブジェクトのデータ型として使用します。型指定された表現または型指定されていない表現のどちらを使用するか決定するには、「初期条件構造体フィールドのデータ型の制御」を参照してください。

Constant ブロックのバス オブジェクトの使用例

次の例は、Constant ブロックの出力データとしてバス オブジェクトを使用してモデルを簡略化する方法を示しています。

  1. ex_busic モデルを開き、更新します。

    このモデルでは、6 つの Constant ブロックを使用しています。モデルの詳細は、「部分構造体の例」を参照してください。

  2. ex_constantbus モデルを開き、更新します。このモデルでは、ex_busic モデルの 6 つの Constant ブロックと置き換えられる 1 つの Constant ブロックを使用しています。

  3. ex_constantbus モデルのシミュレーションを実行します。Constant ブロックの出力が constant_value_struct の値を反映することを確認するには、次の 2 つの手順を実行します。

  4. MATLAB コマンド ラインで、Constant ブロックによって [定数値] パラメーターに使用される constant_value_struct 構造体を調べます。

    constant_value_struct
    
    constant_value_struct = 
    
        A: [1x1 struct]
        B: 5
        C: [1x1 struct]
  5. A1 バス信号の B 要素に注目して、logsout 変数のログ データを調べます。constant_value_struct 構造体によって、B 要素が 5 に設定されます。

    logsout.get('A1').Values.B.Data
    

定数信号をバスの配列にグループ化

Constant ブロックを使用して、複数の定数値信号をバスの配列として簡潔に表すことができます。この手法を使用すると、特にモデルがさまざまなパラメーター値でアルゴリズムを繰り返す場合、モデル内の信号線の数およびモデルが使用する変数の数を削減できます。

バス信号の定数値配列を生成するには、Constant ブロックで MATLAB 構造体の配列を使用します。ブロック出力はバスの配列で、構造体の配列の各フィールドが、対応する信号要素のシミュレーション値を提供します。

構造体の配列を使用して、Simulink.Parameter オブジェクトの Value プロパティを指定し、Constant ブロックのパラメーター オブジェクトを使用します。

  1. モデル例 ex_constantbus_array を開きます。

    変数 ParamBusconst_param_struct がベース ワークスペースに表示されます。変数 const_param_struct に含まれる構造体のフィールド名は、ParamBus で定義されたバス型の要素と一致します。

  2. ブロック線図を更新して信号線の幅を表示します。

    Constant ブロックの出力は、ParamBus の単一のスカラー バス型です。構造体変数 const_param_struct は、ブロックの定数値を指定します。

  3. コマンド プロンプトで、構造体 const_param_struct をコピーして 2 つの構造体をもつ配列を作成します。配列の個々の構造体のインデックスを作成してフィールド値をカスタマイズします。

    const_struct_array =...
     [const_param_struct const_param_struct];
    
    const_struct_array(2).Offset = 158;
    const_struct_array(2).Gain = 3.83;
    const_struct_array(2).Threshold = 1039.77
    
    const_struct_array = 
    
    1x2 struct array with fields:
    
        Offset
        Gain
        Threshold

  4. Constant ブロックのダイアログ ボックスで、[定数値]const_struct_array に設定します。

  5. 2 つの Selector ブロックをモデルに追加し、表示されているように Constant ブロックを接続します。

  6. Selector ブロックのダイアログ ボックスで、[インデックス]1 に設定し、[入力の端子サイズ]2 に設定します。

  7. Selector1 ブロックのダイアログ ボックスで、[インデックス]2 に設定し、[入力の端子サイズ]2 に設定します。

  8. モデルのブロック アルゴリズムをコピーし、表示されているようにブロックを接続します。

  9. ブロック線図を更新します。信号線の幅とスタイルは、Constant ブロックの出力がバスの配列であることを示します。Selector ブロックはそれぞれ配列内のバスのいずれか 1 つを抽出します。

    アルゴリズムの各コピーは、変数 const_struct_array の対応する構造体で提供される定数値を使用します。

信号要素の大きな階層を使用するバスに、構造体の配列を作成する場合は、関数 Simulink.Bus.createMATLABStruct の使用を検討してください。コピーできるスカラー構造体がない場合、この手法を使用して構造体の配列を作成することもできます。

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

バス オブジェクトを出力データ型として使用できるようにするには、シミュレーションを開始する前に、診断を次のように設定します。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスの [診断] [接続性] ペインで、「Mux ブロックをバス信号の作成に使用」[error] に設定します。

  • [コンフィギュレーション パラメーター][すべてのパラメーター][指定不足の初期化の検出] を [simplified] に設定します。詳細については、「指定不足の初期化の検出」を参照してください。

これらの診断に関するドキュメンテーションでは、モデルを変換して、診断によって生成されるエラー メッセージに対処する方法について説明しています。

次の Simulink の例では、Constant ブロックの使用方法を示します。

関連する例

特性

データ型

double | single | boolean | 整数 | 固定小数点 | 列挙型 | バス

サンプル時間

サンプル時間パラメーターで指定

直接フィードスルー

N/A

多次元信号

あり

可変サイズの信号

なし

ゼロクロッシング検出

なし

コード生成

あり

R2006a より前に導入

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