配置环路解滚阈值
的环展开阈值参数。优化窗格确定宽信号或参数何时应包装成为
循环,当它应该为信号的每个元素生成一个单独的语句时。缺省阈值为5。
例如,考虑下面的模型:
增益块的增益参数是矢量myGainVec
.
假设循环展开阈值设置为缺省值5。
如果myGainVec
声明为
myGainVec = [1:10];
一个包含10个元素的数组,myGainVec_P。Gain_Gain []
对象中声明Parameters_
数据结构。增益数组的大小超过了环路展开阈值。因此,为Gain块生成的代码迭代数组中的数组模型
为
循环,如下代码所示:
{int32_T i1;/*增益:'<根>/增益' */ for(i1=0;i1 < 10;i1++) {myGainVec_B。增益[i1] = rtb_foo * myGainVec_P.Gain_Gain[i1];}}
如果myGainVec
声明为
myGainVec = [1:3];
一个包含三个元素的数组,myGainVec_P。Gain_Gain []
对象中声明参数
数据结构。增益数组的大小低于循环展开阈值。生成的代码包含对数组每个元素的内联引用,如下面的代码所示。
/*增益:'<根>/增益' */ myGainVec_B. /增益[0]= rtb_foo * mygainvec_p .增益[0];myGainVec_B。增益[1]= rtb_foo * mygainvec_p .增益[1];myGainVec_B。增益[2]= rtb_foo * mygainvec_p .增益[2];
看到探索变量名和循环滚动有关循环滚动的更多信息。
请注意
当模型包含状态流时®图或MATLAB函数块时,您可以应用一组状态流优化优化窗格。为状态流选项选择的设置也适用于MATLAB函数模型中的块。这是因为MATLAB函数块和状态流程图构建在相同的技术之上,并共享一个代码库。您不需要使用状态流许可证MATLAB函数块。
请注意
如果你的MATLAB函数块包含两个嵌套的代码为
循环:
如果内部循环的迭代次数小于阈值,代码生成器将首先展开内部循环。随后,如果两个循环的迭代次数的乘积也小于阈值,则代码生成器展开外部循环。否则,代码生成器生成外部
为
循环。如果内部循环的迭代次数等于或大于阈值,代码生成器将同时生成
为
循环对于n维数组,代码生成器展开每个相邻的循环,直到循环迭代的乘积小于阈值。