When building a Simulink model, my s-function output is generated as a constant and the build process stops with an error

3 visualizaciones (últimos 30 días)
I've created an S-Function block with 6 inputs and 1 output, but when I build the project, the output is being generated as a constant and the build exits with an error.
In the TLC file I use the InitializeConditions function to initialize the output, but it crashes because the output is being generated as a constant:
"f_test_ecu.c", line 9529: error (etoa:4137): expression must be a modifiable lvalue
f_test_ecu_ConstB.SFunction = 4;
^
What are the constrainst that may cause an output of a S-Function to be generated as a constant?
Is it something that must be specified in the S-Function? I've compared with other working S-Functions and I don't see diferences.

Respuestas (1)

Amit Dhakite
Amit Dhakite el 14 de Mzo. de 2023
Hi Nelson,
As per my understanding, your S-Function block is generating a constant as the output, which results in an error in the build process.
Upon further investigation, I have identified certain constraints within the S-Function which causes the output port to generate constant values. To address this, I recommend reviewing the information provided in the following link, which contains valuable insights on the topic:
  1 comentario
Nelson Bernardino
Nelson Bernardino el 17 de Mzo. de 2023
Thank you. The S-Function sample time was set to -1 (inherit) and all the inputs where of the constant type with sample time inf.
After setting the sample times to different values, I had success.

Iniciar sesión para comentar.

Categorías

Más información sobre Block and Blockset Authoring en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by