このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
実行時のStateflowオブジェクトの相互作用
実行時,Stateflow®オブジェクトは相互に作用して実世界での動作をシミュレ,トします。次のモデルでは,さまざまなStateflowオブジェクトを示し,その相互作用を説明します。
例示モデルの概要
このモデル例は,チャート内のグラフィカルオブジェクトと非グラフィカルオブジェクトが実行時にどのように相互作用するかを示しています。以下のオブジェクトがあります。
条件と条件アクション
排他的(或)ステト
フロ,チャ,ト
関数の呼び出し
ヒストリジャンクション
パラレル(和)ステ,ト
ステ,トアクション
入力▪▪ベントにガ▪▪ドされた遷移
チャ,トのセマンティクスの詳細は,チャ,トの実行フェ,ズを参照してください。
ホテルへのチェック@ @ンプロセスのモデル
この例では,ホテルへのチェックインプロセスを使用してStateflowチャートのセマンティクスを説明します。
sf_semantics_hotel_checkin
モデルは,4の手动开关(金宝app模型)ブロック,1のMux(金宝app模型)ブロック,1の多端口切换(金宝app模型)ブロック,酒店チャ,ト,および显示(金宝app模型)ブロックで構成されています。
ブロック | 目的 | 理由 |
---|---|---|
手动开关(金宝app模型) |
シミュレション中に一時停止や再開をすることなく2の設定の間を切り替えられるようにします。 |
シミュレーション中に,以下の入力イベントのいずれかを送信することでチャートを対話的にトリガーできます。
|
Mux(金宝app模型) |
複数の入力信号を組み合わせてベクトルにします。 |
チャートで複数の入力イベントを使用できるのは,それらの入力イベントがチャートのトリガー端子に入力のベクトルとして接続されている場合に限ります。 |
多端口切换(金宝app模型) |
2以上の入力の間で選択できるようにします。 |
このブロックにより,チャ,ト入力デ,タ 手动开关ブロックで2を超える入力をサポトすることはできませんが,多端口切换ブロックでは可能です。 |
显示(金宝app模型) |
入力信号の最新の数値を表示します。 |
シミュレ,ション中は,チャ,トの出力デ,タ |
酒店チャートには,ステートやヒストリジャンクションなどのグラフィカルオブジェクトと,条件や条件アクションなどの非グラフィカルオブジェクトが含まれています。
オブジェクトをチャト内の位置にマッピングする方法にいては,Stateflowオブジェクトを参照してください。
チャ,トと金宝appブロックとの相互作用の仕組み
チャ,トの初期化
シミュレ,ションが始まると,[初期化時に指定されたチャ,トを実行(入力)]オプションがオンになっているため(チャ,トの初期化実行を参照),チャ,トが起動し,デフォルト遷移が実行されます。その後,チャ,トはスリ,プ状態に移行します。
メモ
このオプションがオフになっている場合,手动开关ブロックのいずれかを切り替えるまでチャ,トは起動しません。このオプションの設定は,[チャ,ト]プロパティダ@アログボックスで確認できます。チャ,トの最上位レベルを右クリックし,コンテキストメニュ,から[プロパティ]を選択します。
チャ,トと他のブロックとの相互作用
以下のエッジトリガ入力@ @ベントが発生した場合のみ,チャ@ @トは再び起動します。check_in
、room_service
、fire_alarm
,またはall_clear
です。シミュレション中に入力ベントに対して手动开关ブロックを切り替えると,立上がりエッジまたは立下がりエッジが検出され,チャトが起動します。チャ,トが起動している間は,以下のようになります。
多端口切换ブロックにより,チャ,ト入力デ,タ
room_type
に値が与えられます。显示ブロックにより,チャ,ト出力デ,タ
费
の値の変更が示されます。
チャ,トの非アクティブ
可能性のある実行フェ,ズがすべて完了すると,チャ,トはスリ,プ状態に戻ります。
チャ,トの実行フェ,ズ
次の節では,酒店チャ,トの影付きの各領域に対するチャ,トの実行を説明します。
ヒント
影付きの領域をクリックすると,チャ,トの実行フェ,ズに関する情報に直接ジャンプします。
フェ,ズ:チャ,トの初期化
この節では,チャ,トの起動直後にFront_desk
ステ,トで何が起こるのかを説明します。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | 最初に,ホテルのフロントデスクで立止まります。 |
チャ,トレベルで, チャ,トまたはステ,トに入るを参照してください。 |
2 | ホテルにチェック▪▪ンした後,フロントデスクから立▪▪去ります。 |
@ @ @ @ @ @ @ @ @ @ @ @ @を参照してください。 |
3. | フロントデスクから立去る直前,部屋へ運ぶ荷物を手に取ります。 |
遷移の発生直前, ステ,トを出るを参照してください。 |
チャトの初期化に関するモデリングガドラン-以下のガ@ @ドラ@ @ンはチャ@ @ト初期化に適用されます。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
階層内の同じレベルに位置する複数のステートが同時にアクティブになることが不可能な場合は,排他的(或)構造を使用します。 |
このガドランを守ることで,チャトは適切に実行されます。たとえば,ホテルの中と外に同時にいることはできないため, |
|
デフォルト遷移を使用して,排他的(或)ステートのうち最初にアクティブになるものにマークを付けます。 |
このガドランを守ることで,チャトの実行中にステトの不整合エラが起こらないようにします。 |
|
固有の数値のない発生に依存する遷移をガドするには,条件ではなくベントを使用します。 |
ホテルへのチェックインの数値を定量化することはできないため,このような発生はイベントとしてモデリングします。 |
|
ステ,トが非アクティブになる直前に, |
他のタプのステトアクションは,異なる方法で実行されるため,当てはまりません。
|
フェ,ズ:単一のジャンクションからの複数の出力遷移の評価
この節では,Front_desk
ステ,トから出た後に何が起こるのかを説明します。それは,単一のジャンクションからの複数の出力遷移の評価です。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | 部屋のタ▪▪プは3▪▪あり,そのいずれかに移動できます。 |
一連のフロ,チャ,トの実行順序を参照してください。 |
2 | エグゼクティブスetc / etc / etc / etc / etc / etc / etc / etc / etc / etc / etc / etc。 |
メモ 最上位の遷移が有効でない場合は,次の遷移をテストするために,セントラルジャンクションへの制御フローのバックトラッキングが発生します。この種のバックトラッキングは意図的です。 意図しないバックトラッキングとこれを回避する方法の詳細は,フロ,チャ,トのバックトラックとフロ,チャ,ト作成のベストプラクティスを参照してください。 |
3. | ファミリス。 |
|
4 | シングルル,ムを選択した場合,基本料金は500です。 |
|
出力遷移の評価に関するモデリングガ▪▪ドラ▪▪ン-以下のガ▪▪ドラ▪▪ンは遷移構文に適用されます。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
数値のない発生に依存する遷移をガドするには,ベントではなく条件を使用します。 |
ホテルの部屋のタaapl . exeプは数値的に定量化できるため,部屋のタaapl . exeプの選択は条件として表現します。 |
|
可能な限り,遷移アクションではなく条件アクションを使用します。 |
条件アクションは,条件が真であると評価されるとすぐに実行されます。遷移アクションは、終端ジャンクションまたはステートまでの遷移パスが完了するまで実行されません。 実行遅延が必要でない場合は,遷移アクションではなく条件アクションを使用します。 |
|
複数の出力遷移のテスト順を管理するには,明示的な順序付けを使用します。 |
遷移の順序付けには,明示的な順序付けまたは暗黙的な順序付けを指定できます。既定の設定では,明示的な順序付けが使用されます。暗黙的な順序付けに切り替えた場合は,グラフィカルオブジェクトが動いたときに遷移のテスト順が変わる場合があります。 |
フェズ:スパステトに対するステトアクションの実行
この節では,Checked_in
ステ,トに入った後に,どのサブステ,トがアクティブになるかに関係なく起こることを説明します。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | 目的の部屋に着いたら,運んできた荷物を置きます。 |
|
2 | ル,ムサ,ビスを注文すると,ホテルからの請求額が一定額増えます。 |
@ @ @ @ @ @ @ @ @ @ @ @ @を参照してください。 |
ステトアクションの実行に関するモデリングガドラン-以下のガ@ @ドラ@ @ンはステ@ @トアクションに適用されます。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
ステ,トがアクティブになった直後に, |
他のタプのステトアクションは,異なる方法で実行されるため,当てはまりません。
|
ステト |
|
||
スパステトを使用して,同じステトアクションを共有する複数のサブステトを囲みます。 |
このガイドラインを守ることで,複数のサブステートに適用されるステートアクションを再利用できるようにします。ステ,トアクションは,サブステ,トごとに記述するのではなく,1回だけ記述します。 |
サブステ,トとス,パ,ステ,トの作成 |
フェ,ズ:ステ,トアクションからの関数呼び出し
チャ,トのこの部分では,ステ,トがアクティブなときに関数呼び出しを実行する方法を説明します。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | 部屋のタプとルムサビスの合計注文回数に基づいて,ホテルからの請求額を追跡できます。 |
関数ボックスをダブルクリックすると,以下のスクリプトが関数エディタ,に表示されます。 函数y = expenses(x) if (room_type == 1) y = 1500 + (x*50);如果(room_type == 2) y = 1000 + (x*25);Else y = 500 + (x*5);结束结束 |
関数呼び出しに関するモデリングガ▪▪ドラ▪▪ン-以下のガ▪▪ドラ▪▪ンは関数呼び出しに適用されます。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
チャトでの数値計算の実行にはmatlab関数を使用します。 |
MATLAB関数は,グラフィカル関数や真理値表,S金宝appimulink®関数よりも,数値計算の処理に優れています。 |
Matlab関数の定義によるMatlabコ,ドの再利用 |
関数シグネチャでは説明的な名前を使用します。 |
説明的な関数名を使用すると,チャ,トオブジェクトがわかりやすくなります。 |
フェズ:排他的サブステトをもステトの実行
チャ,トのこの部分では,排他的(或構造が設定されたステ,トの実行方法を説明します)。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | エグゼクティブス。 メモ エグゼクティブス。したがって,ス。 |
条件
チャ,トまたはステ,トに入るを参照してください。 |
2 | ル、ムサ、ビスを注文したら、ダ、ニングエリアに入って食事をします。 |
|
3. | ダイニングエリアでとった食事の後片付けをしてほしい場合は,再びルームサービスを注文し,ベッドルームに戻ります。 |
|
4 | 火災警報器が作動したためにエグゼクティブスイートを出た場合は,警報解除信号が出された後,もといた部屋へ戻ります。 |
|
排他的(或)ステトの実行に関するモデリングガドラン-以下のガ▪▪ドラ▪▪ンは排他的(或)ステ▪▪トに適用されます。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
階層内の同じレベルに位置する複数のステートが同時にアクティブになることが不可能な場合は,排他的(或)構造を使用します。 |
このガドランを守ることで,チャトは適切に実行されます。たとえば,ベッドル,ムとダ, |
|
前にアクティブであったサブステートに依存する排他的(或)構造が設定されたステートに再度入る場合は,ヒストリジャンクションを使用します。この種のジャンクションでは,ステ,トから出るときにアクティブなサブステ,トが記録されます。 |
前にアクティブであったサブステートを記録しない場合はデフォルト遷移が発生し,そのステートに再度入るときに,不適切なサブステートがアクティブになる場合があります。 たとえば,食事中に火災警報が鳴ったため部屋を出た後,戻ってくる場合,ダイニングエリアではなくベッドルームに入ってしまいます。 |
フェズ:パラレルサブステトをもステトの実行
チャ,トのこの部分では,パラレル(和)構造が設定されたステ,トの実行方法を説明します。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | 家族でスイートルームに着いた場合は,両方のベッドルームに家族がいることが可能です(たとえば,両親がマスターベッドルームにいて子供たちがセカンドベッドルームにいるなど)。既定の部屋選択は適用されません。 |
条件
チャ,トまたはステ,トに入るを参照してください。 |
2 | 両方の部屋を同時に使用することができます。 |
|
パラレル(和)ステトの実行に関するモデリングガドラン-以下のガ▪▪ドラ▪▪ンはパラレル(和)ステ▪▪トに適用されます。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
階層内の同じレベルに位置するすべてのステートが同時にアクティブになることが可能な場合は,パラレル(和)構造を使用します。 |
このガドランを守ることで,チャトは適切に実行されます。たとえば,マスタ,ベッドル,ムとセカンドベッドル,ムは同時に使用することができるため, |
|
パラレル(和)構造の設定されたステ,トでは,ヒストリジャンクションを使用しません。 |
このガ▪▪ドラ▪▪ンにより,コンパ▪▪ルエラ▪を防ぎます。階層内の同じレベルに位置するすべてのパラレル ステートが同時にアクティブであるため、ヒストリ ジャンクションを使用する意味がありません。 |
|
パラレル(和)ステ,トの実行順序の管理には,明示的な順序付けを使用します。 |
パラレルステ,トの順序付けには,明示的な順序付けまたは暗黙的な順序付けを指定できます。既定の設定では,明示的な順序付けが使用されます。暗黙的な順序付けに切り替えた場合は,パラレルステートが動いたときに実行順序が変わる場合があります。 |
フェ:
チャ,トのこの部分では,或:ステ,ト間の遷移のガ,ド方法を説明します。
ステジ | ホテルのシナリオ | チャ,トの動作 |
---|---|---|
1 | 火災警報が鳴ったら,ホテルを出て,外の待合い場所に移動します。 |
|
2 | 警報解除信号が出されると,待合い場所を離れてホテル内のもといた場所に戻ることができます。 |
|
遷移のガドに関するガドランのモデル化-以下のガ▪▪ドラ▪▪ンでは▪▪ベントに対する条件の使用法を検討します。
モデリングガ▪▪ドラ▪▪ン | このガ▪▪ドラ▪▪ンが適用される理由 | 参照 |
---|---|---|
数値のない発生に依存する遷移をガドするには,条件ではなくベントを使用します。 |
火災警報や警報解除信号の数値を簡単に定量化することはできないため,このような発生はイベントとしてモデリングします。 |
入力ベントの送信によるstatflowチャトのアクティブ化 |