列优先布局到模型的行优先布局转换与查找表块

万博1manbetx编码器的Sim万博1manbetxulink™支持代码生成行主要阵列布局。您可以集成使用行为主阵列布局与行主阵列布局生成的代码现有的应用程序。当切换用查找表(LUT)从列为主阵列布局的行主阵列布局块现有模型,建议给LUT块从列优先算法来行主算法转换。通过使用行主算法执行与最佳的速度,并与行主阵列布局上表中的数据进行操作时的内存使用情况生成的代码。通过使用列优先算法生成的代码执行最好列主阵列布局。

这个例子中示出了从列为主布局转换用LUT块模型,以行优先布局,以实现上的行主阵列布局的最佳性能的工作流程。

在这个例子中,您可以:

  • 标识阵列布局和选择优化的算法。

  • 保留通过表置换语义。

  • 通过使用行主算法和阵列布局生成代码。

模拟,并通过使用列的主要算法生成代码

1。打开示例模型rtwdemo_row_lutcol2row_workflow

open_system('rtwdemo_row_lutcol2row_workflow');

默认情况下,配置的Sim万博1manbetxulink模型使用列主要算法和列主阵列布局。这些参数的配置参数对话框中的配置参数。

2。造型选项卡,单击来模拟模型和观察输出记录在工作空间可变YOUT

3。更改MATLAB®当前文件夹可写文件夹。在C代码选项卡,单击建立生成的C代码。

选择优化算法,行主阵列布局

与行主阵列布局表数据在校准的领域中经常使用的。与现有的模型接口行为主表数据,更新列主模型对行主表中的数据有效地运作。

使用为指定数组优化算法布局,以达到最佳性能。例如,使用行主算法时阵列布局设为行主在代码生成。

1。为了使行优先算法中,打开配置参数对话框。在数学和数据类型窗格中,选择配置参数使用算法行主要阵列布局优化。另外,在MATLAB命令窗口中输入:

set_param('rtwdemo_row_lutcol2row_workflow''UseRowMajorAlgorithm''上');

2。请点击模拟模型。万博1manbetx因为它遇到prelookup和插块之间不一致的断点和表数据的Simulink报告错误。这个错误的原因是,当你从列主要算法切换到行主要算法出现两个语义的变化,那就是,当你:

  • 从内插块3-d表中选择的面。

  • 通过直接查找表块选择从4 d表的平面。

保留语义利用表排列

1。用于内插的子表之前选择,或直接查找输出一个矢量或2- d矩阵,当通过选择配置参数从一个列优先算法的行主算法切换模型语义更改使用算法行主要阵列布局优化。为了保持语义和修复以前的错误,通过使用这些命令置换表中的数据:

T4d_str = get_param('rtwdemo_row_lutcol2row_workflow /直接LUT''表');set_param('rtwdemo_row_lutcol2row_workflow /直接LUT''表'...[“置换(”,T4d_str,'[3,4,1,2])']);
T3d_str = get_param('rtwdemo_row_lutcol2row_workflow / Interp2''表');set_param('rtwdemo_row_lutcol2row_workflow / Interp2''表'...[“置换(”,T3d_str,'[3,1,2])']);

2。从文件导入表数据之前,必须置换文件表中的数据。这种排列保持整个仿真和代码生成的工作流程表可调。

代码生成利用行优先算法和阵列布局

置换表中的数据后,配置的Simulink模型万博1manbetxrtwdemo_row_lutcol2row_workflow对于行主要模拟。该模型相当于预配置模型rtwdemo_row_lutcol2row_workflow_rowrow已置换表数据和使用行为主算法。

1。打开示例模型rtwdemo_row_lutcol2row_workflow_rowrow

open_system('rtwdemo_row_lutcol2row_workflow_rowrow');

2。要建立这些模型行为主代码生成后,打开配置参数对话框。除了启用使用算法行主要阵列布局优化配置参数,对代码生成>接口面板中,将配置参数阵列布局行主选项。该阵列布局参数,可以对行主代码生成模型。另外,在MATLAB命令窗口中输入:

%有关模式“rtwdemo_row_lutcol2row_workflow_rowrow”set_param('rtwdemo_row_lutcol2row_workflow_rowrow''ArrayLayout'“行优先”);%有关模式“rtwdemo_row_lutcol2row_workflow”set_param('rtwdemo_row_lutcol2row_workflow''ArrayLayout'“行优先”);

3。在块对话框,检查置换3-d表。

4。更改MATLAB当前文件夹可写文件夹。在C代码选项卡,单击建立生成的C代码。在生成的代码,观察与行主阵列布局中的表数据

在生成的代码,所述的memcpy功能替换对于循环。运用的memcpy减少用于存储数据的存储器的量。这种优化提高执行速度。

请遵守行主要的数据优化算法。

close_system('rtwdemo_row_lutcol2row_workflow',0);close_system('rtwdemo_row_lutcol2row_workflow_rowrow',0);

相关话题