grind_time_for_dose_cv — DRIVE doseunif op

• Datenarten: signal × signal × scalar × scalar → table

• Aufruf: import fullseye as fs; fs.ledger.grind_time_for_dose_cv(t, d63, dose_mg: 'float', density: 'float', target_cv: 'float | None' = None, pass_probability: 'float | None' = None, law: 'str' = 'best', k_accept: 'float' = 2.4, limit_av: 'float' = 15.0, n_units: 'int' = 10, ref_range=(98.5, 101.5), n_mc: 'int' = 20000, seed: 'int' = 0) -> 'dict' (die Implementierung direkt: import doseunif; doseunif.grind_time_for_dose_cv(t, d63, dose_mg: 'float', density: 'float', target_cv: 'float | None' = None, pass_probability: 'float | None' = None, law: 'str' = 'best', k_accept: 'float' = 2.4, limit_av: 'float' = 15.0, n_units: 'int' = 10, ref_range=(98.5, 101.5), n_mc: 'int' = 20000, seed: 'int' = 0) -> 'dict'; aus dem Register: opsdrive.get("grind_time_for_dose_cv"))

Verwendung

Passt ein Zerkleinerungsgesetz an den zeitlichen Verlauf des Momentendurchmessers D63 an und berechnet rückwärts die Mahldauer, bis der Gehalts-CV auf den Zielwert sinkt.

t: Mahldauer (Stellvertreter für die Energie, Konvention von grind), d63: D63 zu diesem Zeitpunkt [µm] (d63 von dose_cv_from_sizes. D63 statt D50, weil der CV allein durch D63 bestimmt wird und keine Annahme über die Verteilungsform braucht —— das Zerkleinerungsgesetz an D63 anzupassen ist ebenso eine Annahme wie an D50).

Ziel: target_cv direkt, oder aus pass_probability = Wahrscheinlichkeit, die erste Stufe mit 10 Einheiten zu bestehen (geschlossene Form über χ², obere Schranke ohne Mittelwertabweichung) CV = (L1/k) √((n−1)/χ²_p(n−1)) / 100. Fehlt beides, L1/k/100 (= 0.0625, Richtwert „entspricht AV ≤ 15“, etwa die Hälfte besteht). Das benötigte D63 ist (CV² D / c)^{1/3} (Poisson, c = πρ/6). Die Zeit wird mit allen 3 Gesetzen (kick / bond / rittinger) berechnet; law="best" nimmt das Gesetz mit dem kleinsten log-rms, ein übergebener Name dieses Gesetz. Die Unterschiede zwischen den Gesetzen stehen in t_req_by_law und t_req_spread (als Modellunsicherheit lesen).

Rückgabe: t_req, law, d63_req, target_cv, t_req_by_law, t_req_spread (min, max), extrapolated (t_req jenseits des gemessenen Bereichs) / extrap_ratio, already_met (schon am ersten Punkt unter dem Ziel), cv_observed (CV je Punkt), pass_probability_chi2 (obere Schranke beim Ziel-CV) / pass_probability_mc (Monte Carlo inkl. Mittelwertabweichungsterm, Normalapproximation), fits (Zusammenfassung von grind.comminution_law_fit). Raises ValueError: weniger als 3 Punkte, nicht positiv, Längenabweichung, sowohl target als auch pass_probability, Wahrscheinlichkeit oder CV außerhalb des Bereichs, Schreibfehler.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_dose_uniformity_from_grinding — py -3.11 examples/poc_dose_uniformity_from_grinding.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Gleiche Kategorie (doseunif)

dose_cv_lognormal · dose_cv_from_sizes


*Provenance: doseunif.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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