Simulink C-caller with persistent fcn
3 次查看(过去 30 天)
显示 更早的评论
I'd like to have a short fcn in Simulink called by C-caller
if (state>0)
{
state = -1;
y = 0.1;
} else if (state < 0)
{
state = 1;
y = -0.1;
} else
y=0;
I need to have "state" variable as peristent, can I have a persistent variable within C-caller?
Thank you.
0 个评论
回答(2 个)
Shantanu Dixit
2024-11-1
Hi Jack,
You can make the 'state' variable persistent within a C-caller block in Simulink by declaring it as 'static' in your C function. This ensures that the 'state' retains its value between calls to the function, effectively making it persistent across simulation time steps.
Hope this helps!
0 个评论
David Balbuena
2024-11-6
You could use the C Function block instead. The C Function block lets you put that code directly in the block mask, and it also lets you define "state" to be a persistent symbol. This example shows how to do that: https://www.mathworks.com/help/simulink/ug/modify-states-of-a-c-function-block-using-persistent-scope.html
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Environment Customization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!