Save and plot the Simout from simulink for every iteration of For loop applied in MATLAB
    조회 수: 13 (최근 30일)
  
       이전 댓글 표시
    
I Wish to change the parameter of Block T1 of Simulink and then i need to plot the graph and compare these 5 plots.
Hence i have for loop in MATLAB and controlled the paramters from MATLAB script using set_param.
Please refer the profgram below. 
The problem i m not getting the ouput for 5 different plots and i end up getting only the last value of the iteration. i.e 
i get the output values for only parameter with block T1 =  '1'. 
how can i save the output from simout at each iteration and plot the graphs.
Please help. Thanks in Advance.
I m writing my program below for reference
open_system('Belgium');
for i = 1:5
    if i==1
        set_param('Belgium/T1','Value','0');
    elseif i==2
        set_param('Belgium/T1','Value','0.1');
    elseif i==3
        set_param('Belgium/T1','Value','0.2');
    elseif i==4
        set_param('Belgium/T1','Value','0.5');
    else 
        set_param('Belgium/T1','Value','1');
sim('Belgium');
open_system('Belgium/Scope3');
x = zeros(102,80);
y = zeros(102,80);
voltage = zeros(102,1);
time = zeros(102,1);
voltage = ans.simout.data;
time = ans.simout.time;
x(:,i)= voltage;
y(:,i)= time;
plot(y(:,i),x(:,i));
    end
댓글 수: 0
답변 (1개)
  Pavan Guntha
    
 2021년 8월 30일
        Hello Mayur,
For storing output of simout at each iteration, you could create a 2D array and use 'i' as index to write data into it as illustrated below:
voltage(i,:) = ans.simout.data;
time(i,:)    = ans.simout.time;
Hope this helps!
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

