优化工具和技术

使用模型顾问来优化代码生成模型

您可以使用模型顾问分析代码生成模型,并确定你的模型阻碍生产部署或限制代码效率的方面。您可以从一组检查选择在一个模型的当前配置下运行。模型顾问分析模型,并生成检查结果提供在每个领域的改进建议。大多数型号顾问诊断不需要模型是编译状态;那些确实被注意到。

运行模型顾问前,选择要使用的代码生成目标。模型顾问工作最有效地与ERT和基于ERT-系统目标文件。

使用下面的例子来探讨使用模型顾问代码生成优化模型:

注意

例如型号rtwdemo_advisor2rtwdemo_advisor3Stateflow的要求®和定点设计师™软件。

有关使用模型顾问的详细信息,请参阅运行模型顾问检查(万博1manbetxSIMULINK)。有关检查的详细信息,请参阅万博1manbetxSimulink的编码器检查

设计技巧用于优化生成的代码Stateflow的对象

不要访问机与父母数据以图形功能

这种限制可以防止长参数列表出现在用于在图形函数生成的代码。您可以访问驻留在同一个图表的图形功能在本地数据。欲了解更多信息,请参阅重用逻辑模式定义图形函数(Stateflow的)。

明确显示的图形功能的内嵌期权

当您使用Stateflow框图中的图形功能,选择排队要么功能该属性内联函数选项。否则,当你想为一个图形函数生成的代码可能不会出现。欲了解更多信息,请参阅指定图形功能属性(Stateflow的)。

避免在Stateflow图使用多个边沿触发事件

如果你使用一个以上的触发,产生多个代码语句处理上升沿或下降沿检测。如果需要多个触发器,使用函数调用事件,而不是。欲了解更多信息,请参阅通过发送输入事件激活Stateflow框图(Stateflow的)。

结合图表的输入信号转换成单总线对象

当您使用总线对象,可以减少在生成的函数的参数列表中的参数的数量。此指南还适用于图表的输出信号。欲了解更多信息,请参阅定义Stateflow的结构(Stateflow的)。

使用图表与离散采样时报

用于离散图表不属于触发或启动子系统使用整数计数器内部产生的代码,用于跟踪时间而不是Simulink的万博1manbetx®提供时间。这允许更有效的代码生成的开销和存储器方面,以及使使用这个代码在软件合环(SIL)和处理器在环(PIL)模拟。

其他优化技术

您可以应用以下方法来优化代码生成的模型:

  • 对于嵌入式编码器®用户,如果你的应用程序只使用整数运算,清除万博1manbetx支持浮点数参数在软件环境的部分接口窗格使得所生成的代码不包含浮点数据或操作。当这个参数被清除,如果代码生成过程中遇到的非整数数据或表达式引发错误。该错误消息报告的冒犯块和参数。

  • 禁用配置参数>代码生成>接口>高级参数>MAT-文件记录参数。取消此参数消除了额外的代码和内存使用初始化,更新和清理,日志记录变量。此外,产生的支撑MAT-文件记录就调用代码万博1manbetx的malloc,这可能是不希望为您的应用。

  • 使用升级顾问来升级旧型号(由之前的版本或当前版本保存)使用电流的功能。有关详细信息,请参阅型号升级(万博1manbetxSIMULINK)。

  • 建筑,集优化标记编译器(例如之前,-02对于GCC-ot为了微软®VISUAL C ++®编译器)。

  • 直接在线C / C ++ S-功能到所生成的代码写为S-功能的TLC文件。欲了解更多信息,请参阅加快仿真,重用代码,或使用S-功能目标保护知识产权看看联C MEX S函数

  • 使用比其他S万博1manbetximulink的数据类型若有可能。可用的数据类型布尔符号和无符号8-位,16位和32位整数,并将32位和64位浮点(一是一个64位的浮点)。欲了解更多信息,请参阅关于在Simulink数据类型万博1manbetx(万博1manbetxSIMULINK)。对于一个块逐块摘要,请点击showblockdatatypetable或键入命令窗口中的命令。

  • 可调谐块参数您在生成的代码配置为存储在存储器中,可以匹配信号的数据类型参数的数据类型,以消除不必要的类型转换和C的变化。如果可能的话,在小整数数据类型存储参数值。看到在生成的代码的参数数据类型

  • 在查找表中的数据删除重复值。

  • 使用合并块尽可能到输出合并的信号。当你需要用Stateflow的图表来控制的函数调用子系统执行此块是特别有帮助。下面的模型显示了如何使用合并块的例子。

    当连接到合并块多于一个的信号具有非汽车存储类,所有的非汽车连接到该块必须信号被标注相同的符号具有相同的存储类。当合并块直接连接到彼此,这些规则适用于连接到任何组中的合并块的信号。

相关话题