主要内容

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

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

配置向导块库

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

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

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

  • ERT目标的定点代码生成

  • 使用ERT目标生成浮点代码

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

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

Custom块提供了一个示例MATLAB文件脚本,您可以根据自己的需求进行调整。

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

添加配置向导块

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

  1. 打开要配置的模型。

  2. 通过键入命令打开Embedded Coder块库rtweclib

  3. 双击配置向导图标。“配置向导”子库打开。

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

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

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

  7. 保存模型。

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

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

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

请注意

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

创建自定义配置向导块

自定义配置向导块和相关的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. 图书馆选项卡上,选择>图书馆.从“Simulin金宝appk开始页”中选择空白库。打开一个空的图书馆窗口。

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

  4. 要将自定义块与原始块区分开来,请编辑自定义MATLAB文件在块下做标签。

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

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

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

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

  3. 默认情况下,在配置之后调用构建过程参数被清除。您可以通过选择此选项更改自定义块的默认值。现在,请清除此参数。

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

  5. 拯救图书馆。

  6. 关闭“嵌入式编码器”块库和“配置向导”子库。保持自定义库打开,以便在下一个任务中使用。

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

  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_param而且get_param功能。

选项名被传递到set_param而且get_param作为字符向量指定内部选项名称.内部选项名称可以与用户界面上的选项标签不同(例如,“配置参数”对话框)。每个都附带了示例配置set_param而且get_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,使命令设置:

STF = 'ert.tlc';TMF = 'ert_default_tmf';MC = 'make_rtw';

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

switchTarget (cs算法,[]);

使用命令设置模板的makefile和make命令选项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属性:您的代码可以通过检查ERT目标来检测当前选择的目标是否派生自ERT目标IsERTTarget属性,如下:

    isERT = strcmp(get_param(cs,' isertarget '),'on');

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

if isERT set_param(cs,'ZeroExternalMemoryAtStartup','off');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”);

相关的话题