能量守恒matlab,【文章】仿真设计作品--能量守恒

icon1.gif 【文章】仿真设计作品--能量守恒

pole=1.8;

xmax=2;

ymax=2;

basew=2.3;

baseh=2.3;

instant=0.2;

figure('name','理想情况下能量守恒定律1','position',[500,340,440,320]);

fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,-ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax-0.05,ymax-0.05],[0,1,1]);

hold on;

fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[ymax-0.5 ,ymax-0.55,ymax-0.55,ymax-0.5],'g');

hold on;

text(1.0,1.7,'真空容器');text(-1.8,1.7,'主视图');

axis([-basew,basew,-baseh,baseh]);

axis('off');

theta0=7*pi/6;

x0=pole*cos(theta0);

y0=pole*sin(theta0)+1.5;

body1=line([-instant,x0-instant],[1.5,y0],'color','r','linestyle','-','erasemode','xor');

head1=line(x0-instant,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);

theta1=3*pi/2;

x1=pole*cos(theta1);

y1=pole*sin(theta1)+1.5;

body=line([-0.001,x1],[1.5,y1],'color','k','linestyle','-','erasemode','xor');

head=line(x1,y1,'color','k','linestyle','.','erasemode','xor','markersize',40);

body2=line([instant;x1+instant],[1.5;y1],'color','b','linestyle','-','erasemode','xor');

head2=line(x1+instant,y1,'color','b','linestyle','.','erasemode','xor','markersize',40);

theta3=15*pi/6 ;

figure('name','理想情况下能量守恒定律2','position',[500,40,440,320]);

fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,-ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax-0.05,ymax-0.05],[0,1,1]);

hold on;

fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[ymax-0.5 ,ymax-0.55,ymax-0.55,ymax-0.5],'g');

hold on;

fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[-ymax+0.55 ,-ymax+0.5,-ymax+0.5,-ymax+0.55 ],'g');

hold on;

text(1.0,1.7,'真空容器');text(-1.8,1.7,'俯视图');

axis([-basew,basew,-baseh,baseh]);

axis('off');

y01=0;

body11=line([-instant,x0-instant],[1.5,y01],'color','r','linestyle','-','erasemode','xor');

body12=line([-instant,x0-instant],[-1.5,y01],'color','r','linestyle','-','erasemode','xor');

head01=line(x0-instant,y01,'color','r','linestyle','.','erasemode','xor','markersize',40);

body01=line([-0.001,x1],[1.5,y01],'color','k','linestyle','-','erasemode','xor');

body02=line([-0.001,x1],[-1.5,y01],'color','k','linestyle','-','erasemode','xor');

head00=line(x1,y01,'color','k','linestyle','.','erasemode','xor','markersize',40);

body21=line([instant;x1+instant],[1.5;y01],'color','b','linestyle','-','erasemode','xor');

body22=line([instant;x1+instant],[-1.5;y01],'color','b','linestyle','-','erasemode','xor');

head02=line(x1+instant,y01,'color','b','linestyle','.','erasemode','xor','markersize',40);

figure('name','理想情况下能量守恒定律3','position',[50,340,440,320]);

fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,-ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax-0.05,ymax-0.05],[0,1,1]);

hold on

text(1.0,1.7,'真空容器');text(-1.8,1.7,'侧视图');

axis([-basew,basew,-baseh,baseh]);

axis('off');

x01=0;x02=1.48;y02=1.48;

head000=line(-x02,y02,'color','g','linestyle','.','erasemode','xor','markersize',18);

head000=line(x02,y02,'color','g','linestyle','.','erasemode','xor','markersize',18);

body311=line([-x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');

body312=line([x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');

head301=line(x01,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);

body301=line([-x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');

body302=line([x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');

head300=line(x01,y1,'color','k','linestyle','.','erasemode','xor','markersize',40);

body321=line([-x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');

body322=line([x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');

head302=line(x01,y1,'color','b','linestyle','.','erasemode','xor','markersize',40);

while 1

theta0=theta0+pi/540;

theta3=theta3-pi/540;

if theta0>=15*pi/6

theta0=7*pi/6;

theta3=15*pi/6 ;

elseif (theta0>=7*pi/6)&(theta0<3*pi/2)

x11=pole*cos(theta0);

y11=pole*sin(theta0)+1.5;

set(body1,'xdata',[-instant,x11-instant],'ydata',[1.5,y11]);

set(head1,'xdata',x11-instant,'ydata',y11);

set(body11,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);

set(body12,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);

set(head01,'xdata',x11-instant,'ydata',y01);

set(body311,'xdata',[-x02,x01],'ydata',[y02,y11]);

set(body312,'xdata',[x02,x01],'ydata',[y02,y11]);

set(head301,'xdata',x01,'ydata',y11);

elseif (theta0>=3*pi/2)&(theta0<11*pi/7)

x22=pole*cos(theta0);

y22=pole*sin(theta0)+1.5;

set(body2,'xdata',[instant,x22+instant],'ydata',[1.5,y22]);

set(head2,'xdata',x22+instant,'ydata',y22);

set(body21,'xdata',[instant,x22+instant],'ydata',[1.5,y01]);

set(body22,'xdata',[instant,x22+instant],'ydata',[-1.5,y01]);

set(head02,'xdata',x22+instant,'ydata',y01);

set(body321,'xdata',[-x02,x01],'ydata',[y02,y22]);

set(body322,'xdata',[x02,x01],'ydata',[y02,y22]);

set(head302,'xdata',x01,'ydata',y22);

elseif (theta0>=11*pi/6 )&(theta0<=13*pi/6 )

x32=pole*cos(theta3);

y32=pole*sin(theta3)+1.5;

set(body2,'xdata',[instant,x32+instant],'ydata',[1.5,y32]);

set(head2,'xdata',x32+instant,'ydata',y32);

set(body21,'xdata',[instant,x32+instant],'ydata',[1.5,y01]);

set(body22,'xdata',[instant,x32+instant],'ydata',[-1.5,y01]);

set(head02,'xdata',x32+instant,'ydata',y01);

set(body321,'xdata',[-x02,x01],'ydata',[y02,y32]);

set(body322,'xdata',[x02,x01],'ydata',[y02,y32]);

set(head302,'xdata',x01,'ydata',y32);

elseif (theta0>=13*pi/6 )&(theta0<15*pi/6 )

x41=pole*cos(theta3);

y41=pole*sin(theta3)+1.5;

set(body1,'xdata',[-instant,x41-instant],'ydata',[1.5,y41]);

set(head1,'xdata',x41-instant,'ydata',y41);

set(body11,'xdata',[-instant,x41-instant],'ydata',[1.5,y01]);

set(body12,'xdata',[-instant,x41-instant],'ydata',[-1.5,y01]);

set(head01,'xdata',x41-instant,'ydata',y01);

set(body311,'xdata',[-x02,x01],'ydata',[y02,y41]);

set(body312,'xdata',[x02,x01],'ydata',[y02,y41]);

set(head301,'xdata',x01,'ydata',y41);

drawnow;

end

end

2005年10月30日发表在《麓瑜园》

(注:本文转自转自《麓瑜园》,版权归原作者所有!在此仅作交流讨论之用,如需转载请注明原作者!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值