メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Chart

有限ステート マシンで制御ロジックを実装

  • Chart block

ライブラリ:
Stateflow

説明

Chart ブロックは、有限ステート マシンをグラフィカルに表現します。Stateflow® チャートでは、ステートと遷移によって順序モーダル ロジック システムの基本構成ブロックが形成されます。ステートは動作モードに対応し、遷移はある動作モードから別の動作モードに至るシステムの経路を表します。詳細については、Model a Finite State Machineを参照してください。

Stateflow チャートで制御ロジックを実装するには、MATLAB® または C をアクション言語として使用できます。詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。

端子

入力

すべて展開する

[シンボル] ペインを使用して Stateflow チャートで入力データを作成すると、Stateflow により Chart ブロックに対応する入力端子が作成されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

出力

すべて展開する

[シンボル] ペインを使用して Stateflow チャートで出力データを作成すると、Stateflow により Chart ブロックに対応する出力端子が作成されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

メモ

チャートには Subsystem (Simulink) ブロック パラメーターもあり、これらのパラメーターにアクセスするには、チャートを右クリックして [ブロック パラメーター (Subsystem)] をクリックします。ただし、これらのパラメーターを更新することは推奨されません。

Stateflow チャートを更新または起動する方法。[継承][離散]、または [連続] として指定します。

継承

Simulink モデルからの入力によって、シミュレーション中にチャートを起動するタイミングが決定されます。

チャートの入力イベントを定義した場合、トリガー端子に接続されている Simulink ブロックからの信号によってチャートがトリガーされます。Simulink 信号は、[立ち上がり][立ち下がり]、または [両方] (立ち上がりと立ち下がり) か、[関数呼び出し] に応答するものになります。詳細については、入力イベントの送信による Stateflow チャートのアクティブ化を参照してください。

入力イベントを定義していない場合、Stateflow チャートは暗黙的に Simulink モデルからのトリガーを継承します。これらの暗黙的なイベントは、入力をチャートに渡す Simulink 信号の離散サンプル時間または連続サンプル時間です。データ入力を定義している場合、チャートは最速のデータ入力のレートで起動します。チャートのデータ入力を定義していない場合は、チャートは親サブシステムの実行動作の定義に従って起動します。

離散

Stateflow チャートは、Simulink モデルが [サンプル時間] チャート プロパティで指定した一定の時間間隔で暗黙的イベントを生成すると起動します。Simulink モデルの他のブロックは、サンプル時間が異なる場合があります。

連続

Stateflow チャートがそのステートを更新するのはメジャー タイム ステップ中のみで、出力およびローカル連続変数はメジャー タイム ステップ中とマイナー タイム ステップ中に計算されます。チャートはゼロクロッシングを登録でき、ステートの変化が発生するたびに、Simulink モデルによる Stateflow チャートのサンプリングを許可します。Stateflow チャートは、ローカル連続変数の導関数を計算します。詳細については、Stateflow の連続時間モデルを参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ChartUpdate
値: "INHERITED" (既定値) | "CONTINUOUS" | "DISCRETE"

シミュレーション中にチャートが起動する時間間隔を指定します。既定値は、チャートが Simulink からサンプル時間を継承することを示します。サンプル時間の指定の詳細については、サンプル時間の指定 (Simulink)を参照してください。

Subsystem ブロック パラメーターの [サンプル時間] パラメーターは使用しないでください。代わりに、プロパティ インスペクターを使用してください。

依存関係

このパラメーターを有効にするには、[更新方法][離散] に設定します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: SampleTime
値: "-1" (既定値) | string scalar | character vector
データ型: string | char

チャート内のステート遷移でゼロクロッシング検出を有効にするかどうか。詳細については、Stateflow の連続時間モデルを参照してください。

依存関係

このパラメーターを有効にするには、[更新方法][連続] に設定します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EnableZeroCrossings
値: true or 1 (既定値) | false or 0
データ型: logical

チャート内のステート アクションおよび遷移アクションでビット演算を使用するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

依存関係

このパラメーターを有効にするには、[アクション言語][C] に設定します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EnableBitOps
値: false or 0 (既定値) | true or 1
データ型: logical

チャートのアクティブ ステート データの出力端子を作成するかどうか。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。

依存関係

このパラメーターを有効にするには、Stateflow ステート、状態遷移表、または Atomic サブチャートを作成します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: HasOutputData
値: false or 0 (既定値) | true or 1
データ型: logical

アクティブ ステートの出力データに対する監視モード。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: OutputMonitoringMode
値: "ChildActivity" (既定値) | "LeafStateActivity"

状態遷移表のアクティブ ステート データ オブジェクトの名前。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: OutputPortName
値: "ChartMode" (既定値) | string scalar | character vector
データ型: string | char

状態遷移表のアクティブ ステート データ オブジェクトの名前。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EnumTypeName
値: "ChartModeType" (既定値) | string scalar | character vector
データ型: string | char

アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。詳細については、ステート アクティビティの列挙型の定義を参照してください。

依存関係

このパラメーターを有効にするには、[監視する出力の作成] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: DoNotAutogenerateEnum
値: false or 0 (既定値) | true or 1
データ型: logical

詳細設定

最初の入力イベントに際してではなく、時間 0 でチャートのステート構成を初期化するかどうか。詳細については、チャートの初期化実行を参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ExecuteAtInitialization
値: false or 0 (既定値) | true or 1
データ型: logical

チャート内のデータが整数オーバーフローで飽和するかどうか。このパラメーターをオフにすると、チャート内のデータは整数オーバーフローでラップします。詳細については、チャート データの整数オーバーフローと列挙オーバーフローの処理を参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: SaturateOnIntegerOverflow
値: true or 1 (既定値) | false or 0
データ型: logical

チャートが起動するたびに出力データを初期化するかどうか。

このパラメーターをオンにすると、時間 0 だけでなく、チャートが起動するたびにチャートの出力値がリセットされます。関数呼び出し、エッジ トリガー、または時間刻みでチャートがトリガーされるたびに、チャートの出力値はリセットされます。出力データ オブジェクトの初期値を設定した場合、出力はその値にリセットされます。それ以外の場合、出力はゼロにリセットされます。このパラメーターは、以下の目的がある場合に選択します。

  • チャートが実行されるたびに、すべての出力が定義されるようにする

  • 出力のラッチを回避する (つまり、以前の実行時に計算された出力値を回避する)。

  • すべてのチャート出力に有効な初期値を指定する

詳細については、初期値を参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: InitializeOutput
値: true or 1 (既定値) | false or 0
データ型: logical

チャートが可変サイズ データをサポートするかどうか。詳細については、Stateflow チャートでの可変サイズ データの宣言を参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: SupportVariableSizing
値: true or 1 (既定値) | false or 0
データ型: logical

チャートレベルの関数を Simulink モデル内の他のブロックにエクスポートするかどうか。詳細については、再利用のための Stateflow 関数のエクスポートを参照してください。

依存関係

このパラメーターを有効にするには、関数をチャートに追加します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ExportChartFunctions
値: false or 0 (既定値) | true or 1
データ型: logical

チャートからエクスポートされる関数が Simulink モデル内でグローバルに可視であるかどうか。このプロパティが有効な場合、モデル全体のブロックで、チャートからエクスポートされる関数を修飾表記を使用せずに呼び出すことができます。

依存関係

このパラメーターを有効にするには、[チャート レベルの関数をエクスポート] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: AllowGlobalAccessToExportedFunctions
値: false or 0 (既定値) | true or 1
データ型: logical

チャートのスーパー ステップのセマンティクスを有効にするかどうか。安定したステートに達するまで、タイム ステップごとにチャートで複数の遷移が可能になるようにするには、このパラメーターを選択します。このオプションは、チャート プロパティ [更新方法][Continuous] に設定している場合は使用できません。詳細については、スーパー ステップのセマンティクスを参照してください。

依存関係

このパラメーターを有効にするには、[更新方法][離散] に設定します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EnableNonTerminalStates
値: false or 0 (既定値) | true or 1
データ型: logical

1 つのスーパー ステップで実行できる遷移の最大回数。詳細については、スーパー ステップのセマンティクスを参照してください。

依存関係

このパラメーターを有効にするには、[スーパー ステップのセマンティクスを有効にする] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: NonTerminalMaxCounts
値: 1000 (既定値) | positive integer
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

スーパー ステップが 1 つのスーパー ステップにおける遷移の最大回数を超過した場合に Stateflow によって実行されるアクション。詳細については、スーパー ステップのセマンティクスを参照してください。

依存関係

このパラメーターを有効にするには、[スーパー ステップのセマンティクスを有効にする] を有効にします。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: NonTerminalUnstableBehavior
値: "Proceed" (既定値) | "Throw Error"

R2022b 以降

チャートが長さ 1 の次元をもつ非スカラー データを固定サイズとして扱うかどうか。このパラメーターをオンにすると、[可変サイズ] データ プロパティを有効にしたかどうかに関係なく、チャートは少なくとも 1 つの次元の長さが 1 である非スカラー データを固定サイズとして扱います。このパラメーターをオフにすると、チャートは [可変サイズ] プロパティが有効になっている非スカラー データを可変サイズとして扱います。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: TreatDimensionOfLengthOneAsFixedSize
値: true or 1 (既定値) | false or 0
データ型: logical

シミュレーション時とコード生成時に Stateflow が解析するブロック バリアントを指定します。選択したオプションに基づいて、Stateflow は、生成されたコードに、アクティブな選択肢のみ、またはアクティブな選択肢と非アクティブな選択肢の両方が含まれていなければならないかを決定します。

  • ブロック線図の更新時にすべての選択肢を解析 — このオプションを選択すると、Stateflow は、アクティブな選択肢と非アクティブな選択肢の両方について信号の属性の非互換性を解析し、アクティブな選択肢についてのみコードを生成します。

  • コードのコンパイル — このオプションを選択すると、Stateflow は、バリアント遷移のアクティブな選択肢と非アクティブな選択肢の両方を解析し、アクティブな選択肢と非アクティブな選択肢の両方についてコードを生成します。選択肢は、生成されたコードをコンパイルする際に条件付きでコンパイルされる C プリプロセッサ条件付きステートメント #if と #endif で囲まれます。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: VariantActivationTime
値: "update diagram analyze all choices" (既定値) | "code compile"

チャートのプログラミングに使用するアクション言語。MATLAB または C として指定します。詳細については、アクション言語構文としての MATLAB と C の相違点を参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: ActionLanguage
値: "MATLAB" (既定値) | "C"

チャートによって実装されるステート マシンのセマンティクス。ClassicMealy、または Moore として指定します。詳細については、Mealy マシンと Moore マシンの概要を参照してください。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: StateMachineType
値: "Classic" (既定値) | "Mealy" | "Moore"

固定小数点プロパティ

Fixed-Point Designer™ fi オブジェクトとして扱う、継承された Simulink 信号。次のいずれかの値として指定します。

  • Fixed-point — チャートはすべての固定小数点入力を fi オブジェクトとして扱います。

  • Fixed-point & Integer — チャートはすべての固定小数点および整数の入力を fi オブジェクトとして扱います。

依存関係

このパラメーターを有効にするには、[アクション言語][MATLAB] に設定します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: TreatAsFi
値: "Fixed-point" (既定値) | "Fixed-point & Integer"

チャートの既定の fimath プロパティ。次のいずれかの値として指定します。

  • Same as MATLAB — チャートは、現在の既定の fimath オブジェクトと同じ fimath オブジェクト プロパティを使用します。テキスト ボックスが淡色表示され、現在のグローバル fimath オブジェクトが読み取り専用で表示されます。

  • Specify other — 次の 2 つのうちいずれかの方法により、テキスト ボックスで独自の fimath オブジェクトを指定します。

    • fimath オブジェクトをテキスト ボックス内で作成する。

    • fimath オブジェクトを MATLAB またはモデル ワークスペース内で作成して、その変数名をテキスト ボックスに入力する。このオプションを使用し、モデルを他者と共有する場合は、変数をモデル ワークスペースで定義します。

詳細については、fimath オブジェクトの作成 (Fixed-Point Designer)を参照してください。

依存関係

このパラメーターを有効にするには、[アクション言語][MATLAB] に設定します。

プログラムでの使用

チャートのパラメーター値をプログラムで設定するには、チャートの Stateflow.Chart オブジェクトにアクセスし、ドット表記を使用してオブジェクト プロパティを変更します。

パラメーター: EmlDefaultFimath
値: "Same as MATLAB Default" (既定値) | "Other:UserSpecified"

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入

すべて展開する