其他分享
首页 > 其他分享> > 投篮篮球儿轨迹MATLAB仿真

投篮篮球儿轨迹MATLAB仿真

作者:互联网

       投篮儿时篮球儿的轨迹大多算是斜上抛运动,给球儿一个初始儿的斜儿上方的初速度,球儿自己做斜上抛运动,但考虑到空气儿阻力,球儿的实际轨迹会与理想轨迹有一定误差,本次将球儿的理想曲线儿和实际曲线儿放到一个图里进行对比,直观感受一下空气阻力的作用,由于时间关系本次没有考虑刮风的情况,有时间再把带风儿的加上。(数学好的投篮时可以快速算一下投出的角度和速度,保证百发百中,

        仿真大致思路:首先定义好每个固定的变量,比如球儿的质量,大小,空气密度等,定义时间间隔为0.01s,通过每0.01s选取一个坐标点连起来就是大致的轨迹。由于速度的矢量方向和水平面夹角会随着时间的变化变化,因此要将速度矢量方向、阻力方向和速度大小联系起来,同时,阻力大小也和速度有关,这里将其关系设为阻力和速度大小的平方成正比。同时,球儿的速度和位置采用递归的方式表示。光用文字表达可能越说越迷糊,直接上代码。

代码:

clc

clear

g=9.8;%重力加速度

m=0.145;%重量

k=0.05;%空气阻力系数

r=0.0366;%半径

S=pi*r^2;%阻力面积

rou=1.29;%空气密度

deltat=0.01;

theta=(35/180*pi);%初速度与地面夹角

x(1)=0;

y(1)=0;%初始位置坐标

V(1)=50;%初始速度

Vx(1)=V(1)*cos(theta);

Vy(1)=V(1)*sin(theta);

t=1:700;

for n=1:length(t)

    V(n)=sqrt(Vx(n)^2+Vy(n)^2);%合速度

    D=rou*k*S.*(V(n).^2);%阻力

    ax(n)=-(D/m)*Vx(n)/V(n);%水平加速度

    ay(n)=-g-(D/m)*Vy(n)/V(n);%垂直加速度

    Vx(n+1)=Vx(n)+ax(n)*deltat;%水平速度

    Vy(n+1)=Vy(n)+ay(n)*deltat;%垂直速度

    x(n+1)=x(n)+Vx(n)*deltat+0.5*ax(n)*deltat^2;%水平坐标

    y(n+1)=y(n)+Vy(n)*deltat+0.5*ay(n)*deltat^2;%垂直坐标

    px(n)=Vx(1)*n*deltat;%无阻力水平坐标

    py(n)=Vy(1)*n*deltat-0.5*g*(n*deltat)^2;%无阻力垂直坐标

end

plot(x,y,'r',px,py,'g');%红的有阻力,绿的无阻力

grid on

xlabel('x'),ylabel('y');

 

 

通过结果基本可以比较直观的看出阻力的作用。

标签:deltat,阻力,篮球,投篮,球儿,MATLAB,速度,Vx,Vy
来源: https://blog.csdn.net/qq_34520339/article/details/121404474