Use Simulink time variable in a Matlab Function
133 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Ameer Hamza
2020-9-23
编辑:Ameer Hamza
2020-9-23
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 个评论
Matthew Mishrikey
2021-12-10
编辑:Matthew Mishrikey
2021-12-10
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 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!