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.

 채택된 답변

Ameer Hamza
Ameer Hamza 2020년 9월 23일
편집: Ameer Hamza 2020년 9월 23일

0 개 추천

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

Thanks a lot. I didn't know that it is possible to use the clock block for the simulation time.
I am glad to be of help!
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Simulink에 대해 자세히 알아보기

제품

릴리스

R2020a

질문:

2020년 9월 23일

편집:

2021년 12월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by