Processing data of a pulse thermal physics experiment using Python
- 作者: Gubin А.А.1,2, Marchukova А.А.2, Povolotskiy I.I.3, Volosnikov D.V.3
-
隶属关系:
- Ural Federal University
- I.Ya. Postovsky Institute of Organic Synthesis of the Ural Branch of the Russian Academy of Sciences
- The Institute of Thermal Physics of the Ural Branch of the Russian Academy of Sciences
- 期: 卷 88, 编号 9 (2024)
- 页面: 1372–1378
- 栏目: Condensed Matter Physics
- URL: https://medbiosci.ru/0367-6765/article/view/283363
- DOI: https://doi.org/10.31857/S0367676524090061
- EDN: https://elibrary.ru/OEDXJF
- ID: 283363
如何引用文章
全文:
详细
An algorithm has been developed and original software has been created for obtaining and post-processing an array of experimental data. The method of controlled pulsed heating of a wire probe has been used. The heat transfer in liquid binary media and their phase diagrams in the region of short-term superheated states has been studied. The Python program was tested by analyzing 1250 files containing more than 107 values.
全文:
Введение
В теплофизике быстропротекающих фазовых переходов [1, 2], при изучении теплообмена в жидких средах, кратковременно перегретых относительно линии равновесия жидкость-пар или (для раствора) жидкость-жидкость [3, 4], широко используются различные языки программирования для получения и обработки опытных данных [5, 6]. Особой популярностью пользуется язык Python благодаря простому синтаксису и наличию множества готовых библиотек, позволяющих сократить время написания кода [7]. Так, например, в методе управляемого импульсного нагрева для изучения переноса теплоты в перегретых бинарных средах и построения их расширенных фазовых диаграмм (ФД), вовлекающих в рассмотрение область перегретых состояний, существует проблема обработки больших массивов данных [8, 9]. В зависимости от программы исследований, измерения проводятся двумя независимыми методиками при различных давлениях и/или температурах и заданных концентрациях раствора [11, 13]. Если в случае исследования ФД бинарного раствора массив регистрируемых значений составляет несколько сотен файлов и содержит более 106 экспериментальных значений, то в случае исследования теплоотдачи к перегретым растворам увеличивается не только число файлов, но и содержание в них экспериментальных значений до 107. Обработка такого значительного количества измеренных экспериментальных значений с помощью стандартных математических пакетов трудоемко и малопродуктивно. Таким образом, возникает задача написания ПО с удобным аналитическим интерфейсом для формализации процесса обработки и анализа данных [10].
Цель работы – автоматизация вычислений и расчетов ряда теплофизических параметров в экспериментах с управляемым импульсным нагревом зонда; создание удобного интерфейса для графоаналитического анализа и наладка программного кода для оптимизации обработки значительных массивов экспериментальных данных.
Метод управляемого импульсного нагрева зонда
Развиваемый нами метод управляемого импульсного нагрева проволочного зонда заключается в джоулевом нагреве малоинерционного термосопротивления из платины, помещенного в исследуемое вещество. Нагрев происходит от начального значения температуры T0 с регистрацией температуры зонда во времени T(t), при этом T(t) ≫ T0. В рамках исследования перегретых состояний растворов решаются две основные задачи: изучение ФД, определение собственно линии достижимого перегрева раствора относительно линии равновесия жидкость-пар, и определение транспортных свойств (тепловой проводимости) внутри границ ФД. Отметим, что изучение свойств веществ и ФД перегретых состояний возможно при применении импульсных методов нагрева с опцией управления температурой зонда. При использовании камеры высокого давления можно изменять параметры проведения опытов p в диапазоне от атмосферного давления до 40 МПа.
В методе управляемого импульсного нагрева зонда применяется два режима: нагрев проволочного зонда с термосопротивлением R(t) импульсом постоянного тока I(t) [11, 12] и изотермическое воздействие с постоянным температурным напором Tst(t) – T0 = const [13]. Характерные времена нагрева t при реализации данных режимов варьируют в диапазонах 100–500 мкс и 10–100 мс соответственно. В опыте посредством быстродействующего АЦП (аналого-цифрового преобразователя) регистрируются амплитуды двух импульсов напряжения: падение напряжения на зонде U(t) и на «токовом» резисторе. По этим данным рассчитываются ток в цепи зонда I(t), электрическая мощность P(t) и температура Tst(t). Так в результате одного измерения оператор экспериментальной установки получает набор точек термограмм Ti(t) и мощностей Pi(t). Оценим объем информации (число реализаций в отдельных файлах) и количество регистрируемых в эксперименте значений [14, 15]. В первом случае, исследуется ФД бинарного раствора. При изменении концентрации одного из компонентов с шагом 10–20 мас. % (от 6 до 11), которые исследуются при порядка тридцати значениях давления (30), в массив регистрируемых значений добавляется ~ 500 файлов, содержащих от (1020) до (5020) записей и времени и температуры (2), что составляет от N = 6 ‧ 30 ‧ 2 ‧ 1020 = 3.672 ‧ 105 до N = 11 ‧ 30 ‧ 2 ‧ 5020 = = 3.3132 ‧ 106 экспериментальных значений (в скобках указаны значения для расчета массива N). Во втором случае, температура зонда Tst(t) изменяется от опыта к опыту в диапазоне 100–500 °С с шагом 25 °С. Это изменение регистрируется одновременно с изменением греющей мощности P(t) = I2(t) ‧ R(t) в два массива с n = 2 ‧ 104 экспериментальных точек в каждом. При этом в случае 3–5-кратного повтора опыта число файлов достигает ~ 750, а число экспериментальных точек в них достигает 3 ‧ 107. Задача создания удобного программного интерфейса включает в себя: обработку первичных экспериментальных данных, их усреднение и сглаживание, выделение сигнала, связанного со спонтанным вскипанием раствора, реализация процедуры пакетной обработки экспериментальных данных, расчет значений коэффициента теплоотдачи и сопоставление с соответствующими аддитивными значениями исходных компонентов.
Подготовка образцов и проведение опытов
Одним из требований к образцам перед изучением ФД и линии достижимого перегрева является их обезвоживание. Осушение исходных компонентов и образцов растворов производилась с помощью двух видов цеолита: NaA-БС (4 Å) и молекулярные сита 3 Å от Sigma-Aldrich. Перед осушкой образцов цеолиты 4 Å прокаливали при 380 °C в течение 8–9 ч; а молекулярные сита 3 Å при 260 °C в течение 6 ч. В образцы для осушки вносили 20 мас. % цеолитов. Время нахождения цеолитов в образцах – одни сутки. После чего проводили измерение влаги одним из наиболее широко используемых аналитических методов – методом титрования по Карлу Фишеру. Удовлетворительным содержанием влаги считались значения 10–30 ppm.
Методика определения температуры достижимого перегрева жидкости, предшествующего ее спонтанному вскипанию, включает в себя возможность расчета, на основе первичных данных, ключевых параметров опыта: среднеинтегральной температуры зонда (по его объему) Т(t) и соответствующей ей мощности тепловыделения P(t). Наиболее тонкий момент связан с выделением момента вскипания на фоне электрических шумов. За признак, отвечающий началу вскипания, принимается момент возмущения хода температуры зонда во времени T(t = t*), где t* – начало вскипания, по характерному изменению хода производной dT(t)/dt при выбранной степени его сглаживания (рис. 1).
Рис. 1. Raw-files изменения температуры зонда T(t) (a) и ее производной по времени (б) в гексане при атмосферном давлении. Моменту вскипания t*, отмеченному стрелочкой, соответствует характерный излом зависимости dT(t)/dt.
Кривая T(t) является, по сути, более наглядной при описании процесса, но имеет больший уровень зашумленности в виду операции деления двух файлов, а именно, падения напряжения на зонде и на образцовом сопротивлении, применяемом для вычисления тока в цепи зонда.
Протокол определения температуры достижимого перегрева [16] и критических параметров [17] состоит из четырех пунктов:
- Проверка качества сигнала вскипания, а именно его сосредоточенность во времени и повторяемость по температуре в серии последовательных измерений.
- Определение значения обобщенной поправки δT(Т′, l) к среднеинтегральной температуре выбранного зонда Т* = T(t = t*) длины l [16].
- Регистрация зависимости Т*(р), при ступенчатом увеличении давления в опытах c исследуемыми веществами при нескольких скоростях нагрева, в частности, при 106 и 5 ⋅ 106 К/с.
- На основе определенных в опытах значений температуры достижимого перегрева Т*(р) и с учетом значения обобщенной поправки δT(Т′, l) к величине температурного напора (T* – T0) производится расчет действительных температур достижимого перегрева Тr* и критической температуры Тс исследуемых образцов. Укажем, что критическая температура Тс выбранной для расчета поправки жидкости (в нашем случае это гексан) хорошо известна.
В режиме изотермического воздействия при выбранной степени перегрева [13] в опыте регистрируется мощность P(t), необходимая для поддержания постоянства заданной температуры Tst, и отслеживается ее изменение при изменении параметра эксперимента – давления p или концентрации с. Далее по формуле (4), см. следующий раздел, рассчитываются средняя (по поверхности зонда) плотность теплового потока и мгновенный коэффициент теплоотдачи KT(t) с учетом теплоемкости и концевых потерь самого зонда (мощность в вакууме) при заданном температурном напоре.
Программное обеспечение
Для достижения цели данной работы разработано и написано программное обеспечение, блок-схема которого представлена на рис. 2. Для его запуска требуется установка Python, а также таких сторонних библиотек как NumPy, SciPy, Matplotlib, Pandas и PyQt5. Назначение каждого блока и последовательность выполнения представлены ниже:
Старт: В зависимости от типа экспериментальных данных запускается либо блок для обработки данных с прямоугольным импульсом тока, либо блок для обработки данных температурного плато.
Рис. 2. Блок-схема ПО.
I: Загрузка набора термограмм Tiзонд(t) при заданной концентрации одного из компонент x1 = const и при разных давлениях в измерительной ячейке p = pi, i = 1 … N. Выбор нужных файлов осуществляется с помощью функции getOpenFileNames() из сторонней библиотеки PyQt5 класса QtWidgets.QFileDIalog, которая возвращает путь к каждому из выбранных файлов в виде строки. Чтение данных из файла реализовано с помощью функции read_table() из библиотеки Pandas модуля io.parsers, которая принимает путь к файлу и возвращает данные из него в виде типа данных DataFrame. Для дальнейших расчетов также необходимо знать величину давления, соответствующую каждой термограмме. Как правило, название каждого файла формируется по определенному шаблону, где для величины давления выделена ячейка. Поэтому чтение величины давления осуществляется из названия файла либо автоматически, если оно соответствует определенному шаблону, либо определяется вручную для одной термограммы путем выбора первого символа давления в названии файла, а для остальных термограмм автоматически.
II: Сглаживание каждой из термограмм Ti зонд(t) либо методом Савицкого–Голая, либо фильтром нижних частот на усмотрение оператора. Для сглаживания методом Савицкого–Голая была использована функция savgol(), из библиотеки SciPy из модуля signal. Данная функция принимает массив данных, а также параметр WindowSize, который определяет степень сглаживания. Сам параметр задается пользователем в интерфейсе программы. Фильтр нижних частот реализован с помощью функций butter() и sosfiltfilt() из той же библиотеки и того же модуля. Функция butter() принимает порядок фильтра а также отсекаемую частоту и возвращает набор коэффициентов, используемых функцией sosfiltfilt(). Отсекаемая частота задается пользователем также через пользовательский интерфейс (см. рис. 3а).
Рис. 3. Графический интерфейс ПО для определения ФД (линии достижимого перегрева и критических параметров) на примере воды: исходные данные термограмм (вверху), значения их производных по времени (внизу).
III: Вычисление производных по формулам (1–3). На данном этапе также используется библиотека SciPy в целях сглаживания, а также библиотека Numpy для работы с массивами.
\frac{d T_{\text {ізовд }}}{d t} (1)
(2)
(3)
Так, для взятия производной по времени была использована функция gradient() из библиотеки Numpy
IV: Графическое отображение сглаженных термограмм Tiзонд(t) и производных [формулы (1–3)]. Построение графиков осуществляется с помощью библиотеки Matplotlib путем внедрения его в интерфейс программы используя функции FigureCanvasQTAgg() и NavigationToolbar2QT().
V: Определение величины pc = pi* по исчезновению сигнала вскипания на соответствующей производной экспериментальной кривой изобары. Затем с помощью разработанных встроенных инструментов на одной из производных «критической» термограммы оператором определяется момент фазового перехода tф.п., а по tф.п. автоматически определяется величина критической температуры Tc = Ti*(tф.п.).
VI: Формирование двумерных массивов обработанных экспериментальных данных с помощью функций hstack(), vstack() и transpose() из библиотеки Numpy.
VII: Сохранение двумерных массивов в 4 отдельных файлах с расширением .csv с помощью библиотеки Pandas [формирование DataFrame с помощью функции DataFrame() и его сохранение с помощью функции to_csv()], которые в дальнейшем можно использовать для построения графиков в доступных пакетах обработки графических данных.
VIII: Оператору предоставляется выбор продолжить обработку данных, либо завершить работу.
I`: Загрузка набора данных для точки p = const, x1 = const. В него входят: T0 – температура окружающей среды, R0 – сопротивление зонда при температуре T0, x1 – концентрация одного из компонент в исследуемом растворе, а также следующие одномерные массивы при разных температурных напорах подаваемых на зонд dT = Ti – T0 : Piвак(t) – мощность на зонде при вакууме в ячейке, Tiзонд (t) и P iзонд (t) – температура зонда и мощность на зонде в ходе нагрева исследуемого вещества. Загрузка Tiзонд(t) является опциональной, поскольку возможно чтение температурного напора из названия файла тем же методом, что был описан в пункте I.
II`: Сглаживание каждого массива Piвак(t), Tiзонд (t) и P iзонд (t) теми же методами, что и в блоке II.
III`: Расчет коэффициента теплоотдачи (КТО) и относительного изменения КТО исследуемого бинарного раствора и аддитивного КТО [формулы (4–6)]:
, (4)
, (5)
, (6)
где S – площадь поверхности зонда, вычисляется через R0; x1 – концентрация одного из компонент раствора; KT(1) – КТО чистого первого компонента; KT(2) – КТО чистого второго компонента.
Итого на выходе имеется два 3D-массива: КТО раствора и его изменение относительно аддитивного КТО. У обоих массивов одна ось соответствует заданному температурному напору, а вторая – времени.
IV`: Графическое отображение сглаженных 2D [P(t), T(t), Pвак(t)] и 3D [KT (T, t), ∆KT (T, t)]-массивов данных также осуществляется с помощью библиотеки Matplotlib, см. рис. 4
V`: Сохранение готовых двумерных массивов при заданных p = const и x1 = const в два отдельных файла .csv с помощью библиотеки Pandas.
VI`: Оператору предоставляется выбор продолжить обработку данных либо завершить работу.
Финиш: Завершение обработки данных импульсного эксперимента.
Рис. 4. Мгновенный коэффициент теплоотдачи в водный раствор полипропиленгликоля (PPG): (а) графический интерфейс ПО, пример определения КТО в водный раствор с 20 мас. % PPG; (б) сопоставление КТО в исходные компоненты водного раствора PPG и в образцы (числа соответствуют мас. % содержанию PPG в воде).
Таким образом, одним из основных факторов, позволивших ускорить обработку данных с помощью описанной программы, состоит в пакетной обработке – оператору достаточно выбрать нужные файлы для получения готовых к анализу графиков, т.е. сокращается время от начала обработки до начала анализа. Кроме того, исключается возможность совершения ошибки в ходе расчетов, поскольку все вычислительные операции автоматизированы.
Заключение
В рамках автоматизации теплофизических исследований создана оригинальная программа на языке Python. Апробация ПО проведена на примере обработки и анализа данных метода управляемого импульсного нагрева бинарных растворов и их исходных компонентов. Реализована пакетная обработка экспериментальных файлов, позволяющая в разы сократить время обработки и сопоставления массивов данных, содержащая более тысячи файлов и более 107 экспериментальных значений. Средства и инструменты, используемые в ходе создания программы, являются бесплатными проектами и позволяют отказаться от части коммерческих пакетов.
Дальнейшими направлениями развития ПО в рамках метода управляемого импульсного нагрева зонда являются расчет и анализ данных непосредственно в ходе проведения теплофизического эксперимента; разработка универсального алгоритма, позволяющего автоматически оценивать критические параметры растворов, определять семейство околокритических изобар, момент фазового перехода, связанного с переменой знака амплитуды сигнала вскипания на околокритической изобаре; разработка процедуры интерполирования и экстраполирования для оптимизации числа экспериментальных реализаций; апробация и использование библиотек с более развитым функционалом для повышения информативности и создания 3D графиков в оболочке разрабатываемого ПО.
Исследование выполнено за счет гранта Российского научного фонда № 23-69-10006, https://rscf.ru/project/23-69-10006/
作者简介
А. Gubin
Ural Federal University; I.Ya. Postovsky Institute of Organic Synthesis of the Ural Branch of the Russian Academy of Sciences
编辑信件的主要联系方式.
Email: artyom.gubin@vk.com
俄罗斯联邦, Ekaterinburg; Ekaterinburg
А. Marchukova
I.Ya. Postovsky Institute of Organic Synthesis of the Ural Branch of the Russian Academy of Sciences
Email: artyom.gubin@vk.com
俄罗斯联邦, Ekaterinburg
I. Povolotskiy
The Institute of Thermal Physics of the Ural Branch of the Russian Academy of Sciences
Email: artyom.gubin@vk.com
俄罗斯联邦, Ekaterinburg
D. Volosnikov
The Institute of Thermal Physics of the Ural Branch of the Russian Academy of Sciences
Email: artyom.gubin@vk.com
俄罗斯联邦, Ekaterinburg
参考
- Skripov P.V. // Energies. 2022. V. 15. No. 12. Art. No. 4440.
- Паршакова М.А., Липнягов Е.В. // Изв. РАН. Сер. физ. 2022. Т. 86. № 2. С. 215; Parshakova M.A., Lipnyagov E.V. // Bull. Russ. Acad. Sci. Phys. 2022. V. 86. No. 2. P. 158.
- Лексин М.А., Ягов В.В., Забиров А.Р. и др. // ТВТ. 2020. Т. 58. № 3. С. 393; Lexin M.A., Yagov V.V., Zabirov A.R. et al. // High Temp. 2020. V. 58. No. 3. P. 369.
- Онуфриев С.В. // Изв. РАН. Сер. физ. 2018. Т. 82. № 4. С. 430; Onufriev S.V. // Bull. Russ. Acad. Sci. Phys. 2018. V. 82. No. 4. P. 372.
- Котов А.Н., Лукьянов К.В., Сафонов В.Н. и др. // Приб. и техн. эксперим. 2020. № 6. С. 133.
- Котов А.Н., Старостин А.А., Шангин В.В. и др. // Изв. РАН. Сер. физ. 2023. Т. 87. № 11. С. 1547; Kotov A.N., Starostin A.A., Shangin V.V. et al. // Bull. Russ. Acad. Sci. Phys. 2023. V. 87. No. 11. P. 1580.
- MакКинни Уэс. Python и анализ данных. М.: ДМК Пресс, 2023. 536 с.
- Скрипов П.В., Старостин А.А., Волосников Д.В. // ДАН. 2003. Т. 390. № 2. С. 192; Skripov P.V., Starostin A.A., Volosnikov D.V. // Dokl. Phys. 2003. V. 48. No. 5. P. 228.
- Волосников Д.В., Поволоцкий И.И., Скрипов П.В. // Письма в ЖТФ. 2021. Т. 47. № 22. С. 21; Volosnikov D.V., Povolotsky I.I., Skripov P.V. // Tech. Phys. Lett. 2022. V. 48. No. 1. P. 15.
- Volosnikov D.V., Povolotskiy I.I., Igolnikov A.A. et al. // J. Phys. Conf. Ser. 2018. V. 1105. Art. No. 012153.
- Рютин С.Б. // Приб. и техн. эксперим. 2021. № 5. С. 152; Rutin S.B. // Instrum. Exper. Tech. 2021. V. 64. No. 5. P. 781.
- Rutin S.B., Igolnikov A.A., Skripov P.V. // J. Engin. Thermophys. 2022. V. 31. P. 664.
- Волосников Д.В., Поволоцкий И.И., Старостин А.А., Скрипов П.В. // ТВТ. 2021. № 2. С. 384 // Volosnikov D.V., Povolotsky I.I., Starostin A.A., Skripov P.V. // High Temp. 2021. V. 59. No. 2–6. P. 283.
- Volosnikov D.V., Povolotskiy I.I., Skripov P.V. // J. Eng. Thermophys. 2023. V. 32. No. 1. P. 14.
- Volosnikov D.V., Povolotskiy I.I., Skripov P.V. // Appl. Thermal Eng. 2024. V. 236. Art. No. 121532.
- Rutin S.B., Galkin D.A., Skripov P.V. // Thermochim. Acta. 2017. V. 651. Р. 47.
- Skripov P.V., Bar-Kohany T., Antonov D.V. et al. // Int. J. Heat Mass Transf. 2023. V. 207. Art. No. 123970.
补充文件
