编辑: 牛牛小龙人 2019-09-19
抛射曲线及包络线 1.

1 抛射物体运动方程及MATLAB实现 抛射物体的运动可描述为平面上一个动点的轨迹,即抛射曲线,其参数方程为 其中g是重力加速度,物体初始速度为,发射角度为. 当发射角度在区间内变化时,不同发射角便形成不同曲线.由 ?解之,得弹落点所对应的参数值 1.2 MATLAB实现 对发射角,参数 t的变化范围为.为了简化问题,取.下面程序段可绘制曲线簇中的n-2条曲线. n=input('input n:输入数据n,确定所绘曲线簇曲线数 alpha=(2:n-1)*pi/(2*n);

% 确定不同曲线所对应的发射角 for k=1:n-2 % 开始计算n-2条曲线上的离散点数据 a=alpha(k)选取角度值 v1=cos(a);

v2=sin(a);

% 计算初始速度分量 t0=v2/4.9;

t=(0:16)*t0/16;

确定参数值 x(k,:)=v1*t;

y(k,:)=v2*t-4.9*t.^2;

% 确定曲线上离散点坐标数据 end plot(x',y'同时绘出曲线簇中n-2条曲线? ??? 运行上面程序,输入 n =

20 则可以绘出图1中的18条曲线. ? 1.3 抛射曲线的包络线 不同发射角所形成的抛射线构成一曲线簇,如果存在一条曲线L,曲线簇中每一曲线都与L相切,则称L为该曲线簇的包络.对于参数方程,曲线族的包络曲线由 消去参变量而得到.在上面抛射线族的包络曲线中 由即.求解得 代入曲线族的参数方程,便得包络曲线的参数方程为 下面程序段将绘制出曲线簇的包络曲线(又称为安全抛物线). g=9.8;

t=1/g:.001:sqrt(2)/g;

x=sqrt(t.^2-1/g^2);

y=1/g-.5*g*t.^2;

plot(x,y) 1.4 两组不同方式的抛射曲线簇图形及源程序 高处朝低处的射击曲线簇 g=9.8;

xmax=0;

alpha0=0;

h=0;

H=-0.02;

a=0:pi/60:pi/2;

for k=1:31 alpha=a(k);

v1=cos(alpha);

v2=sin(alpha);

d0=v2^2-2*g*(H-h);

if d0>=0 t0=(v2+sqrt(d0))/g;

t=0:t0/16:t0;

x=v1*t;

x0=x(17);

y=v2*t-0.5*g*t.^2;

plot(x,y,'k') hold on if x0>xmax xmax=x0;

alpha0=alpha;

x1=x;

y1=y;

end end end plot(x1,y1,'r') xmax alpha0*180/pi 低处朝高处的射击曲线簇 g=9.8;

xmax=0;

alpha0=0;

h=0;

H=0.02;

a=0:pi/60:pi/2;

for k=1:31 alpha=a(k);

v1=cos(alpha);

v2=sin(alpha);

d0=v2^2-2*g*(H-h);

if d0>=0 t0=(v2+sqrt(d0))/g;

t=0:t0/16:t0;

x=v1*t;

x0=x(17);

y=v2*t-0.5*g*t.^2;

plot(x,y,'k') hold on if x0>xmax xmax=x0;

alpha0=alpha;

x1=x;

y1=y;

end end end plot(x1,y1,'r') xmax alpha0*180/pi

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题