4
// Sliding pendulum, curve #2
9
getf("SCI/demos/dae/pendg.sci")
10
getf("SCI/demos/dae/pendc2.sci")
13
g=10; l=1; m=1; M=1; k=0.5;
14
x0=[1;1+cos(omega)/3;0]; u0=[0;0;0];
16
ud0=[0;-g;0]; yd0=[u0;ud0;0];
20
info=list([],0,[],[],[],0,0);
21
atol=[0.0001;0.0001;0.0001;0.0001;0.0001;0.0001;0.001];
24
sol=dassl([y0,yd0],t0,T,rtol,atol,pendg,info);
26
x=sol(2,:); y=sol(3,:); teta=sol(4,:); n=size(x,"*");
28
xp=x+l*sin(teta); yp=y-l*cos(teta);
29
xp1=x+(l-r)*sin(teta); yp1=y-(l-r)*cos(teta);
34
xmin=-1.5; xmax=1.5; ymin=-1.1; ymax=0.9;
35
vx=[xmin:0.01:xmax]'; vy=vx.*vx+cos(omega*vx)/3;
36
plot2d(vx,vy,5,"032"," ",[xmin,ymin,xmax,ymax])
39
xset("alufunction",6); driver("X11")
42
plot2d([x(i);xp1(i)],[y(i);yp1(i)],1,"000")
43
xfarc(xp(i)-r,yp(i)+r,2*r,2*r,0,360*64)
46
plot2d([x(i);xp1(i)],[y(i);yp1(i)],1,"000")
47
xfarc(xp(i)-r,yp(i)+r,2*r,2*r,0,360*64)
50
xset("alufunction",1); driver("Rec")
51
plot2d([x(ifin);xp(ifin)],[y(ifin);yp(ifin)],1,"000")
52
xfarc(xp(ifin)-r,yp(ifin)+r,2*r,2*r,0,360*64)