このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
チャートでのステートの複数回再利用
次の例は、リンクされた Atomic サブチャートを使用して、Stateflow® チャートでステートと遷移の同じ構成を複数回繰り返す方法を示します。Atomic サブチャートは、MATLAB® 内のスタンドアロンの Stateflow チャートではサポートされません。詳細については、Atomic サブチャート使用した再利用可能なサブコンポーネントの作成を参照してください。
Atomic サブチャートがない元のモデル
次のモデルには Sine Wave (Simulink) ブロックが 2 つあり、一方は周波数が毎秒 1 ラジアンで、もう一方は周波数が毎秒 2 ラジアンです。
チャートの各ステートは飽和論理を使用して、入力正弦波を同じ周波数の出力矩形波に変換します。ステートは同じアクションを実行します。入力データと出力データの名前のみが異なります。
モデルのシミュレーションを行うと次の結果が得られます。
この例では Atomic サブチャートが使用されていないため、各サブコンポーネントを手動で維持する必要があります。たとえば、ステート A
でロジックの変更を行った場合は、ステート B
でも同じ変更を行わなければなりません。
一方で、この例のステートを Atomic サブチャートに置き換えると、モデル内で同じオブジェクトを再利用して同じシミュレーション結果を保持できます。ステート A
を Atomic サブチャートとしてライブラリ モデルに保存し、そのサブチャートのリンクされたインスタンスをチャートで複数使用することができます。ライブラリ モデルでの変更は、サブチャートのリンクされたインスタンスすべてに伝播します。
Atomic サブチャートを使用するようにモデルを編集
手順 1: ステートの Atomic サブチャートへの変換
ステート A
を右クリックして、[グループとサブチャート]、[Atomic サブチャート] を選択します。ステート A
が Atomic サブチャートに変わり、左上隅に [Atomic] というラベルが表示されます。
手順 2: Atomic サブチャートでのライブラリの作成
新しいライブラリ モデルを作成します。
Atomic サブチャートをコピーし、ライブラリ モデルに貼り付けます。
ライブラリ モデルを保存します。
ライブラリ モデルでは、Atomic サブチャートが入力端子と出力端子をもつ独立したチャートとして表示されます。
手順 3: ステートのリンクされている Atomic サブチャートへの置換
チャートで両方のステートを削除します。
ライブラリの Atomic サブチャートをコピーし、チャートに 2 回貼り付けます。
2 番目の Atomic サブチャートの名前を
B
に変更します。
リンクされた各 Atomic サブチャートは不透明で、左上隅にラベル [Link] が付いています。
手順 4: 入出力変数のマッピングの編集
ここでモデルのシミュレーションを行うと、y2
の出力はゼロになります。未使用のデータについての警告も表示されます。Atomic サブチャート B
が u2
と y2
の代わりに u1
と y1
を使用しているため、この警告が表示されます。
これらの警告に対処するには、入力変数と出力変数のマッピングを編集しなければなりません。
サブチャート
B
を右クリックし、[サブチャートのマッピング] を選択します。[Input マッピング] で、
u1
のメイン チャート シンボルがu2
になるように指定します。[Output マッピング] で、
y1
のメイン チャート シンボルがy2
になるように指定します。[OK] をクリックします。
新しいモデルの実行
新しいモデルのシミュレーションを実行すると、結果が元の設計の結果と一致します。
ライブラリ チャートでの変更の伝播
ライブラリ チャートで、Pos
から Neg
への遷移を編集するとします。
この変更は、メイン チャートでリンクされているすべての Atomic サブチャートに伝播されます。各ステートを別々に更新する必要はありません。
参考
Sine Wave (Simulink)