Skip to content

Add backlash model for gear mesh#1325

Draft
jguarato wants to merge 12 commits into
petrobras:mainfrom
jguarato:feature-backlash
Draft

Add backlash model for gear mesh#1325
jguarato wants to merge 12 commits into
petrobras:mainfrom
jguarato:feature-backlash

Conversation

@jguarato

Copy link
Copy Markdown
Collaborator

Motivation

Gear pairs with clearance introduce discontinuous contact forces that a linear mesh stiffness cannot capture. This PR enables backlash-aware multi-rotor simulations while keeping the previous linear mesh coupling when backlash is disabled.

Changes

Multi-rotor package

  • Reorganize multi-rotor code into ross/multi_rotor/ (MultiRotor, GearElement, Mesh)
  • Introduce Backlash (force calculation for Newmark) in Mesh.
  • Add an optional gear backlash model for time-response analysis (rigid or smooth approach), including transmission error and dynamic mesh forces injected into Newmark integration.
  • MultiRotor accepts a backlash dict (enable, initial, error_amp, smooth_operator, sigma).
  • When backlash is enabled, mesh stiffness is applied via nonlinear forces instead of the linear coupling matrix.

Improve transient integration

  • More robust Newmark path for stiff/nonlinear systems
  • Support newmark_type="simple"|"robust", and fix coupling/force assembly so backlash works correctly in MultiRotor.

Usage sketch

multi_rotor = rs.MultiRotor(
    rotor1,
    rotor2,
    coupled_nodes=(4, 0),
    gear_mesh_stiffness=1e8,
    backlash={
        "enable": True,
        "initial_value": 1e-4,
        "error_amp": 0.0,
        "smooth_operator": False,
        "sigma": 1e4,
    },
)
results = multi_rotor.run_time_response(..., method="newmark", newmark_type="robust")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant