- I would like to point out the fact that the derivative block has its limitation. Please refer to the documentation page here.
- Note from the documentation that, all it does is calculate change in input over change in time. You can do that using a combination of Memory and Clock blocks. Screenshot and code below.
how i can compute a signal derivative inside MATLAB function block without extra blocks
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am feeding a signal q into a MATLAB Function block - for example a sinusoid (it could be something else too). My MATLAB Function block also needs the time derivative of the signal. In Simulink I can do something like this:
my question is: How do I get qdot inside MATLAB Function without using any extra blocks (and removing the Derivative block above obviously)?
0 comentarios
Respuestas (1)
Swarooph
el 27 de Oct. de 2016
function [y,ydot] = fcn(q,qdel,t,tdel)
y = q; %First output is the input signal itself
delT = t - tdel; % Calculate time interval
delU = q - qdel; % Calculate signal change
if delT > 0 % Check if it is not the first time step
ydot = delU/delT; % Calculate change in input over change in time
else
ydot = 0; % Arbitrarily set derivative to 0 if it is the first time step
end
end
1 comentario
Ver también
Categorías
Más información sobre Simulink Functions en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!