- Place your entire code in a regular MATLAB function .m file, and call it from Simulink using an Interpreted MATLAB Function block instead.
- Place just the unsupported piece (the generation of the function handle) in a separate function and call it as interpreted using coder.extrinsic.
How can I use a function handle in Simulink "matlab function" block?
9 次查看(过去 30 天)
显示 更早的评论
Hello,
I am trying to simulate this first order function
*function [f,h] = Model_First_order(u,deltat)
f=@(x)[x(1)+deltat*(-x(2)*x(1)+u(1)); x(2)]; h=@(x)x(1);*
using the function handle in Simulink Matlab function block. But as I try to simulate it, it gives me an error that
Anonymous functions are not supported for code generation. Function 'Model_first_order' (#23.313.314), line 21, column 3: "@" Launch diagnostic report. Component: MATLAB Function | Category: Coder error
Please help me to solve this problem.
0 个评论
回答(1 个)
Sebastian Castro
2015-8-11
编辑:Sebastian Castro
2015-8-11
If you won't be generating code from your Simulink model (i.e., you just want a desktop simulation), you could do a few things:
... or, my favorite approach:
3. Given that you seem to be modeling some kind of first-order set of equations, it would probably be MUCH easier (and numerically accurate) to implement the equations in Simulink with Integrator blocks!
- Sebastian
2 个评论
Vignesh Ramakrishnan
2023-6-12
编辑:Vignesh Ramakrishnan
2023-6-12
@Sebastian Castro, quick follow-up on this question: Say I have solved a first order ODE in Simulink and called the simulink file say ode.slx, using:
y=sim("ode.slx");
I wish to make a function handle for this call, and hopefully make a phase portrait with a quiver plot and contour lines. Is there some way to pull that off?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Event Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!