您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 12计算机仿真中的应用
第十二章计算机仿真中的应用1已知在(0,1)点和(2*pi,0)点分别有两只小虫子A和B,它们以同样的速度v=0.1同时出发,B沿y=sinx向原点方向行走,A始终追向B,,试画出A的追赶路径、B的路径、A与B之间距离变化曲线以及追上所用时间。2用simulink求解微分方程组定解问题0001duuvdtdvuvdtuv3用simulink求解方程组(参看文件equation.mdl):z2+z1=1,z2-z1=14已知篮球篮圈离地面3.05米,有一人正面对篮圈投篮,篮球出手高度为1.8米,球心距篮圈中心的水平距离为4.5米,篮圈中心到篮板的距离为0.375米,假设篮球轨迹为抛物线,且在篮球穿过水平距离3米时到达的高度为4米,如果篮球正好中蓝(没有擦到篮圈,没有球网),且中栏撞倒篮板后,蓝球开始朝该人与篮板水平中间地面位置直线反弹,假定篮球运动速度为常数(0.1米/秒)。试编写程序,在三维空间中画出篮板(长1.81米,宽1.06米)和篮圈(直径0.45米)且给出篮球(直径0.24米)的动态运动过程,要求篮球运动不留痕迹(参看示意图)。%画篮板[x,z]=meshgrid(-0.905:0.1:0.905,3.05-0.53:0.1:3.05+0.53);y=4.875*ones(size(x));surf(x,y,z);shadinginterpholdonaxis([-8,8,0,5,0,6]);%画篮圈t=0:0.1:2*pi;x=0.225*cos(t);y=4.5+0.225*sin(t);z=3.05*ones(size(t));plot3(x,y,z,'k');%得到球运动的抛物线(拟合)y=[034.5];z=[1.843.05];a=polyfit(y,z,2);w=poly2sym(a);w=subs(w,'x','y');%球的抛物运动离散坐标y=0:0.05:4.875-0.12;x=zeros(size(y));z=subs(w,y);%球的反弹直线运动坐标y1=[4.875/2,y(end)];z1=[0,z(end)];b=polyfit(y1,z1,1);w1=poly2sym(b);w1=subs(w1,'x','y1');y1=y(end):-0.05:4.875/2;x1=zeros(size(y1));z1=subs(w1,y1);%球再次抛物反弹y2=[0,4.875/4,4.875/2];z2=[0,1,0];a2=polyfit(y2,z2,2);w2=poly2sym(a2);y2=[4.875/2:-0.05:0];z2=subs(w2,y2);x2=zeros(size(y2));%画球的整个运动过程forn=1:10;p1=plot3(x(1),y(1),z(1),'ro','erasemode','xor')fork=2:length(x);set(p1,'xdata',x(k),'ydata',y(k),'zdata',z(k));drawnow;pause(0.01);endplot3(x(end),y(end),z(end),'ro','erasemode','xor')p2=plot3(x1(1),y1(1),z1(1),'ro','erasemode','xor')fork=2:length(x1);set(p2,'xdata',x1(k),'ydata',y1(k),'zdata',z1(k));drawnow;pause(0.01);endplot3(x1(end),y1(end),z1(end),'ro','erasemode','xor');p3=plot3(x2(1),y2(1),z2(1),'ro','erasemode','xor')fork=2:length(y2);set(p3,'xdata',x2(k),'ydata',y2(k),'zdata',z2(k));drawnow;pause(0.01);endplot3(x2(end),y2(end),z2(end),'ro','erasemode','xor');end5在约10000km高空的某边长160km的正方形区域内,有5架飞机均以800km/h的速度作水平飞行,不碰撞的标准为任意两架飞机的距离大于8km。现有5架飞机在区域内飞行,其初始坐标和飞行方向由下表1给出。试讨论该5架飞机在区域内会否相撞。表1各飞机初始状态飞机编号x坐标kmy坐标km飞行角(度)12345150851501451301408515550150243236220.5159230%画飞行区域、起始点和飞行路线gridonholdonx0=[150,85,150,145,130];y0=[140,85,155,50,150];plot(x0,y0,'r.');holdonc=[243,236,220.5,159,230]*pi/180;v=800;symstx=x0+v*t*cos(c);y=y0+v*t*sin(c);fork=1:5ezplot(x(k),y(k),[0,5]);text(x0(k),y0(k),num2str(k));endaxis([0,160,0,160]);%各飞机在区域内的飞行时间T(1)=solve(y(1));T(2)=solve(y(2));T(3)=solve(x(3));T(4)=solve(x(4));T(5)=solve(y(5));T=double(T);%碰撞判断d=sym(zeros(5,5));%任意两架飞机的距离tmin=zeros(5,5);%取得最小距离的时间dmin=zeros(5,5);%最小距离fori=1:4forj=i+1:5d(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);[tmin(i,j),dmin(i,j)]=fminbnd(inline(char(d(i,j))),0,min(T(i),T(j)));endendyes=dmin8
本文标题:12计算机仿真中的应用
链接地址:https://www.777doc.com/doc-3121927 .html