主要内容

使用配置向导块配置和优化模型

嵌入的编码器®软件提供了一个配置向导块和脚本库,以帮助您配置和优化从模型生成的代码。

配置向导块库

库提供了可以自定义的配置向导块。它还提供了四个预置的Configuration Wizard块,用于更新指定目标的活动配置参数。

描述
定制MATLAB文件 使用自定义文件更新父模型的活动配置参数
ERT(为定点优化) 更新用于ERT定点代码生成的父模型的活动配置参数
ERT(为浮点型优化) 更新用于生成ERT浮点代码的父模型的活动配置参数
GRT(用于固定/浮点调试) 在启用调试的情况下,为GRT固定或浮点代码生成更新父模型的活动配置参数
GRT(针对固定/浮点优化) 更新用于生成GRT固定或浮点代码的父模型的活动配置参数

当您添加一个预设的配置向导块到您的模型并双击它,一个预定义的MATLAB®文件脚本配置活动配置集的参数,无需手动干预。预置块可为下列情况之一优化配置参数:

  • 定点代码生成与ERT目标

  • 浮点代码生成与ERT目标

  • 在启用TLC调试参数的情况下,使用GRT目标生成定点或浮点代码。

  • 使用GRT目标生成定点或浮点代码

自定义块提供了一个MATLAB文件脚本示例,可以适应您的需求。

您还可以设置Configuration Wizard块来在配置模型之后调用构建流程。

添加配置向导块

“配置向导”块可在“嵌入式编码器”块库中获得。使用配置向导块:

  1. 打开要配置的模型。

  2. 输入命令打开Embedded Coder块库rtweclib

  3. 双击配置向导图标。将打开Configuration Wizards子库。

  4. 选择要使用的Configuration Wizard块并将其拖放到模型中。该模型包含ERT(为定点优化)配置向导。

  5. 如果您希望配置向导块在配置之后调用构建过程,右键单击模型中的配置向导块,并选择Mask >掩码参数从上下文菜单。然后,选择配置后调用构建过程参数。不要改变为以下内容配置模型块参数,除非您想创建自定义块和脚本。这样的话,你看创建自定义配置向导块

  6. 点击应用关闭“屏蔽参数”对话框。

  7. 保存模型。

使用配置向导块配置您的模型

将Configuration Wizard块添加到模型后,要配置模型,请双击该块。与块关联的脚本设置与代码生成(包括目标的选择)相关的活动配置集的参数。打开“配置参数”对话框并检查参数设置,可以看到参数已经更改。

如果您选择配置后调用构建过程块参数时,脚本还将启动代码生成和构建过程。

请注意

要提供在配置之间切换的快速方法,您可以向您的模型添加多个Configuration Wizard块。

创建自定义配置向导块

自定义配置向导块和相关的MATLAB文件脚本,matlabroot/工具箱/编码器/ simul金宝appinkcoder_core /rtwsampleconfig.m,为定制提供一个起点。

设置配置向导块

设置自定义配置向导块并将其链接到脚本。如果您想在多个模式中使用块,最好创建一个Simulink金宝app®库来包含块。

首先,为以后的自定义复制一个示例脚本:

  1. 要存储自定义脚本,请创建一个文件夹。这个文件夹不能在MATLAB文件夹结构中的任何地方(也就是说,它不能在matlabroot).

    示例将此文件夹称为/ my_wizards

  2. 将文件夹添加到MATLAB路径中。为以后的会话保存路径。

  3. 复制示例脚本rtwsampleconfig.m在文件夹matlabroot/工具箱/ rtw /环球套票开放)/ my_wizards您创建的文件夹。然后,重命名脚本。本例使用了这个名称my_configscript.m

  4. 在MATLAB编辑器中打开示例脚本。滚动到文件的末尾并输入以下代码行:

    disp('自定义配置向导脚本完成');

    该语句稍后用作测试,以查看自定义块是否执行了脚本。

  5. 保存脚本并关闭MATLAB编辑器。

下一个任务是创建一个Simulink库并向它添加一个自定义金宝app块。

  1. 打开内嵌代码块库和配置向导子库,请参见添加配置向导块

  2. 图书馆选项卡上,选择>图书馆.从Simulink金宝app开始页,选择一个空白库。一个空的图书馆窗口打开了。

  3. 选择定制MATLAB文件块,并将其拖到空库窗口中。

  4. 要将自定义块与原始块区分开来,请编辑定制MATLAB文件在积木下面贴上标签。

  5. 图书馆选项卡上,选择保存>另存为.保存库到/ my_wizards文件夹,在选择的库名称下。在该图中,库被保存为ex_custom_button这个块被标记了my_wizard MATLAB-file

下一个任务是链接自定义块到自定义脚本:

  1. 右键单击模型中的块并选择Mask >掩码参数从上下文菜单。的为以下内容配置模型菜单设置为自定义.当自定义被选中,配置功能编辑字段启用,以便您可以输入自定义脚本的名称。

  2. 配置功能字段,输入自定义脚本的名称。(请勿进入.m文件扩展名,这是隐式的。)

  3. 默认情况下,配置后调用构建过程参数是清除。您可以通过选择此选项来更改自定义块的默认值。目前,请将此参数设置为清除。

  4. 点击应用关闭“屏蔽参数”对话框。

  5. 保存库。

  6. 关闭Embedded Coder块库和Configuration Wizards子库。保持自定义库打开,以便在下一个任务中使用。

在模型中测试您的块和脚本。

  1. 打开vdp通过键入命令建立模型:

    vdp
  2. 打开“配置参数”对话框,单击,查看参数信息代码生成在对话框左侧窗格的列表中。

  3. 观察到vdp默认情况下,为GRT目标配置。关闭“配置参数”对话框。

  4. 从自定义库中选择自定义块。将块拖到vdp模型。

  5. vdp模型,双击自定义块。

  6. 在MATLAB窗口中,您可以看到之前添加到脚本中的测试消息:

    自定义配置向导脚本已完成。

    测试消息表明自定义块执行了脚本。

  7. 重新打开“配置参数”对话框并查看代码生成窗格。现在已经为ERT目标配置了模型。

在对自定义脚本进行进一步编辑之前,请继续阅读下一节,了解配置向导脚本的操作和约定。

创建配置向导脚本

通过复制和修改示例脚本,创建自定义配置向导脚本,rtwsampleconfig.m

配置功能。示例脚本实现了一个没有返回值的函数。该函数接受一个参数cs

函数rtwsampleconfig (cs)

这个论点cs是专有对象的句柄,该对象包含有关活动配置集的信息。当您双击金宝appconfiguration Wizard块时,Simulink软件获得这个句柄并将其传递给配置函数。

您的自定义脚本必须符合这个原型。代码必须使用cs作为一个“黑盒”对象,在活动配置集之间传输信息。

接入配置配置参数。设置参数或获取参数值,请使用Simulink金宝appset_paramget_param功能。

选项名传递给set_paramget_param作为指定an的字符向量内部选项名称.内部选项名称可以与UI上的选项标签不同(例如,配置参数对话框)。每个示例都附带了配置set_paramget_param调用时带有一个注释,该注释将内部选项名称与UI选项标签关联起来。例如:

set_param (cs,“寿命”,' 1 ');%应用程序寿命(天)

要获取活动配置集中某个选项的当前设置,调用get_param.通过在cs对象作为第一个参数,后面跟着内部选项名称。例如,下面的代码片段测试创建代码生成报告选择:

if strcmp(get_param(cs, 'GenerateReport'), 'on')…

要在活动配置集中设置选项,请调用set_param.通过在cs对象作为第一个参数,后面跟着一个或多个参数/值对,这些参数/值对指定内部选项名称及其值。例如,下面的代码片段关闭金宝app支持绝对时间选择:

set_param (cs,金宝app“SupportAbsoluteTime”,“关闭”);

选择一个目标。配置向导脚本必须选择目标配置。示例脚本使用ERT目标作为默认值。脚本首先存储与所需相对应的字符向量变量系统目标文件模板makefile,使命令设置:

月31 =“ert.tlc”;tmf =“ert_default_tmf”;mc =“make_rtw”;

的方法来选择系统目标文件cs对象和月31字符向量switchTarget功能:

switchTarget (cs算法,[]);

使用set_param电话:

set_param (cs, TemplateMakefile tmf);set_param (cs, MakeCommand, mc);

要选择目标,您的自定义脚本必须设置字符向量变量月31tmf,mc然后把它们传递给电话。

获取目标器和配置集信息。属性提供了以下实用程序函数和属性,以便您的代码可以获得关于当前目标和配置集的信息cs对象:

  • “选项”isValidParam (cs):选项参数是一个内部选项名。isValidParam返回true,如果选项可以通过使用get_param在激活的配置集上下文中调用。

  • “选项”getPropEnabled (cs):选项参数是一个内部选项名。返回true选项启用(即可写)。

  • IsERTTarget属性:您的代码可以通过检查IsERTTarget属性,如下:

    isERT = strcmp (get_param (cs,“IsERTTarget”),“在”);

您可以使用这些信息来确定脚本是否必须配置特定于ert的参数,例如:

如果isERT set_param (cs、“ZeroExternalMemoryAtStartup”、“关闭”);set_param (cs,“ZeroInternalMemoryAtStartup”,“关闭”);set_param (cs,“InitFltsAndDblsToZero”,“关闭”);set_param (cs,“NoFixptDivByZeroProtection”,“上”)

从命令行调用配置向导脚本

配置向导脚本可以从MATLAB命令行运行。

在调用脚本之前,您必须打开一个模型并实例化cs对象作为参数传递给脚本。在运行脚本之后,可以使用slbuild命令。下面的示例打开、配置并构建一个模型。

开放my_model;cs = getActiveConfigSet ('my_model'); / /设置模型rtwsampleconfig (cs);slbuild(“my_model”);

相关的话题