Main Content

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

バリアント遷移を使用したソフトウェア構成

バリアント遷移を使用すると、Simulink® モデルで、さまざまなソフトウェア状況で使用できるコードを生成する Stateflow® チャートを作成できます。バリアント遷移により、1 つの Stateflow チャート内にあるすべてのバリエーションをモデル化できます。これにより、コードの生成時や、生成したコードのコンパイル時に必要なバリエーションを選択できます。

バリアント遷移は、条件内の Simulink パラメーターまたは MATLAB® 変数によりガードされ、中心となるチャート コンフィギュレーションからのバリエーションであるチャート内のステートを結合します。バリアント遷移の条件は、実行時ではなく、コードのコンパイル中またはコードの生成中に評価されます。さらに、生成されたコードには、現在選択されているソフトウェア構成を実行するために必要なデータ メンバーのみが含まれています。

チャートのバリエーションはコード生成でのみサポートされています。バリアント遷移を使用して開発した Stateflow チャートは、チャートのどの部分がアクティブであるかに応じてシミュレーションを実行します。

ステートまたはチャートのデフォルト遷移パスでは、バリアント遷移をアクションと併用することはできません。

バリアント コンフィギュレーションの作成

バリアント遷移により、バリアント コンフィギュレーションが、中心となる Stateflow チャートに接続されます。バリアント構成は、バリアント遷移条件が真である場合のみアクティブとなります。

この例では、バリアント コンフィギュレーションを、ランプのオンとオフと切り替える基本的な制御システムに追加します。このバリアント コンフィギュレーションにより、ランプを複数の方法で暗くすることができます。バリアント コンフィギュレーションを Stateflow チャートに追加すると、任意のコンフィギュレーションでコードを生成できるようになります。

最初は、Stateflow チャートには OffOn の 2 つのステートがあります。イベント SWITCH_ON がチャートに送られると、照明は点灯します。イベント SWITCH_OFF がチャートに送られると、照明は消灯します。

一部のランプには調光機能があります。その中には、明るさを高または低に設定できるランプと、高、中、低のいずれかにのみ設定できるランプがあります。これらの機能を Stateflow チャートに追加するには、Dimmer1Dimmer2NoDimmer の 3 つのバリエーションを追加します。Dimmer1 には HighMediumLow の 3 つのサブステートがあります。Dimmer2 には HighLow の 2 つのバリエーションがあります。

バリアント コンフィギュレーションのエントリは、ベース ワークスペースで定義される Simulink パラメーターまたは MATLAB 変数を使用する遷移条件によりガードされます。遷移をバリアント遷移に変更するには、遷移をクリックします。[遷移] タブで、[バリアント遷移] を選択します。チャート上で、この遷移が # 記号で表されます。これは、この遷移がバリアント遷移であることを表します。

この例では、バリアント コンフィギュレーションは Simulink パラメーターを使用する条件によりガードされています。ここでは、HAS_DIMMER1 はパラメーター オブジェクトです。バリアント コンフィギュレーションをアクティブにするには、条件 [HAS_DIMMER1 == 1] が真でなければなりません。Simulink パラメーターの詳細については、ブロック パラメーター値の設定を参照してください。

シミュレーション中に Stateflow チャートで実行されるのは、Stateflow チャートのアクティブな部分のみです。非アクティブな部分は Stateflow キャンバスでグレー表示されます。チャートで現在アクティブな部分を変更するには、ベース ワークスペースでガード用のパラメーターを更新します。

バリアント コンフィギュレーション用のコードの生成

Stateflow チャートからコードを生成するには、Simulink Coder™ または Embedded Coder® がなければなりません。既定では、生成されるコードにはアクティブなバリアント ステート マシンのみが含まれます。

Embedded Coder を使用する場合、生成されるコードにプリプロセッサ条件付きステートメントを含めることもできます。Stateflow エディターの [モデル化] タブにある [データの設計] で、[プロパティ インスペクター] を選択します。[詳細設定] で、[プリプロセッサの条件を生成] を選択します。

コードの生成の詳細については、Simulink® Coder™ を使用したコード生成 (Simulink Coder)およびEmbedded Coder® を使用したコード生成 (Embedded Coder)を参照してください。

バリアント マネージャーの使用

バリアント マネージャーは、システム モデル内のバリアント コンフィギュレーションを管理するための主要なツールです。Stateflow エディターの [モデル化] タブにある [データの設計] で、[バリアント マネージャー] を選択します。

バリアント マネージャーの詳細については、バリアント マネージャーの概要を参照してください。

関連するトピック