通过消除本地数据存储块来提高模型的可读性

您可以使用模型转换器工具通过替换来提高模型的可读性数据存储内存,数据存储读取,数据存储写块与一个直接信号线,a延迟块,或合并块。对于总线信号,工具还可以添加总线的创造者总线选择器块作为替换的一部分。通过使数据依赖显式,替换这些块可以提高模型的可读性。模型转换器使用这些替换创建一个模型。新模型具有与现有模型相同的功能。

模型转换器可以替换这些数据存储:

  • 对于非总线的信号,如果a数据存储读取块在数据存储写块,工具用a替换这些块延迟块。

  • 对于非总线的信号,如果a数据存储写块在数据存储读取块,该工具用直接连接替换这些块。

  • 对于总线信号,如果写入总线元素在读取总线之前执行,则该工具将替换数据存储读取数据存储写带有直接连接和总线创建器块的块。

  • 对于总线信号,如果对总线的写入在读取总线元素之前执行,则该工具将替换数据存储读取数据存储写块具有直接连接和a总线选择器块。

  • 对于有条件执行的子系统,该工具将替换数据存储读取数据存储写块具有直接连接和a合并块。对于其中的读/写对交叉于如果子系统边界和写入块位于子系统内部,该工具还可以添加一个Else子系统块。

Model Transformer工具只消除本地数据存储数据存储内存块定义。该工具不会消除全局数据存储。为数据存储内存块,信号的属性在“块参数”对话框中,必须清除数据存储名称必须解析为Simulink信号对象万博1manbetx参数。

示例模型

该模型ex_data_store_elimination包含两个本地数据存储:B一个。对数据存储B有两个数据存储读取块和一个数据存储写块。对数据存储一个有一个数据存储写块和一个数据存储读取块。红色的数字表示排序后的执行顺序。

替换数据存储块

识别符合替换条件的数据存储块。然后,创建一个模型,用直接的信号线代替这些信号块,延迟块,或合并块。

  1. 打开模型ex_data_store_elimination。在MATLAB®命令行输入:

    目录(fullfile (docroot,“工具箱”,“模型”,“示例”万博1manbetx))ex_data_store_elimination

  2. 将模型保存到工作文件夹中。

  3. 在Simuli万博1manbetxnk编辑器中,从分析菜单中,选择重构模型>模型转换器。要以编程方式打开模型转换器,在MATLAB命令提示符下,输入以下命令:mdltransformer (“ex_data_store_replacement”)

  4. 转换文件夹,选择消除数据存储块检查。

  5. 重构模型的前缀字段,指定重构模型的前缀。

  6. 单击运行这个检查按钮。顶部结果的超链接数据存储内存块和相应的数据存储读取数据存储写符合淘汰条件的方块。

  7. 单击重构模型按钮。底部结果表中包含到新模型的超链接。该工具创建了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

限制

模型转换器不替换满足以下条件的数据存储读写块:

  • 它们跨越了有条件执行的子系统(如启用、触发或功能调用子系统)和状态图的边界。

  • 它们不能完成If-Action子系统的互斥分支。

  • 它们跨越了变体的界限。

  • 它们有多个输入或输出。

  • 它们访问数组的一部分。

  • 它们以不同的速率执行。

  • 它们位于库子系统的不同实例中,具有不同的相对执行顺序。

相关的话题