Definite integral in (embedded) Matlab function
Mostra commenti meno recenti
Hi
I am trying to implement an evolutionary optimization algorithm in the middle of a simulink model via (embedded) matlab function. There is a need for computing a definite integral in the algorithm. Therefore in the first step and just for understanding the issue, the following definite integral was coded in (embedded) matalb editor:
function Q = DefinitIntegral(up,lo)
%#up & lo are inputs of the block as upper and lower limits of integration
Q=quad(@myfun,lo,up);
function y = myfun(x)
y = x.^2+2*x+1;
But an error occurred:
The function 'quad' is not supported for standalone code generation. See the documentation for coder.extrinsic to learn how you can use this function in simulation.
How could it be fixed
Best regards, Sahand Radmanesh
Risposte (4)
Fred Smith
il 12 Nov 2012
1 voto
In later versions the MATLAB Function block supports QUAD directly, so if you can upgrade that is your best option.
Azzi Abdelmalek
il 11 Nov 2012
0 voti
If you don't need to run in real time, instead of embedded function, use Matlab function.
2 Commenti
sahand
il 11 Nov 2012
Azzi Abdelmalek
il 11 Nov 2012
Modificato: Azzi Abdelmalek
il 11 Nov 2012
You have to make your own code (trapezoidal rule for example) http://en.wikipedia.org/wiki/Trapezoidal_rule very easy to do
Walter Roberson
il 11 Nov 2012
0 voti
If possible, integrate symbolically first and use the closed form formula, instead of trying to integrate in your embedded code.
2 Commenti
sahand
il 11 Nov 2012
Walter Roberson
il 11 Nov 2012
What constraints can you give as to what the function to be integrated will look like? It is not practical to numerically integrate arbitrary functions with arbitrary accuracy in any real-time digital system, but if the functions are sufficiently "well-behaved" it might be practical.
Mike Hosea
il 1 Mar 2013
0 voti
Use QUADGK, not QUAD.
Categorie
Scopri di più su Texas Instruments C2000 Processors in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!