主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

Stateflowでのリアクティブシステムのモデル化

システム属性の特定

金宝app®モデル内でStateflow®チャートを作成する前に,以下の点を検討してシステム属性を特定します。

  1. インターフェイスの種類

    1. システムの反応を引き起こすイベント

    2. システムへの入力

    3. システムからの出力

  2. システムの動作モードの有無

    1. 動作モードがある場合は,その種類。

    2. 遷移可能なモード。並行して実行する動作モードの有無。

    システムに動作モードがない場合,システムは“ステートがない”ことになります。システムに動作モードがある場合,システムは“モーダル”です。

ステートマシンタイプの選択

システム属性を特定したら,まず新しいチャートを作成します。詳細については,sfnewを参照してください。次のステートマシンタイプからいずれかを選択します。

  • 经典——既定のマシンタイプ。MATLABチャートと C チャート用のセマンティクスの完全なセットを備えています。

  • 粉——出力が入力”“およびステートの関数に該当するマシンタイプ。

  • 摩尔——出力がステートの関数のみに該当するマシンタイプ。

詳細については,実行時のStateflowオブジェクトの相互作用アクション言語構文としてのMATLABとCの相違点および粉マシンと摩尔マシンの概要を参照してください。

ステートアクションと遷移条件の指定

空のチャートを作成したら,次の点を検討します。

  1. 各ステートに対して実行するアクション

  2. ステート間の遷移の規則。チャートにステートがない場合は,フローロジックの分岐間の遷移にどのような規則があるでしょうか。

これらの点を考慮して,ステートアクションと遷移条件を指定します。

  1. 動作モードがある場合は,動作モードを表すステートを作成します。ステートを使用した動作モードの表現を参照してください。

  2. 適切な構文を使用するステートのラベルを追加して,ステートアクションを実装します。ステートを参照してください。

  3. フローチャートのステート間または分岐間に,フローロジックの方向を表す遷移を作成します。動作モード間の遷移を参照してください。

  4. 適切な構文を使用する遷移ラベルを追加して,遷移条件を実装します。遷移を参照してください。

状態変数を保管する永続データの定義

チャートにステートアクションと遷移条件を追加したら,状態変数を保管するためにローカルデータまたは永続データがチャートに必要かどうかを判断します。必要な場合は,以下の手順に従います。

  1. チャート階層の適切なレベルにローカルデータを追加します。Stateflowデータの追加を参照してください。

    シンボルウィザードを使用してチャートにデータを追加することもできます。シンボルウィザードを使用したシンボルの解決を参照してください。

  2. 種類,サイズ,実数/複素数などのデータプロパティを指定します。データプロパティの設定を参照してください。

関数呼び出しによるステートアクションと遷移条件の簡略化

ステートアクションと遷移条件が複雑なために,ステートや遷移上のインラインで定義できないことがあります。この場合は,以下の種類のStateflow関数のいずれかを使用してアクションや条件を表現します。

  • フローチャート- if - then - else,切换实例,,,または延伸のパターンを含むフローチャートをカプセル化します。

  • MATLAB -行列指向アルゴリズムを作成します。データ解析と可視化のためのMATLAB関数を呼び出します。

  • 金宝app仿真软件,仿真软件の函数调用子系统を直接呼び出して設計を合理化し,読みやすくします。

  • 真理値表,故障検出やモード切り替えなどの論理判定アプリケーションのために,組み合わせ論理を表現します。

ステートアクションや遷移条件での計算の種類に対し最も自然な関数形式を使用します。これら4種類の関数の詳細は,以下を参照してください。

4種類のStateflow関数が使用できない場合は,独自のCまたはc++コードを作成して,チャートに統合できます。カスタムコードの統合の詳細は,Stateflowチャートでのカスタムコードの再利用を参照してください。

システムの表現が完全であることの確認

Stateflowチャートにより,システムの論理コンポーネントやイベントドリブンコンポーネントが完全に表現されていることを確認します。

  • 表現されている場合,作業はこれで完了です。

  • 表現されていない場合は,別のチャートを作成したり,現在のチャートに階層を追加したりできます。

    • 新しいチャートを作成するには,この基本ワークフローのすべての手順を繰り返します。

    • 階層を追加するには,現在のチャートの下位レベルにおいて,最後の3つの手順を繰り返します。