CLEAR\n if compliant:\n if in_chamfer and at_rim:\n lat -= np.sign(lat)*min(abs(lat), 120*dt) # lateral compliance centers it\n depth += 55*0.5*dt\n else:\n depth += 55*dt\n force = 16.0\n else: # rigid position control\n if in_chamfer and at_rim:\n force += 150*dt # jam force builds, no give\n if force > 75: return 'JAM', depth, force\n else:\n depth += 62*dt\n if depth >= DEPTH-0.5 and abs(lat) <= CLEAR+0.5:\n return 'SEATED', depth, force\n return 'TIMEOUT', depth, force\n\nprint(f\"{'misalign mm':>11} {'rigid':>8} {'compliant':>11}\")\nfor mis in (2, 8, 14, 20, 26):\n r = insert(mis, False)[0]\n c = insert(mis, True)[0]\n print(f\"{mis:11d} {r:>8} {c:>11}\")\nprint('\\ncompliance seats the part where rigid position control jams on the rim.')\n","label":"Compliant vs rigid insertion"}],"intro":"Simulate rigid vs compliant insertion and find the misalignment where they diverge.","key":"space-logistics/seat-it-by-force","kind":"python","title":"Seat it by force: compliant servicing"}">
PYTHON · NUMPY · IN-BROWSER

Seat it by force: compliant servicing

Simulate rigid vs compliant insertion and find the misalignment where they diverge.

You read

the arrays and values already in scope

You change

the code you write in each cell

Fixed

the dataset and the checks that grade you