Simulink SFunction Interface Error: due to insufficient storage
1 次查看(过去 30 天)
显示 更早的评论
Very simple function block, with matrices input and constants total less than 80MB. Sample time 1, Simulation Duration 2. Code runs as a snap in Matlab. Moved into a system model failed in compilation (Xp 32-bit, 4GB) with error:
MATLAB Function Interface Error: Error calling generated SFunction, test_sfun, due to insufficient storage. This is most likely due to large static arrays in the generated code. Disabling debugging may help.
Same model compile and run perfectly on: Win7 x64 Matlab x64 8GB system
Can anyone please comment on this, the model has a keyword: simple.
Or maybe there is an SFuntion design criteria I should have read.
Thanks,
0 个评论
回答(3 个)
Fred Smith
2012-7-18
Have you tried turning off debugging in the MATLAB Function block? That usually has a dramatic effect and allows many more examples to work.
Kaustubha Govind
2012-7-16
Are you using the (Embedded) MATLAB Function block to bring your MATLAB code into Simulink? The MATLAB Function block generates C-code from the MATLAB code before executing it (and runs it via a C-MEX S-function), so it is slightly different from running the code directly in MATLAB. Perhaps 80MB is too large for the program stack on 32-bit Windows. You could try converting your large data into global variables and see if that helps. Please see Using Global Data with the MATLAB Function Block for more information.
2 个评论
Kaustubha Govind
2012-7-17
The %#codegen doesn't change anything about the functioning of the block - AFAIK, it is mostly used only for M-Lint analysis to check your code for code-generation compatibility. I'm not sure what the program stack limit is - I'm guessing it changes by platform and the selected MEX compiler?
If you don't want C code to be generated, you might want to use the Interpreted MATLAB Function block instead - note that this block only allows for one input and one output.
Actually, I'm not sure if the memory issue is specific to the Embedded MATLAB Function block, or to Simulink, but the Interpreted MATLAB block is worth a try.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Model Verification 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!