Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

可变大小信号的生成代码

Aarti最近发布了关于可变大小信号在仿真金宝app软件。韩寒回应道这样的评论

Aarti,
我感兴趣的是对可变大小信号的RTW生成代码的影响。你能举几个例子吗?

以下是Aarti的回应。

Aarti Ramani

嗨,汉族,

谢谢你的评论。在可变大小信号的情况下,生成的代码为输入/输出变量分配最大可能的大小。

这允许信号大小在执行过程中变化(而不是在模型编译后硬编码)。生成的代码还通过模型传播信号大小,并相应地为信号分配所需的维度。算法代码只需要操作所需的内存部分(因此节省了执行时间)。

下面的模型使用开关块来改变其输出信号的大小。

金宝app包含开关和增益块的Simulink模型,处理可变大小的信号。

生成的代码如下所示:

/* Switch: '
             /Switch'合并:*导入:'
              /In1' *导入:'
               /In2' *导入:'
                /In3' */ if (In2 >= 0.0) {model_XDim = 1;X[0] = In1;} else {model_XDim = 5;For (tmp = 0;TMP < 5;{X[tmp] = In3[tmp];}} /*增益:'
                 /Gain' */ model_YDim = model_XDim;loop_ub = model_XDim - 1;For (tmp = 0;TMP <= loop_ub;{Y[tmp] = 2.0 * X[tmp];}
               
              
             
            

在生成的代码中,请注意变量model_Xdim将下界和上界预先分配为1和5,5是第三个导入块的宽度。使用这些值,loop_ub为Switch块计算变量。

谢谢!

Aarti

这是您期望的代码吗?留下一个这里的评论跟我说说。

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。