主要内容

ステートを使用した動作モードの表現

"ステート"とは、リアクティブ システムの動作モードを記述するものです。Stateflow®チャートでは,ステートは,状態遷移図を作成するための順序設計に使用されます。

ステートは、シミュレーション中にアクティブまたは非アクティブのいずれかになります。ステートのアクティビティはイベントと条件によって変化します。イベントにより、ステートがアクティブまたは非アクティブになり、状態遷移図が実行されます。詳細については、状态流チャートの実行を参照してください。

システム内の複数のレベルのコンポーネントを表現するには、サブステートをスーパーステート内に入れ子にしてステートの階層を作成します。詳細については、ステートの使用し复雑なマルチステート设计设计设计を参照してください。

相互排他动作モードをモデル化に,,同时同时にになるなるサブサブステートステートステートがが最大でででででででででででででつつつつつつつつつつつつつつつつつつつつつつつつつつつつににになるなるなるようようようよう実装するすべてのサブががになるように,ステート(和)构造构造有效有效有效ににににししステート構造を使用した排他的モードとパラレル モードの定義を参照してください。

たとえば、次のチャートのステート打开PowerOffは、空調機システムのオンとオフのモードを表しています。ステート打开には、1 組のファンの動作モードを表すfan1fan2というパラレル サブステートがあります。これらのステートのそれぞれに离开という排他ステート含まれていこの例の详细について,パラレル化を使用した同期サブシステムのモデル化を参照してください。

Chart that contains a hierarchy of exclusive and parallel states that represent the operating modes of an air controller system.

ステートの作成

Stateflow チャートにステートを追加するには、次を行います。

  1. チャートを开き。

  2. オブジェクトパレットで、ステート アイコンをクリックします。

  3. チャート キャンバスで、新しいステートの位置をクリックします。

  4. ステートラベルし,ステートの外侧クリックし。では,,ステートステートののの名前名前とシミュレーションシミュレーションにステートでで実行実行するするオプションオプションのステートのアクション定义を参照してください。

ステートを作成した後、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アクションのと解釈さ。。

ステート名

ステートのは名で始まり,オプションの(/)がますステートは,文字小がされ,英数字数字と文字文字の组み合わせででで构成构成さ状态流オブジェクトオブジェクト命名ガイドラインラインを参照してください。

が竞合をためにに兄弟であるステートに名前割り当てないないでくださいくださいくださいください。。ただし,,ステートステートののフルフルがが一意であればば,复数复数のフルネームステート阶层にれるののをピリオドピリオドで区切って构成构成されれます。たとえばたとえば,,fan1fan2に含まれるステートは、次の一意のフル ネームで識別されます。

  • 打开.FAN1.On

  • 打开.FAN1.Off

  • 打开.FAN2.On

  • 打开.FAN2.Off

条目アクション

入口アクションを追加するには、入口またはenに続けて、コロン (:)とつステートメント入力ますますのステートメント,チャートでステートステートががアクティブアクティブにになった时点で実行実行実行さされれますます。PowerOff入口アクションにより空调システムがオフにとと空气流动の値に设定れます。について,,,チャートまたはステート入るを参照してください。

State with entry action.

during アクション

duringアクションを追加するには、duringまたはduに続けて、コロン (:) と 1 つ以上のステートメントを入力します。これらのステートメントは、チャートでステートがアクティブなときに、有効な遷移がないと実行されます。たとえば、次のチャートでは、ステート打开duringアクションにより、空調機システムがオンのときに空气流动の値が計算されます。詳細については、状态流チャートの実行を参照してください。

在行动期间进行陈述。

退出アクション

出口アクションを追加するには、出口またはexに続けて、コロン (:) と 1 つ以上のステートメントを入力します。これらのステートメントは、チャートでステートがアクティブなときに、ステートから出る遷移が発生した時点で実行されます。たとえば、次のチャートでは、ステート打开出口アクションにより空调システムがオフにとと空气流动の値に设定れます。について,,,ステートを出るを参照してください。

State with exit action.

上アクション

アクションを追加するには、に続けてイベントまたはメッセージの名前を入力し、その後にコロン (:) と 1 つ以上のステートメントを入力します。これらのステートメントは、チャートでステートがアクティブなときに、指定したイベントまたはメッセージを受け取った時点で実行されます。詳細については、イベントのブロードキャストによるモデル コンポーネントの同期メッセージ送信による Stateflow チャートとの通信を参照してください。

アクションは、複数のイベントまたはメッセージに対してそれぞれ指定できます。たとえば、次のステートには、イベントE1E2で異なるアクションがれてい。。

State with multiple on actions.

复数のがに発生场合,対応するアクションは、ステート ラベルでの表示順に実行されます。詳細については、状态流チャートの実行を参照してください。

ヒント

ステートでのアクションのトリガー,的イベント(改变进入出口など) や時相論理演算子 (afterateveryなど)を使用ます。についてについて,暗黙的をしたチャート动作制御制御および時相論理を使用したチャート実行の制御を参照してください。

结合アクション

bindアクションを追加するには、bindに続けて、コロン (:)とつのデータの名前入力ししますのイベントイベントおよびデータデータデータをにには,,セミセミコロンコロンまたはコンマを使用使用するするする,イベントのチャートのステートAには、イベントEとデータオブジェクトxをステートにバインドするbindアクションがあり。

State with bind action that binds an event and a data object to the state.

bindアクションは、ステートがアクティブであるか非アクティブであるかに関係なく適用されます。バインドされたデータの読み取りやバインドされたイベントのリッスンは他のステートから行えますが、バインドされたデータの値の変更やバインドされたイベントのブロードキャストを行えるのは、バインドされたステートとその子だけです。それ以外の場合は、コンパイル時にエラーが発生します。

函数callイベントイベントにバインドすると,呼び出す呼び出す呼び出す呼び出す呼び出す呼び出す呼び出す功能 - 函数子系统ももももされれfunction-function-function-call-call-call子系统は。详细について,结合アクションによる Function-Call Subsystem の制御を参照してください。

复数の同じまたはをバインドアクションチャート含まれれていると,コンパイル时时ににエラーが発生発生

bindアクションは、MATLAB®sateflowのののチャートチャートはサポートさません。。。

ステートのグループ化

ステートの内容をグループ化して単一のグラフィカル ユニットとして扱うと、チャートの編集が簡単になります。たとえば、グループ化されたステートを移動すると、そのステートに含まれているサブステート、遷移、およびその他のグラフィカル オブジェクトも移動します。ステートをグループ化するには、ステートを右クリックし、コンテキスト メニューで[グループとサブチャート][グループ]を選択します。

ステートに含まれているオブジェクトを選択したり、他のグラフィカル オブジェクトをステートに移動したりするときは、その前にステートのグループ化を解除する必要があります。たとえば、ステートやグラフィカル関数をグループ化されたステートに移動しようとすると、无效な交差エラーが発生。ステートグループを解除にはステートを右クリッククリックし,,ででで[グループとサブチャート][グループ]の选択解除します。

Stateflow エディターでは、グループ化されたステートはグループ化されていないステートよりも濃い色で表示されます。たとえば、次のチャートでは、ステートfan1はグループ化されていて、ステートfan2はグループされいません。

Stateflow chart that contains a grouped state called FAN1 and an ungrouped state called FAN2.

ステートのプロパティ指定

以下に示すプロパティを使用して、ステートが Stateflow チャート内の他のコンポーネントとどのように相互作用するかを指定できます。ステートのプロパティは、[プロパティ インスペクター]、モデル エクスプローラー、またはステートのプロパティ ダイアログ ボックスで指定できます。

[プロパティ インスペクター]を使用に,次を行い。。

  1. [モデル]タブの[データの]で、[プロパティ インスペクター]を選択します。

  2. stateflowエディターでステートを选択ます。。

  3. [プロパティ インスペクター]で,のプロパティ编集します。

モデルエクスプローラー使用には次を行います。

  1. [モデル]タブの[データの]で、[モデル エクスプローラー]を選択します。

  2. [モデルの階層構造]ペインでステートを选択。。

  3. [ダイアログ]ペインでステートプロパティを编集し。。

ステートのプロパティ ダイアログ ボックスを使用するには、次を行います。

  1. stateflowエディターでステート右クリックします。。

  2. [プロパティ]を選択します。

  3. プロパティ ダイアログ ボックスで、ステートのプロパティを編集します。

ステートのプロパティ,Stateflow.Stateオブジェクトをてで指定することでき。。。。。プログラムプログラムプログラムプログラムの详细については,Stateflow API の概要を参照してください。

名前

ステート名前プロパティは読み取り専用です。モデルエクスプローラーおよびのダイアログダイアログボックスででででステートステートステートステートステート名名ののハイハイパーをををするとととととと,

実行顺序

パラレル(and)ステートの顺序(OR)ステートステートの,このプロパティ表示されれはははははパラレルステートの顺序を参照してください。

監視する出力の作成

ステートのアクティブ ステート データの出力端子を作成するかどうか。アクティブステートによるステートアクティビティ监视监视を参照してください。

関数インライン オプション

生成コードのステートの外観。はののですです。

  • 自動- 内部计算生成内の关数のが决まり决まり。

  • インライン— ステート関数に対する呼び出しがコードで置き換えられます。ただし、関数が再帰の一部でない場合に限ります。

  • 関数— ステート関数は別個の静的関数として実装されます。

详细については,ステート関数の生成コード内インライン化(Simulink Coder)を参照してください。このプロパティは、[プロパティ インスペクター]では使用できません。

ラベル

ステートの。详细について,,ステートのアクション定义を参照してください。このプロパティは、[プロパティ インスペクター]では使用できません。

自己アクティビティのログ

信号のログを有効にするかどうか。信号のログでは、シミュレーション中にステートの自己アクティビティが MATLAB ワークスペースに保存されます。詳細については、ステートとデータのシミュレーション出力のログを参照してください。

ログ名

ステート アクティビティのログの記録に使用する信号名。

  • ステートのを使用する,,[ステート名を使用]を選択します。

  • 别のを指定する,,[カスタム]を选択てのログを入力します。

データ点の制限

に记录点の数指定した最大最大数までするかかかどうどうどうどうかかかか。。。たとえば,,データデータ点点点点点ののの最大最大最大数ををををををををををををををををををををををををををににににされます。

間引き

指定した間引き間隔を使用してサンプルをスキップすることでログ データの量を制限するかどうか。たとえば、間引き間隔を 2 に設定すると、チャートでサンプルが 1 つおきにログに記録されます。

テスト ポイント

シミュレーション時にフローティング スコープで監視できるテスト ポイントとしてステートを設定するかどうか。テスト ポイントの値を MATLAB ワークスペースにログ記録することも可能です。詳細については、Stateflow チャートのテスト ポイントの監視を参照してください。

説明

ステートの说明。

ドキュメント リンク

ステートのドキュメンテーションのリンク。。。。ファイルファイルファイルファイルファイルコマンドコマンドコマンドのテキストとしてドキュメンテーションドキュメンテーションをを表示表示,,,,,,の[ドキュメント リンク]ハイパーリンクをクリックすると、Stateflow でリンクが評価され、ドキュメンテーションが表示されます。

参考

オブジェクト

ツール

关连するトピック