计算质量阻力加速度

时间:2015-02-04 19:09:41

标签: c++ physics

我不确定这个问题是否适合这个问题,但是我需要计算一个大振幅摆的速度,用我当前的代码得到一个正弦图。

问题在于,如果我增加质量,钟摆的周期会变小,这不应该在真正的钟摆中发生,因为周期与质量无关;加速度随着质量的增加而增加,但加速度的阻力也会增加,我不知道如何编码。

我已经尝试过研究角动量,但我的物理知识非常有限。我有这个:

long double timeFrame = 0.01;
    if(getNewAngle==true)
{
    //Convert to radians.
    myAngle = Angle*M_PI/180;
    getNewAngle = false;
    //Velocity starts at 0.
    myVelocity = 0;
}
//Setup starting variables.
long double dLength = std::stod(Length,0);
long double dGravity = std::stod(Gravity,0);
long double dMass = std::stod(Mass,0);
long double dPeriod = std::stod(Period,0);

//Large amplitude pendulum acceleration formula
long double dAcceleration = -dMass*dGravity/dLength*sin(myAngle);
//Angular displacement formula;
long double dDisplacement = myVelocity*timeFrame+0.5*dAcceleration*pow(timeFrame,2);
myVelocity = dDisplacement/timeFrame;
myAngle = myAngle + dDisplacement;

1 个答案:

答案 0 :(得分:0)

此:

//Large amplitude pendulum acceleration formula
long double dAcceleration = -dMass*dGravity/dLength*sin(myAngle);

不正确。它应该是这样的:

//Large amplitude pendulum acceleration formula
long double dAcceleration = -dGravity/dLength*sin(myAngle);

没错,质量不会进入(除非你开始考虑空气阻力)。