Stateflow

ステートマシンの設計

Stateflow では、ドラッグ アンド ドロップ要素とシンプルな論理ステートメントを使用してステートマシンを設計できます。Stateflow 入門およびトレーニングを活用してすぐに始めることができます。

複数のステートと MATLAB Function ブロックを示すステートチャート。"Exchange" ステートには、2 つの子ステートのいずれかに入るか、ステートを抜けるかを判定するフローチャートを使用して表現されたロジックが含まれています。

フローチャートの作成

フローチャートを使用すると、ステートロジックを表現できます。パターンウィザードを使用すると、一般的なロジックパターンのフローチャートを自動生成できます。

表を使用したロジックのモデル化

Stateflow には、状態遷移表真理値表があります。状態遷移表にはロジックをモデル化する表形式のビューが備わっており、真理値表は、表形式で組み合わせ論理設計を実装します。

Stateflow チャートの実行

状態図を実行すると、アニメーションによってアクティブなステートと遷移が強調表示されます。実行中に手動で変数を変更して、システムへの影響を可視化できます。

左はマニュアル ギア シフトの Stateflow チャート。チャートの 2 つのステートのシミュレーション データは、右のグラフに示されており、各ステートに対応するプロットが矢印で示されています。

データの監視および解析

シミュレーション データ インスペクターは、シミュレーション データを可視化する機能を提供します。このツールを使用すると、システムを監視して、その動作に関する重要な洞察を収集できます。

Stateflow におけるロジックのデバッグ

Stateflow のデバッグ機能により、チャートの実行を詳細にステップ実行できます。ブレークポイントを設定し、状態図のさまざまな関数をステップ実行して、予期しない動作を理解できます。

Simulink モデルに実装された時相論理スケジューラ。このブロックは、3 つの Function-Call Subsystem の実行をスケジュールし、そのうちの 3 つ目が Scope ブロックに出力します。

Stateflow のタスク スケジューリング

Stateflow は、Simulink アルゴリズムを周期的または連続的に呼び出して、コンポーネントの実行をスケジュールし、リアルタイム環境をシミュレーションできます。

要件検証後に再設計された Simulink モデル。モデルの下には、リストされている要件の検証ステータスが緑色で表示され、モデルのプロパティがすべて有効であることを示しています。

Simulink による設計の妥当性確認

Stateflow は設計の検証、妥当性確認、テストを行う他の MathWorks 製品とシームレスに統合されます。これらの製品を活用することで、設計が要件を満たしていることを確認し、エラーを早期に発見し、品質目標を達成できます。

2 つ目のウィンドウが 1 つ目のウィンドウから作成されたことを示すグラフィックスでつながれた、2 つのアプリケーション ウィンドウ。1 つ目のウィンドウは Stateflow チャートを示し、2 つ目のウィンドウはチャートから自動生成された C コードを示しています。

展開用コードの生成

コード生成により、ステート チャート ロジックを組み込みシステムに実装できます。Stateflow は、C、C++VHDL、Verilog コード、および PLC 用のストラクチャード テキストを生成するワークフローをサポートしています。

「ディープスペース 1 号まで、宇宙機のアビオニクス ソフトウェアの大規模システムにおいて、ステートチャートと自動コード生成技術は使用されていませんでした。MathWorks のツールを導入したことで、そのアプローチが可能になりました。」