Looping a simulink model for multiple time-input

Hello, I am trying to run a simple simulink model but i would like to automate the input from a m.file. It should run 201 times since there are 201 columns of time-input and report the output into a matrix. Is there any way to do this? thank you
load F.mat % attached
p=1:201 % number of columns
Force=zeros(512,201)
for n=1:p
Force=F(:,p)
sim('test') % below
end

 Accepted Answer

load F.mat % attached
% a matrix of F is loaded, it is a 512x201 double array
p=size(F,2) % number of columns
for n=1:2 % for testing first, change it to be "for n=1:p" later
Force=F(:,n)
sim('test') % below
end

3 Comments

Thank you so much.
But i think, I am overwriting the output results after each column irerations? Is there a way i can save the results into a matrix array? thanks
load F.mat % % a matrix of F is loaded, it is a 512x201 double array
Tin=linspace(0,30,512)'; % time steps 30 seconds
SimT=[Tin F]
p=size(SimT,2) % number of columns
for n=2:3 % for testing first, change it to be "for n=1:p" later
Force=[Tin SimT(:,n)]
sim('test',Tin) % below
end
Not like that. p would be 202 because SimT has 202 columns.
load F.mat % % a matrix of F is loaded, it is a 512x201 double array
p=size(F,2) % number of columns
Tin=linspace(0,30,p)'; % time steps 30 seconds
Results=cell(1,p);
for n=1:3 % for testing first, change it to be "for n=1:p" later
Force=[Tin F(:,n)]
Results{n}=sim('test',Tin) % below
end
Thank you
I got the code to work. This is final code.
load F.mat % % a matrix of F is loaded, it is a 512x100 double array
p=size(F,2) % number of columns
Tin=linspace(0,30,512)'; % time steps 30 seconds
Results=cell(1,p);
for n=1:p % for testing first, change it to be "for n=1:p" later
Force=[Tin F(:,n)]
Results{n}=sim('test',Tin) % below
end

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!