Represent Simulink Integrator block as Matlab Function
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
River Rock
il 4 Dic 2012
Commentato: Edward Rodriguez
il 10 Ago 2020
Hi.
I need to implement the following behavior :

The Integrator and my_Integrator blocks have to be equivalent I/O.
How should I write the Matlab Function ?
Thanks for any reply.
2 Commenti
Risposta accettata
Ryan G
il 4 Dic 2012
As this looks like a homework problem, I can't answer directly. However I will point you in the direction of persistent variables.
0 Commenti
Più risposte (4)
Azzi Abdelmalek
il 7 Dic 2012
Modificato: Azzi Abdelmalek
il 8 Dic 2012
I don't know why do you need this, maybe if you explain exactly what you need, there is better way
9 Commenti
Azzi Abdelmalek
il 8 Dic 2012
Modificato: Azzi Abdelmalek
il 8 Dic 2012
Ok, I see, If T is constant, you must then set, in model configuration parameters your fixed step time to T, and also your step block sample time to T. In this case you don't need a clock.
function y = fcn(u)
persistent uold yold
T=0.01;
if isempty(uold)
uold=0;yold=0;
end
y = u*T+yold-(u-uold)*T/2
yold=y;uold=u;
Guy Rouleau
il 5 Dic 2012
This is not a good idea. The MATLAB function is not designed for this purpose.
1 Commento
Edward Rodriguez
il 10 Ago 2020
Excuse me, so, What would be a good idea to implement numerical integration methods in blocks in Simulink?
River Rock
il 5 Dic 2012
Modificato: River Rock
il 6 Dic 2012
4 Commenti
Ryan G
il 5 Dic 2012
What you have written is close it would be more like:
y(z) = yOld+u(z)/SampleTime
You cannot use the ODE solver in the MATLAB function block.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!