Skip to content

RibleExtraIntegrators

RibleGeneralizedAlpha

RibleGeneralizedAlpha 实现了广义α(Generalized-α)时间积分方法,这是一种用于结构动力学的高阶隐式积分算法。

概述

广义α方法是Newmark族算法的扩展,通过引入两个参数(αm和αf)来控制数值阻尼和精度。该方法特别适合刚柔耦合多体系统的长时间仿真。

主要特性

  • 二阶精度:对于线性系统保持二阶时间精度

  • 可控阻尼:通过参数调节高频数值阻尼

  • 无条件稳定:适当参数选择下无条件稳定

  • 能量守恒:可配置为能量守恒或耗散

算法参数

控制参数

  • ρ∞:高频谱半径(0 ≤ ρ∞ ≤ 1)
    • ρ∞ = 1:无阻尼(能量守恒)

    • ρ∞ = 0:最大阻尼

派生参数

基于ρ∞自动计算:

  • αm:质量矩阵参数

  • αf:力矩阵参数

  • β:位移参数

  • γ:速度参数

优势

相比传统方法

  • 更好的稳定性:相比Newmark方法

  • 可控阻尼:相比HHT-α方法更灵活

  • 保持精度:在引入阻尼时保持二阶精度

应用场景

  • 刚柔耦合系统:机器人动力学

  • 长时间仿真:需要数值稳定性

  • 高频振动:需要抑制高频分量

  • 接触碰撞:非光滑动力学问题

使用示例

julia
using Rible
import Rible as RB

## 使用广义α求解器
solver = RB.DynamicsSolver(
    RB.GeneralizedAlpha(ρ∞=0.8),  # 中等阻尼
    # ... 其他选项
)

RB.solve!(prob, solver; tspan=(0.0, 10.0), dt=1e-3)

RibleMoreau

RibleMoreau 实现了Moreau-Jean时间步进方法,这是一种专门用于非光滑动力学系统的隐式积分算法。

概述

Moreau-Jean方法是处理接触、碰撞和摩擦等非光滑现象的标准数值方法。该方法基于测度微分包含(Measure Differential Inclusions)理论,能够精确处理不连续的速度跳变。

主要特性

  • 非光滑动力学:精确处理接触和碰撞

  • 隐式积分:θ-方法(通常θ=0.5)

  • 能量耗散:自然处理碰撞能量损失

  • 约束稳定:保持约束满足

理论基础

测度微分包含

系统动力学表示为:

M dv = f(t,q,v)dt + r

其中:

  • M:质量矩阵

  • v:速度

  • f:光滑力

  • r:非光滑冲量测度(接触力)

时间离散

使用θ-方法离散化:

  • θ = 0.5:中点法(二阶精度)

  • θ = 1.0:隐式欧拉(一阶精度,更稳定)

接触处理

Signorini条件

  • 非穿透约束

  • 互补性条件

  • 法向冲量非负

Coulomb摩擦

  • 摩擦锥约束

  • 最大耗散原理

  • 切向滑动规则

应用场景

  • 颗粒系统:散体材料动力学

  • 机器人接触:抓取和操作

  • 碰撞问题:多体碰撞仿真

  • 摩擦系统:滑动和滚动接触

数值求解

互补问题

每个时间步求解:

  • 线性互补问题(LCP)

  • 非线性互补问题(NCP)

  • 锥互补问题(CCP)

求解器

  • 投影法

  • 内点法

  • ADMM方法

使用示例

julia
using Rible
import Rible as RB

## 使用Moreau求解器
solver = RB.DynamicsSolver(
    RB.Moreau=0.5),  # 中点Moreau方法
    RB.InnerLayerContactSolver(
        RB.InteriorPointMethod()
    )
)

RB.solve!(prob, solver; tspan=(0.0, 5.0), dt=1e-3)