Main Content

State Writer

ブロックの状態に書き込む

  • State Writer block

ライブラリ:
Simulink / Signal Routing

説明

State Writer ブロックは、サポートされている状態オーナー ブロックの状態を設定します。

State Writer ブロックは、以下の状態オーナー ブロックに状態を書き込むことができます。

  • Discrete State-Space

  • Discrete-Time Integrator

  • Delay

  • Unit Delay

  • Discrete Transfer Fcn

  • Discrete Filter

  • Discrete FIR Filter

  • Integrator

  • Second-Order Integrator

  • Enabled SubsystemTriggered SubsystemFunction-Call Subsystem などの条件付きサブシステム ブロックの Outport

  • 複数の離散状態をもつ S-Function

    S-Function ブロックを状態オーナー ブロックとして設定するには、1 つのデータ型作業ベクトルが、ssSetDWorkUsedAsDState を使用して離散状態ベクトルとして宣言され、また mdlInitializeSizesssSetDWorkName または ssSetDWorkRTWIdentifier を使用して命名されなければなりません。

ヒント

ブロックが当該ブロックの IsStateOwnerBlock パラメーターの値でサポートされる状態オーナー ブロックであるかどうか確認できます。式

get_param(blk,'IsStateOwnerBlock')
ここで、blk はブロック名またはハンドルで、ブロックがサポートされている状態オーナー ブロックの場合は 'on'、それ以外の場合は 'off' を返します。

State Reader ブロックまたは State Writer ブロックをモデルに追加するには、状態オーナー ブロックをクリックして強調表示します。次に、Simulink® ツールストリップの現在のブロックのタブから [リーダー-ライター] をクリックします。メニューから [State Reader ブロック] または [State Writer ブロック] を選択します。

メモ

ツールストリップの現在のブロックのタブには、強調表示するブロックのタイプに応じて、[Outport] などの強調表示されたブロックの名前がラベルに使用される場合と [ブロック] というラベルが使用される場合があります。

Block tab of Simulink toolstrip, showing Reader-Writer button with drop-down menu beneath it. List items are State Reader Block and State Writer Block. A Unit Delay block is highlighted on the canvas.

状態オーナー ブロックに複数の状態がある場合、State Reader ブロックまたは State Writer ブロックのダイアログが開きます。[状態オーナー セレクター ツリー] から状態を選択します。

メモ

Second-Order Integrator ブロックに対する State Reader ブロックや State Writer ブロックを追加する前に、状態に明示的に名前を付ける必要があります。状態名の指定を参照してください。

State Reader ブロックまたは State Writer ブロックを作成すると、状態オーナー ブロックの上に diamond shape with an x inside it バッジが表示され、状態オーナー ブロック名前が State Reader ブロックまたは State Writer ブロックの横に表示されます。

Simulink canvas showing Unit Delay block with a badge above it, and a State Writer block with "Unit Delay" appearing next to it

State Reader ブロックまたは State Writer ブロックは、その状態オーナー ブロックと同じシステムに残ることはできません。State Reader ブロックまたは State Writer ブロックを作成した後に、そのブロックを切り取り、モデルの階層構造内の目的の場所に貼り付けて移動します。

もしくは、State Reader ブロックまたは State Writer ブロックを Simulink ライブラリ ブラウザーからモデルに追加し、[ブロック パラメーター] ダイアログから [状態オーナー ブロック] パラメーターを設定できます。

メモ

State Reader ブロックまたは State Writer ブロックをもつライブラリ ブロックを作成するときは、対応する状態オーナー ブロックもライブラリ ブロックに含めなければなりません。

State Reader ブロックまたは State Writer ブロックあるいは対応する状態オーナー ブロックを選択して、それに関連するブロックを強調表示できます。開いているブロック線図または新しいタブに関連するブロックを表示するには、選択後に表示される省略記号で一時停止します。その後、操作バーから [関連するブロック] Related Blocks button を選択します。選択したブロックに複数のブロックが対応している場合は、関連するブロックのリストが開きます。関連するブロックのリストはテキスト ボックスに検索語を入力してフィルター処理できます。関連するブロックをリストから選択すると、関連するブロックが表示された開いているブロック線図または新しいタブにウィンドウのフォーカスが移ります。

制限

State Writer ブロックでは、Enabled Subsystem ブロック内のリセット可能な状態はサポートされません。Enabled Subsystem ブロック内のリセット可能な状態は、Reinitialize Function ブロックを使用して実装する必要があります。Enabled Subsystem のイネーブル端子で受信する外部信号により、サブシステム内の Reinitialize Function ブロックの実行がトリガーされます。Reinitialize Function ブロックの設定を構成する方法の詳細については、Reinitialize States of Blocks in Subsystemを参照してください。

Example representing use of Reinitialize Function block inside Enabled subsystem to reset states.

端子

入力

すべて展開する

状態オーナー ブロックに書き込まれる状態値。

入力スカラーを使用して状態オーナー ブロックに書き込むとき、スカラー値は状態の次元に一致するように展開されます。状態の要素はすべて同じ値に設定されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

パラメーター

すべて展開する

このブロックが状態を書き込んでいる状態オーナー ブロックの名前。状態オーナー ブロックを変更するには、[状態オーナー セレクター ツリー] からブロックを選択します。

メモ

状態オーナー ブロックの名前にスラッシュ (/) が含まれている場合、State Writer ブロックのパラメーター ダイアログでは 2 つのスラッシュ (//) として表示されます。この表記法により、ブロックの名前自体に含まれるスラッシュとモデルの階層構造の異なるレベルにある名前を区切るスラッシュが区別されます。

プログラムでの使用

ブロック パラメーター: StateOwnerBlock
型: 文字ベクトル
値: '' | '<model path/block name>'
既定の設定: ''

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | half | integer | single

直達

いいえ

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。