Use Simulink time variable in a Matlab Function
51 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Thomas Schütz
il 23 Set 2020
Modificato: Matthew Mishrikey
il 10 Dic 2021
Hello everybody,
I want to implement a Matlab function into my Simulink Model, where I upconvert a signal to 24 GHz. I therefore want to implement the function y = real(u*exp(i*2*pi*24e9*t) as a Matlab function, where u is a complex time signal which is created in Simulink and t stands for the time in Simulink. I now somehow need to get the variable t of my Simulink project into my Matlab function in order to calculate the given function, but I dont know how to implement the variable t.
Thanks in advance for helping.
0 Commenti
Risposta accettata
Ameer Hamza
il 23 Set 2020
Modificato: Ameer Hamza
il 23 Set 2020
You can directly create MATLAB function inside Simulink using MATLAB function block: https://www.mathworks.com/help/simulink/ug/creating-an-example-model-that-uses-a-matlab-function-block.html. To feed the simulation time, use the clock block: https://www.mathworks.com/help/simulink/slref/clock.html.
3 Commenti
Matthew Mishrikey
il 10 Dic 2021
Modificato: Matthew Mishrikey
il 10 Dic 2021
I tried to do something like your suggestion using a function block, but Matlab says it contains a block that updates persistent or state variables while computing outputs and is not supported in an algebraic loop.
function switch_control = current_monitor(current, clock)
persistent starttime;
persistent tripped;
if isempty(starttime)
starttime = 0;
end
if isempty(tripped)
tripped = false;
end
if (current > 10)
starttime = clock;
if ((clock - starttime) > 0.2)
tripped = true;
end
end
if(tripped)
switch_control = 0;
else
switch_control = 1;
end
end
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!