Загрузка данных
{
"method_definition": {
"identity_and_governance": {
"standard_id": "ГОСТ_Р_52247-2021",
"method_code": "Г", // 15.09.26 Г. КМ: устранено
"revision": "Изменение № 1",
"title": "Нефть. Методы определения хлорорганических соединений (метод Г)",// 15.09.26 метод Г
"target_substance": "Массовая доля органических хлоридов в нефти",
"status": "approved_for_production",
"scope": {
"standardization_object": "Нефть (сырая нефть)",
"oks_code": "75.040",
"applicability_range": { "min": 1.0, "unit": "млн⁻¹", "data_type": "number" }
},
"version_control": {
"previous_standard_id": "ГОСТ Р 52247-2004",
"equivalence_status": "modified",
"verification_requirement": "experiment_required",
}
},
"controlled_vocabulary": {
"properties": [
{ "id": "prop_mass", "label": "Масса", "unit": "г", "data_type": "float" },
{ "id": "prop_volume", "label": "Объем", "unit": "см³", "data_type": "float" },
{ "id": "prop_qualitative", "label": "Качественная реакция", "data_type": "enum" }
],
"enumerations": [
{
"id": "enum_presence_absence",
"label": "Наличие/Отсутствие",
"items": [
{ "id": "отсутствует", "label": "Реакция отсутствует" },
{ "id": "присутствует", "label": "Реакция присутствует" }
]
}
],
"equipment_roles": [
{ "id": "eq_distillation", "label": "Аппарат для разгонки нефти", "category": "TEST_EQUIPMENT" },
{ "id": "eq_heater", "label": "Колбонагреватель", "category": "AUXILIARY_EQUIPMENT" },
{ "id": "eq_cryostat", "label": "Криотермостат", "category": "AUXILIARY_EQUIPMENT" },
{ "id": "eq_cylinder_nef", "label": "Цилиндр (объем нефти)", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_cylinder_naft", "label": "Цилиндр (объем нафты)", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_balance_nef", "label": "Весы для нефти", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_balance_naft", "label": "Весы для нафты", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_thermometer_dist", "label": "Термометр (для получения нафты)", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_thermometer_amb", "label": "Термометр для определения температуры вокруг приемного цилиндра", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_timer", "label": "Секундомер", "category": "MEASURING_INSTRUMENT" },
{ "id": "eq_chlorine_analyzer", "label": "Анализатор хлора", "category": "MEASURING_INSTRUMENT" }
]
},
"observation_definitions": {
"system_fields": [
{ "field": "record_date", "source": "system.current_date", "label": "Дата проведения испытания" },
{ "field": "sample_id", "source": "system.sample_id", "label": "Номер образца" },//15.09.26 Номер образца
{ "field": "operator_name", "source": "system.current_user", "label": "Исполнитель (ФИО)" }
],
"inputs": { //15.09.26 исключаем поправки + перепроверить точность, она не соответствует.
"S1": { "label": "Результат качественной реакции на наличие неорганических хлоридов", "data_type": "enum", "enum_ref": "enum_presence_absence", "is_mandatory": true, "data_source": "MEASUREMENT" },
"S2": { "label": "Результат качественной реакции на наличие сероводорода", "data_type": "enum", "enum_ref": "enum_presence_absence", "is_mandatory": true, "data_source": "MEASUREMENT" },
},
"primary_measurements": {
"Vnef": { "label": "Объем нефти", "data_type": "float", "unit": "см³", "resolution": 1.0, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
"Vnaf": { "label": "Объем отогнанной нафты", "data_type": "float", "unit": "см³", "resolution": 1.0, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
"m1": { "label": "Масса пустой круглодонной колбы", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
"m2": { "label": "Масса круглодонной колбы с нефтью", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
"m3": { "label": "Масса пустого приемного цилиндра", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
"m4": { "label": "Масса приемного цилиндра с нафтой", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "MEASUREMENT" },
"mnef": { "label": "Масса нефти", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
"mnaf": { "label": "Масса нафты", "data_type": "float", "unit": "г", "resolution": 0.1, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
"f": { "label": "Выход фракции нафты", "data_type": "float", "unit": "безразмерная", "resolution": 0.01, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
"tv": { "label": "Скорость дистилляции", "data_type": "float", "unit": "см³/мин", "resolution": 1.0, "is_mandatory": true, "allow_zero": true, "data_source": "MEASUREMENT" },
"N": { "label": "Массовая доля хлорорганических соединений в нафте (Едиинчные результаты)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": true, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "MEASUREMENT" },// 15.09.26 неправильное обозначение, должно быть N. КМ: устранено, было X_array
"Xnaf": { "label": "Массовая доля хлорорганических соединений в нафте (Среднее)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": false, "data_source": "AGGREGATION" },
"Xnef": { "label": "Массовая доля хлорорганических соединений в нефти (Единичные результаты)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": false, "data_source": "CALCULATION" },
"X": { "label": "Массовая доля хлорорганических соединений в нефти (Среднее)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.1, "is_mandatory": false, "allow_zero": false, "data_source": "AGGREGATION" },// 15.09.26 Для нефти обозначение Х, точность 0,1. КМ: устранено
// 15.09.26 пересмотреть блок ниже. поправки убрать некоторые строки не относятся к этому методу+точность. КМ: замечание непринято.
"N_array": { "label": "Единичные измерения массовой доли хлоридов (с коррекцией на выход фракции)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.05, "is_mandatory": true, "is_array": true, "min_items": 2, "max_items": 4, "data_source": "CALCULATION" },
"calc_diff": { "label": "Фактическое расхождение (Размах)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.05, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
"calc_r": { "label": "Повторяемость (сходимость)", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.05, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
"calc_final_result": { "label": "Окончательный результат измерения", "data_type": "float", "unit": "млн⁻¹", "resolution": 0.05, "is_mandatory": true, "allow_zero": false, "data_source": "CALCULATION" },
}
},
"process_definition": {
"operations": [
{
"operation_id": "op_qualitative_check",
"name": "Проверка на сероводород и неорг. хлориды",
"produces": ["S1", "S2"]
},
{
"operation_id": "op_distillation",
"name": "Дистилляция нефти и отбор нафты",
"equipment": ["eq_distillation", "eq_heater", "eq_cryostat", "eq_thermometer_dist", "eq_timer"],
"inputs": ["Vnef", "m1", "m2"],
"produces": ["mnef", "Vnaf", "m3", "m4", "mnaf"]
},
{
"operation_id": "op_measurement",
"name": "Анализатор хлора",
"equipment": ["eq_icp_ms", "eq_balance_naft", "eq_cylinder_naft", "eq_chlorine_analyzer"],
"inputs": [],
"produces": ["N"] //15.09.26 переменная N. КМ: было X_array
}
]
},
"calculation_definition": {
"ast_nodes": [
{
"id": "mnef",
"label": "Масса нефти (m2 - m1)",
"expression": "m2 - m1",
"unit": "г",
"resolution": 0.01,
"data_type": "float",
"data_source": "CALCULATION"
},
{
"id": "mnaf",
"label": "Масса нафты (m4 - m3)",
"expression": "m4 - m3",
"unit": "г",
"resolution": 0.01,
"data_type": "float",
"data_source": "CALCULATION"
},
{
"id": "f",
"label": "Выход фракции нафты",
"expression": "(mnef = 0 ? 0 : mnaf / mnef)",
"unit": "безразмерная",
"resolution": 0.01,
"data_type": "float",
"data_source": "CALCULATION"
},
{
"id": "N_array_raw",
"label": "Массовая доля хлорорганических соединений в нафте (с коррекцией) - массив сырых измерений", // 15.09.26 терминология. КМ: не устранено.
"expression": "map(X_array, x => x * f)", //15.09.26 N не получается по этой формуле. Так получается Xnef. А уже из среднего Xnef получается итоговое значение Х - массовая доля органических соединений в нефти. КМ: замечание не устранено. Что в итоге делаем?
"unit": "млн⁻¹",
"resolution": 0.1,
"data_type": "float[]",
"is_array": true,
"min_items": 2,
"max_items": 4,
"data_source": "CALCULATION"
},
{
"id": "N_array", //15.09.26 зачем это?. КМ: Для calc_diffa
"label": "Массовая доля хлорорганических соединений в нафте - массив",
"expression": "map(N, x => x * f)", //КМ? устранено. Было X_array
"unit": "млн⁻¹",
"resolution": 0.1,
"data_type": "float[]",
"is_array": true,
"min_items": 2,
"max_items": 4,
"data_source": "CALCULATION"
},
{
"id": "Xnaf",
"label": "Массовая доля хлорорганических соединений в нафте (Среднее)",
"expression": "(N_array = null ? null : average(N_array))",
"unit": "млн⁻¹",
"resolution": 0.1, // 15.09.26 точность 0,1. КМ:устранено
"data_type": "float",
"data_source": "AGGREGATION"
},
{
"id": "Xnef",
"label": "Массовая доля хлорорганических соединений в нефти (Единичные результаты)",
"expression": "(N_array = null ? null : N * f)", //15.09.26 расчет неправильно указан, должно быть N*f
"unit": "млн⁻¹",
"resolution": 0.1,
"data_type": "float",
"data_source": "CALCULATION"
},
{
"id": "N_array_for_agg",
"label": "Массовая доля хлорорганических соединений в нефти - массив для агрегации",
"expression": "(Xnaf = null ? N_array : map(N_array, x => x * f))",
"unit": "млн⁻¹",
"resolution": 0.05,
"data_type": "float[]",
"is_array": true,
"min_items": 2,
"max_items": 4,
"data_source": "CALCULATION"
},
{
"id": "X", //15.09.26 должно быть Х. КМ: устранено
"label": "Массовая доля хлорорганических соединений в нефти (Среднее)",
"expression": "(Xnaf = null ? N : average(N_array_for_agg))",
"unit": "млн⁻¹",
"resolution": 0.1, //15.09.26 точность 0,1. КМ: устранено
"data_type": "float",
"data_source": "AGGREGATION"
},
{
"id": "calc_diff",
"label": "Фактическое расхождение (Размах)",
"expression": "(N_array_for_agg = null ? null : max(N_array_for_agg) - min(N_array_for_agg))",
"unit": "млн⁻¹",
"resolution": 0.05,
"data_type": "float",
"data_source": "CALCULATION"
},
{
"id": "calc_r",
"label": "Повторяемость (сходимость)",
"expression": "0.643*pow(Xnef),0.44)",//15.09.26 со скобками нужно разобраться //1)Монохроматиче-ский волнодис-персионный рентгенофлуоресцентный спектрометр, 2) Монохроматиче-ский энергодиспер-сионный рентгено-флуоресцентный спектрометр r=0.591〖∙X〗^0.44, 3) энергодисперсионный рентгенофлуоресцентный спектрометр =0.934〖∙(X+0.4)〗^0.48. КМ!!!: НЕ УСТРАНЕНО. Формулы понятны как их делать?
//16.09.26 оставляем пока повторяемость для волно-дисперсионного 0.643*pow(X,0.44)
"unit": "млн⁻¹",
"resolution": 0.1, //15.09.26 точность 0,1. КМ: Устранено.
"data_type": "float",
"data_source": "CALCULATION"
},
{
"id": "calc_final_result",
"label": "Окончательный результат измерения",
"expression": "if(size(N_array) == 4, if(calc_diff <= calc_r, average(N_array), median(N_array)), if(size(N_array) == 3, if(calc_diff <= calc_r, average(N_array), median(N_array)), N))",
"unit": "млн⁻¹",
"resolution": 0.1, //15.09.26 точность 0,1. КМ: устранено
"data_type": "float",
"data_source": "CALCULATION"
}
]
},
"gum_uncertainty_budget": {
"description": "Бюджет неопределенности",
"result_field": "Xhn_G",
"formula": "N*(m4 - m3)/(m2 - m1) + Fpov + Fokr",// 15.09.26 N*(m4 - m3)/(m2 - m1) + Fpov + Fokr. КМ: устранено
"uncertainty_components": [
{
"component_id": "u(N)",
"label": "Неопределённость массовой доли хлоридов в нафте",
"unit": "млн⁻¹",
"evaluation_type": "A",
"distribution": "normal",
"sensitivity_coefficient": "(m4-m3)/(m2-m1)",
},
{
"component_id": "u(m1)",
"label": "Неопределённость массы пустой круглодонной колбы",
"unit": "г",//15.09.26 перепроверить везде единицы измерения, тут граммы
"evaluation_type": "B",
"distribution": "rectangular",
"sensitivity_coefficient": "N*(m4-m3)/(pow(m2-m1),2)", //15.09.26 для указания степени до этого указывался формат (число,степень). сейчас через ^. КМ: Поправил через pow
},
{
"component_id": "u(m2)",
"label": "Неопределённость массы круглодонной колбы с нефтью",
"unit": "млн⁻¹",
"evaluation_type": "B",
"distribution": "rectangular",
"sensitivity_coefficient": "-N*(m4-m3)/(pow(m2-m1),2)",//15.09.26 аналогично. КМ: устранено.
},
{
"component_id": "u(m3)",
"label": "Неопределённость массы пустого приемного цилиндра",
"unit": "млн⁻¹",
"evaluation_type": "B",
"distribution": "rectangular",
"sensitivity_coefficient": "-N/(m2-m1)",
},
{
"component_id": "u(m4)",
"label": "Неопределённость массы приемного цилиндра с нафтой",
"unit": "млн⁻¹",
"evaluation_type": "B",
"distribution": "rectangular",
"sensitivity_coefficient": "N/(m2-m1)",
},
{
"component_id": "u(Fpov)",
"label": "Неопределённость повторяемости",
"unit": "млн⁻¹",
"evaluation_type": "A",
"distribution": "normal",
"sensitivity_coefficient": 1,
},
{
"component_id": "u(Fokr)",
"label": "Неопределённость округления",
"unit": "млн⁻¹",
"evaluation_type": "B",
"distribution": "rectangular",
"sensitivity_coefficient": 1,
}
],
"combined_standard_uncertainty_formula": "uc = sqrt(sum(u(xi)^2 * c(xi)^2))",
"expanded_uncertainty_formula": "U = k * uc (при k=2 для 95% доверительной вероятности)",
"coverage_probability": "0.95",
"degrees_of_freedom": "effective"
},
"decision_workflow": {
"states": [
{
"state_id": "evaluate_repeatability_2",
"name": "Проверка приемлемости (2 измерения)",
"condition": "size(N) == 2", //КМ: устранено
"rule": "calc_diff <= calc_r",
"on_true": "accepted_series_of_2",
"on_false": "require_measurements_3_and_4"
},
{
"state_id": "evaluate_repeatability_3",
"name": "Проверка приемлемости (3 измерения)",
"condition": "size(N) == 3", //КМ: устранено
"rule": "calc_diff <= calc_r",
"on_true": "accepted_average_of_3",
"on_false": "accepted_median_of_3_warning"
},
{
"state_id": "evaluate_repeatability_4",
"name": "Проверка приемлемости (4 измерения)",
"condition": "size(N) == 4", //КМ: устранено
"rule": "calc_diff <= calc_r",
"on_true": "accepted_average_of_4",
"on_false": "accepted_median_of_4_warning"
}
]
},
"report_profile": {
"template_id": "GOST_52247_G_REPORT",
"system_fields": [
{ "field": "record_date", "source": "system.current_date", "label": "Дата проведения испытания" },
{ "field": "sample_id", "source": "system.sample_id", "label": "Номер образца" }, //ст3//15.09.26 Номер образца. КМ: Устранено
{ "field": "operator_name", "source": "system.current_user", "label": "Исполнитель (ФИО)" },
{ "field": "eq_distillation", "source": "eq_distillation", "label": "Аппарат для разгонки нефти" },
{ "field": "eq_heater", "source": "eq_heater", "label": "Колбонагреватель" },
{ "field": "eq_cryostat", "source": "eq_cryostat", "label": "Криотермостат" },
{ "field": "eq_cylinder_nef", "source": "eq_cylinder_nef", "label": "Цилиндр (объем нефти)" },
{ "field": "eq_cylinder_naft", "source": "eq_cylinder_naft", "label": "Цилиндр (объем нафты)" },
{ "field": "eq_balance_nef", "source": "eq_balance_nef", "label": "Весы для нефти" },
{ "field": "eq_balance_naft", "source": "Весы для нафты", "label": "Весы для нафты" },
{ "field": "eq_thermometer_dist", "source": "eq_thermometer_dist", "label": "Термометр (для получения нафты)" },
{ "field": "eq_thermometer_amb", "source": "eq_thermometer_amb", "label": "Термометр для определения температуры вокруг приемного цилиндра" },
{ "field": "eq_timer", "source": "eq_timer", "label": "Секундомер" },
{ "field": "eq_chlorine_analyzer", "source": "eq_chlorine_analyzer", "label": "Анализатор хлора" }
],
"journal_row_mapping": [
{ "header": "Объем нефти, см³", "source": "Vnef" },
{ "header": "Масса пустой колбы , г", "source": "m1" },
{ "header": "Масса колбы с нефтью, г", "source": "m2" },
{ "header": "Масса нефти, г", "source": "mnef" },
{ "header": "Скорость перегонки, см³/мин", "source": "tv" },
{ "header": "Объем отогнанной нафты, см³", "source": "Vnf" },
{ "header": "Масса цилиндра без нафты, г", "source": "m3" },
{ "header": "Масса цилиндра с нафтой, г", "source": "m4" },
{ "header": "Масса нафты, г", "source": "mnf" },
{ "header": "Выход фракции нафты", "source": "f" },
{ "header": "Результат качественной реакции на наличие неорганических хлоридов", "source": "S1" },
{ "header": "Результат качественной реакции на наличие сероводорода", "source": "S2" },
{ "header": "Массовая доля органических хлоридов во фракции, выкипающей до температуры 204°С (Едииничные результаты), млн⁻¹", "source": "N" }, //ст17// 15.09.26 неправильное обозначение. КМ: устранено
{ "header": "Массовая доля органических хлоридов в нефти (Среднее), млн⁻¹", "source": "Xnaf" },
{ "header": "Массовая доля хлорорганических соединений в нефти (Среднее), млн⁻¹", "source": "X" } // ст19 //15.09.26 тут должно быть обозначение Х. КМ: Устранено
{ "header": "Фактическое расхождение результатов измерения, млн⁻¹", "source": "calc_diff" },
{ "header": "Предел повторяемости (сходимости), млн⁻¹", "source": "calc_r" }
]
}
}}