Animated Vectors Plot with data coming from Simulink

1 view (last 30 days)
[EDIT: 20110729 12:11 CDT - reformat - WDR]
I've been able to do this:
for t=1:360
hold on
corda=0.3;
r=0.3;
a=0;
b=0.2;
c=0.2;
d=0;
e=0.2;
f=0.2;
g=-0.2;
h=-0.2;
z=(-1*(r+corda));
x=(r+corda);
axis([z x z x]);
Dpercent=[0.00,1.25,2.50,5.00,7.50,10.00,15.00,20.00,30.00,40.00,50.00,60.00,70.00,80.00,90.00,95.00,100.00,100.00,95.00,90.00,80.00,70.00,60.00,50.00,40.00,30.00,20.00,15.00,10.00,7.50,5.00,2.50,1.25,0.00];
x=corda.*((Dpercent-25.00)./100);
Ypercent=[0.00,2.37,3.27,4.44,5.25,5.85,6.68,7.17,7.50,7.25,6.62,5.70,4.58,3.28,1.81,1.01,0.16,-0.16,-1.01,-1.81,-3.28,-4.58,-5.70,-6.62,-7.25,-7.50,-7.17,-6.68,-5.85,-5.25,-4.44,-3.27,-2.37,0.00];
y=r+(corda.*(Ypercent./100));
X=x.*cos(t*(2*pi)/360)-y.*sin(t*(2*pi)/360);
Y=x.*sin(t*(2*pi)/360)+y.*cos(t*(2*pi)/360);
plot(X,Y);
r1=0.*cos(t*(2*pi)/360)-r.*sin(t*(2*pi)/360);
r2=0.*sin(t*(2*pi)/360)+r.*cos(t*(2*pi)/360);
R1=[0,r1];
R2=[0,r2];
plot(R1,R2);
quiver(r1,r2,a,b);
quiver(r1,r2,c,d);
quiver(r1,r2,e,f);
quiver(r1,r2,g,h);
M(t)=getframe
clf
end
movie(M);
Now I need to esport simulation data from simulink to matlab's workspace.
I used the block "simout to workspace" I tryed to specify that I need a simple ARRAY variable type but it LOVES to SAVE MY DATA AS:
simout <1x1x64 double>
I need a simple array made of 64 elements with my numerical value inside. My model is costant time division made so I don't need time information.
(Anyway could be usefull in tre future to know wow to obtain a two rows 64 coloumn matrix with a row for time and a row for values)
I don't know how to build a simple array from my
simout <1x1x64 double>
For exemple to use it for defining the vectors component in the animation.
I need a simple exemple of script in which you take an array made like myne (simout double coming from "simout to workspace" setted like "ARRAY" type) and use it to plot it:
Wrong exemple:
A=[1:64];
plot(A,simout);
That exemple doesn't work....
How to make it run?
Does anybody knows?
thankyou.
  1 Comment
Walter Roberson
Walter Roberson on 29 Jul 2011
duplicate is at http://www.mathworks.com/matlabcentral/answers/11922-animated-vectors-plot-with-data-coming-from-simulink-with-explaining-images

Sign in to comment.

Answers (3)

Graziano Ullucci
Graziano Ullucci on 29 Jul 2011
This script work but, anybody knows a faster way tho download the values ftom simout into A?
A=[simout(:,:,1),simout(:,:,2),simout(:,:,3),simout(:,:,4) ------------ simout(:,:,500]; B=[1:500]; Plot(B,A);
Probably it is not very difficult someone can help me?

Graziano Ullucci
Graziano Ullucci on 29 Jul 2011
For exemple this doesn't work
B=[1:500]; A=[VwrX(:,:,B)]; plot(B,A);
It is faster but don't work. suggestions?

Graziano Ullucci
Graziano Ullucci on 29 Jul 2011
That's Work grate!
A=length(simout);
B=[1:A];
ArrayOUT(1,B)=simout(:,:,B);
thank You Myself! you're Grate!
  1 Comment
Fangjun Jiang
Fangjun Jiang on 29 Jul 2011
Be careful, length() is equal to max(size()). It may not be the number you want.

Sign in to comment.

Categories

Find more on Simulation 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!