MATLAB Answers

0

Is it possible to assign arrays with different length for LUT parameters in generated code than in Simulink?

Asked by Karthik Vemireddy on 12 Jun 2019
Latest activity Edited by Nick Sarnie on 1 Jul 2019
Hi,
I intend to generate C-Code out of my simulink model using Simulink Coder (ert.tlc). I wish to tune certain parameters of simulink model and for this reason, i have created simulink objects with "ImportedExternPointer" storage class.
While compiling and generating the code, the length of arrays for breakpoint and table data of a particular lookup table was 15000. I wish to tune these parameters, not just by the values, but also by the length of these arrays. I hoped that defining them as pointers would allow me to do so. However in the code, the function for lookup table looks as follows
real_T look1_bftfId_binlagpw(real_T u0, const real32_T bp0[], const real32_T
table[], uint32_T maxIndex)
and correspondingly, the code snippet for the relevant lookup table is as below.
look1_bftfId_binlagpw
(InputSignal->Timing.t[0], BreakpointData,
TableData, 15000U)
Is there a way to remove this restriction and give different sized array as inputs?
Thanks and best regards,
Karthik

  0 Comments

Sign in to comment.

1 Answer

Answer by Nick Sarnie on 28 Jun 2019
Edited by Nick Sarnie on 1 Jul 2019
 Accepted Answer

Edit: See below response

  1 Comment

Hi,
upon looking up the documentation again, i have found the following:
Based on it, i have chosen the following options
LUTSnapshot.PNG
and then the defined the MaxIdx as dataobject.... The generated code now has :
real_T look1_bftfId_binlagpw(real_T u0, const real32_T bp0[], const real32_T
table[], uint32_T maxIndex)
and the relevant LUT Code is as follows:
rtb_Saturation_c = look1_bftfId_binlagpw(rtb_alpha_y, BreakpointData,
TableData, *MaxIdx);
It had replaced the upperlimit with relevant variables at all the required places...
For the cases, that i have tested till now, it works :)
Best R'gds
Karthik

Sign in to comment.