add report (russian)
BIN
Report/main.pdf
Normal file
542
Report/main.tex
Normal file
@ -0,0 +1,542 @@
|
|||||||
|
\documentclass[a4paper,12pt]{extarticle}
|
||||||
|
\usepackage{/home/eddy/ed}
|
||||||
|
\graphicspath{{./pic/}}
|
||||||
|
\nocolon
|
||||||
|
\title{\textbf{Технический отчет~\No\,xxx}\\Система температурного мониторинга\\ главного зеркала БТА}
|
||||||
|
\makeatletter
|
||||||
|
\def\maketitle{%
|
||||||
|
\vskip 3em%
|
||||||
|
\begin{center}%
|
||||||
|
\let \footnote \thanks
|
||||||
|
{\LARGE \@title \par}%
|
||||||
|
\vskip 1.5em%
|
||||||
|
{\large
|
||||||
|
\lineskip .5em%
|
||||||
|
\begin{tabular}[t]{c}%
|
||||||
|
\@author
|
||||||
|
\end{tabular}\par}%
|
||||||
|
\vskip 1em%
|
||||||
|
{\large \@date}%
|
||||||
|
\end{center}%
|
||||||
|
\par
|
||||||
|
\vskip 1.5em}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
\author{Емельянов~Э.В.}
|
||||||
|
\begin{document}
|
||||||
|
\noindent
|
||||||
|
\begin{tabular}{p{0.6\textwidth}p{0.3\textwidth}}
|
||||||
|
& \textbf{Утверждаю}\\
|
||||||
|
& Директор САО РАН\\[2em]
|
||||||
|
& \hrulefill~~Власюк~В.В.\\[1em]
|
||||||
|
& <<\rule{7mm}{0.4pt}>>~\hrulefill~\number\year\,г. \\
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
\tableofcontents\newpage
|
||||||
|
|
||||||
|
Длительное время температура главного зеркала (далее ГЗ) БТА фактически определялась лишь по показаниям
|
||||||
|
одного датчика ввиду того, что использовалась некалиброванная система из терморезисторов, наклеенных на нижнюю
|
||||||
|
поверхность зеркала. Разброс показаний терморезисторов доходил до $3\degr$C, что не позволяло использовать
|
||||||
|
систему для исследования влияния температурных градиентов на форму поверхности ГЗ.
|
||||||
|
|
||||||
|
Для объективной аттестации реставрированного ГЗ \No1 необходимо было исключить возможность влияния тепловых
|
||||||
|
неоднородностей на форму зеркала, поэтому возникла потребность в создании новой системы теплового мониторинга.
|
||||||
|
|
||||||
|
\section{Выбор типа термодатчиков}
|
||||||
|
Согласно документации\footnote{Большой Азимутальный Телескоп (БТА). Техническое описание (Книга~--~1).~---
|
||||||
|
ЛОМО.}, в главном зеркале БТА высверлено 60~глухих отверстий диаметром 310\,мм и глубиной 430\,мм для
|
||||||
|
размещения механизмов разгрузки (57~разгрузок) и фиксирующих опор (3~опоры); 6~площадок глубиной около 20\,мм
|
||||||
|
для упора домкратов; 1~сквозное отверстие диаметром 360\,мм в центре для центрирующего стакана. Верхняя часть
|
||||||
|
каждой разгрузки отделена от зеркала воздушным промежутком, толщина которого более чем достаточна для
|
||||||
|
установки температурного датчика на поверхности стекла.
|
||||||
|
|
||||||
|
При размещении в отверстиях разгрузок термодатчиков появится возможность мониторинга распределения
|
||||||
|
температурных градиентов по поверхности зеркала. Температурный коэффициент линейного расширения
|
||||||
|
боросиликатного стекла имеет значение от $3\cdot10^{-6}\,\degr\text{C}^{-1}$
|
||||||
|
до~$7\cdot10^{-6}\,\degr\text{C}^{-1}$.
|
||||||
|
Для $\alpha_L=5\cdot10^{-6}\,\degr\text{C}^{-1}$ при радиальном градиенте температуры отклонение формы
|
||||||
|
поверхности зеркала между двумя выбранными точками на одну длину волны ($\lambda=500\,$нм) будет наблюдаться
|
||||||
|
при разности температур между этими точками $\sim0.15\degr$C. Таким образом, регистрация температур зеркала
|
||||||
|
БТА требуется с крайне высокой точностью (не хуже~$0.1\degr$C).
|
||||||
|
|
||||||
|
\subsection{Аналоговые температурные датчики}
|
||||||
|
\subsubsection{Термопары}
|
||||||
|
Термопары применяются обычно для измерения высоких (тысячи Кельвин) температур. Для измерения абсолютных
|
||||||
|
температур с высокой точностью термопары обычно не применяют. Однако, термопары "--- хорошее средство для
|
||||||
|
измерения разностей температур с высокой точностью (вплоть до $\pm0.01\degr$C).
|
||||||
|
|
||||||
|
В аризонской обсерватории <<Multiple Mirror Telescope>> использовалась система мониторинга градиентов
|
||||||
|
температуры по составному главному зеркалу (диаметром 6.5~метров, в дальнейшем составное зеркало было
|
||||||
|
заменено монолитным) на основе дифференциальных измерений с использованием термопар.
|
||||||
|
|
||||||
|
Высокоточное измерение температуры при помощи термопар "--- технически сложная задача. Ее реализация требует
|
||||||
|
значительно б\'ольших затрат времени и средств по сравнению с альтернативными методиками.
|
||||||
|
|
||||||
|
\subsubsection{Терморезисторы}
|
||||||
|
Компания U.S. Sensor предлагает терморезисторы, имеющие погрешность $\pm0.05\degr$C на интервале
|
||||||
|
температур~$0\div50\degr$C с различными значениями сопротивления при температуре~$25\degr$C (от $2.252\,$кОм
|
||||||
|
для PR222J2 до $50\,$кОм для PR503J2. Цена одного такого датчика "--- около \$20.
|
||||||
|
|
||||||
|
Еще один вариант высокоточных термосопротивлений от этой компании "--- USP3021 и USP3986 (сопротивление,
|
||||||
|
соответственно, $10\,$кОм и $100\,$кОм) с заявленной точностью не меньше~$\pm0.01\degr$C! Однако, и цена этих
|
||||||
|
датчиков соответствует точности: около \$500 за штуку.
|
||||||
|
|
||||||
|
Pico Technology предлагает погружные терморезисторы серии PT100 в металлическом корпусе --- SE012, точность
|
||||||
|
которых по заявлению производителя не ниже~$\pm0.03\degr$C! Стоимость "--- около \$80 за штуку.
|
||||||
|
Компания предлагает и терморезисторы <<потребительского класса>> "--- SE011, обладающих
|
||||||
|
точностью~$\pm0.15\degr$C по цене около \$40.
|
||||||
|
|
||||||
|
Для разрабатывающегося в САО РАН ИК-спектрофотометра IRBIS мониторинг температуры <<холодных>> узлов прибора
|
||||||
|
было решено выполнять при помощи изготавливаемых компанией Honeywell платиновых терморезисторов HEL-705,
|
||||||
|
позволяющих выполнять надежные измерения температуры и в диапазоне кипящего жидкого азота. Гарантированная
|
||||||
|
производителем точность (без калибровки) составляет $0.2\%$ (т.е. $\pm0.15\,$K при температуре жидкого азота
|
||||||
|
и $\pm0.60\,$K при комнатной температуре). Цена одного такого термодатчика составляет порядка \$45.
|
||||||
|
Однако, проведенные в 2013--2014\,гг. испытания показали, что после калибровка датчиков в совокупности с
|
||||||
|
высокоточной методикой измерения их сопротивления позволяет увеличить точность до $\pm0.05\degr$C в диапазоне
|
||||||
|
температур около $40\degr$C (например, от $-20\degr$C до $20\degr$C, чего вполне достаточно для работы с
|
||||||
|
ГЗ БТА).
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{TRD_hot}
|
||||||
|
\caption{Показания восьми некалиброванных терморезисторов HEL-705 при комнатной температуре.}
|
||||||
|
\label{trdhot}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{TRD_cold}
|
||||||
|
\caption{Показания двух некалиброванных терморезисторов HEL-705 при температуре жидкого азота.}
|
||||||
|
\label{trdcold}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
Для высокоточного измерения сопротивлений термодатчиков применялась схема, в которой каждый из проводников
|
||||||
|
подсоединенных по трехпроводной схеме датчиков коммутировался отдельным мультиплексором, а для уменьшения
|
||||||
|
воздействия внутреннего сопротивления мультиплексора производились замеры с изменяемым опорным током и сменой
|
||||||
|
входных каналов 24-битного АЦП AD7794\footnote{Henry He, <<Minimizing Errors in Multiplexed 3-Wire RTD
|
||||||
|
Data-Acquisition Systems>>,\\
|
||||||
|
http://www.analog.com/en/analog-dialogue/articles/minimizing-errors-in-multiplexed-3-wire-rtd.html}.
|
||||||
|
|
||||||
|
При комнатной температуре производились долговременные измерения показаний восьми тщательно
|
||||||
|
теплоизолировынных датчиков HEL-705 (см. рис.~\ref{trdhot}), также наблюдались изменения показаний двух
|
||||||
|
термодатчиков, помещенных в закрытую пенопластовой термоизоляцией (вследствие чего температура кипения
|
||||||
|
азота в емкости была выше, чем в открытой емкости) емкость с жидким азотом (см. рис.~\ref{trdcold}).
|
||||||
|
|
||||||
|
Численное моделирование показало, что в ограниченном диапазоне температур при помощи калибровки можно
|
||||||
|
добиться достаточно высокой точности измерения. Так, после простой линейной калибровки по точкам кипения
|
||||||
|
жидкого азота при давлении 680\,мм.рт.ст. (температура кипения азота при этом давлении составляет
|
||||||
|
$76.43\,$K\footnote{George T. Armstrong, <<Vapour Pressure of Nitrogen>>, J.Res.Nat'l.Bur.Stand. 53, 263
|
||||||
|
(1954).}) и плавления льда удалось обеспечить точность в широком диапазоне не хуже $\pm0.13\degr$C.
|
||||||
|
|
||||||
|
Основной проблемой использования терморезистивных датчиков для построения карт распределения температуры в
|
||||||
|
толще ГЗ БТА является крайне высокая стоимость терморезисторов и систем регистрации температуры с требуемой
|
||||||
|
точностью.
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Цифровые температурные датчики}
|
||||||
|
В отличие от аналоговых термодатчиков, требующих наличия крайне сложной системы регистрации температур,
|
||||||
|
цифровые термодатчики фактически всю схему регистрации содержат внутри себя, что позволяет значительно
|
||||||
|
упростить электронику регистрирующей системы. Поэтому на техническом совете в декабре 2014\,года автором и
|
||||||
|
был озвучен выбор в пользу цифровых термодатчиков.
|
||||||
|
|
||||||
|
Популярные недорогие 1-wire термодатчики (например, датчики DS18S20) имеют низкую точность ($\pm0.5\degr$C с
|
||||||
|
возможностью улучшения до $\pm0.25\degr$C при калибровке), что не позволяет использовать их в данной задаче,
|
||||||
|
однако, промышленностью выпускаются специализированные калиброванные цифровые датчики.
|
||||||
|
|
||||||
|
\subsubsection{TSic-506}
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{Tsic506}
|
||||||
|
\caption{Отклонения показаний трех датчиков TSic-506 от среднего значения в диапазоне от $11\degr$C до
|
||||||
|
$22\degr$C.}
|
||||||
|
\label{tsic}
|
||||||
|
\end{pict}
|
||||||
|
Компания <<IST innovative sensor technology>> производит цифровые датчики TSic\texttrademark~506F с
|
||||||
|
интерфейсом ZACwire, обеспечивающих (по утверждению производителя) точность измерения температуры не
|
||||||
|
хуже~$\pm0.1\degr$C в диапазоне $5\div45\degr$C. Стандартный интервал измерений~--- $-10\div60\degr$C. Цена
|
||||||
|
одного такого датчика --- около \$12.
|
||||||
|
|
||||||
|
В 2013~г. в лабораторных условиях были испытаны три термодатчика TSic-506. Дискрет измерения температуры у
|
||||||
|
данных датчиков составляет $0.034\degr$C. Показания датчиков снимались в диапазоне температур от~$11\degr$C
|
||||||
|
до~$22\degr$C. Без калибровки разброс датчиков составил $\pm0.1\degr$C. После линейной калибровки
|
||||||
|
среднеквадратичное отклонение показаний датчиков составило не выше $0.2\degr$C (см. рис.~\ref{tsic}) с
|
||||||
|
воспроизводимостью не хуже $\pm0.05\degr$C. Однако, полный диапазон работы этих датчиков не позволяет быть
|
||||||
|
уверенным, что при работе в зимний период температура зеркала не выйдет за нижний предел их рабочей
|
||||||
|
температуры. Кроме того, формфактор TO-92, в котором выпускаются данные датчики, затрудняет осуществление
|
||||||
|
надежного температурного контакта между ними и поверхностью зеркала.
|
||||||
|
|
||||||
|
\subsubsection{TSYS-01}
|
||||||
|
<<TE Connectivity>> производит цифровые термодатчики TSYS-01 в удобном для выполнения надежного теплового
|
||||||
|
контакта корпусе QFN-16. Заявленная производителем точность работы датчика во всем рабочем диапазоне (от~
|
||||||
|
$-40\degr$C до~$125\degr$C) составляет не хуже~$\pm0.1\degr$C, а в диапазоне от~$5\degr$C до $40\degr$C
|
||||||
|
гарантируется точность не хуже $\pm0.05\degr$C. Цена датчика~--- около~\$12.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{T12_100pts}
|
||||||
|
\caption{Скользящее среднее для разницы показаний двух термодатчиков TSYS-01.}
|
||||||
|
\label{tsysmean}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{T12_diff}
|
||||||
|
\caption{Разность показаний пары TSYS-01 без усреднения.}
|
||||||
|
\label{tsysdiff}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
Для анализа возможностей применения данных датчиков на ГЗ БТА в 2016--2017\,гг. было проведено их
|
||||||
|
исследование. Интерфейс работы датчиков "--- SPI или I2C (был выбран второй вариант, как требующий наименьшего
|
||||||
|
количества проводников). От стабильности источника питания датчиков (3.3\,В) зависит точность их показаний,
|
||||||
|
поэтому датчики запитывались от отдельного LDO.
|
||||||
|
|
||||||
|
Показания двух тщательно термоизолированных датчиков, приклеенных к пластине из боросиликатного стекла
|
||||||
|
отличались крайне незначительно: на рис.~\ref{tsysmean} приведены графики температур, усредненные по
|
||||||
|
100~точкам, а на рис.~\ref{tsysdiff} "--- <<сырые>> разности температур без усреднения. Такие высокие
|
||||||
|
точности показаний датчиков без калибровки, простота опроса термодатчиков, а также возможность использования
|
||||||
|
достаточно длинных проводников для подключения датчиков к контроллерам (до 5\,м при скорости I2C 10\,кГц)
|
||||||
|
позволили остановить свой выбор именно на них.
|
||||||
|
|
||||||
|
\section{Система температурного контроля}
|
||||||
|
\subsection{Организация системы}
|
||||||
|
Для подключения отдельного датчика к микроконтроллеру необходимо как минимум четыре проводника: два
|
||||||
|
сигнальных проводника шины I2C, питание и общий провод (<<земля>>). У датчиков имеется дополнительный вход,
|
||||||
|
позволяющий посредством подключения к нему общего или питания изменять младший бит адреса датчика (т.е. на
|
||||||
|
одной шине I2C одновременно может работать пара датчиков, либо же при помощи пятого сигнального проводника
|
||||||
|
можно выбирать нужный термодатчик). Чтобы подключение датчиков можно было выполнить стандартной витой парой
|
||||||
|
из двух пар проводников, был выбран вариант подключения датчиков попарно. Кроме того, как показали
|
||||||
|
исследования работы множества датчиков, одновременно подключенных к одной шине I2C, из-за наличия входной
|
||||||
|
емкости на затворах транзисторов каждого датчика уже наличие шестнадцати датчиков на шине требует снижения
|
||||||
|
сопротивления подтяжек на сигнальных входах с 4.7\,кОм до 750\,Ом (а это привело бы к увеличению
|
||||||
|
тепловыделения и уменьшению предельной длины соединительных проводников). В результате была выбрана
|
||||||
|
попарная схема подключения датчиков (с разными младшими адресами). Предельная длина проводников при этом не
|
||||||
|
уменьшилась, составляя 5\,м для тактовой частоты шины I2C 10\,кГц.
|
||||||
|
|
||||||
|
Ограничение на максимальную длину сигнальных проводников не позволяет установить контроллер термодатчиков вне
|
||||||
|
оправы ГЗ БТА (кроме того, в этом случае к контроллеру шел бы жгут из не менее 30~кабелей). Было принято
|
||||||
|
решение использовать топологию <<звезда>>: к каждому контроллеру подключается до восьми пар термодатчиков, а
|
||||||
|
между собой все контроллеры соединяются при помощи шины CAN, не имеющей столь малого ограничения на
|
||||||
|
предельную длину линии данных. Адресация контроллеров в CAN-шине задается при помощи микропереключателей или
|
||||||
|
перемычек. Один из контроллеров выполняет роль ведущего, позволяя выполнять опрос всех контроллеров сети.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{LUT}
|
||||||
|
\caption{Печатные платы прототипов контроллеров температур и креплений датчиков.}
|
||||||
|
\label{lut}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
В 2017~году были изготовлены прототипы печатных плат для монтажа термодатчиков и плат контроллеров (см.
|
||||||
|
рис.~\ref{lut}). За основу плат контроллеров был взят микроконтроллер STM32F042, имеющий аппаратные
|
||||||
|
интерфейсы CAN и USB (второй необходим для подключения к управляющему компьютеру). Для коммутации шины I2C
|
||||||
|
(что необходимо для переключения между разными парами термодатчиков) использованы аналоговые восьмиканальные
|
||||||
|
мультиплексоры 74HC4051, переключающие оба сигнальных проводника шины I2C на нужную пару термодатчиков.
|
||||||
|
|
||||||
|
Соединение контроллеров между собой выполняется при помощи стандартной витой пары пятой категории (четыре
|
||||||
|
пары проводников): одна пара используется для CAN-шины и по три проводника для питания (12\,В). Импульсный
|
||||||
|
источник питания на основе LM2576 преобразует 12\,В в 5\,В, которые при помощи раздельных LDO LM1117
|
||||||
|
преобразуются в 3.3\,В питания микроконтроллера с периферией и термодатчиков. Все сигнальные входы защищены
|
||||||
|
при помощи супрессоров. Вход питания защищен от переполюсовки при помощи <<идеального диода>> на основе
|
||||||
|
полевого транзистора AO3407, а от короткого замыкания "--- при помощи плавкого предохранителя на
|
||||||
|
0.5\,А\footnote{Все принципиальные схемы, печатные платы и исходные коды для данного проекта находятся в
|
||||||
|
репозитории https://github.com/eddyem/tsys01}.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{thermocontr}
|
||||||
|
\caption{Термоконтроллеры в сборе на CAN-шине.}
|
||||||
|
\label{thermocontr}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
Для анализа потребления и потерь на линии связи уровень входного напряжения питания измеряется при помощи
|
||||||
|
внутреннего АЦП микроконтроллера, а для измерения силы тока используется датчик MAX471. Также внутренним АЦП
|
||||||
|
микроконтроллера измеряется уровень напряжения питания термодатчиков и уровень напряжения 5\,В после
|
||||||
|
импульсного источника питания. Переключатель напряжения на основе TPS2051 позволяет управлять питанием
|
||||||
|
термодатчиков, отключая его в случае необходимости, а также служит предохранителем, отключая питание датчиков
|
||||||
|
в случае, если потребление превысит 0.5\,А (для защиты компонент контроллера в случае короткого замыкания по
|
||||||
|
питанию при <<горячем>> подключении или отключении датчиков).
|
||||||
|
|
||||||
|
Диагностика работы контроллеров выполняется посредством трех светодиодов. Отдельно стоящий в верхней части
|
||||||
|
платы светодиод является индикатором наличия напряжения питания микроконтроллера. Под микроконтроллером
|
||||||
|
распаяны еще два сигнальных светодиода: верхний является показателем активности микроконтроллера, мерцая один
|
||||||
|
раз в секунду; нижний светодиод загорается при наличии стабильного соединения на CAN-шине.
|
||||||
|
|
||||||
|
\subsection{Установка и отладка системы}
|
||||||
|
Установка и отладка системы сбора данных началась с мая 2018~года "--- после замены ГЗ БТА. Для того, чтобы
|
||||||
|
иметь возможность аттестовать точности показаний датчиков в широких температурных диапазонах и произвести при
|
||||||
|
необходимости их калибровку был изготовлен стенд с мультиплексором на основе восьми 74HC4051, позволяющим при
|
||||||
|
помощи одного микроконтроллера работать с 96~термодатчиками.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{stand_test}
|
||||||
|
\caption{Подготовка стенда для аттестации термодатчиков.}
|
||||||
|
\label{senstest}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
На 18-мм плиту из дюралюминия было установлено 42~пары термодатчиков (в 40~парах термодатчики пары находились
|
||||||
|
в непосредственной близости друг от друга на расстоянии около 1.5\,см). На рис.~\ref{senstest} приведено
|
||||||
|
изображение конструкции во время монтажа последнего ряда термодатчиков на пластину. Пластина со стороны
|
||||||
|
датчиков была закрыта многослойной изоляцией из пенополиэтилена и помещена в бокс из листовой теплоизоляции.
|
||||||
|
По углам и в центре пластины были наклеены терморезисторы HEL-705 для независимого определения температуры в
|
||||||
|
разных частях пластины.
|
||||||
|
|
||||||
|
Далее внутрь бокса заливался жидкий азот, охлаждающий пластину с термодатчиками, а поверх бокса
|
||||||
|
устанавливалась емкость с жидким азотом, чтобы исключить появление инея и водяного конденсата на платах с
|
||||||
|
термодатчиками и электрических контактах.
|
||||||
|
|
||||||
|
К сожалению, из-за огромного количества проводников не удалось обеспечить равномерного распределения
|
||||||
|
температуры по поверхности пластины: при пассивном нагреве пластины до $-30\degr$C, когда и начались
|
||||||
|
измерения показаний термодатчиков, разница температур между противоположными краями пластины (по длине)
|
||||||
|
составила более $1.5\degr$C. Такой высокий градиент температуры не позволил осуществить массовую аттестацию
|
||||||
|
термодатчиков, однако, учитывая малое расстояние между датчиками каждой конкретной пары, появилась
|
||||||
|
возможность отбраковать те пары, где показания в диапазоне от $-30\degr$C до комнатной температуры отличались
|
||||||
|
больше, чем на $0.05\degr$C. После того, как пластина в среднем нагрелась до $10\degr$C, градиент по ее длине
|
||||||
|
снизился до $0.5\degr$C, а по ширине "--- до $0.1\degr$C, что позволило исследовать поведение
|
||||||
|
пар термодатчиков в группах по 6--8~пар.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.4\textwidth]{Tsens0location}\hspace{2em}
|
||||||
|
\includegraphics[width=0.4\textwidth]{Tsens1location}
|
||||||
|
\caption{Расположение датчиков пары.}
|
||||||
|
\label{senspair}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
В результате было отобрано 30~пар термодатчиков с разбросом показаний внутри пары не выше $\pm0.025\degr$C и
|
||||||
|
среднеквадратичным отклонением от среднего для всех пар не выше $0.05\degr$C. 28~пар термодатчиков
|
||||||
|
установлено в разгрузках ГЗ БТА, одна пара измеряет температуру внутри вспомогательного помещения фокуса~Н2
|
||||||
|
(где расположена система регистрации) и еще одна пара оставлена в качестве резервной.
|
||||||
|
На рис.~\ref{senspair} приведены фотографии расположения термодатчиков одной из пар: один датчик приклеен к
|
||||||
|
донышку углубления под разгрузку (таким образом измеряя температуру на расстоянии около 20\,см от поверхности
|
||||||
|
зеркала), второй наклеен на заднюю часть зеркала вблизи соответствующей разгрузки.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{Controllers}
|
||||||
|
\caption{Расположение термодатчиков в разгрузках ГЗ БТА.}
|
||||||
|
\label{sensloc}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
На рис.~\ref{sensloc} приведено расположение термодатчиков (залитые розовым окружности) и контроллеров
|
||||||
|
(окружности с нумерацией внутри) на главном зеркале. Расположение изображения соответствует виду из стакана
|
||||||
|
первичного фокуса. Рядом с каждой разгрузкой указан ее номер. Цветной заливкой зеркало разделено на четыре
|
||||||
|
сектора, отображающих группы датчиков, подключенных к одному контроллеру.
|
||||||
|
Для обеспечения возможности контроля дрейфа разностей показаний термодатчиков в разгрузках \No15 и \No9
|
||||||
|
пары термодатчиков продублированы. Обеспечить сверку показаний датчиков с реальными температурами можно при
|
||||||
|
помощи четырех терморезисторов HEL-705, установленных в разгрузках \No\No~40, 46, 52 и~58. Изготовлен
|
||||||
|
макет аналоговой части системы регистрации данных с терморезисторов на трех низкоомных
|
||||||
|
мультиплексорах NX3L4051 и АЦП AD7794.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.5\textwidth]{hand_meter}
|
||||||
|
\caption{Устройство для ручного измерения температур ГЗ БТА.}
|
||||||
|
\label{handmeter}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.45\textwidth]{T0-180529}\hfil
|
||||||
|
\includegraphics[width=0.45\textwidth]{T1-180529}
|
||||||
|
\caption{Карты температур, построенные вручную 18~марта 2018~г. Слева "--- температура в глубине зеркала,
|
||||||
|
справа "--- на его нижней поверхности.}
|
||||||
|
\label{mirhandtemps}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
К середине мая датчики были установлены на ГЗ БТА и специалисты СЭК БТА занялись установкой разгрузок. До
|
||||||
|
окончания работ по установке разгрузок не было возможности смонтировать коммуникационные линии в оправе
|
||||||
|
зеркал, поэтому на макетной плате было собрано простое устройство, позволяющее вручную измерять температуры
|
||||||
|
для каждой пары датчиков (см. рис.~\ref{handmeter}). На рис.~\ref{mirhandtemps} изображена одна из
|
||||||
|
температурных карт, построенных вручную.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.6\textwidth]{CANbusBoard}
|
||||||
|
\caption{Прототип для отладки CAN и USB интерфейсов.}
|
||||||
|
\label{canusblut}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
В июне--июле 2018~г. производилась отладка аппаратного и программного обеспечения системы мониторинга. Был
|
||||||
|
сформирован протокол передачи данных по CAN-шине, отлажен конечный автомат измерения температур в каждой из
|
||||||
|
двенадцати пар точек, завершена аппаратная отладка пяти распаянных плат контроллеров термодатчиков.
|
||||||
|
Для упрощения разработки программной части интерфейсов CAN и USB изготовлена отладочная плата (см.
|
||||||
|
рис.~\ref{canusblut}). Отладка на отдельной плате позволила уменьшить риск повреждения элементов основных
|
||||||
|
контроллеров на стадии разработки программной части, не связанной с опросом термодатчиков. На момент
|
||||||
|
написания данной документации разработка USB-CDC интерфейса еще не закончена, поэтому основной контроллер
|
||||||
|
соединен с управляющим компьютером посредством переходника UART$\leftrightarrow$USB.
|
||||||
|
|
||||||
|
Контроллеры термодатчиков были смонтированы в оправе ГЗ БТА в августе 2018~г. Из вспомогательного помещения в
|
||||||
|
опоре фокуса Н2 в пространство между ГЗ БТА и его оправой были проложены коммуникационные линии на основе
|
||||||
|
витой пары cat5. Произведено временное закрепление коммуникационных линий и контроллеров в оправе ГЗ БТА.
|
||||||
|
Окончательное решение об местах установки термодатчиков и контроллеров, а также их количестве должно быть
|
||||||
|
вынесено после окончания периода пробной эксплуатации системы температурного мониторинга.
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.32\textwidth]{T0}\hfil
|
||||||
|
\includegraphics[width=0.32\textwidth]{T1}\hfil
|
||||||
|
\includegraphics[width=0.32\textwidth]{Tgrad}
|
||||||
|
\caption{Карты распределения температуры, генерируемые системой сбора данных. Слева "--- температура в толще
|
||||||
|
зеркала, в центре "--- температура на его нижней поверхности, справа "--- градиент температуры по толщине
|
||||||
|
(температура в толще минус температура на дне).}
|
||||||
|
\label{tempgraphs}
|
||||||
|
\end{pict}
|
||||||
|
|
||||||
|
В августе 2018~г. был смонтирован компьютер системы сбора данных (Orage Pi Zero) в совокупности с блоками
|
||||||
|
питания и основным контроллером "--- в металлическом коробе, установленном на стене вспомогательного
|
||||||
|
помещения третьего этажа стойки фокуса Н2 телескопа. После отладки алгоритма опроса термодатчиков были
|
||||||
|
написаны сетевые демоны, позволяющие получить доступ извне к собранным системой данным.
|
||||||
|
|
||||||
|
Основной сетевой демон системы сбора работает на машине mirtemp.sao.ru, обслуживая порт 4444. Один раз в
|
||||||
|
минуту демон дает команду запуска измерения температур и считывает полученные данные. Накопленные за 15~минут
|
||||||
|
данные усредняются и по ним при помощи утилиты gnuplot строятся графические карты распределения температур
|
||||||
|
(см. рис.~\ref{tempgraphs}), доступ к которым можно получить через веб. Последние считанные данные доступны
|
||||||
|
как из клиентского приложения, так и из любого браузера: по адресу mirtemp.sao.ru:4444/T0 можно получить
|
||||||
|
таблицу распределения температур в толще зеркала, mirtemp.sao.ru:4444/T1 "--- на дне
|
||||||
|
зеркала, mirtemp.sao.ru:4444/T2 "--- в помещении Н2, mirtemp.sao.ru:4444/Tgrad "--- разницу между T0 и~T1,
|
||||||
|
mirtemp.sao.ru:4444/Tmean "--- среднюю арифметическую температуру (рассчитанную по всем последним
|
||||||
|
данным с отбраковкой измерений, отличающихся от медианной температуры больше, чем на $3\sigma$).
|
||||||
|
Формат записей таков: в первой и второй колонке указаны координаты (в метрах) точки измерения температуры; в
|
||||||
|
третьей колонке "--- ее значение; а в четвертой "--- время, когда было произведено измерение (в формате UNIX
|
||||||
|
time). Графики усредненных последних 15~измерений не содержат времени последнего измерения и доступны по
|
||||||
|
адресам http://mirtemp.sao.ru/T0, http://mirtemp.sao.ru/T1 и http://mirtemp.sao.ru/Tgrad.
|
||||||
|
|
||||||
|
На основе образцов исходных кодов систем сбора метеорологических данных для СУ БТА, предоставленных
|
||||||
|
с.н.с.~лабории информатики В.С.~Шергиным, разработан интерфейс, обеспечивающий передачу средней температуры
|
||||||
|
зеркала в систему управления телескопом.
|
||||||
|
|
||||||
|
\section{Заключение}
|
||||||
|
В ходе эксплуатации системы регистрации температур ГЗ БТА до начала работ по его алюминированию
|
||||||
|
выявлено, что выбрано недостаточное количество опорных точек: для построения более точной карты распределения
|
||||||
|
температур желательно разместить термодатчики в каждой разгрузке зеркала. Кроме того, градиент по толще
|
||||||
|
зеркала не играет такой важной роли, как радиальный градиент. Видоизменить существующую систему можно,
|
||||||
|
используя датчики с нижней поверхности зеркала и дополнительные датчики. Использующихся четырех контроллеров
|
||||||
|
при этом хватит в~т.ч. для контрольного дублирования датчиков в четырех точках.
|
||||||
|
|
||||||
|
% https://latex.org/forum/viewtopic.php?t=7732
|
||||||
|
\makeatletter
|
||||||
|
\newcommand\appendix@section[1]{%
|
||||||
|
\refstepcounter{section}%
|
||||||
|
\orig@section*{Приложение \@Alph\c@section: #1}%
|
||||||
|
\addcontentsline{toc}{section}{Приложение \@Alph\c@section: #1}%
|
||||||
|
}
|
||||||
|
\let\orig@section\section
|
||||||
|
\g@addto@macro\appendix{\let\section\appendix@section}
|
||||||
|
\makeatother
|
||||||
|
\appendix
|
||||||
|
|
||||||
|
\section{Программные протоколы}
|
||||||
|
\subsection{Протокол обмена данными по последовательному интерфейсу}
|
||||||
|
Связь управляющего компьютера с любым контроллером системы сбора возможна либо через последовательный порт
|
||||||
|
(отладочный интерфейс USART1 выведен на платах контроллеров) при помощи переходников
|
||||||
|
USART$\leftrightarrow$USB, либо при помощи соединения через USB (в разработке). Соединение через
|
||||||
|
последовательный интерфейс выполняется на скорости 115200~бод в формате 8N1.
|
||||||
|
|
||||||
|
Рабочий протокол включает в себя служебные команды, предназначенные для отладки. Формат команды:
|
||||||
|
\verb'[<num>]<char><endline>', где \verb'<char>' "--- символ команды (большая или малая латинская буква), а
|
||||||
|
\verb'<endline>' "--- символ завершения строки (\verb'\n'). Если параметр \verb'[<num>]' опущен (т.е. команда
|
||||||
|
состоит из одного символа), результат зависит от регистра команды: команда в верхнем регистре инициализирует
|
||||||
|
широковещательную передачу соответствующего сообщения всем контроллерам сети, а также локальный ее запуск;
|
||||||
|
команда в нижнем регистре запускается только локально на данном контроллере (существуют также команды,
|
||||||
|
не имеющие <<локального>> варианта).
|
||||||
|
|
||||||
|
При необходимости послать сетевую команду конкретному контроллеру используется расширенный формат команд. В
|
||||||
|
этом случае параметр \verb'[<num>]' является числом от 1 до 7, а команда "--- только в верхнем регистре.
|
||||||
|
Данный вариант команд доступен для исполнения лишь с ведущего контроллера, имеющего номер 0. Если номер
|
||||||
|
контроллера отличается от нуля, сетевые команды (как конкретному контроллеру, так и широковещательные) для
|
||||||
|
него недоступны (исключение сделано для отладочных команд \textbf{B} и \textbf{D}).
|
||||||
|
|
||||||
|
Далее приводится список основных команд. Если команда пишется в обоих регистрах, то доступны как сетевые, так
|
||||||
|
и локальные ее варианты, для команд только в нижнем регистре доступен лишь локальный вариант, а только в
|
||||||
|
верхнем "--- лишь сетевой. Команды, использующиеся исключительно для отладки, отмечены как [\textit{отладка}].
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[B] [\textit{отладка}] посылка широковещательного тестового сообщения по CAN-шине;
|
||||||
|
\item[c] [\textit{отладка}] отобразить коэффициенты заводской калибровки для всех подключенных термодатчиков;
|
||||||
|
\item[D] [\textit{отладка}] послать по CAN-шине тестовое сообщение ведущему контроллеру;
|
||||||
|
\item[Ee] выйти из режима сканирования температуры;
|
||||||
|
\item[Ff] отключить питание термодатчиков (не рекомендуется часто отключать питание, иначе датчики быстро
|
||||||
|
выйдут из строя);
|
||||||
|
\item[g] отобразить адрес платы, считанный с перемычек при последней процедуре инициализации CAN;
|
||||||
|
\item[Hh] переключить I2C в режим скорости 100\,кГц (не рекомендуется для длинных линий);
|
||||||
|
\item[i] переинициализировать CAN (полезно для смены адреса платы <<на горячую>>);
|
||||||
|
\item[Ll] переключить I2C в режим скорости 10\,кГц (режим по умолчанию);
|
||||||
|
\item[P] ping "--- запрос на существование в сети контроллера с соответствующим адресом (либо
|
||||||
|
широковещательный ping всех, существующих в сети контроллеров);
|
||||||
|
\item[Rr] переинициализация I2C;
|
||||||
|
\item[Ss] войти в режим сканирования температуры (не чаще, чем 1~раз в 15~секунд автоматически запускается
|
||||||
|
процесс измерения температуры с выдачей данных в CAN-шину);
|
||||||
|
\item[Tt] запуск одиночного измерения температуры (стандартная команда для измерений по запросу с ведущего
|
||||||
|
контроллера);
|
||||||
|
\item[u] проверить состояние CAN-шины (были ли ошибки в последних транзакциях);
|
||||||
|
\item[Vv] переключить I2C в режим наименьшей скорости (около 5.8~кГц);
|
||||||
|
\item[Z] запросить состояние термодатчиков.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
\subsection{Протокол пересылки данных по CAN-шине}
|
||||||
|
Данные по шине CAN передаются пакетами переменной длины: от одного до семи байт. В каждом пакете нулевым
|
||||||
|
байтом является маркер типа пакета: данные (\verb'0x5A') или команда (\verb'0xA5'). В штатном режиме
|
||||||
|
эксплуатации ведущий контроллер отсылает только команды, а ведомые "--- только данные, однако, в тестовом
|
||||||
|
режиме ведомый контроллер может также пересылать данные. В случае отправки команды пакет имеет длину два
|
||||||
|
байта и байтом~1 следует передающаяся команда.
|
||||||
|
|
||||||
|
Перечень команд (числовое значение команды, мнемоническое обозначение, расшифровка):
|
||||||
|
\begin{description}
|
||||||
|
\item[0x00] \verb'CMD_PING' ожидание пакета данных с эхом этой команды (используется для проверки
|
||||||
|
существования контроллера на шине);
|
||||||
|
\item[0x01] \verb'CMD_START_MEASUREMENT' начать одиночное измерение температуры;
|
||||||
|
\item[0x02] \verb'CMD_SENSORS_STATE' получить состояние датчиков;
|
||||||
|
\item[0x03] \verb'CMD_START_SCAN' войти в режим непрерывного измерения температуры;
|
||||||
|
\item[0x04] \verb'CMD_STOP_SCAN' выйти из предыдущего режима;
|
||||||
|
\item[0x05] \verb'CMD_SENSORS_OFF' отключить питание датчиков;
|
||||||
|
\item[0x06] \verb'CMD_LOWEST_SPEED' минимальная скорость I2C;
|
||||||
|
\item[0x07] \verb'CMD_LOW_SPEED' низкая скорость I2C;
|
||||||
|
\item[0x08] \verb'CMD_HIGH_SPEED' высокая скорость I2C;
|
||||||
|
\item[0x09] \verb'CMD_REINIT_I2C' реинициализация шины I2C;
|
||||||
|
\item[0xDA] \verb'CMD_DUMMY0' тестовая команда;
|
||||||
|
\item[0xAD] \verb'CMD_DUMMY1' тестовая команда.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
Формат данных имеет следующую структуру:
|
||||||
|
\begin{description}
|
||||||
|
\item[байт 1] номер контроллера (установленный перемычками на плате, т.е. число от~0 до~7);
|
||||||
|
\item[байт 2] полученная команда, ответ на которую отправляется в пакете;
|
||||||
|
\item[байты 3..7] данные (в ответе на команду \verb'CMD_PING' эти байты отсутствуют).
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
Ответом на команду \verb'CMD_SENSORS_STATE' является число, характеризующее состояние датчиков у данного
|
||||||
|
контроллера:
|
||||||
|
\begin{description}
|
||||||
|
\item[0x00] \verb'SENS_INITING' питание включено, происходит инициализация;
|
||||||
|
\item[0x01] \verb'SENS_RESETING' процедура обнаружения датчиков командой сброса;
|
||||||
|
\item[0x02] \verb'SENS_GET_COEFFS' получение калибровочных коэффициентов обнаруженных датчиков;
|
||||||
|
\item[0x03] \verb'SENS_SLEEPING' <<спящее>> состояние между измерениями;
|
||||||
|
\item[0x04] \verb'SENS_START_MSRMNT' всем датчикам отправлена команда начала измерений температуры;
|
||||||
|
\item[0x05] \verb'SENS_WAITING' ожидание окончания измерений температуры;
|
||||||
|
\item[0x06] \verb'SENS_GATHERING' сбор температуры с обнаруженных термодатчиков;
|
||||||
|
\item[0x07] \verb'SENS_OFF' питание датчиков отключено;
|
||||||
|
\item[0x08] \verb'SENS_OVERCURNT' обнаружено короткое замыкание либо превышение допустимого тока, питание
|
||||||
|
датчиков временно отключено;
|
||||||
|
\item[0x09] \verb'SENS_OVERCURNT_OFF' попытка включения питания датчиков более 32~раз закончилась состоянием
|
||||||
|
\verb'SENS_OVERCURNT', питание отключено вплоть до получения внешней команды инициализации (команда
|
||||||
|
\verb'CMD_START_MEASUREMENT').
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
После окончания измерений температурных данных каждый ведомый контроллер пересылает значения температур со
|
||||||
|
всех обнаруженных термодатчиков ведущему. Формат температурных данных имеет следующую структуру:
|
||||||
|
\begin{description}
|
||||||
|
\item[байт 3] номер датчика ($10\cdot N + M$, где $N$~-- номер канала мультиплексора, $M$~-- номер датчика
|
||||||
|
в паре, т.е. 0, 1, 10, 11, 20, \ldots , 71);
|
||||||
|
\item[байт 4] старший байт данных;
|
||||||
|
\item[байт 5] младший байт данных.
|
||||||
|
\end{description}
|
||||||
|
Температура передается в формате \verb'int16_t', в сотых долях градуса Цельсия. Например, температуре
|
||||||
|
$-12.56\degr$C соответствует число $-1256$, а температуре $18.98\degr$C "--- число~$1898$.
|
||||||
|
При считывании данных через последовательный интерфейс в случае ошибки измерений (значение температуры,
|
||||||
|
полученное с шины, лежит вне допустимого диапазона) возвращается число -30000, а при ошибке передачи команды
|
||||||
|
считывания измеренных данных "--- число -31000.
|
||||||
|
|
||||||
|
\vspace{3em}
|
||||||
|
|
||||||
|
\hfill\parbox{0.4\textwidth}{
|
||||||
|
\rule{20mm}{0.4pt}~~/Емельянов~Э.В./\\[1em]
|
||||||
|
<<\rule{7mm}{0.4pt}>>~\rule{30mm}{0.4pt}~\number\year\,г. \\
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{pict}
|
||||||
|
\includegraphics[width=0.7\textwidth]{}
|
||||||
|
\caption{.}
|
||||||
|
\label{}
|
||||||
|
\end{pict}
|
||||||
BIN
Report/pic/CANbusBoard.jpg
Normal file
|
After Width: | Height: | Size: 422 KiB |
BIN
Report/pic/Controllers.jpg
Normal file
|
After Width: | Height: | Size: 892 KiB |
BIN
Report/pic/LUT.jpg
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
Report/pic/Sensors_location.png
Normal file
|
After Width: | Height: | Size: 3.6 MiB |
BIN
Report/pic/T0-180529.png
Normal file
|
After Width: | Height: | Size: 264 KiB |
BIN
Report/pic/T0.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
Report/pic/T1-180529.png
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
Report/pic/T1.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
Report/pic/T12_100pts.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
Report/pic/T12_diff.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
Report/pic/TRD_cold.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
Report/pic/TRD_hot.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
Report/pic/Tgrad.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
Report/pic/Tsens0location.jpg
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
Report/pic/Tsens1location.jpg
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
Report/pic/Tsic506.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
Report/pic/hand_meter.jpg
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
Report/pic/stand_test.jpg
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
Report/pic/thermocontr.jpg
Normal file
|
After Width: | Height: | Size: 416 KiB |
@ -43,9 +43,20 @@ Variable data length: from 1 to 7 bytes.
|
|||||||
First byte of every sequence is command mark (0xA5) or data mark (0x5A).
|
First byte of every sequence is command mark (0xA5) or data mark (0x5A).
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
- CMD_PING - send from master to receive answer in data packet if target alive.
|
- CMD_PING request for PONG cmd
|
||||||
- CMD_START_MEASUREMENT - start single temperature measurement.
|
- CMD_START_MEASUREMENT start single temperature measurement
|
||||||
- CMD_SENSORS_STATE - state of sensors.
|
- CMD_SENSORS_STATE get sensors state
|
||||||
|
- CMD_START_SCAN run scan mode
|
||||||
|
- CMD_STOP_SCAN stop scan mode
|
||||||
|
- CMD_SENSORS_OFF turn off power of sensors
|
||||||
|
- CMD_LOWEST_SPEED lowest I2C speed
|
||||||
|
- CMD_LOW_SPEED low I2C speed (10kHz)
|
||||||
|
- CMD_HIGH_SPEED high I2C speed (100kHz)
|
||||||
|
- CMD_REINIT_I2C reinit I2C with current speed
|
||||||
|
|
||||||
|
Dummy commands for test purposes:
|
||||||
|
- CMD_DUMMY0 = 0xDA,
|
||||||
|
- CMD_DUMMY1 = 0xAD
|
||||||
|
|
||||||
Data format:
|
Data format:
|
||||||
- 1 byte - Controller number
|
- 1 byte - Controller number
|
||||||
|
|||||||