【思考题】小球平抛落地的动画
mathcad吧
全部回复
仅看楼主
level 12
朱老剑客 楼主
我试着做这个动画,仅使用高中知识,不用微分方程,但有一个地方怎么也没转过弯来,所以把它当个思考题出给大家哈。
不考虑小球与地面碰撞的能量损失,不考虑空气阻力,不考虑小球转动,小球和地面都是刚体,不发生形变。
当然,只用高中物理知识,如果各位觉得太简单了,可以把这个问题复杂化哈,没问题。
我是想不通位置是时间、速度的函数,速度也是时间、加速度的函数,最终要给出位置的变化,但速度也是变化的,而且一反弹,速度就要变符号……怎么构造一个函数来表达这个过程呢?我就凌乱了 :(
题不白出哈,发一个福利 :)
下面这个是Tom Pandolfi先生用他的MST Workshop做的小球落地的仿真,他考虑了空气阻力、碰撞能量损失,嗯,用到了高等数学:
2014年09月18日 15点09分 1
level 9
在这种理想状态下,小球的轨迹就是一个又一个完全相同的抛物线了,利用速度的叠加原理,小球在水平方向作匀速运动(常函数),在竖直方向上做无限反弹(周期函数),然后将两者叠加就可以了,建模应该很简单,用的手机,没发给你发截图了~
2014年09月18日 17点09分 2
是,但如果从物理意义上出发来用建模的思路做,就绕人脑筋了 :( 那个,我上面也说了哈,如果觉得这个太简单,我支持各位把它复杂化。:)
2014年09月18日 18点09分
回复 朱老剑客 :已上图,见楼下~
2014年09月18日 18点09分
level 9
2014年09月18日 18点09分 3
用mod分段,可我感觉这还是个几何上的解释。
2014年09月18日 19点09分
回复 朱老剑客 周期难道不是物理特性么?
2014年09月18日 20点09分
level 13
2014年09月19日 02点09分 4
level 13
2014年09月19日 02点09分 5
level 12
朱老剑客 楼主
LNS,你的视频里包括了能量衰减,但当小球弹起的高度降低的时候,它在空中停留的时间也就减少了,相同的x方向速度的话,它向前运动的距离就会小,也就是说,如果考虑能量衰减的话,这个曲线的每个峰的跨度在逐渐减小,而你的视频里,所有峰的跨度是一样的。
从这个视频中,我感觉你也是在做纯几何的模拟,而没有考虑物理因素。这道题如果仅用高中学的牛顿力学的那些知识来建模,现在看确实有些难的。不过,我是这么想的,如果我们在MC中还原了这个简单的物理模型,那么以后再做复杂一些物理模型时,至少咱们就有经验了。
如果用几何分析的方法来做,我也会,但对于复杂一些的物理模型时,它最终的图像是咱们不好预料的,单靠几何方法就不行了。
各位再试试看吧。我还是没琢磨出来呢。
2014年09月19日 02点09分 6
level 12
朱老剑客 楼主
其实就是高中物理的那几个基本函数:
风雨孤雁说的“周期”在高中物理中是在弦振动的时候提到的,用在这里也没问题,但需要给出一个证明:证明在不考虑能量损失和摩擦的情况下,这个模型是一个周期函数,这可能会比这道题还要难了。
2014年09月19日 03点09分 7
剑客,我在计算中用的就是高中物理中的速度的分解,x(t)是匀速运动,y(t)是前一部分平抛运动,后一部分是其逆运动,用的公式就是加速度公式h=1/2*g*t^2和s=v*t-1/2*a*t^2.你可以将这个过程分开理解,水平方向的运动不用管它,竖直方向小球在原地做无限回弹~
2014年09月19日 03点09分
回复 风雨孤雁qq :嗯,反弹时vy的方向发生了变化,这个至少应该在算式里给出来吧。为啥vy发生了变化?因为动量守恒,对吧。
2014年09月19日 03点09分
回复 朱老剑客 :至少应该给出一个动量守恒的计算来吧。
2014年09月19日 03点09分
level 12
朱老剑客 楼主
MC是一个工程计算软件,它的强项是对非数学领域的建模。这道题在MC中开始讨论这个话题,我也知道,迈出第一步往往是最困难的。
我觉得在掌握MC软件的操作方法之后,就得练着发挥其真正的用途了。
2014年09月19日 03点09分 8
level 12
朱老剑客 楼主
我是打算出一个系列,“高中物理、化学基础知识的MC建模系列”,因为这些知识大部分人都知道,不用科普,嗯,可能要复习一下高中课本——我想这对我自己,也是对大家,对MC有更深入的理解,是有帮助的。
2014年09月19日 03点09分 9
@mislaidfantasy 就是给高中知识做课件,不涉及大学知识。不过我也不知道现在的高中知识已经与时俱进到什么样子了。
2015年03月13日 03点03分
level 4
已在纸上做出mcdede算法,考虑能损,不能考虑空气摩擦,因为空磨系数引入必须要用积分来算。
在开会,回头给出mc
2014年09月20日 01点09分 10
嗯,希望能够做得像个高中物理课件哈 :)
2014年09月20日 03点09分
level 4
首先,准备被打脸
注:我设定的时间起点是上抛,看上面的gentleman设定的起点是高空抛物,这一点有区别。
另外,我这个算法的目的是给出一个函数,代入任意的时间t能算出当时的水平坐标和垂直坐标。如果仅仅只是为了画图,是不需要这么做的,按照时间顺序一个过程一个过程的画就可以了。再然后,还有另外一种更加“诡异”的画图方法也能瞬间把这个图画出来,这个在最后交代。
先是做运动学分析。碰撞嘛,满足动量守恒和能量守恒。因为考虑了能量吸收系数k
就有 E1*+E2*=k(E1+E2),其中地面质量无穷大,其结果v*=sqrt(k)*v
小球在竖直方向上做竖直上抛运动,在水平方向做匀速运动。但是每次落地以后竖直速度和水平速度都以sqrt(k)为系数做等比递减(运动学算)。将一个上抛-落地过程称为过程。每个过程的运行时间以sqrt(k)为系数等比递减。
下面MP
我用了长变量名,相信看变量名就知道我要表达的意思了
然后扯淡的事情出现了,我把t变量离散,很快就计算出数值型的x,y变量矩阵,一点没别扭。但是把Location的0和1分别写到画图区后,图区就一直转啊转。也不知道转个什么东西。反正图没出来。
最后说一下,这个运行轨迹从第三次弹起开始,每次都仿射第二次和第一次的关系。构成分形,其分形维度如果没弄错的话,是
恩,所以我说的最后一个迅速作图的方法就是画分形图。
就这么多了
2014年09月20日 11点09分 11
你可以把你算出来的x,y变量矩阵画出来,检验一下自己算的是否到位么。
2014年09月20日 15点09分
回复 朱老剑客 :数值上已经检验了,画不出来。很奇怪 “然后扯淡的事情出现了,我把t变量离散,很快就计算出数值型的x,y变量矩阵,一点没别扭。但是把Location的0和1分别写到画图区后,图区就一直转啊转。也不知道转个什么东西。反正图没出来。”
2014年09月21日 01点09分
level 12
朱老剑客 楼主
我感觉zpczzn的算式比较靠谱,我也是觉得应该在在这个过程里发生迭代,某瞬间的小球的x、y坐标是从前一个坐标的速度向量乘以时间计算出来的,因为不能使用积分,所以需要乘以一个很小量的t,也就是说在没有积分的情况下,如果要用高中物理描述这个小球的运动轨迹就是离散的,而不是连续的。
我也想通过编程板把这个过程迭代出来,哦,可是这几天业余时间都在折腾simwise了,刚弄明白它是怎么操作的 :( 。
2014年09月20日 15点09分 12
level 4
剑客,我那计算式是连续的,离散只是为了画图方便和迁就MP,用此式可以算出任意练习时间点上小球的位置。我昨天在帖子中回复了我的源文件的,用的360网盘,今天怎么没看见,被删了?
2014年09月21日 00点09分 13
哦,因为百度和360不共戴天。
2014年09月21日 00点09分
level 4
另外这个小问题给了我一个启发,来研究运动的分形,用很平淡的语气说了一件好像不得了的事情啊
2014年09月21日 00点09分 14
level 7
很有意思的讨论,正好学学。对MC的编程老是入不了门
2014年09月22日 13点09分 15
level 12
朱老剑客 楼主
哎,我还是没搞明白,小球落地的瞬间,vy听h的,当h=0的时候,vy变号,同时h从减小变成增大。
平抛运动落地之前:
v(t)=v0-g*t
h(t)=h0-g*t^2/2
落地的瞬间,假设此时刻为t1:
v=-v(t1)
h=0
弹起之后:
v(t1+t)=v-g*t
h(t)=g*t^2/2
当v(t1+t)=0时,就又开始循环新的一轮平抛运动,也就是上面的式子又重演一次,但如果计入摩擦和碰撞时的能量损失,这就不是新一轮了,所有的初值都要迭代上一次的运动结果。
现在我遇到的问题有两个:
(1)如果不用积分来给出h(t)和v(t)的统一表达式,那这个分段函数中,v就是h的变量,h也是v的变量,看似很简单的函数,可怎么也列不出来。都和t有关,那么就可以写成以t为参数的方程,可我总感觉如果不用h来判断是否碰撞的话,通过公式推导得到t,总是缺少灵活性。比如说当h0是一个随机变量的时候(比如说地震的时候,或者用球拍颠球的时候),t就根本推导不出来,只能用h来判断。
(2)g、v、Δh都是向量,如果规定向上方向为正,那么g就该等于-9.8,v在弹起后,先为正,到0,然后为负,这个过程中,h相对地平线都是正,而Δh是变化的。可在写表达式的时候,我就绕不出来了。
哎……高中没毕业 :(
记得前年我也是做一个碰撞的模型,用动量守恒,琢磨来琢磨去都得痔疮了。[汗]
2014年09月23日 14点09分 16
level 11
给吧主汇报下,两个方面的体会
第一,是模拟小球自由落体运动(考虑到横向移动速度恒定的话,这也可以看作是平抛的轨迹)
====================
第二,MTSworkshop的精度确实不够
上图中对小球触地的判断用的是『高度<=0』,如果改成『高度=0』,则是这样的:
可见,精度不足以在高度等于0时触发『高度=0』的判断。
而就算采用『高度<=0』作为判断,时间上也是不精确的,如果取消衰减,是这样的。
越蹦越高了,看来是因为每次触发『高度<=0』时的时刻都是小球碰撞地面之后的时刻,使得反弹速度的速度在变号前增大了。
======================
看起来就是这样子的,不知有没有改进的地方。
2014年10月02日 02点10分 17
level 12
朱老剑客 楼主
嗯,把连续的改为离散的,再进行数值计算,都会出现这样的情况吧,在MC中怎么判断小球与地面发生接触,也是同样的问题。
追看了一上午Win10。
2014年10月02日 05点10分 18
level 1
我觉得这是一类问题,本质是微分方程组表达式随自变量变化,相当于控制系统中的状态切换问题。迫切请求牛人解决。
我知道在simulink和vsm中都可以很容易解,但是mathcad怎么解这类问题?
要是能在求解块中编程就可以解了,可是mathcad的求解块中不能编程。如下图
simulink和vsm的解法详见下图1、2。
2015年03月12日 15点03分 19
level 12
朱老剑客 楼主
@go活宝哈哈 ,你真的理解我出的这道题的本意了,不用几何的方法,而是纯粹的使用物理定律来做这件事情。我对你的工作表很感兴趣,能否上传,我可能会在你的工作表的基础上修改,然后实现你所不能实现的功能,最后拿到一个有效的解。
MC的微分方程求解器是可以动态求解的。
2015年03月12日 15点03分 20
1 2 尾页