完全弹性碰撞matlab
- 格式:docx
- 大小:93.34 KB
- 文档页数:10
单自由度含间隙的碰撞matlab在工程学和物理学领域,研究物体的碰撞是非常重要的。
特别是在机械系统中,了解碰撞的过程和影响对于设计和优化系统至关重要。
单自由度系统是一个被广泛用于研究碰撞的简化模型,而含有间隙的碰撞则更贴近现实情况。
在本文中,我们将使用matlab来探索单自由度含间隙的碰撞问题,并分析其影响。
1. 单自由度系统的建模单自由度系统是指只有一个自由度可以运动的系统。
在碰撞问题中,可以将一个简单的弹簧-质量系统作为单自由度系统进行研究。
假设系统中只有一个质点,它可以沿着一条直线运动,并且与一个弹簧相连。
当质点受到外力作用时,会产生振动。
为了建模这样的系统,可以使用牛顿第二定律和胡克定律,建立质点的运动微分方程。
2. 含间隙的碰撞在实际情况中,很少有系统会完全没有间隙地进行碰撞。
考虑一个弹簧-质量系统,在质点受到外力作用振动时,如果外力突然消失,质点会继续振动直到它的动能全部转化为弹性势能。
这种情况下,系统会存在一个间隙,即质点与弹簧的最大伸长距离。
当质点振动到最大位移时,与弹簧发生碰撞,这就是含间隙的碰撞过程。
3. 用matlab模拟单自由度含间隙的碰撞要用matlab模拟单自由度含间隙的碰撞,首先需要建立质点的运动微分方程。
考虑质点的位移、速度和加速度,以及弹簧的力学特性,可以得到微分方程。
需要定义外力的突然消失以及碰撞的条件。
当质点振动到最大位移时,即发生碰撞,系统的动能和弹性势能之间会发生转化。
在matlab中编写程序,对微分方程进行数值求解,并绘制出质点振动的模拟图像。
4. 结论和个人观点通过matlab的模拟,我们可以清晰地看到含间隙的碰撞对单自由度系统的影响。
碰撞后,质点的振动会发生改变,弹簧的振动也会产生不同的响应。
这种模拟有助于我们更好地理解质点-弹簧系统在碰撞时的动态特性。
个人认为,matlab是一个非常强大的工具,能够帮助工程师和科学家更好地研究和分析复杂的系统,尤其在碰撞和动力学方面有着广泛的应用前景。
气体扩散模拟实验报告工程力学1001 陈金刚3100104568一.实验背景:要求用matlab编程模拟分子碰撞,演示气体扩散情况。
本实验中的模型采用简化形式,所发生碰撞均为完全弹性碰撞。
壁面压强产生的原因是大量气体分子对容器壁的持续的、无规则撞击产生的。
各个壁面所受力和压强为单位时间内的平均值来代替。
由Ft=mv-(mv)=2mv,四个壁面在经历相同时间t的情况下,所受的平均压力F与2mv成正比。
又四个壁面长度S一样,所以由P=F/S 可知,壁面所受压强P与所受平均压力成正比。
因此,只需统计分析在相同时间内,四个壁面所受碰撞的总的2mv 即可知道各个壁面所受压力和压强的情况。
二.实验基本情况说明:区域尺寸:2维空间,200*200粒子数目:N个,N可变化粒子半径:各不相同,根据实验情况在一定范围内随机产生粒子质量:各不相同,与粒子半径的平方成正比初始位置:随机分布在左半区域初始速度:随机大小三.实验结果分析:(所有运行时间都一致)由表格数据分析可知:对于不同粒子数目,在运行足够长时间下,区域内分子运动会近似稳定,各个壁面所受压力,趋向稳定,在误差允许范围内,各个壁面所受压强可认为近似相同。
四.源代码:N=50;%球数,可变rad=rand(N,1)*2+4;%球半径,[4,6]pos=[rand(N,1)*90+5 rand(N,1)*190+5];%初始位置:左半边区域vel=rand(N,2)*20-10;%各球初始速度color=rand(N,3);%各球颜色,随机产生mass=5*rad.^2;%各球质量,与半径的平方成正比Left=0; %左边界,下同Right=200;Up=200;Down=0;figure;axis manual;axis equal square; %固定坐标axis([0 200 0 200]);hold on;%===============画不重叠的N个小球====for i=2:Nindex=0;while index==0index2=0;for j=1:i-1pp(j,:)=[pos(i,1)-pos(j,1),pos(i,2)-pos(j,2)];rr(j)=rad(i)+rad(j);ppp(j)=norm(pp(j,:));if ppp(j) <rr(j)+sqrt((vel(i,1)-vel(j,1))^2+(vel(i,2)-vel(j,2))^2)*0.1;%修正一开始若球相切时,后面判断可能误认为相撞index2=1;break;endendif ~index2index=1;else pos(i,:)=[rand()*90+5 rand()*190+5];endendend%==================================================================== couleft=0;%左壁面撞击的总mv,以下类似couright=0;couup=0;coudown=0;dt=0;%最小时间qq=0;%用于循环次数控制while qq<200%=========以下各球两两碰撞最小时间计算k=1;for i=1:Nfor j=i:Ndis=[pos(j,1)-pos(i,1),pos(j,2)-pos(i,2)];vv=[vel(j,1)-vel(i,1),vel(j,2)-vel(i,2)];dist=norm(dis);rr=rad(i)+rad(j);cosAlpha =abs( sqrt(1-(rr/dist)^2));cosTheta=(dot(dis,vv)/norm(vv)/dist);if cosTheta>=cosAlpha && cosTheta<1dd=dist*cosTheta-sqrt(rr^2-(dist*sqrt(1-cosTheta^2))^2);time(k)=dd/norm(vv);k=k+1;endendendtball=min(time);%================各球碰墙最小时间计算for i=1:Nif vel(i,1)>0tx(i)=(Right-pos(i,1))/vel(i,1);elsetx(i)=(Left-pos(i,1))/vel(i,1);endif vel(i,2) >0ty(i)=(Up-pos(i,2))/vel(i,2);elsety(i)=(Down-pos(i,2))/vel(i,2);endendtwall=min(tx,ty);%====tBallWall=min(tball,twall);dt=dt+tBallWall;%与墙相撞改变速度for i=1:Nif pos(i,1)-rad(i)<=Left && vel(i,1)~=0pos(i,1)=rad(i);%修正边couleft=couleft+mass(i)*abs(vel(i,1));vel(i,1)=-vel(i,1);elseif pos(i,1)+rad(i)>=Right && vel(i,1)~=0 pos(i,1)=200-rad(i);%修正边couright=couright+mass(i)*abs(vel(i,1));vel(i,1)=-vel(i,1);endif pos(i,2)-rad(i)<=Down && vel(i,2)~=0pos(i,2)=rad(i);coudown=coudown+mass(i)*abs(vel(i,2));vel(i,2)=-vel(i,2);elseif pos(i,2)+rad(i)>=Up && vel(i,2)~=0pos(i,2)=200-rad(i);couup=couup+mass(i)*abs(vel(i,2));vel(i,2)=-vel(i,2);endend%两球碰撞改变速度for i=1:Nfor j=i+1:NtwoBall=[pos(i,1)-pos(j,1),pos(i,2)-pos(j,2)];D=norm(twoBall);if D-rad(i)-rad(j)<sqrt((vel(i,1)-vel(j,1))^2+(vel(i,2)-vel(j,2))^2)*0.1;if D<rad(i)+rad(j) %修正碰撞误差pos(j,1)=pos(j,1)-vel(j,1)*0.05;pos(j,2)=pos(j,2)-vel(j,2)*0.05;endc=((mass(i)-mass(j))*vel(i,1)+2*mass(j)*vel(j,1))/(mass(i)+mass(j));vel(j,1)=((mass(j)-mass(i))*vel(j,1)+2*mass(i)*vel(i,1))/(mass(i)+mass(j)); vel(i,1)=c;c=((mass(i)-mass(j))*vel(i,2)+2*mass(j)*vel(j,2))/(mass(i)+mass(j));vel(j,2)=((mass(j)-mass(i))*vel(j,2)+2*mass(i)*vel(i,2))/(mass(i)+mass(j)); vel(i,2)=c;endendend%===============每隔一段时间画图while dt>0.05cla;for i=1:Nalpha=0:pi/20:2*pi;xx=pos(i,1)+rad(i)*cos(alpha);yy=pos(i,2)+rad(i)*sin(alpha);plot(xx,yy,'k-','LineWidth',2);fill(xx,yy,color(i,:));enddt=0;drawnowendpos=pos+0.1*vel;qq=qq+1;end%输出各个统计量clc;disp(['LeftSide=',num2str(couleft),' ','RightSide=',num2str(couright),' ',...'UpSide=',num2str(couup),' ','DownSide=',num2str(coudown)]);。
MATLAB包围盒碰撞检测算法1. 简介MATLAB包围盒碰撞检测算法是一种用于计算机图形学和计算机动画中的重要算法。
它主要用于检测两个三维对象之间是否相互碰撞,通过使用包围盒来近似表示物体的位置和形状,从而减少计算量和提高碰撞检测的效率。
2. 算法原理MATLAB包围盒碰撞检测算法的基本原理是将每个三维对象用一个包围盒来近似表示。
包围盒通常是一个矩形立方体,它完全包围住了物体,但不一定和物体的形状完全吻合。
通过比较两个包围盒之间的位置关系,可以快速判断出它们之间是否可能存在碰撞。
3. 算法步骤在MATLAB中,实现包围盒碰撞检测算法通常包括以下步骤:- 定义包围盒:将每个三维对象用一个包围盒来近似表示,通常使用最小包围盒或轴对齐包围盒。
- 碰撞检测:比较两个包围盒之间的位置关系,判断它们是否相互碰撞。
- 碰撞响应:如果发生碰撞,可以根据碰撞的情况进行相应的处理,比如改变物体的运动状态或触发碰撞效果。
4. 深入理解MATLAB包围盒碰撞检测算法的优势在于它能够快速地进行碰撞检测,尤其适用于复杂的三维场景。
通过近似表示物体的形状,不仅可以减少计算量,还可以简化碰撞检测的流程。
然而,包围盒碰撞检测算法也存在一定的局限性,当物体的形状非常不规则时,可能会导致碰撞检测的误判。
5. 个人观点和理解我认为MATLAB包围盒碰撞检测算法在计算机图形学和计算机动画领域具有非常重要的应用价值。
它可以帮助我们快速准确地判断物体之间是否发生碰撞,为虚拟场景的构建和动画效果的实现提供了重要支持。
在实际应用中,我们可以根据具体的场景和要求选择不同类型的包围盒,并结合其他碰撞检测算法进行综合应用,以达到更精确的碰撞检测效果。
6. 总结回顾通过本文的介绍,我深入理解了MATLAB包围盒碰撞检测算法的原理和实现步骤,以及它的优势和局限性。
我对这个算法的应用场景和重要性有了更清晰的认识,并且深刻理解了碰撞检测在计算机图形学和计算机动画中的重要作用。
Matlab设计实验课题名称:完全弹性碰撞一.设计背景:完全弹性碰撞(Perfect Elastic Collision):在理想情况下,完全弹性碰撞的物理过程满足动量守恒和能量守恒。
如果两个碰撞小球的质量相等,联立动量守恒和能量守恒方程时可解得:两个小球碰撞后交换速度。
如果被碰撞的小球原来静止,则碰撞后该小球具有了与碰撞小球一样大小的速度,而碰撞小球则停止。
多个小球碰撞时可以进行类似的分析。
二.设计意义真实情况下,由于小球间的碰撞并非理想的弹性碰撞,还会有能量的损失,所以最后小球还是要停下来。
所以该设计主要用于研究能量守恒中的某些问题。
还有就是用于实验演示。
三.程序设计该程序主要设置了三个不同颜色的小球,在真空环境下(理想环境下)的碰撞实验演示。
该程序可以通过改变各种参数,研究各种情况下的实验数据。
程序: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(-0.25,1.7,'1');text(0,1.7,'2');text(0.25,1.7,'3');%在坐标处标识说明文字text( -1.0,1.7,'a');text( -1.0,-1.7,'b');%在坐标处标识说明文字text(1.0,1.7,'真空容器');text(-1.8,1.7,'主视图');%在坐标处标识说明文字axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间%axis('off');%覆盖坐标刻度并填充背景theta0=7 *pi/6;%摆线1的初始角度x0=pole*cos(theta0);%摆线1末端x坐标y0=pole*sin(theta0)+1.5;%摆线1末端y坐标body1=line([-instant,x0-instant],[1.5,y0],'color','r','linestyle','-','erasemode','xor');%设置摆线1head1=line(x0-instant,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);%设置第一个小球颜色,大小theta1=3*pi/2;%摆线2,3的角度x1=pole*cos(theta1);%摆线2,3末端x坐标y1=pole*sin(theta1)+1.5;%摆线2,3末端y坐标body=line([-0.001,x1],[1.5,y1],'color','k','linestyle','-','erasemode','xor');%设置摆线2head=line(x1,y1,'color','k','linestyle','.','erasemode','xor','markersize ',40);%设置第2个小球颜色,大小body2=line([instant;x1+instant],[1.5;y1],'color','b','linestyle','-','erasemode','xor');%设置摆线3head2=line(x1+instant,y1,'color','b','linestyle','.','erasemode','xor',' markersize',40);%设置第3个小球颜色,大小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 ],'b');%填充方框内第二根横杆背景hold on;%保持当前图形及坐标所有特性text(-0.25,1.7,'1');text(0,1.7,'2');text(0.25,1.7,'3');%在坐标处标识说明文字text( -1.0,1.7,'a');text( -1.0,-1.7,'b');%在坐标处标识说明文字text(1.0,1.7,'真空容器');text(-1.8,1.7,'俯视图');%在坐标处标识说明文字axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间%axis('off');%覆盖坐标刻度并填充背景y01=0;%设置摆球纵坐标值body11=line([-instant,x0-instant],[1.5,y01],'color','r','linestyle','-','erasemode','xor');%设置摆线1上摆线body12=line([-instant,x0-instant],[-1.5,y01],'color','r','linestyle','-','erasemode','xor');%设置摆线1下摆线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');%设置摆线2上摆线body02=line([-0.001,x1],[-1.5,y01],'color','k','linestyle','-','erasemode','xor');%设置摆线2下摆线head00=line(x1,y01,'color','k','linestyle','.','erasemode','xor','marker size',40);%设置第二个小球颜色,大小body21=line([instant;x1+instant],[1.5;y01],'color','b','linestyle','-','erasemode','xor');%设置摆线3上摆线body22=line([instant;x1+instant],[-1.5;y01],'color','b','linestyle','-','erasemode','xor');%设置摆线3下摆线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,'侧视图');%在坐标处标识说明文字text( -1.7,1.5,'a');text( 1.7,1.5,'b');%在坐标处标识说明文字axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间%axis('off');%覆盖坐标刻度并填充背景x01=0;x02=1.48;y02=1.48;%设置坐标head000=line(-x02,y02,'color','g','linestyle','.','erasemode','xor','markersize',18);%设置横杆ahead000=line(x02,y02,'color','g','linestyle','.','erasemode','xor','mar kersize',18);%设置横杆bbody311=line([-x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');%设置摆线1上摆线body312=line([x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');%设置摆线1下摆线head301=line(x01,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',40);%设置摆球1body301=line([-x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');%设置摆线2上摆线body302=line([x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');%设置摆线2下摆线head300=line(x01,y1,'color','k','linestyle','.','erasemode','xor','mark ersize',40);%设置摆球2body321=line([-x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');%设置摆线3上摆线body322=line([x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');%设置摆线3下摆线head302=line(x01,y1,'color','b','linestyle','.','erasemode','xor','mark ersize',40);%设置摆球3while 1%条件判断theta0=theta0+pi/540;theta3=theta3-pi/540;if theta0>=15*pi/6theta0=7*pi/6;theta3=15*pi/6 ;%设置摆球1运动过程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]);%设置主视图中摆线1运动set(head1,'xdata',x11-instant,'ydata',y11);%设置主视图中摆球1运动set(body11,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);%设置俯视图中摆线1上摆线运动set(body12,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);%设置俯视图中摆线1下摆线运动set(head01,'xdata',x11-instant,'ydata',y01);%设置俯视图中摆球1运动set(body311,'xdata',[-x02,x01],'ydata',[y02,y11]);%设置侧视图中摆线1上摆线运动set(body312,'xdata',[x02,x01],'ydata',[y02,y11]);%设置侧视图中摆线1下摆线运动set(head301,'xdata',x01,'ydata',y11);%设置侧视图中摆球1运动%设置摆球3运动的过程elseif (theta0>=3*pi/2)&(theta0<11*pi/6)x22=pole*cos(theta0);y22=pole*sin(theta0)+1.5;set(body2,'xdata',[instant,x22+instant],'ydata',[1.5,y22]);%设置主视图中摆线3运动set(head2,'xdata',x22+instant,'ydata',y22);%设置主视图中摆球3运动set(body21,'xdata',[instant,x22+instant],'ydata',[1.5,y01]);%设置俯视图中摆线3上摆线运动set(body22,'xdata',[instant,x22+instant],'ydata',[-1.5,y01]);%设置俯视图中摆线3下摆线运动set(head02,'xdata',x22+instant,'ydata',y01);%设置俯视图中摆球3运动set(body321,'xdata',[-x02,x01],'ydata',[y02,y22]); %设置侧视图中摆线3上摆线运动set(body322,'xdata',[x02,x01],'ydata',[y02,y22]);%设置侧视图中摆线3下摆线运动set(head302,'xdata',x01,'ydata',y22);%设置侧视图中摆球3运动% 设置摆球3运动过程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]);%设置主视图中摆线3运动set(head2,'xdata',x32+instant,'ydata',y32);%设置主视图中摆球3运动set(body21,'xdata',[instant,x32+instant],'ydata',[1.5,y01]);%设置俯视图中摆线3上摆线运动set(body22,'xdata',[instant,x32+instant],'ydata',[-1.5,y01]);%设置俯视图中摆线3下摆线运动set(head02,'xdata',x32+instant,'ydata',y01);%设置俯视图中摆球3运动set(body321,'xdata',[-x02,x01],'ydata',[y02,y32]); %设置侧视图中摆线3上摆线运动set(body322,'xdata',[x02,x01],'ydata',[y02,y32]);%设置侧视图中摆线3下摆线运动set(head302,'xdata',x01,'ydata',y32);%设置侧视图中摆球3运动%设置摆球1运动过程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]);%设置主视图中摆线1运动set(head1,'xdata',x41-instant,'ydata',y41);%设置主视图中摆球1运动set(body11,'xdata',[-instant,x41-instant],'ydata',[1.5,y01]);%设置俯视图中摆线1上摆线运动set(body12,'xdata',[-instant,x41-instant],'ydata',[-1.5,y01]);%设置俯视图中摆线1下摆线运动set(head01,'xdata',x41-instant,'ydata',y01);%设置俯视图中摆球1运动set(body311,'xdata',[-x02,x01],'ydata',[y02,y41]);%设置侧视图中摆线1上摆线运动set(body312,'xdata',[x02,x01],'ydata',[y02,y41]);%设置侧视图中摆线1下摆线运动set(head301,'xdata',x01,'ydata',y41); %设置侧视图中摆球1运动drawnow;endend四.程序截图主视图俯视图侧视图。
基于MATLAB的α粒子散射实验过程讨论随着科学技术的不断进步,人们对于微观粒子的研究也越来越深入。
其中,α粒子散射实验是一种比较常见和重要的实验方式。
本文将从实验过程、数据处理及分析等方面对α粒子散射实验进行讨论。
实验过程α粒子散射实验是一种基于Rutherford散射理论的实验。
实验过程中,首先需要准备好一个反应采集器,它由一个静止的金属薄膜和一个侧向空心的金属圆筒组成。
其次,需要使用α放射性同位素源,将其放置在反应采集器中心,并使其释放出α粒子。
在实验过程中,需要将α粒子源放置在一定的距离处,使得α粒子可以穿过金属圆筒并撞击到金属薄膜上。
通过调节α粒子源和反应采集器之间的距离,可以改变α粒子的入射能量和入射角度。
当α粒子射入反应采集器中时,它们会被反应采集器中的金属原子核吸引,并发生了弹性碰撞。
这样就会产生一个散射角度,并且散射角度的大小与α粒子的入射能量、入射角度以及靶物质的原子序数等因素都有关系。
数据处理及分析在实验过程中,需要记录下α粒子的散射角度和散射的数量,然后进行数据的处理和分析。
具体实验数据如下表所示:| α粒子散射角度/° | α粒子散射数量 ||------------------|--------------|| 5 | 898 || 10 | 775 || 15 | 630 || 20 | 520 || 25 | 460 || 30 | 390 |数据处理和分析的主要目的是确定金属原子核的结构特征和原子序数。
为了实现这个目的,我们需要使用散射公式得出α粒子的解析值,然后与实验值进行比较,计算误差,进而得出金属原子核的结构特征和原子序数。
在本次实验中,我们可以使用著名物理学家Rutherford的散射公式:θ = 1/2 *arcsin( (Z * e^2 / 4 * π * ε_0 * E ) / 2 * m_r * v^2 )其中,θ为散射角度,Z为原子序数,e为电量,ε_0为真空介电常数,E为入射α粒子的能量,m_r为金属核的质量,v为α粒子的速度。
隔震结构碰撞分析的改进Hertz-damp模型赵大海;刘勇;李宏男;钱辉;刘莎【摘要】Pounding is a complicated nonlinear problem.In order to investigate the structural responses under the impact of collision,a proper collision model was very necessary.For the impact of base-isolated structure,a new damping function was constructed by combining the modified Kelvin model and the Hertz-damp model.The modified Hertz-damp model was proposed,and the reliability of the new impact model was verified by numerical paring with other impact models according to the existing pounding tests,it can be shown that the modified Hertz-damp model is more accurate than the other impact models,and can accurately simulate the pounding responses of the structure.%碰撞是一复杂的非线性问题,为了研究碰撞作用下结构的响应,合理的碰撞模型是非常必要的.针对隔震结构的碰撞现象,结合改进的Kelvin模型和Hertz-damp模型构造了一个新的阻尼函数,提出了改进的Hertz-damp碰撞模型,并对新碰撞模型的可靠性进行了数值验证.通过现有的碰撞试验和其他碰撞模型对比,表明改进后的Hertz-damp碰撞模型较其他碰撞模型具有较高的精度,能更精确地模拟结构的碰撞响应.【期刊名称】《振动与冲击》【年(卷),期】2017(036)012【总页数】7页(P236-242)【关键词】数值分析;Hertz-damp模型;结构碰撞;地震【作者】赵大海;刘勇;李宏男;钱辉;刘莎【作者单位】燕山大学建筑工程与力学学院,秦皇岛066004;燕山大学建筑工程与力学学院,秦皇岛066004;大连理工大学土木工程学院,大连116024;郑州大学土木工程学院,郑州450001;燕山大学建筑工程与力学学院,秦皇岛066004【正文语种】中文【中图分类】TU352.1现代城市人口密集,但土地非常有限,建筑之间的距离越来越近。
Matlab设计实验课题名称:完全弹性碰撞一.设计背景:完全弹性碰撞(Perfect Elastic Collision):在理想情况下,完全弹性碰撞的物理过程满足动量守恒和能量守恒。
如果两个碰撞小球的质量相等,联立动量守恒和能量守恒方程时可解得:两个小球碰撞后交换速度。
如果被碰撞的小球原来静止,则碰撞后该小球具有了与碰撞小球一样大小的速度,而碰撞小球则停止。
多个小球碰撞时可以进行类似的分析。
二.设计意义真实情况下,由于小球间的碰撞并非理想的弹性碰撞,还会有能量的损失,所以最后小球还是要停下来。
所以该设计主要用于研究能量守恒中的某些问题。
还有就是用于实验演示。
三.程序设计该程序主要设置了三个不同颜色的小球,在真空环境下(理想环境下)的碰撞实验演示。
该程序可以通过改变各种参数,研究各种情况下的实验数据。
程序: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(-0.25,1.7,'1');text(0,1.7,'2');text(0.25,1.7,'3');%在坐标处标识说明文字text( -1.0,1.7,'a');text( -1.0,-1.7,'b');%在坐标处标识说明文字text(1.0,1.7,'真空容器');text(-1.8,1.7,'主视图');%在坐标处标识说明文字axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间%axis('off');%覆盖坐标刻度并填充背景theta0=7 *pi/6;%摆线1的初始角度x0=pole*cos(theta0);%摆线1末端x坐标y0=pole*sin(theta0)+1.5;%摆线1末端y坐标body1=line([-instant,x0-instant],[1.5,y0],'color','r','linestyle','-','erasemode','xor');%设置摆线1head1=line(x0-instant,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);%设置第一个小球颜色,大小theta1=3*pi/2;%摆线2,3的角度x1=pole*cos(theta1);%摆线2,3末端x坐标y1=pole*sin(theta1)+1.5;%摆线2,3末端y坐标body=line([-0.001,x1],[1.5,y1],'color','k','linestyle','-','erasemode','xor');%设置摆线2head=line(x1,y1,'color','k','linestyle','.','erasemode','xor','markersize ',40);%设置第2个小球颜色,大小body2=line([instant;x1+instant],[1.5;y1],'color','b','linestyle','-','erasemode','xor');%设置摆线3head2=line(x1+instant,y1,'color','b','linestyle','.','erasemode','xor',' markersize',40);%设置第3个小球颜色,大小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 ],'b');%填充方框内第二根横杆背景hold on;%保持当前图形及坐标所有特性text(-0.25,1.7,'1');text(0,1.7,'2');text(0.25,1.7,'3');%在坐标处标识说明文字text( -1.0,1.7,'a');text( -1.0,-1.7,'b');%在坐标处标识说明文字text(1.0,1.7,'真空容器');text(-1.8,1.7,'俯视图');%在坐标处标识说明文字axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间%axis('off');%覆盖坐标刻度并填充背景y01=0;%设置摆球纵坐标值body11=line([-instant,x0-instant],[1.5,y01],'color','r','linestyle','-','erasemode','xor');%设置摆线1上摆线body12=line([-instant,x0-instant],[-1.5,y01],'color','r','linestyle','-','erasemode','xor');%设置摆线1下摆线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');%设置摆线2上摆线body02=line([-0.001,x1],[-1.5,y01],'color','k','linestyle','-','erasemode','xor');%设置摆线2下摆线head00=line(x1,y01,'color','k','linestyle','.','erasemode','xor','marker size',40);%设置第二个小球颜色,大小body21=line([instant;x1+instant],[1.5;y01],'color','b','linestyle','-','erasemode','xor');%设置摆线3上摆线body22=line([instant;x1+instant],[-1.5;y01],'color','b','linestyle','-','erasemode','xor');%设置摆线3下摆线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,'侧视图');%在坐标处标识说明文字text( -1.7,1.5,'a');text( 1.7,1.5,'b');%在坐标处标识说明文字axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间%axis('off');%覆盖坐标刻度并填充背景x01=0;x02=1.48;y02=1.48;%设置坐标head000=line(-x02,y02,'color','g','linestyle','.','erasemode','xor','markersize',18);%设置横杆ahead000=line(x02,y02,'color','g','linestyle','.','erasemode','xor','mar kersize',18);%设置横杆bbody311=line([-x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');%设置摆线1上摆线body312=line([x02,x01],[y02,y0],'color','r','linestyle','-','erasemode','xor');%设置摆线1下摆线head301=line(x01,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',40);%设置摆球1body301=line([-x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');%设置摆线2上摆线body302=line([x02,x01],[y02,y1],'color','k','linestyle','-','erasemode','xor');%设置摆线2下摆线head300=line(x01,y1,'color','k','linestyle','.','erasemode','xor','mark ersize',40);%设置摆球2body321=line([-x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');%设置摆线3上摆线body322=line([x02;x01],[y02;y1],'color','b','linestyle','-','erasemode','xor');%设置摆线3下摆线head302=line(x01,y1,'color','b','linestyle','.','erasemode','xor','mark ersize',40);%设置摆球3while 1%条件判断theta0=theta0+pi/540;theta3=theta3-pi/540;if theta0>=15*pi/6theta0=7*pi/6;theta3=15*pi/6 ;%设置摆球1运动过程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]);%设置主视图中摆线1运动set(head1,'xdata',x11-instant,'ydata',y11);%设置主视图中摆球1运动set(body11,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);%设置俯视图中摆线1上摆线运动set(body12,'xdata',[-instant,x11-instant],'ydata',[1.5,y01]);%设置俯视图中摆线1下摆线运动set(head01,'xdata',x11-instant,'ydata',y01);%设置俯视图中摆球1运动set(body311,'xdata',[-x02,x01],'ydata',[y02,y11]);%设置侧视图中摆线1上摆线运动set(body312,'xdata',[x02,x01],'ydata',[y02,y11]);%设置侧视图中摆线1下摆线运动set(head301,'xdata',x01,'ydata',y11);%设置侧视图中摆球1运动%设置摆球3运动的过程elseif (theta0>=3*pi/2)&(theta0<11*pi/6)x22=pole*cos(theta0);y22=pole*sin(theta0)+1.5;set(body2,'xdata',[instant,x22+instant],'ydata',[1.5,y22]);%设置主视图中摆线3运动set(head2,'xdata',x22+instant,'ydata',y22);%设置主视图中摆球3运动set(body21,'xdata',[instant,x22+instant],'ydata',[1.5,y01]);%设置俯视图中摆线3上摆线运动set(body22,'xdata',[instant,x22+instant],'ydata',[-1.5,y01]);%设置俯视图中摆线3下摆线运动set(head02,'xdata',x22+instant,'ydata',y01);%设置俯视图中摆球3运动set(body321,'xdata',[-x02,x01],'ydata',[y02,y22]); %设置侧视图中摆线3上摆线运动set(body322,'xdata',[x02,x01],'ydata',[y02,y22]);%设置侧视图中摆线3下摆线运动set(head302,'xdata',x01,'ydata',y22);%设置侧视图中摆球3运动% 设置摆球3运动过程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]);%设置主视图中摆线3运动set(head2,'xdata',x32+instant,'ydata',y32);%设置主视图中摆球3运动set(body21,'xdata',[instant,x32+instant],'ydata',[1.5,y01]);%设置俯视图中摆线3上摆线运动set(body22,'xdata',[instant,x32+instant],'ydata',[-1.5,y01]);%设置俯视图中摆线3下摆线运动set(head02,'xdata',x32+instant,'ydata',y01);%设置俯视图中摆球3运动set(body321,'xdata',[-x02,x01],'ydata',[y02,y32]); %设置侧视图中摆线3上摆线运动set(body322,'xdata',[x02,x01],'ydata',[y02,y32]);%设置侧视图中摆线3下摆线运动set(head302,'xdata',x01,'ydata',y32);%设置侧视图中摆球3运动%设置摆球1运动过程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]);%设置主视图中摆线1运动set(head1,'xdata',x41-instant,'ydata',y41);%设置主视图中摆球1运动set(body11,'xdata',[-instant,x41-instant],'ydata',[1.5,y01]);%设置俯视图中摆线1上摆线运动set(body12,'xdata',[-instant,x41-instant],'ydata',[-1.5,y01]);%设置俯视图中摆线1下摆线运动set(head01,'xdata',x41-instant,'ydata',y01);%设置俯视图中摆球1运动set(body311,'xdata',[-x02,x01],'ydata',[y02,y41]);%设置侧视图中摆线1上摆线运动set(body312,'xdata',[x02,x01],'ydata',[y02,y41]);%设置侧视图中摆线1下摆线运动set(head301,'xdata',x01,'ydata',y41); %设置侧视图中摆球1运动drawnow;endend四.程序截图主视图俯视图侧视图。