求教关于LinearSpring中的damping coefficient的解释



  • 在LinearSpring.C 的文件中,弹簧产生的力是如此定义的:

    point attachmentPt = bodyPoint(refAttachmentPt_);
    
        // Current axis of the spring
        vector r = attachmentPt - anchor_;
        scalar magR = mag(r);       //  模值
        r /= (magR + VSMALL);      // 方向向量
    
        // Velocity of the attached end of the spring
    vector force
        
            (
        
                (-stiffness_*(magR - restLength_) - damping_*(r & v))*r    
        
            );
    

    前面一项我可以看出来是弹力系数乘上拉伸量,可以是后面这一项是什么意思呢 ? 我试着查了一下线性弹簧理论,但发现都是简单的胡克定律,没有涉及到damping coefficient 乘上以速度大小的这一项。
    所以这里请教一下各位,有谁知道弹簧产生的力中这多出来的一项是代表什么意思吗? 或者有谁知道bodyPoint()这个函数是怎么样实现的吗,或许根据函数的实现也能帮助理解后面多出来的这一项的含义。
    万分感谢!:shangxue:



  • 一般介绍简谐振动的书上都会有这部分的介绍。

    最理想的情况,弹簧振子做无外力无阻尼运动,就只和弹簧刚度 k 和物体质量有关。

    稍微接近现实一点的考虑:也就是把摩擦力考虑到控制方程中,就会出现阻尼系数这一项。

    一般情况下,大家发现物体受力是和速度呈正比的。所以就引入了 c 这个概念。



  • @random_ran 万分感谢。按照您的意思,这里的速度应该是和弹簧的方向一致的对吧



  • 请问有谁对 bodyPoint(refAttachmentPt_)这个函数了解吗?
    这是函数的具体实现:

    inline Foam::point Foam::RBD::restraint::bodyPoint
    (
        const point& p
    ) const
    {
        return (model_.X0(bodyID_).inv() && spatialVector(Zero, p)).l();   //  双内积
    }
    

Log in to reply