Programatically changing block parameter during simulation.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I am automatically changing the amplitude value of my sin wave block in my model. But the problem is that my program runs the simulation multiple times and do not change the values of amplitude during one simulation. this is the code:
amplitude_vec=(0.5:0.2:2.3);
for i=1:10
amplitude=amplitude_vec(i);
sim('Amplifier.mdl');
end;
How do i write a program that will change the values of amplitude of my sin wave block in one simulation run ?
Thanks for your help,
Janez
2 Kommentare
Akzeptierte Antwort
Azzi Abdelmalek
am 25 Aug. 2012
Bearbeitet: Azzi Abdelmalek
am 26 Aug. 2012
amplitude_vec=(0.5:0.2:2.3);
for k=1:10
amplitude=amplitude_vec(k);
set_param('Amplifier/Sine Wave','Amplitude',num2str(amplitude))
%check if "Sine Wave" is the name of your sine block, if not, replace it
sim('Amplifier');
end;
or you can use (you don't need to pause simulation)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/171740/image.gif)
- the below code allows to create a signal with multiple amplitude saved in "file.mat"
- you set sine amplitude to 1
amplitude_vec=(0.5:0.2:2.3);
t0=0;tf=5;te=0.1;
tf1=tf;t=[];amp=[];
for k=1:length(amplitude_vec)
t1=t0:te:tf;
t=[t t1 ];
amp=[ amp amplitude_vec(k)*ones(1,length(t1))];
t0=tf+te;tf=t0+tf1
end
close;plot(t,amp);
ty=[t;amp];
save file ty
2 Kommentare
Azzi Abdelmalek
am 26 Aug. 2012
Bearbeitet: Azzi Abdelmalek
am 26 Aug. 2012
you can use the "assertion" block to pause your simulation
Weitere Antworten (1)
Mariano Lizarraga
am 25 Aug. 2012
Bearbeitet: Mariano Lizarraga
am 25 Aug. 2012
I might be misunderstanding your problem statement but if you only want to change the amplitude base on the time of the simualtion then you could do an embedded matlab function as follows:
function y = timeDependentSine(t, amplitude, freq, phase, bias)
y = amplitude*sin(freq*t + phase) + bias;
and now all the parameters for the sine function can be time varying if you so desire. You can implement all in Simulink as shown here: http://skit.ch/nwn1
0 Kommentare
Siehe auch
Kategorien
Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!