spoon_tilt_critical — DRIVE granular op

• Data kinds: scalar × scalar × scalar → scalar

• Call: import fullseye as fs; fs.ledger.spoon_tilt_critical(phi_deg: 'float', L: 'float', h0: 'float', lip: 'str' = 'wall') -> 'float' (implementation को सीधे call करना हो तो import granular; granular.spoon_tilt_critical(phi_deg: 'float', L: 'float', h0: 'float', lip: 'str' = 'wall') -> 'float', registry से लेना हो तो opsdrive.get("spoon_tilt_critical"))

उपयोग

वह tilt θ_c [degrees] जिस पर चम्मच से powder गिरना शुरू होता है (2-D cross-section, quasi-static, दीवार friction के बिना —— अपनी व्युत्पत्ति)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

模型: 床の長さ L(唇から奥壁まで、奥壁は床に垂直)、水平で深さ h0 に平らに盛った粉。唇を下げて床を θ 傾ける。粉の自由表面は水平から φ(安息角)までしか立てないので、唇を通る斜面は床から見て φ − θ。

• lip="wall"(既定: 口に縁があり、初めは口まで平らに満ちている、初めの面積 L h0): 保持できる断面は A(θ) = ½ L² tan(φ − θ)(床と表面の楔)。L h0 を超えて保持できなくなる傾きが θ_c = φ − atan(2 h0 / L)(atan2 で)。盛りが多いほど早くこぼれ、h0 → 0 で θ_c → φ、θ = φ で全部出る。2 h0 / L ≥ tan φ なら水平でも既に保持できない(0 を返す)。

• lip="open"(口に壁の無い器): 前面は初めから安息角の斜面なので θ = 0⁺ からこぼれる —— 常に 0 を返す。

★2026-10-05 まで wall の楔の傾きを tan φ − tan θ と書いていた(小角の近似、θ_c = atan(tan φ − 2 h0 / L))。θ = 10 度・φ = 30 度で楔の傾きが 10 % 大きく、L 50 mm・h0 5 mm で θ_c が 20.67 度(厳密 18.69 度)と出ていた。Raises ValueError: φ が (0, 90) の外、L / h0 が ≤ 0、lip が wall / open 以外。

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_granular_heap_repose — py -3.11 examples/poc_granular_heap_repose.py

वे अगले ops जिनसे type जुड़ता है (scalar को input के रूप में लेते हैं)

spin_from_marker_sequence · carla_transform_matrix · carla_pose_to_world · carla_camera_pose · carla_xy_yaw · carla_scene_load · town_chain · osm_parse

इसी category के (granular)

heap_volume_cone · heap_mass · heap_volume_heightmap · beverloo_rate · beverloo_fit · discharge_synth · dispense_mass_from_video · hopper_discharge_rate


*Provenance: granular.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.