空气阻力下的运动方程求解
关键词
空气阻力物理
Air ResistancePhysics

一个物体,质量为m,在时刻t的运动速率为v,并受到方向竖直向下的重力G=mg作用。假设其收到的空气阻力f=kv2并且方向和运动方向相反,将这个物体以一个初速v0竖直向上抛出,求v和t的关系。

草图:

如果f和v成正比,那么就很简单了,加速度a=-g-kv/m,f关于t是一个指数类型的函数。但是f和v2成正比,情况就变得复杂,但这个问题有一个确定的解。

v'=-kv^2-g,只要解出这个微分方程就OK了。

来自 科创茶话喷气推进
2019-8-21 20:52:02
UICalculus(作者)
1楼

刚刚自己用微积分思想写了个程序,迭代得到了大概的曲线,现在在调试等一下发

折叠评论
加载评论中,请稍候...
折叠评论
UICalculus(作者)
2楼

F-Calc.exe1.83M2次下载

预览图:

至于如何在excel中绘制区域,先选择左上角数据,再按住shift选择右下角数据选择一块数据,点击“插入”选项卡,进入“推荐的图表”就可以简单地画一个坐标系了。

折叠评论
加载评论中,请稍候...
折叠评论
UICalculus(作者)
3楼

从图像和实际情况可以推测,这个函数在定义域内递减,并且收敛于空气阻力和重力的平衡点。

核心算法用了C++实现,使用很简单的物理规律就可以计算:

	ft = vt * vt * k;
	if(vt > 0)
	{
		ftot = gt + ft;
	}
	else
	{
		ftot = gt - ft;
	}
	a = ftot / m;//计算加速度 
	vt1 = vt - a * t / 1000;//计算末速度 
	ds = (vt + vt1) * t / 2000;
	d += ds;//积累总位移 
	it = ftot * t / 1000;//计算冲量
	i += it;//积累总冲 
	w = ds * ftot;//计算做功
	wtot += w;//计算总功
	vt = vt1;//末速度等于下一时刻初速度

其中外面有一个for循环控制迭代次数和时间,此处因为简单到没有必要,未给出。

F-Calc.exe1.83M2次下载

(不知道为什么,上一楼的超链接移到了文字上)

折叠评论
加载评论中,请稍候...
折叠评论
UICalculus(作者)
4楼

经过这次程序迭代,可以在数值上近似求解很多此类问题。可以使用公式C为空气阻力系数,该值通常是实验值,和物体的特征面积(迎风面积),物体光滑程度和整体形状有关;ρ为空气密度,正常的干燥空气可取1.293g/l,特殊条件下可以实地监测;)计算出所需的k值然后代入程序进行计算。


程序精度可调,可以根据需求调整。


附:一次计算输出的csv(逗号分隔符)文件

F-Calc.csv705k0次下载

参考文献:

[1]https://baike.baidu.com/item/空气阻力 2019-06-21版本

折叠评论
加载评论中,请稍候...
折叠评论
5楼

其实这个方程是有解析解的,速度向上时是个正切函数,开始下降以后是个双曲正切函数。。

[修改于 1 个月前 - 2019-08-21 23:29:33]

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-22 01:12:34
6楼

得找个符合这个曲线的函数呀

折叠评论
加载评论中,请稍候...
折叠评论
UICalculus(作者)
7楼
引用 Resbi 发表于 6 楼的内容:
得找个符合这个曲线的函数呀

楼上有啦。

从导数来看,该函数应该类似于一个双曲线。

折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png