Temperature uncertainty budgets
temperature_uncertainty_budget() combines the propagated resistance
contribution with additional independent components that are already expressed
as standard uncertainties in °C.
The result remains inspectable rather than collapsing every contribution into one unexplained number.
Example with a named sensor contribution
from rtd_sensor import pt100, tolerance, uncertainty
class_a_limit = tolerance.thermometer_tolerance_c(
100.0,
tolerance_class="A",
construction="wire_wound",
)
# This rectangular distribution is an explicit user assumption.
sensor_u = uncertainty.standard_uncertainty_from_bound(
class_a_limit,
distribution="rectangular",
)
sensor_component = uncertainty.TemperatureUncertaintyComponent(
name="Sensor class limit",
standard_uncertainty_c=sensor_u,
evaluation_method="B",
source="IEC 60751 Class A limit modeled as rectangular",
)
budget = uncertainty.temperature_uncertainty_budget(
pt100.celsius_to_resistance(100.0),
0.01,
model=pt100,
additional_components=(sensor_component,),
coverage_factor=2.0,
)
print(budget.combined_standard_uncertainty_c)
print(budget.expanded_uncertainty_c)
What a component contains
TemperatureUncertaintyComponent stores:
- a human-readable
name; standard_uncertainty_c;- optional Type A/Type B evaluation method;
- optional source; and
- optional note.
The optional fields provide provenance only. All supplied numerical components must already be standard uncertainties in °C.
What the budget contains
TemperatureUncertaintyBudget retains the resistance propagation result,
additional named components, combined standard uncertainty, and—if requested—the
coverage factor and expanded uncertainty.
Its temperature_c property reports the nominal converted temperature from the
resistance contribution.
Independence assumption
The current budget combines components as uncorrelated terms. It does not support covariance matrices, coefficient covariance, effective degrees of freedom, or Monte Carlo analysis.
If two uncertainty sources are materially correlated, do not treat this helper as if it had modeled that covariance.