dsp.SineWave in Matlab function block not generating sine wave on the scope
7 次查看(过去 30 天)
显示 更早的评论
When the plot function is called it generates the desired wave. However when a scope is used to observe this , constant values are rather observed. The same output is observed when the dispaly block is used - all values are generated at once even for a single step. What could I be doing wrongly here?
It also takes a long time to complete simulation when used in Simulink compared to Matlab.
See below the code.
function y = fcn()
sine1 = dsp.SineWave('Amplitude',1,'Frequency',60,'PhaseOffset',0,'SamplesPerFrame',1000,'OutputDataType','double');
y = sine1();
The idea is to later make the amplitude an argument(input) to the block so it can be varied.The application will be to make a closed loop control that uses over modulaton of SPWM..
0 个评论
回答(1 个)
Abderrahim. B
2022-7-28
Hi!
Why do not you use sinWave block available in dsp system simulink library instead of writing a MATLAB function for that ? You will be able to change block parameters Check out the link below to learn about dsp system toolbox signal generation capabilities:
Hope this helps
5 个评论
Sam Chak
2022-7-29
Hi Andrew,
Varying the amplitude of the sine wave is probably easier than you think.
This is the equation:
x(t) = Amp*[1*sin(2*pi*Freq*t)]
where you can define how the Amplitude should behave, perhaps as a function of time, t. For example, in the MATLAB Function block,
Amp = V/(1 + exp(- k*(t - t0))) + Offset.
Then, multiply Amp with the output of the Sine wave block.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Sources 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!