Inizialize variable s function builder C

3 views (last 30 days)
alessandro mutasci
alessandro mutasci on 13 Oct 2022
Answered: Manas on 8 Sep 2023
Good evening, I have read the manual for S function, but I still couldnt understand how to inizialize an array in the s function boiler block. I hope someone could help me, telling me how to inizialize a variabile, lets say an array of 10 elements, that is an intemediate variabile in the script, I fill the array with the input.. in C I use the following code: static double a{}. Thank you.

Answers (1)

Manas
Manas on 8 Sep 2023
Hi Alessandro Mutasci,
I understand that you are facing difficulties conceptualizing defining variables and managing them in S functions.
To initialize variables which in your case is an array, you need to first allocate the appropriate amount of space. You can use the “ssSetUserDataSize” and “ssSetOptions” functions for this purpose.
ssSetUserDataSize(YourStructElement, sizeof(double) * ARRAY_SIZE);
Later, you can follow basic C constructs and paradigms to input a variable, loop over the array and assign data.
I would highly recommend looking at S function examples from the MATLAB documentation here https://www.mathworks.com/help/simulink/sfg/s-function-examples.html to gain more clarity.

Categories

Find more on Block and Blockset Authoring in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!