MATLAB Answers

How can I tell EmbeddedCo​der/Simuli​nkCoder to not evaluate expressions containing Matlab tunable parameters when generating C-code from Simulink?

조회 수: 3(최근 30일)
Matphree
Matphree 9 Jun 2017
답변: Ben Rancici 30 Sep 2019
Hi, I have a saturation block in Simulink where I set upper and lower limits based on a tunable parameter and have the output port generated as global variable:
In the generated C-code the lower limit expression is evaluated to:
srt_gyroXsaturated = rtU.gyro_X >= srt_gyroLimitX ? srt_gyroLimitX :
rtU.gyro_X <= -0.349040151F ? -0.349040151F : rtU.gyro_X;
What I want is that '-srt_gyroLimitX' is not evaluated to '-0.349....' but left "as is" in the generated code. How can I achive that?

  댓글 수: 0

댓글을 달려면 로그인하십시오.

답변(2개)

Saurabh Gupta
Saurabh Gupta 2 Aug 2017
For tunability in code generation, the parameter needs to be a variable. Parameters specified as expressions are evaluated and inlined. You could specify the limits as 2 separate variables to ensure that code generation preserves the tunability.

  댓글 수: 1

Matphree
Matphree 10 Oct 2017
Yeah, that what I did, but I prefer to have one +/-limit, is that possible?

댓글을 달려면 로그인하십시오.


Ben Rancici
Ben Rancici 30 Sep 2019
Same question as Matphree: how to prevent block parameter evaluation in the generated code?
I don't understad Saurabh Gupta's solution.

  댓글 수: 0

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by