このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Stateflow チャートのモデリング ガイドライン
以下のガイドラインに従って、イベント、ステート、および遷移をもつチャートを効率よくモデル化してください。
入力イベントには同じデータ型の信号を使用する
複数の入力イベントを使用してチャートをトリガーする場合は、すべての入力イベントに同じデータ型が使用されていることを確認します。そうでない場合、シミュレーションが停止して、エラー メッセージが表示されます。詳細については、入力イベントで使用可能なデータ型を参照してください。
デフォルト遷移を使用して、排他的 (OR) ステートのうち最初にアクティブになるものにマークを付ける
このガイドラインを守ることで、チャートの実行中にステートの不整合エラーが起こらないようにします。
可能な限り、遷移アクションではなく条件アクションを使用する
条件アクションは、条件が真であると評価されるとすぐに実行されます。遷移アクションは、終端ジャンクションまたはステートまでの遷移パスが完了するまで実行されません。
実行遅延が必要でない場合は、遷移アクションではなく条件アクションを使用します。
複数の遷移のテスト順を管理するには、明示的な順序付けを使用する
遷移の順序付けには、明示的な順序付けまたは暗黙的な順序付けを指定できます。既定の設定では、明示的な順序付けが使用されます。暗黙的な順序付けに切り替えた場合は、グラフィカル オブジェクトが動いたときに遷移のテスト順が変わる場合があります。
フロー チャートでの意図的なバックトラッキング動作を確認する
意図しないバックトラッキング動作がチャートに含まれている場合は、警告メッセージが表示され、その問題の回避方法が説明されます。詳細については、フロー チャート作成のベスト プラクティスを参照してください。
スーパーステートを使用して、同じステート アクションを共有するサブステートを囲む
同じステート アクションを実行する複数の排他的 (OR) ステートがある場合は、これらのステートをスーパーステートにグループ化し、ステート アクションをそのレベルで定義します。
このガイドラインを守ることで、複数のサブステートに適用されるステート アクションを再利用できるようにします。ステート アクションは、サブステートごとに記述するのではなく、1 回だけ記述します。
メモ
この目的でボックスを使用することはできません。ボックスではステート アクションがサポートされていないためです。
チャートでの数値計算の実行には MATLAB 関数を使用する
MATLAB® 関数は、グラフィカル関数や真理値表、Simulink® 関数よりも、数値計算の処理に優れています。
関数シグネチャでは説明的な名前を使用する
説明的な関数名を使用すると、チャート オブジェクトがわかりやすくなります。
ステートの履歴を記録するにはヒストリ ジャンクションを使用する
前にアクティブであったサブステートに依存する排他的 (OR) 構造が設定されたステートに再度入る場合は、ヒストリ ジャンクションを使用します。この種のジャンクションでは、ステートから出るときにアクティブなサブステートが記録されます。前にアクティブであったサブステートを記録しない場合はデフォルト遷移が発生し、そのステートに再度入るときに、不適切なサブステートがアクティブになる場合があります。
パラレル (AND) 構造の設定されたステートでは、ヒストリ ジャンクションを使用しない
このガイドラインを守ることで、コンパイル エラーが起こらないようにします。階層内の同じレベルに位置するすべてのパラレル ステートが同時にアクティブであるため、ヒストリ ジャンクションを使用する意味がありません。
パラレル (AND) ステートの実行順序の管理には、明示的な順序付けを使用する
パラレル ステートの順序付けには、明示的な順序付けまたは暗黙的な順序付けを指定できます。既定の設定では、明示的な順序付けが使用されます。暗黙的な順序付けに切り替えた場合は、パラレル ステートが動いたときに実行順序が変わる場合があります。