ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

イベントドリブン システムのモデル化の基本的なアプローチ

システムの特性の特定

Stateflow® チャートを作成する前に、以下の点を検討してシステムの特性を特定します。

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

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

    2. システムへの入力

    3. システムからの出力

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

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

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

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

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

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

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

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

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

詳細は、実行時におけるチャートの構造の相互作用の仕組みアクション言語構文としての MATLAB と C の相違点およびMealy マシンと Moore マシンの概要を参照してください。

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

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

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

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

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

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

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

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

  4. 適切な構文を使用する遷移ラベルを追加して、遷移条件を実装します。遷移アクション タイプを参照してください。

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

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

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

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

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

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

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

  • フローチャート — if-then-else、switch-case、for、while、または do-while のパターンを含むフローチャートをカプセル化します。

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

  • Simulink — Simulink の Function-Call Subsystem を直接呼び出して設計を合理化し、読みやすくします。

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

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

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

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

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

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

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

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

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