Skip to main content
Glama
dfieser

io.github.dfieser/thermocouple-its90

thermocouple-its90

Преобразование термопар по NIST ITS-90 для Python: напряжение в температуру и температуру в напряжение для всех восьми буквенных типов (B, E, J, K, N, R, S, T), с компенсацией холодного спая и коэффициентами Зеебека. Тестовый набор проверяет все 12 026 табличных точек справочных таблиц NIST при каждом запуске.

Tests PyPI Python License: MIT DOI

Только стандартная библиотека, без зависимостей, полностью типизировано. Браузерная версия этого движка работает как бесплатный онлайн-калькулятор термопар, поставляемый из этого репозитория при каждом релизе.

Установка

pip install thermocouple-its90

Related MCP server: mcp-units

Преобразование милливольт термопары в температуру

from thermocouple_its90 import TypeK

TypeK.emf(300.0)          # 12.209  (mV at 300 C, 0 C reference: the table value)
TypeK.temperature(12.209) # 300.0   (C, ice-bath reference)
TypeK.seebeck(300.0)      # 0.0416  (mV per C)
TypeK.range               # (-270.0, 1372.0)

Компенсация холодного спая

Термопара измеряет разность между своими спаями, а справочные таблицы предполагают, что холодный спай находится при 0 C. Если клеммы вашего прибора находятся при комнатной температуре, прямое обращение к таблице будет неверным:

from thermocouple_its90 import TypeK

# Meter reads 4.096 mV, terminals at 25 C:
TypeK.temperature(4.096)                  # 100.0 C  <- naive lookup, wrong
TypeK.temperature(4.096, reference=25.0)  # 124.3 C  <- the actual answer

Все восемь типов работают одинаково:

from thermocouple_its90 import get, letters

letters()                       # ['B', 'E', 'J', 'K', 'N', 'R', 'S', 'T']
get("s").emf(1400.0)            # 14.373 mV
get("t").temperature(-4.648)    # -149.98 C (cryogenic ranges included)

Точность, проверенная, а не заявленная

  • Прямые справочные функции воспроизводят все 12 026 точек с шагом в один градус справочных таблиц NIST в пределах их печатного округления 0,001 мВ. Полное сравнение выполняется в CI при каждом push (tests/test_full_tables.py).

  • Инверсия начинается с опубликованных обратных полиномов ITS-90 и уточняется итерациями Ньютона по точной прямой функции. Обратные преобразования сходятся с точностью до микроградусов вместо диапазонов погрешности 0,02–0,06 C у обратных полиномов.

  • Типы K, E и T инвертируются во всём своём криогенном диапазоне (до -270 C), ниже границы, где заканчиваются опубликованные обратные полиномы.

  • Тип B обрабатывается с учётом его физики: его ЭДС немонотонна вблизи комнатной температуры, поэтому инверсия ниже 0,291 мВ (около 250 C) отклоняется с объяснением, вместо того чтобы вернуть один из двух возможных ответов.

MCP-сервер для ИИ-агентов

Языковые модели ошибочно запоминают полиномы термопар. Пакет включает сервер Model Context Protocol, чтобы агенты вызывали проверенную реализацию вместо этого:

pip install "thermocouple-its90[mcp]"
claude mcp add thermocouple -- thermocouple-its90-mcp

Инструменты: thermocouple_to_temperature, thermocouple_to_emf, thermocouple_types.

Происхождение данных и лицензирование

Коэффициенты были извлечены машинным способом, никогда не набраны вручную, из базы данных термопар NIST ITS-90 (SRD 60, https://its90.nist.gov/). База данных воспроизводит NIST Monograph 175 (Burns, Scroger, Strouse, Croarkin, and Guthrie, 1993) — публикацию правительства США, не охраняемую авторским правом. Канонический набор данных находится в data/its90.json; _data.py генерируется из него, и CI завершается ошибкой при расхождении. Код лицензирован по MIT.

Связанные материалы

Цитирование

Если эта библиотека полезна в опубликованной работе, пожалуйста, цитируйте её через концептуальный DOI https://doi.org/10.5281/zenodo.22036393, который всегда указывает на последний релиз (см. CITATION.cff). Пожалуйста, также цитируйте исходный справочник: Burns, G. W., Scroger, M. G., Strouse, G. F., Croarkin, M. C., & Guthrie, W. F. (1993). Temperature-electromotive force reference functions and tables for the letter-designated thermocouple types based on the ITS-90 (NIST Monograph 175). NIST.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for converting cooking measurements (volume, weight, temperature) between common units like ml, cup, g, oz, and Celsius/Fahrenheit.
    3
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server for controlling lab instruments (oscilloscopes, signal generators, etc.) via standardized interfaces like USBTMC, RS-232, and LAN.
    100
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    This MCP server enables AI clients to calculate the boiling temperature of water at a given absolute pressure using the IAPWS-IF97 standard, separating natural-language reasoning from authoritative scientific computation.
    1
    MIT