<< 目次を表示 >> ページ位置: シミュレーション > 数学的なシミュレーション > SysPhS シミュレーション > Stateflowとの連携 > Stateflowに対応するモデル |
ステートマシン図として作成した内容をStateflowに出力するためには、いくつかの条件があります。要素や接続の種類、状態マシン要素の配置、コード生成時の生成先、文法などがあります。
状態マシンの配置
Stateflowに出力するモデルを作成する際には、SysML ブロックの下に 状態マシン要素を配置し、その状態マシン要素の下に ステートマシン図を配置する必要があります。
例えば、この場合、ブロック「Control」には「ControlStateMachine」という名前の状態マシンを持ち、その子ダイアグラムとして「ControlStateMachine」という名前のステートマシン図があります。
ブロック要素には、他の種類のダイアグラムや子要素を持つことはできません。
コードの定義
状態マシンの振る舞いを定義する場合には、どこにどのような文法で配置するかを理解する必要があります。
コードの文法
コードを書く際には、有効なSysMLコードは、有効なStateflowコードに変換されます。SysPhS仕様では、Enterprise ArchitectがStateMachineダイアグラムのコードとして受け入れる「標準」としてModelica数学言語を定義し、これらをMATLAB Stateflowの等価なコードに変換しています。詳細については、OMG SysPhS仕様の第10節を参照してください。
コードの配置先
Stateflowは以下の3つの操作(アクション)に対応します。
状態の操作の振る舞いにコードを含むことができます。例えば、以下はentryアクションに定義されたコードの例です。
遷移では以下の部分に処理を記述できます。
以下の例ではガード条件に処理を記述しています。
ブロックのプロパティの参照
コードでは、定数やポートなどのブロックのプロパティをスクリプト内で参照できます。ポートの場合には、入力ポート名を用いて入力内容を参照可能です。同様に、出力ポートと同名の変数に値を代入できます。
例
注意: |
次のSysMLのステートマシン図の内容はStateflowでは利用できません。
|
参照: