dsp.SineWave in Matlab function block not generating sine wave on the scope
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Abderrahim. B
il 28 Lug 2022
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 Commenti
Sam Chak
il 29 Lug 2022
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.
Vedere anche
Categorie
Scopri di più su Sources in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!