ロ,カルデ,タストアブロックの削除によるモデルの可読性の改善
モデルトランスフォ,マ,,ルを使用すると,数据存储内存ブロック,数据存储读取ブロック,および数据存储写ブロックを直結信号線,延迟ブロック,または合并ブロックに置き換えることにより,モデルの可読性を改善できます。バス信号の場合,ルによる置き換えの一環として总线的创造者ブロックまたは总线选择器ブロックが追加されることもあります。これらのブロックを置き換えると,デ,タの依存関係が明示的になるため,モデルの可読性が改善されます。モデルトランスフォ,マ,は,これらの置換を使用してモデルを作成します。新しいモデルの機能は既存のモデルと同じです。
モデルトランスフォ,マ,は,次のデ,タストアを置き換えることができます。
バス以外の信号にいて,数据存储读取ブロックが数据存储写ブロックより前に実行される場合,ルによりこれらのブロックは延迟ブロックに置き換えられます。
バス以外の信号にいて,数据存储写ブロックが数据存储读取ブロックより前に実行される場合,これらのブロックは直接接続に置き換えられます。
バス信号にいて,バス要素への書き込みがバスの読み取りより前に実行される場合,数据存储读取ブロックと数据存储写ブロックは直接接続と总线创建者ブロックに置き換えられます。
バス信号にいて,バスへの書き込みがバス要素の読み取りより前に実行される場合,数据存储读取ブロックと数据存储写ブロックは直接接続と总线选择器ブロックに置き換えられます。
条件付き実行サブシステムの場合,数据存储读取ブロックと数据存储写ブロックは直接接続と合并ブロックに置き換えられます。読み取り/書き込みのペアが如果サブシステムの境界を越え,かつ写ブロックがサブシステム内にあるモデルの場合,其他子系统ブロックが追加されることもあります。
モデルトランスフォ,マ,,ルは,数据存储内存ブロックが定義するロ,カルデ,タストアのみを削除します。このタストアを削除しません。数据存储内存ブロックの場合は、ブロックパラメ、タ、のダ、アログボックスの[信号属性]タブで,[デ.タストア名をSi金宝appmulinkの信号オブジェクトに関連付ける]パラメ,タ,をオフにしなければなりません。
モデル例
モデルex_data_store_elimination
には,B
と一个
の2のロカルデタストアが含まれています。デ,タストアB
には,2の数据存储读取ブロックと1の数据存储写ブロックがあります。デ,タストア一个
には,1の数据存储写ブロックと1の数据存储读取ブロックがあります。赤の数字はソ,トされた実行順序を表します。
デ,タストアブロックの置き換え
置き換えの条件を満たすデ,タストアブロックを特定します。次に,これらのブロックを直結信号線,延迟ブロックまたは合并ブロックに置き換えるモデルを作成します。
モデル
ex_data_store_elimination
を開きます。MATLAB®コマンドラ@ @ンで以下のように入力します。目录(fullfile (docroot,“工具箱”,“模型”,“示例”金宝app))ex_data_store_elimination
モデルを作業フォルダ,に保存します。
[アプリ]タブで,[モデルトランスフォ,マ,]をクリックします。または,matlabコマンドプロンプトで次のコマンドを入力します。
mdltransformer(“ex_data_store_elimination”)
[変換]フォルダ,で,[デ,タストアブロックを削除]チェックを選択します。
[リファクタされたモデルの接頭辞]フィ,ルドで,リファクタリングされたモデルの接頭辞を指定します。
[このチェックを実行]ボタンをクリックします。上部の[結果]テ,ブルには,数据存储内存ブロックと,それに対応し削除条件を満たす数据存储读取ブロックおよび数据存储写ブロックへのハ▪▪パ▪▪リンクが含まれています。
[モデルのリファクタリング]ボタンをクリックします。下部の[結果]テ,ブルには,新しいモデルへのハ,パ,リンクが含まれています。ルによって
m2m_ex_data_store_replacement
フォルダ,が作成されます。このフォルダ,にはgen_ex_data_store_replacement.slx
モデルが含まれています。
ロ,カルデ,タストア一个
の場合,gen_ex_bus_struct_in_code.slx
には,数据存储写ブロックの代わりに延迟ブロックが,数据存储读取ブロックの代わりに直接信号接続が含まれています。ロ,カルデ,タストアB
の場合,gen_ex_bus_struct_in_code.slx
には,偏见ブロックからOut2
への直接信号接続が含まれています。
制限
モデルトランスフォーマーは,次の条件を満たす数据存储读取ブロックおよび数据存储写ブロックを置き換えません。
启用子系统,子系统,触发函数调用子系统などの条件付き実行サブシステムの境界およびStateflowチャートの境界を越えている。
If-Action子系统の相互排他的な分岐を完成しない。
バリアントの境界を越えている。
複数の入力または出力がある。
配列の一部にアクセスする。
実行レ,トが異なる。
ラ▪▪ブラリサブシステムの異なる▪▪ンスタンス内に存在し,相対的な実行順序が異なる。
関連するトピック
- モデルのリファクタリング
- デ,タストア
- 生成されたコ,ド内のデ,タストア(金宝app仿真软件编码器)