主要内容

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

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

Model Transformer可以替换这些数据存储:

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

  • 对于不是总线的信号,如果a数据存储写块在数据存储读取块,该工具取代这些块与直接连接。

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

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

  • 对于有条件执行的子系统,该工具将替代数据存储读取数据存储写块与直接连接和合并块。用于读/写对跨越如果子系统边界和Write块在子系统内部,工具也可以添加一个Else子系统块。

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

示例模型

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

更换数据存储块

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

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

    目录(fullfile (docroot,“工具箱”,“模型”,“示例”金宝app))ex_data_store_elimination

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

  3. 应用程序选项卡上,单击模型变压器。或者,在MATLAB命令提示符中,输入以下命令:

    mdltransformer(“ex_data_store_elimination”)

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

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

  6. 单击运行这个检查按钮。顶部结果的超链接数据存储内存块和相应的数据存储读取数据存储写有资格被淘汰的区块。

  7. 单击重构模型按钮。底部结果表格包含一个到新模型的超链接。该工具创建m2m_ex_data_store_replacement文件夹中。此文件夹包含gen_ex_data_store_replacement.slx模型。

用于本地数据存储一个gen_ex_bus_struct_in_code.slx的位置包含一个Delay块数据存储写块和直接信号连接的地方数据存储读取块。用于本地数据存储Bgen_ex_bus_struct_in_code.slx包含一个直接的信号连接偏见Out2

限制

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

  • 它们跨越了有条件执行的子系统(如Enabled、Triggered或Function-Call子系统)和状态流图的边界。

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

  • 它们跨越了变种的边界。

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

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

  • 他们的执行速度不同。

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

相关的话题