应用MATLAB建模实例---吊门过程仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序1-1之抛射体轨迹函数
function [y,t]=paosheti1(x,alpha,v,g) % 函数返回抛射体轨迹及第一第一次落地飞行时间 y=x*tan(alpha)-x.^2*g/(2*v^2*(cos(alpha))^2); % 不考虑是直接进门还是落地后进门的轨迹 t=2*v*sin(alpha)/g; % 第一次落地前最大飞行时间 xmax=v*cos(alpha)*t; %第一次落地前最大飞行X向距离 n=length(x); for i=1:n if y(i)<0 %判断是落地后进门 xx=x(i)-xmax; y(i)=xx*tan(alpha)-xx.^2*g/(2*v^2*(cos(alpha))^2); %计算落地后进门的后半段轨迹 end end
空气阻力的情形之一的结果及分析改 进(二)
针对第三组数据,计算的最小角度为 1.268,守门员移动时间为2.7771秒,最 大角度是1.27,时间是2.8101秒; 结果仍有问题:反弹前后的两波高度一 样; 解决的办法是再考虑y方向也有空气阻力。
有空气阻力的情形之二 ——x、y方向均考虑空气阻力
kt
gt
2
)
飞行到球门线位置的时间TH:
1 kt x ( t ) v cos (1 e ) 1 ka t ln( 1 ) k k v cos x (t ) a
空气阻力的情形之一——程序2-1-1
clc,clear all v=30;g=10; h=2.44;H=3.2;a=20;b=5; k=0.4; l=a-b;L=a*1.01; %1.01表示进入门里 x=0:0.01:L; %对x采样 alpha=1.2:0.001:1.3; n=length(alpha); figure(1) for i=1:n; Th=-log(1-a*k/(v*cos(alpha(i))))/k; %计算球从射门到进球门的时间范围 T=Th*1.02; %球过球门线 t=0:0.01:T; %对时间采样 [x,y]=paosheti2(t,alpha(i),v,k,g); %计算求得飞行轨迹 TH=-log(1-l*k/(v*cos(alpha(i))))/k; %计算从射门到球员位置的时间 i1=floor(Th/0.01)+1; %计算球过球门线时刻的采样点序号 i2=floor(TH/0.01)+1; %计算球过守门员时刻的采样点序号 if y(i1)>=h | y(i2)<=H; %判定是否射门成功 success(i)=0; else success(i)=1; end plot(l,H,'r+',a,h,'r+'),hold on, plot(x,y), grid, hold off title(['足球比赛中的吊门 ','初射角=',num2str(alpha(i),6) ,... ' 守门员的移动时间=',num2str(TH),' 成功=',num2str(success(i))]),pause end figure(2) plot(alpha,success);
空气阻力的情形之一——程序2-1-2
1 2 function [x,y]=paosheti2(t,alpha,v,k,g) y ( t ) vt sin gt 0 2 %返回抛物体轨迹(考虑空气阻力) 2 vt sin x=v*cos(alpha)*(1-exp(-k*t))/k; t g y=v*sin(alpha)*t-g*t.^2/2; n=length(t); t0=2*v*sin(alpha)/g; % 第一次落地前最大飞行时间 xt0=v*cos(alpha)*(1-exp(-k*t0))/k; % 第一次落地前X向最大飞行 距离 vxt0=v*cos(alpha)*exp(-k*t0); % 第一次落地X向飞行速度 vyt0=v*sin(alpha); % 第一次落地Y向飞行速度 vt0=sqrt(vxt0^2+vyt0^2); % 第一次落地飞行速度大小 for i=1:n if t(i)>t0 % 判断是落地后进门 tt=t(i)-t0; % 计算落地后进门的后半段轨迹 x(i)=xt0+vt0*cos(alpha)*(1-exp(-k*tt))/k; y(i)=vt0*sin(alpha)*tt-g*tt^2/2; end end
程序2-1-2修改如下
function [x,y]=paosheti22(t,alpha,v,k,g) %返回抛物体轨迹(考虑空气阻力、反弹角度) x=v*cos(alpha)*(1-exp(-k*t))/k; y=v*sin(alpha)*t-g*t.^2/2; n=length(t); t0=2*v*sin(alpha)/g; % 第一次落地前最大飞行时间 xt0=v*cos(alpha)*(1-exp(-k*t0))/k; % 第一次落地前X向最大飞行距离 vxt0=v*cos(alpha)*exp(-k*t0); % 第一次落地X向飞行速度 vyt0=v*sin(alpha); % 第一次落地Y向飞行速度 vt0=sqrt(vxt0^2+vyt0^2); % 第一次落地飞行速度大小 alpha1=atan(vyt0/vxt0); % 计算反弹角度 for i=1:n if t(i)>t0 % 判断是落地后进门 tt=t(i)-t0; % 计算落地后进门的后半段轨迹 x(i)=xt0+vt0*cos(alpha1)*(1-exp(-k*tt))/k; y(i)=vt0*sin(alpha1)*tt-g*tt^2/2; end end
初步结果
对于第一组数据,吊门成功的最小角度 1.53697(为弧度,下同),对应的时间大约 在4.9281秒,最大角度1.53787,对应的时间 是5.0627秒; 对于第二组数据,吊门成功的最小角度 1.51437,对应的时间大约在4.1374秒,最大 角度1.51587,对应的时间大约在4.2503秒; 对于第三组数据,吊门成功的最小角度 1.45718,对应的时间大约在4.4103秒,最大 角度1.46022,对应的时间大约是4.531秒。
有空气阻力的情形之一 ——仅x方向考虑空气阻力
假设只考虑x方向受空气阻力的影响; 假设空气阻力与速度成正比,比例系数为 k=0.4。 此时,x(t)满足如下的微分方程初值问题
k x 0 x x (0) 0 x ( 0 ) v cos
问题的解
飞行轨迹
y ( t ) vt sin x (t ) 1 k 1 2 v cos (1 e
应用MATLAB建模实例 ——数学也是一门技术
数学是一门技术 一个例子——足球比赛中的吊门问题 谈谈数学建模竞赛及培训
数学是一门技术
技术的定义
• 《辞海》:泛指根据生产实践经验和自然科 学原理而发展成的各种工艺操作方法与技能; 除操作技能外, 广义的还包括相应的生产工 具和其他物质设备,以及生产的工艺过程或 作业程序、方法。 • 《科学学辞典》和《科技辞典》:是为社会 生产和人类物质文化生活需要服务的,供人 类利用和改造自然的物质手段、智能手段和 信息手段的总和。
数学及其应用的特征
• 是一种智能形态的技术 • 在数学软件的平台上,又表现为 一般的物化形态
数学建模技术
• 指数学及其应用于解决实际问题的整 个过程 • 多样性、合理性、具体问题具体分析 • 艺术性
足球比赛中的吊门问题
考虑如下的因素:球与球门的距离为a,守 门员与球门的距离为b,球门高h,守门员最大 摸高H,球出脚的初速度为v,与水平方向的夹 角为alpha(称为初射角).给定,h=2.44m, H=3.20m,v=30m/s,重力加速度g=10m/s2,针 对下列几组数据分别给出能吊门成功的相应初 射角范围,要求精度在小数点后第3位。 ·a=6m,b=1m; ·a=10m,b=3m; H h ·a=20m,b=5m。 alpha
b a
问题分析
先考虑最简单情形,即不考虑空气阻力 等…,此时,球的运动轨迹是抛物线, 如果守门员不动,总有合适的角度使吊 门成功。 这不是求一个角度值,而是求一个范围! 通常的思路是把问题整理成两个方程求 根问题:一个方程是求吊门成功的最小 角度,一个方程是求吊门成功的最大角 度。 有可能落地弹入球门,要考虑反弹入门 的情况。
小结:最简情形之假设
不考虑空气阻力; 不考虑守门员在球运行过程中的移动; 球落地是完全弹性的,只考虑仅有一次触地反弹形 成的吊门情况; 只考虑越过守门员头顶的吊门,即出球点与守门员 连成一线延伸到球门这样一个直线方向,不考虑从 守门员侧面吊门的情况; 将球看作是数学上的一个点; 不考虑球的旋转,实际比赛时,旋转是很重要的! 球的质量为一个单位。
初步结果分析——问题的再分析
遵循由简单到一般的建模原则,先考虑简单情形,得到 初步结果,以此为基础,发现问题、分析问题,找到求 解思路,并逐步将问题一般化,甚至可以发现逐步一般 化的顺序(还是由简到繁,先将哪些方面使之更一般化, 如空气阻力、守门员移动); 结果有一定的合理性; 从近似计算角度分析,在允许的精度范围内,如上的 “作图——观察——调整”不失为一种求解方法; 相比球与守门员及与球门的距离,注意守门员移动的时 间,显然守门员有足够的时间移动,因此吊门是不会成 功的! 原因在于将问题假设得过于简单化、理想化了! 修改假设应是下一步必须考虑的。
α
h b
Baidu Nhomakorabea
x
2
a
最简情形——程序1-1
v=30;g=10; h=2.44;H=3.2;a=6;b=1; l=a-b;L=a*1.01; %1.01表示进入门里 x=0:0.01:L; %对x采样 i1=floor(a/0.01)+1; i2=floor((a-b)/0.01)+1; alpha=1.5368:0.00001:1.538; n=length(alpha); for i=1:n; [y,tfinal]=paosheti1(x,alpha(i),v,g); tH=l/(v*cos(alpha(i))); %从射门到球到守门员位置的时间 if y(i1)>=h | y(i2)<=H; success(i)=0; else success(i)=1; end plot(l,H,'r+',a,h,'r+'), hold on, plot(x,y), grid, hold off title(['足球比赛中的吊门 ','初射角=',num2str(alpha(i),6) ,... ' 守门员的移动时间=',num2str(tH)]),pause end figure(2) plot(alpha,success)
kt
gt
2
)
飞行到守门员位置的时间tH:
1 kt x ( t ) v cos (1 e ) 1 kl t ln( 1 ) k k v cos x (t ) l
问题的解
飞行轨迹
y ( t ) vt sin x (t ) 1 k 1 2 v cos (1 e
直观分析
最简单情形,抛射体的运动轨迹为抛物线方 程如下 借助于使用方便的数学软件,可直观地看到 各种初射角对应的抛射体运动的轨迹图形。
x vt cos 1 y vt sin gt 2 y ( x ) x tan
2
H
g 2 v cos
2 2
空气阻力的情形之一的结果及分析改 进(一)
前面结果有问题,反弹后的角度不应该是alpha 了,应该以落地时的情况计算出新反射角。
alpha a tan( vy vx )
修改抛射体函数:将paosheti2(t,alpha,v,k,g),换 成paosheti22(t,alpha,v,k,g)。