how i can compute a signal derivative inside MATLAB function block without extra blocks
Ältere Kommentare anzeigen
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)?
Antworten (1)
Swarooph
am 27 Okt. 2016
- 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.

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 Kommentar
khalil youcefa
am 28 Okt. 2016
Bearbeitet: khalil youcefa
am 28 Okt. 2016
Kategorien
Mehr zu Simulink finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!