Use Simulink time variable in a Matlab Function

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.

 Respuesta aceptada

Ameer Hamza
Ameer Hamza el 23 de Sept. de 2020
Editada: Ameer Hamza el 23 de Sept. de 2020

0 votos

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 comentarios

Thomas Schütz
Thomas Schütz el 23 de Sept. de 2020
Thanks a lot. I didn't know that it is possible to use the clock block for the simulation time.
Ameer Hamza
Ameer Hamza el 23 de Sept. de 2020
I am glad to be of help!
Matthew Mishrikey
Matthew Mishrikey el 10 de Dic. de 2021
Editada: Matthew Mishrikey el 10 de Dic. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Simulink en Centro de ayuda y File Exchange.

Productos

Versión

R2020a

Preguntada:

el 23 de Sept. de 2020

Editada:

el 10 de Dic. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by