spoon_tilt_critical — DRIVE granular op

• 数据种类:scalar × scalar × scalar → scalar

• 调用: import fullseye as fs; fs.ledger.spoon_tilt_critical(phi_deg: 'float', L: 'float', h0: 'float', lip: 'str' = 'wall') -> 'float'(要直接调用实现,import granular; granular.spoon_tilt_critical(phi_deg: 'float', L: 'float', h0: 'float', lip: 'str' = 'wall') -> 'float';从台账取用则 opsdrive.get("spoon_tilt_critical"))

用法

粉体开始从勺子洒出的倾角 θ_c [度] (2 维截面、准静态、无壁面摩擦 —— 自行推导)。

模型:底面长度 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。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• poc_granular_heap_repose — py -3.11 examples/poc_granular_heap_repose.py

类型可衔接的下一个算子(可接受 scalar 作为输入)

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

同类别(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 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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