このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ローカル データ ストア ブロックの削除によるモデルの可読性の改善
モデル トランスフォーマー ツールを使用すると、Data Store Memory ブロック、Data Store Read ブロック、および Data Store Write ブロックを直結信号線、Delay ブロック、または Merge ブロックに置き換えることにより、モデルの可読性を改善できます。バス信号の場合、ツールによる置き換えの一環として Bus Creator ブロックまたは Bus Selector ブロックが追加されることもあります。これらのブロックを置き換えると、データの依存関係が明示的になるため、モデルの可読性が改善されます。モデル トランスフォーマーは、これらの置換を使用してモデルを作成します。新しいモデルの機能は既存のモデルと同じです。
モデル トランスフォーマーは、次のデータ ストアを置き換えることができます。
バス以外の信号について、Data Store Read ブロックが Data Store Write ブロックより前に実行される場合、ツールによりこれらのブロックは Delay ブロックに置き換えられます。
バス以外の信号について、Data Store Write ブロックが Data Store Read ブロックより前に実行される場合、これらのブロックは直接接続に置き換えられます。
バス信号について、バス要素への書き込みがバスの読み取りより前に実行される場合、Data Store Read ブロックと Data Store Write ブロックは直接接続と Bus Creator ブロックに置き換えられます。
バス信号について、バスへの書き込みがバス要素の読み取りより前に実行される場合、Data Store Read ブロックと Data Store Write ブロックは直接接続と Bus Selector ブロックに置き換えられます。
条件付き実行サブシステムの場合、Data Store Read ブロックと Data Store Write ブロックは直接接続と Merge ブロックに置き換えられます。読み取り/書き込みのペアが If サブシステムの境界を越え、かつ Write ブロックがサブシステム内にあるモデルの場合、Else Subsystem ブロックが追加されることもあります。
モデル トランスフォーマー ツールは、Data Store Memory ブロックが定義するローカル データ ストアのみを削除します。このツールはグローバル データ ストアを削除しません。Data Store Memory ブロックの場合は、ブロック パラメーターのダイアログ ボックスの [信号属性] タブで、[データ ストア名を Simulink の信号オブジェクトに関連付ける] パラメーターをオフにしなければなりません。
モデル トランスフォーマーを使用してローカル データ ストア ブロックを削除することによるモデルの可読性の改善
モデル data_store_elimination
には、B
と A
の 2 つのローカル データ ストアが含まれています。データ ストア B
には、2 つの Data Store Read ブロックと 1 つの Data Store Write ブロックがあります。データ ストア A
には、1 つの Data Store Write ブロックと 1 つの Data Store Read ブロックがあります。赤の数字はソートされた実行順序を表します。
データ ストア ブロックの置き換え
置き換えの条件を満たすデータ ストア ブロックを特定します。次に、これらのブロックを直結信号線、Delay ブロックまたは Merge ブロックに置き換えるモデルを作成します。
モデル
data_store_elimination
を開きます。モデルを作業フォルダーに保存します。
[アプリ] タブで、[モデル トランスフォーマー] をクリックします。
[変換] フォルダーで、[データ ストア ブロックを削除] チェックを選択します。
[リファクタされたモデルの接頭辞] フィールドで、リファクタリングされたモデルの接頭辞を指定します。
[このチェックを実行] ボタンをクリックします。上部の [結果] テーブルには、Data Store Memory ブロックと、それに対応し削除条件を満たす Data Store Read ブロックおよび Data Store Write ブロックへのハイパーリンクが含まれています。
[モデルのリファクタリング] ボタンをクリックします。下部の [結果] テーブルには、新しいモデルへのハイパーリンクが含まれています。ツールによって
m2m_ex_data_store_replacement
フォルダーが作成されます。このフォルダーにはgen_ex_data_store_replacement.slx
モデルが含まれています。
ローカル データ ストア A
の場合、gen_ex_bus_struct_in_code.slx
には、Data Store Write ブロックの代わりに Delay ブロックが、Data Store Read ブロックの代わりに直接信号接続が含まれています。ローカル データ ストア B
の場合、gen_ex_bus_struct_in_code.slx
には、Bias ブロックから Out2
への直接信号接続が含まれています。
制限
モデル トランスフォーマーは、次の条件を満たす Data Store Read ブロックおよび Data Store Write ブロックを置き換えません。
Enabled Subsystem、Triggered Subsystem、Function-Call Subsystem などの条件付き実行サブシステムの境界および Stateflow チャートの境界を越えている。
If-Action Subsystem の相互排他的な分岐を完成しない。
バリアントの境界を越えている。
複数の入力または出力がある。
配列の一部にアクセスする。
実行レートが異なる。
ライブラリ サブシステムの異なるインスタンス内に存在し、相対的な実行順序が異なる。
関連するトピック
- モデルのリファクタリング
- データ ストア
- 生成されたコード内のデータ ストア (Simulink Coder)