ステートを使用した動作モードの表現
"ステート"とは、リアクティブ システムの動作モードを記述するものです。Stateflow®チャートでは,ステートは,状態遷移図を作成するための順序設計に使用されます。
ステートは、シミュレーション中にアクティブまたは非アクティブのいずれかになります。ステートのアクティビティはイベントと条件によって変化します。イベントにより、ステートがアクティブまたは非アクティブになり、状態遷移図が実行されます。詳細については、状态流チャートの実行を参照してください。
システム内の複数のレベルのコンポーネントを表現するには、サブステートをスーパーステート内に入れ子にしてステートの階層を作成します。詳細については、ステートの使用し复雑なマルチステート设计设计设计を参照してください。
相互排他动作モードをモデル化に,,同时同时にになるなるサブサブステートステートステートがが最大でででででででででででででつつつつつつつつつつつつつつつつつつつつつつつつつつつつににになるなるなるようようようよう実装するすべてのサブががになるように,ステート(和)构造构造有效有效有效ににににししステート構造を使用した排他的モードとパラレル モードの定義を参照してください。
たとえば、次のチャートのステート打开
とPowerOff
は、空調機システムのオンとオフのモードを表しています。ステート打开
には、1 組のファンの動作モードを表すfan1
とfan2
というパラレル サブステートがあります。これらのステートのそれぞれに上
と离开
という排他ステート含まれていこの例の详细について,パラレル化を使用した同期サブシステムのモデル化を参照してください。
ステートの作成
Stateflow チャートにステートを追加するには、次を行います。
チャートを开き。
オブジェクトパレットで、ステート アイコンをクリックします。
チャート キャンバスで、新しいステートの位置をクリックします。
ステートラベルし,ステートの外侧クリックし。では,,ステートステートののの名前名前とシミュレーションシミュレーションにステートでで実行実行するするオプションオプションのステートのアクション定义を参照してください。
ステートを作成した後、Stateflow エディターを使用してステートのサイズ、位置、内容を変更できます。
ステートのサイズを変更するには、ステートの隅をクリックしてドラッグします。
ステートをに,ステートの内侧してドラッグし。。
ステートのラベルを編集するには、編集する文字の位置付近でラベル テキストをクリックします。
ヒント
親ステートは、そのサブステートすべてを含められるサイズのグラフィックであることが前提です。そのため、新しいサブステートをドラッグする前に、親ステートのサイズの変更が必要になることがあります。あるいは、スーパーステートをサブチャートに変換することもできます。詳細については、サブチャートを使用したモーダル ロジックのカプセル化を参照してください。
ステートのアクション定义
のラベル,ステートの名前シミュレーションシミュレーションにステートででオプションののアクションアクションををを指定指定し。。ステートステートののラベルラベルはステートステートの左上左上隅に表示ささます
名称输入:entry_actions:enter_actions exit:ext_actions on event_name上:on_event_actions on message_name上:on_message_actions bind:event_name,data_name
ステートのはです。のタイプごとに,各别々别々のの行行ににに入力入力して复数复数ののステートメントステートメントをを指定指定できできますます。。あるいはあるいはあるいはあるいは,同じで复数复数复数复数します同じステートメントをするする入口
、during
,および出口
のアクションは組み合わせることもできます。詳細については、ステートアクション组み合わせによる冗长削除削除を参照してください。
ヒント
ステート名の直後にステートメントを追加すると、それらのステートメントはチャートで入口
アクションとduring
アクションのと解釈さ。。
ステート名
ステートのは名で始まり,オプションの(/
)がますステートは,文字小がされ,英数字数字と文字文字の组み合わせででで构成构成さ状态流オブジェクトオブジェクト命名ガイドラインラインを参照してください。
が竞合をためにに兄弟であるステートに名前割り当てないないでくださいくださいくださいください。。ただし,,ステートステートののフルフルがが一意であればば,复数复数のフルネームステート阶层にれるののをピリオドピリオドで区切って构成构成されれます。たとえばたとえば,,fan1
とfan2
に含まれるステートは、次の一意のフル ネームで識別されます。
打开.FAN1.On
打开.FAN1.Off
打开.FAN2.On
打开.FAN2.Off
条目アクション
入口
アクションを追加するには、入口
またはen
に続けて、コロン (:
)とつステートメント入力ますますのステートメント,チャートでステートステートががアクティブアクティブにになった时点で実行実行実行さされれますます。PowerOff
の入口
アクションにより空调システムがオフにとと空气流动
の値に设定れます。について,,,チャートまたはステート入るを参照してください。
during アクション
during
アクションを追加するには、during
またはdu
に続けて、コロン (:
) と 1 つ以上のステートメントを入力します。これらのステートメントは、チャートでステートがアクティブなときに、有効な遷移がないと実行されます。たとえば、次のチャートでは、ステート打开
のduring
アクションにより、空調機システムがオンのときに空气流动
の値が計算されます。詳細については、状态流チャートの実行を参照してください。
退出アクション
出口
アクションを追加するには、出口
またはex
に続けて、コロン (:
) と 1 つ以上のステートメントを入力します。これらのステートメントは、チャートでステートがアクティブなときに、ステートから出る遷移が発生した時点で実行されます。たとえば、次のチャートでは、ステート打开
の出口
アクションにより空调システムがオフにとと空气流动
の値に设定れます。について,,,ステートを出るを参照してください。
上アクション
上
アクションを追加するには、上
に続けてイベントまたはメッセージの名前を入力し、その後にコロン (:
) と 1 つ以上のステートメントを入力します。これらのステートメントは、チャートでステートがアクティブなときに、指定したイベントまたはメッセージを受け取った時点で実行されます。詳細については、イベントのブロードキャストによるモデル コンポーネントの同期とメッセージ送信による Stateflow チャートとの通信を参照してください。
上
アクションは、複数のイベントまたはメッセージに対してそれぞれ指定できます。たとえば、次のステートには、イベントE1
とE2
で異なる上
アクションがれてい。。
复数のがに発生场合,対応する上
アクションは、ステート ラベルでの表示順に実行されます。詳細については、状态流チャートの実行を参照してください。
ヒント
ステートでの上
アクションのトリガー,的イベント(改变
、进入
、出口
など) や時相論理演算子 (after
、at
、前
、every
など)を使用ます。についてについて,暗黙的をしたチャート动作制御制御および時相論理を使用したチャート実行の制御を参照してください。
结合アクション
bind
アクションを追加するには、bind
に続けて、コロン (:
)とつのデータの名前入力ししますのイベントイベントおよびデータデータデータをにには,,セミセミコロンコロンまたはコンマを使用使用するするする,イベントのチャートのステートA
には、イベントE
とデータオブジェクトx
をステートにバインドするbind
アクションがあり。
bind
アクションは、ステートがアクティブであるか非アクティブであるかに関係なく適用されます。バインドされたデータの読み取りやバインドされたイベントのリッスンは他のステートから行えますが、バインドされたデータの値の変更やバインドされたイベントのブロードキャストを行えるのは、バインドされたステートとその子だけです。それ以外の場合は、コンパイル時にエラーが発生します。
函数callイベントイベントにバインドすると,呼び出す呼び出す呼び出す呼び出す呼び出す呼び出す呼び出す功能 - 函数子系统ももももされれfunction-function-function-call-call-call子系统は。详细について,结合アクションによる Function-Call Subsystem の制御を参照してください。
复数の同じまたはをバインドアクションチャート含まれれていると,コンパイル时时ににエラーが発生発生
bind
アクションは、MATLAB®sateflowのののチャートチャートはサポートさません。。。
ステートのグループ化
ステートの内容をグループ化して単一のグラフィカル ユニットとして扱うと、チャートの編集が簡単になります。たとえば、グループ化されたステートを移動すると、そのステートに含まれているサブステート、遷移、およびその他のグラフィカル オブジェクトも移動します。ステートをグループ化するには、ステートを右クリックし、コンテキスト メニューで[グループとサブチャート]、[グループ]を選択します。
ステートに含まれているオブジェクトを選択したり、他のグラフィカル オブジェクトをステートに移動したりするときは、その前にステートのグループ化を解除する必要があります。たとえば、ステートやグラフィカル関数をグループ化されたステートに移動しようとすると、无效な交差エラーが発生。ステートグループを解除にはステートを右クリッククリックし,,ででで[グループとサブチャート]、[グループ]の选択解除します。
Stateflow エディターでは、グループ化されたステートはグループ化されていないステートよりも濃い色で表示されます。たとえば、次のチャートでは、ステートfan1
はグループ化されていて、ステートfan2
はグループされいません。
ステートのプロパティ指定
以下に示すプロパティを使用して、ステートが Stateflow チャート内の他のコンポーネントとどのように相互作用するかを指定できます。ステートのプロパティは、[プロパティ インスペクター]、モデル エクスプローラー、またはステートのプロパティ ダイアログ ボックスで指定できます。
[プロパティ インスペクター]を使用に,次を行い。。
[モデル]タブの[データの]で、[プロパティ インスペクター]を選択します。
stateflowエディターでステートを选択ます。。
[プロパティ インスペクター]で,のプロパティ编集します。
モデルエクスプローラー使用には次を行います。
[モデル]タブの[データの]で、[モデル エクスプローラー]を選択します。
[モデルの階層構造]ペインでステートを选択。。
[ダイアログ]ペインでステートプロパティを编集し。。
ステートのプロパティ ダイアログ ボックスを使用するには、次を行います。
stateflowエディターでステート右クリックします。。
[プロパティ]を選択します。
プロパティ ダイアログ ボックスで、ステートのプロパティを編集します。
ステートのプロパティ,Stateflow.State
オブジェクトをてで指定することでき。。。。。プログラムプログラムプログラムプログラムの详细については,Stateflow API の概要を参照してください。
名前
ステート名前プロパティは読み取り専用です。モデルエクスプローラーおよびのダイアログダイアログボックスででででステートステートステートステートステート名名ののハイハイパーをををするとととととと,
実行顺序
パラレル(and)ステートの顺序(OR)ステートステートの,このプロパティ表示されれはははははパラレルステートの顺序を参照してください。
監視する出力の作成
ステートのアクティブ ステート データの出力端子を作成するかどうか。アクティブステートによるステートアクティビティ监视监视を参照してください。
関数インライン オプション
生成コードのステートの外観。はののですです。
自動
- 内部计算生成内の关数のが决まり决まり。インライン
— ステート関数に対する呼び出しがコードで置き換えられます。ただし、関数が再帰の一部でない場合に限ります。関数
— ステート関数は別個の静的関数として実装されます。
详细については,ステート関数の生成コード内インライン化(Simulink Coder)を参照してください。このプロパティは、[プロパティ インスペクター]では使用できません。
ラベル
ステートの。详细について,,ステートのアクション定义を参照してください。このプロパティは、[プロパティ インスペクター]では使用できません。
自己アクティビティのログ
信号のログを有効にするかどうか。信号のログでは、シミュレーション中にステートの自己アクティビティが MATLAB ワークスペースに保存されます。詳細については、ステートとデータのシミュレーション出力のログを参照してください。
ログ名
ステート アクティビティのログの記録に使用する信号名。
ステートのを使用する,,
[ステート名を使用]
を選択します。别のを指定する,,
[カスタム]
を选択てのログを入力します。
データ点の制限
に记录点の数指定した最大最大数までするかかかどうどうどうどうかかかか。。。たとえば,,データデータ点点点点点ののの最大最大最大数ををををををををををををををををををををををををををににににされます。
間引き
指定した間引き間隔を使用してサンプルをスキップすることでログ データの量を制限するかどうか。たとえば、間引き間隔を 2 に設定すると、チャートでサンプルが 1 つおきにログに記録されます。
テスト ポイント
シミュレーション時にフローティング スコープで監視できるテスト ポイントとしてステートを設定するかどうか。テスト ポイントの値を MATLAB ワークスペースにログ記録することも可能です。詳細については、Stateflow チャートのテスト ポイントの監視を参照してください。
説明
ステートの说明。
ドキュメント リンク
ステートのドキュメンテーションのリンク。。。。ファイルファイルファイルファイルファイルコマンドコマンドコマンドのテキストとしてドキュメンテーションドキュメンテーションをを表示表示,,,,,,の[ドキュメント リンク]ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。
参考
オブジェクト
ツール
- モデル エクスプローラー(Simulink)