水平面圆周运动的GGB模拟——转盘上的物块(带摩擦)
首先,创建基本的物理参数。
摩擦系数μ=0.8,显示
物块质量m=1,
重力加速度g=9.8,
初始速度水平分量=0,初始速度垂直分量
=0,显示
速度矢量v=(0,0),隐藏
转盘半径R=5,
转盘c=circle(O,R),隐藏标签
物块所在位置:描点A;设置点径大小3,显示轨迹,
物块位移r=vector(O,A),隐藏
切向单位向量u=UnitPerpendicularVector(r),隐藏
转盘转速ω=1.5,显示
时间微元dt=0.01,
物块相对于转盘的切向速度v_t=-ω*|r|*u,隐藏
物块相对于转盘的相对速度v'=v_t+v,隐藏
径向拉力数值:F_T=slider(-20,20,0.1),显示
径向拉力矢量:FT=vector(-r/|r| F_T),隐藏
加速度a=如果(abs(r)≤R,向量(-(μ g) ((v')/(abs(v')))+((FT)/(m))),(0,0)),隐藏
速度微元dv=a*dt,隐藏
位移微元dA=v*dt,隐藏
时间t=slider(0,100),显示
控制条tt=0,
重置按钮:脚本:
启动动画(tt,false)
赋值(tt,0)
赋值(t,0)
赋值(v,(0,0))
赋值(A,(1,1))
速度箭头:w=向量(A,A+v),设置标题为v
力箭头:F=向量(A,A+m a)
tt脚本:
赋值(t,t+dt)
赋值(A,A+dA)
赋值(v,v+dv)
开始按钮:脚本:
启动动画(tt,true)
暂停按钮:脚本:
启动动画(tt,false)
清除轨迹按钮:脚本:
放大(1)
设置点:C=(R cos(ω t+((π)/(2))),R sin(ω t+((π)/(2))))
设置线段:f=线段(O,C),隐藏标签,设置样式为虚线
注意事项:加速度与微元法的结合在模拟圆周运动时,不可避免地会出现:在物块本应圆周运动时,圆周越来越大的情况、力矢量箭头在临界状态乱晃的情况。可以考虑用旋转指令与微元法结合来优化。