このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
有限ステ,トマシンのモデル化
Stateflow®は,“有限ステ,トマシン”に基づくグラフィカルなプログラミング環境です。Stateflowを使用して設計のテストとデバッグを行い、さまざまなシミュレーション シナリオを検討し、ステート マシンからコードを生成することができます。
有限ステートマシンは,1つの動作モード(ステート)から別のモードへと遷移する動的システムを表現したものです。ステ,トマシンには次の特徴があります。
複雑なソフトウェア設計プロセスにおける高水準の開始点として機能する。
動作モドと,1のモドから次のモドへの移行に必要な条件に注目できる。
モデルの複雑度が増しても明確さと簡潔さが維持されるようなモデルの設計に役立。
制御システムの設計は,複雑なロジックを管理するためのステ,トマシンに大きく依存します。用途には,航空機,自動車,およびロボット工学の制御システムの設計が含まれます
Stateflowチャ,トの例
Stateflowチャートでは,ステート,遷移,およびデータを組み合わせて有限ステートマシンを実装します。このStateflowチャートは,自動車の4速オートマチックトランスミッションシステムのギアをシフトするロジックの簡易モデルを示しています。チャ,トでは,ギアの各ポジションが第一个
、第二个
、第三
、第四
というラベルの付いた四角形で示されるステ,トによって表されます。これらのステートは,それぞれが表すギアと同様に排他的なので,一度に1つのステートのみがアクティブになります。
図の左側の矢印はデフォルト遷移を表し,最初にアクティブになるステ,トを示しています。チャ,トを実行すると,キャンバスでこのステ,トが強調表示されます。他の矢印はステ,ト間で可能な遷移を示しています。ステトマシンのダイナミクスを定義するには、それぞれの遷移を論理条件またはトリガー イベントに関連付けます。たとえば、このチャートは自動車の速度を監視して、速度がある固定のしきい値を横切ると別のギアにシフトします。シミュレーション中、異なるステートがアクティブになるとチャートの強調表示が変わります。
このチャ,トは,エンジンスピ,ドやトルクなどの重要な要因を無視したシンプルな設計を提供します。このStateflowチャ,トを,MATLAB®や仿金宝app真软件®内の他のコンポ,ネントとリンクすることにより,さらに包括的で現実的なモデルを作成できます。次の例で,可能な3の手法を説明します。
チャトをmatlabオブジェクトとして実行
この例では,ステートの階層,時相論理,入力イベントを組み込んだオートマチックトランスミッションシステムの修正バージョンを示します。
階層:チャ,トは,前の例の4速オ,トマチックトランスミッションチャ,トを囲むス,パ,ステ,ト
gear_logic
で構成されます。このス,パ,ステ,トが,自動車の速度と加速度を制御します。実行中、gear_logic
は常にアクティブです。時相論理:ステト
gear_logic
では,アクション在每一个(0.25秒)
が自動車の速度を決定します。演算子每一个
で作成されるmatlabタマにより,チャトが実行され,チャトデタ速度
が0.25秒ごとに更新されます。入力电子邮箱ベント:入力@ @ベント
加速
、巡航
および经济放缓
は,チャ,トデ,タδ
の値をリセットします。このデ,タにより,実行ステップごとに自動車が加速するか速度を維持するかが決まります。
このチャートは,コマンドウィンドウで直接,またはスクリプトを使用して,MATLAB内のオブジェクトとして実行できます。また,グラフィカルユーザーインターフェイスを使用してチャートのステートを制御するMATLABアプリをプログラミングすることもできます。たとえば,このユーザーインターフェイスでは,ボタンをクリックすると入力イベントがチャートに送信されます。チャ,ト内で,matlab関数小部件
がンタフェス上のゲジとランプの値を制御します。
この例を開始するには,App Designerのルストリップで,[実行]をクリックします。ユーザーインターフェイスウィンドウを閉じるまで,この例は引き続き実行されます。
あるいは,Stateflowエディタ,の[ステ,トチャ,ト]タブで,[実行]をクリックします。車の速度を制御するには,[シンボル]ペ选区ンの(加速)、(减速)、(游轮)の各ボタンを使用します。この例を停止するには,[停止]をクリックします。
StateflowチャートをMATLABオブジェクトとして実行することに関する詳細については,Matlabでの実行を参照してください。
ロカルベントを使用してSimu金宝applinkブロックとしてチャトをシミュレト
この例では,より複雑なオ,トマチックトランスミッションシステムの設計を示します。Stateflowチャ,トは、Simulink モデル内でブロックとして表示されます。モデル内の他のブロックは、関連する自動車のコンポーネントを表します。チャートは、入出力の接続を使ってデータを共有することにより、他のブロックと連動します。チャートを開くには、shift_logic
ブロックの左下隅にある矢印をクリックします。
このチャートはステートの階層,パラレル化,アクティブステートデータ,ローカルイベント,および時相論理を組み合わせたものです。
階層:ステト
gear_state
には,4速オ,トマチックトランスミッションチャ,トの修正バ,ジョンが含まれています。ステトselection_state
には,定常状態,アップシフト,およびダウンシフトの各動作モ,ドを表すサブステ,トが含まれています。ハギアまたはロギアへのシフトが必要な状況では,これらのステトがアクティブになります。パラレル化:パラレルステ,トである
gear_state
とselection_state
は,破線の境界をも四角形として表示されます。これらのステ,トは,その中にあるサブステ,トのオンとオフが切り替わっても,同時に動作します。アクティブステ,トデ,タ:出力値
齿轮
にはシミュレ,ション時のギアの選択が反映されます。チャ,トはgear_state
のアクティブなサブステ,トからこの値を生成します。ロカルベント:このチャトは,論理式条件の代わりにロカルベント
向上
および下来
を使用してギア間の遷移をトリガ,します。これらの电子邮箱ベントは,自動車の速度が選択されたギアの動作範囲外になったときに,selection_state
内の发送
コマンドから発生します。金宝appSimulink関数calc_th
は,選択されたギアとエンジンの速度に基づいて動作範囲の境界値を決定します。時相論理:短時間の連続ギアチェンジを避けるために,
selection_state
は,時相論理演算子后
を使用して,向上
ベントと下来
ベントのブロ,ドキャストを遅延させます。ギアチェンジに所定時間TWAIT
よりも長い時間が必要な場合にのみ,ステートはこれらのうちいずれかのイベントをブロードキャストします。
モデルのシミュレ,ションを実行するには,次を行います。
用户输入ブロックをダブルクリックします。信号编辑器ダ安大安大市アログボックスの[アクティブなシナリオ]リストで,事前定義されたブレ,キ対スロットルのプロファ,ルを選択します。既定のプロファ@ @ルは
通过操作
です。[実行]をクリックします。Stateflowエディターでは、チャート アニメーションによって、シミュレーション中にアクティブ ステートが強調表示されます。アニメーション速度を遅くするには、[デバッグ]タブで,[アニメ,ション速度]ドロップダウンリストから
慢
を選択します。范围ブロックで、シミュレ、ションの結果を確認します。各スコ,プには,シミュレ,ション中にその入力信号のグラフが表示されます。
時間条件を使用してS金宝appimulinkブロックとしてチャ,トをシミュレ,ト
この例では,自動車のトランスミッションシステムをモデル化する別の方法を示します。Stateflowチャ,トは、Simulink モデル内でブロックとして表示されます。モデル内の他のブロックは、関連する自動車のコンポーネントを表します。チャートは、入出力の接続を使ってデータを共有することにより、他のブロックと連動します。チャートを開くには、Gear_logic
ブロックの左下隅にある矢印をクリックします。
このチャ,トはステ,トの階層,アクティブステ,トデ,タ,および時相論理を組み合わせたものです。
階層:このモデルでは,4速オトマチックトランスミッションチャトをスパステト
齿轮
内に配置します。ス,パ,ステ,トは車両とエンジンの速度を監視してギアチェンジをトリガ,します。ステト齿轮の左上隅にリストされているアクションは、選択されたギアの動作しきい値と、論理条件向上
および下来
の値を決定します。ラベル恩,杜
は,ステ,トがはじめてアクティブになるとき(在
=条目
)と,それ以降ステ,トがアクティブな間(杜
=在
)の各タ@ムステップでステ@トアクションが実行されることを示します。アクティブステ,トデ,タ:出力値
齿轮
にはシミュレ,ション時のギアの選択が反映されます。チャ,トは齿轮
のアクティブなサブステ,トからこの値を生成します。時相論理:短時間の連続ギアチェンジを避けるために,論理条件
向上
および下来
は,時相論理演算子持续时间
を使用してギア間の遷移を制御します。条件は,自動車の速度が,選択されているギアの動作範囲外である時間が所定時間TWAIT
(秒単位で測定)よりも長くなったときに有効になります。
モデルのシミュレ,ションを実行するには,次を行います。
用户输入ブロックをダブルクリックします。信号编辑器ダ安大安大市アログボックスの[アクティブなシナリオ]リストで,事前定義されたブレ,キ対スロットルのプロファ,ルを選択します。既定のプロファ@ @ルは
通过操作
です。[実行]をクリックします。Stateflowエディターでは、チャート アニメーションによって、シミュレーション中にアクティブ ステートが強調表示されます。アニメーション速度を遅くするには、[デバッグ]タブで,[アニメ,ション速度]ドロップダウンリストから
慢
を選択します。范围ブロックで、シミュレ、ションの結果を確認します。シミュレ,ション中に,選択されたギアのグラフがスコ,プに表示されます。