Rev Author Line No. Line
3465 kaklik 1 \documentclass[12pt,a4paper,oneside]{article}
2 \usepackage[colorlinks=true,unicode]{hyperref}
3 \usepackage[utf8]{inputenc}
4 \usepackage[czech]{babel}
5 \usepackage{graphicx}
6 \usepackage{pdfpages}
3474 kaklik 7 \usepackage{listings} % Include the listings-package
3465 kaklik 8 \textwidth 16cm \textheight 25cm
9 \topmargin -1.3cm
10 \oddsidemargin 0cm
11 \usepackage{footnote}
12 \pagestyle{empty}
13 \begin{document}
3474 kaklik 14 \title{Testování modulu ALTIMET01A}
3486 kaklik 15 \author{Jakub Kákona, Eva Pomíchalová;\\ kaklik@mlab.cz, evapomichal@gmail.com}
3465 kaklik 16 \maketitle
17  
18 \thispagestyle{empty}
19 \begin{abstract}
3486 kaklik 20 \noindent
3474 kaklik 21 Při realizaci projektu ABL01A bylo zjištěno, že snímání tlaku z čidla MPL3115A2 funguje navzdory specifikaci výrobce minimálně do výšky 16 km což je cca 10 kPa. Na druhou stranu interní tlakový atmosférický model je použitelný pouze do výšky cca 10 km ve větších výškách vykazuje značné nepřesnosti. Cílem tohoto dokumentu je popsat přesnější měření a kalibrace čidla v případě použití v barometrickém výškoměru pro balonovou sondu ABL01A
3465 kaklik 22 \end{abstract}
23  
24 \begin{figure} [htbp]
25 \begin{center}
3474 kaklik 26 \includegraphics [width=80mm] {./img/altimet01a_testing_setup.jpg}
3465 kaklik 27 \end{center}
28 \end{figure}
29  
30 \begin{figure} [b]
3474 kaklik 31 \includegraphics [width=25mm] {./img/ALTIMET01A_QRcode.png}
3465 kaklik 32 \end{figure}
33  
34 \newpage
35 \tableofcontents
3474 kaklik 36 \newpage
3465 kaklik 37  
3474 kaklik 38 \section{Popis konstrukce}
3465 kaklik 39  
3486 kaklik 40 Realizace testovacího systému pro čidlo MPL3115A2 využívá modulu I2CHUB02A, který umožňuje testování více čidel najednou. Čidla jsou tak společně umístěna ve vakuovém zvonu s řízeným tlakem a naměřené tlaky jsou společně s teplotami vyčítány I$^2$C sběrnici. Sběrnice I$^2$C byla z řídícího počítače vyvedena přes převodník i2c-avr-USB \cite{i2c_avr_USB}.
3476 kaklik 41 Paralelně k hodnotám získaných z modulů ALTIMET je z řídícího počítače ještě vyčítán tlak měřený z referenčního měřícího přístroje DPI 145.
3465 kaklik 42  
3476 kaklik 43 Měřící přístroj DPI 145 byl do systému zapojen přes rozhraní RS232 za použití převodníku RS232-USB. Nastavení komunikace je Parity=none, Speed=9600, Handshaking=none. (Způsob nastavení je možné nalézt v návodu k DPI145).
3465 kaklik 44  
3474 kaklik 45 \section{Programové vybavení}
3465 kaklik 46  
3476 kaklik 47 Pro vyčítání čidel a záznam naměřených hodnot byl použit Python. Využívající speciálně vytvořenou knihovnu \cite{MLAB-I2c-modules}. Tato knihovna řeší komunikaci se senzory MPL3115A2 v modulech ALTIMET01A. Samotný program je pak umístěn v dokumentační složce modulu ALTIMET01A \cite{data_logger}.
3465 kaklik 48  
3474 kaklik 49 Na začánku programu je nadefinována topologie zapojení modulů, což je viditelné v následujícím bloku kódu (Odsazení bylo upraveno za účelem vložení na šířku stránky).
3465 kaklik 50  
3474 kaklik 51 \lstset{language=Python}
52 \begin{lstlisting}[frame=single]
53 cfg = config.Config(
54 port = port,
55 bus = [
56 {
57 "type": "i2chub",
58 "address": 0x72,
59  
60 "children": [
61 {
62 "type": "i2chub",
63 "address": 0x70,
64 "channel": 3,
65 "children": [
66 {"name": "altimet1", "type": "altimet01" , "channel": 0, },
67 {"name": "altimet2", "type": "altimet01" , "channel": 3, },
68 {"name": "altimet3", "type": "altimet01" , "channel": 4, },
69 {"name": "altimet4", "type": "altimet01" , "channel": 5, },
70 {"name": "altimet5", "type": "altimet01" , "channel": 6, },
71 {"name": "altimet6", "type": "altimet01" , "channel": 7, },
72 ],
73 },
74 {"name": "altimet8", "type": "altimet01" , "channel": 6, },
75 ],
76 },
77 ],
78 )
79 cfg.initialize()
80 \end{lstlisting}
3465 kaklik 81  
3476 kaklik 82 Grafickou realizaci této topologie představuje obrázek \ref{test_setup_blocks}. V kterém jsou vynechána čísla portů na modulu I2CHUB02A. Podle nich jsou ve skutečnosti identifikována jednotlivá čidla, která jinak mají stejnou I2C adresu. Na sběrném počítači byl použit operační systém Linux Ubuntu 13.10.
3465 kaklik 83  
3474 kaklik 84 \begin{figure} [htbp]
85 \centering
86 \includegraphics [width=220mm, angle=90, origin=c] {./img/test_setup.png}
87 \caption{Zapojení jednotlivých modulů v testovacím přípravku.}
88 \label{test_setup_blocks}
89 \end{figure}
3465 kaklik 90  
3474 kaklik 91 \subsection{Čtení dat z přístroje DPI145}
3465 kaklik 92  
3476 kaklik 93 Vzhledem k tomu, že přístroj byl připojený přes rozhraní RS232 a ke komunikaci používá protokol SCPI, tak bylo možné jej ovládat přímo z jazyka Python zápisem na seriové rozhraní počítače. V následujícím bloku je uveden testovací kód, který vyčte data zobrazena na displeji (Měřící přístroj musí být nastaven tak, aby na displeji byla přímo hodnota, kterou potřebujeme zaznamenat).
3465 kaklik 94  
3476 kaklik 95 \begin{lstlisting}[frame=single]
96 #!/usr/bin/python
97  
98 # Druck DPI 145 preassure measuring instrument test utility.
99  
100 import serial
101  
102 ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
103 print ser.name
104 ser.write(':DISP?\n')
105 P_ref = eval(ser.readline(100))
106 sys.stdout.write("%s",P_ref)
107 ser.close()
108 \end{lstlisting}
109  
110 Data jsou přijata ve formě stringu. Pro získání numerické proměnné by bylo třeba je parserovat a vyhledávat číselný obsah.
111  
3484 pomiceva 112 \section{Měření}
3476 kaklik 113  
3484 pomiceva 114 Blokové schéma měření je zobrazeno na obrázku \ref{test_block_scheme}.
115  
116 \begin{figure} [htbp]
117 \centering
118 \includegraphics [width=100mm, origin=c] {./img/Diagram1.png}
119 \caption{Blokové schéma zapojení měření.}
120 \label{test_block_scheme}
121 \end{figure}
122  
3476 kaklik 123 \subsection{Systém sběru dat z tlakových čidel}
3480 kaklik 124 Pro testování modulu ALTIMET01A s tlakovým čidlem MPL3115A2 byl vytvořen testovací přípravek využívající I2C a převodník i2c-avr-USB. Měřící systém byl ovládán skriptem napsaným v jazyce Python spouštěném na linuxovém počítači.
3476 kaklik 125  
3484 pomiceva 126 \subsection{Výsledky}
127  
128 Byly provedeny 3 měření z nichž použitelné byly 2 sady dat. V první sadě bylo použito pouze 5 senzorů, 1 byl nefunkční. V druhé sadě bylo stoupání ukončeno ve výšce přibližně 16 km z časových důvodů. Nicméně získaná data jsou pro účely práce dostačující.
129  
3486 kaklik 130 Na obrázku \ref{KorekceTlaku} je porovnání údajů ze senzorů oproti údajům z DPI 145. Naměřené hodnoty byly proloženy přímkou. Hodnoty koeficientů pro jednotlivé senzory jsou následující.
3484 pomiceva 131  
132 \newpage
133  
134 \begin{verbatim}
135 Final set of parameters Asymptotic Standard Error
136 ======================= ==========================
137  
138 k1 = 0.998531 +/- 0.0004952 (0.04959%)
139 q1 = 1.00027 +/- 25.23 (2522%)
140  
141 k2 = 0.999998 +/- 0.0005202 (0.05202%)
142 q2 = 1 +/- 26.47 (2646%)
143  
144 k3 = 0.998286 +/- 0.0002962 (0.02967%)
145 q3 = 171.628 +/- 15.05 (8.77%)
146  
147 k4 = 0.999579 +/- 0.001141 (0.1142%)
148 q4 = 1.00012 +/- 58.07 (5807%
149  
150 k5 = 1.00002 +/- 0.0002655 (0.02655%)
151 q5 = 84.5852 +/- 13.49 (15.95%)
152  
153 k6 = 1.00217 +/- 1.274e+10 (1.271e+12%)
154 q6 = 1.00217 +/- 1.274e+10 (1.271e+12%)
155 \end{verbatim}
156  
157 Při bližším zkoumání grafu v části s nízkými hodnotami tlaku \ref{KorekceTlakuZoom}, lze nalézt drobné odchylky hodnot od aproximace přímkou. Pokud by tyto odchylky byly několikanásobně větší, znamenalo by to, že senzory neměří přesně oproti DPI145. Odchylky jsou však jen drobné, proto lze usuzovat, že senzory měří i ve vyšších výškách než udává výrobce minimálně s takovou přesností jako DPI145.
158  
159 Pro rozšíření informací o přístrojích používaných v laboratoři se lze podívat na obrázek \ref{stoupani}, na kterém vidíme rychlost "stoupání" do výšky téměř 19 km. Stoupání bylo simulováno vývěvou, která odsávala vzduch z vakuového zvonu, ve kterém byly uloženy senzory. Tlak vzduchu byl regulován ručně studentem provádějícím měření přes regulátor, který je zachycen na obrázku na úvodní stránce zprávy.
160  
161 Výška byla vypočítána pomocí barometrické rovnice. Pro zajímavost lze porovnat zobrazení závislosti tlaku a výšky vypočítané pomocí barometrické rovnice z naměřených "kalibrovaných" hodnot \ref{tlak_vyska} a stejnou závislost v grafu pro mezinárodní standardní atmosféru \ref{MSA}.
162  
163 \begin{figure} [htbp]
164 \centering
165 \includegraphics [width=130mm, origin=c] {./img/KorekceTlaku.png}
166 \caption{Senzory vs. DPI145.}
167 \label{KorekceTlaku}
168 \end{figure}
169  
170 \begin{figure} [htbp]
171 \centering
172 \includegraphics [width=130mm, origin=c] {./img/KorekceTlakuZoom.png}
3486 kaklik 173 \caption{Hodnoty proložené přímkou - detail pro nízké hodnoty tlaku.}
3484 pomiceva 174 \label{KorekceTlakuZoom}
175 \end{figure}
176  
177 \begin{figure} [htbp]
178 \centering
179 \includegraphics [width=130mm, origin=c] {./img/Stoupani.png}
180 \caption{Stoupání.}
181 \label{stoupani}
182 \end{figure}
183  
184 \begin{figure} [htbp]
185 \centering
186 \includegraphics [width=130mm, origin=c] {./img/Tlak_vyska.png}
187 \caption{Tlak vs. výška.}
188 \label{tlak_vyska}
189 \end{figure}
190  
191 \begin{figure} [htbp]
192 \centering
193 \includegraphics [width=100mm, origin=c] {./img/graf.png}
194 \caption{Mezinárodní standardní atmosféra.}
195 \label{MSA}
196 \end{figure}
197  
198 \subsection{Nejistota}
199 Nejistotu lze spočítat podle následujících vzorců. Byla spočítaná tzv. rozšířená nejistota. Vzorec platí za předpokladu, že chyby jsou rovnoměrně rozložené.
200 $u_{DPI}$ označuje nejistotu tlakoměru DPI145, $u_s$ označuje nejistotu senzorů udávanou výrobcem v rozsahu 70-110 kPa. $u_{st}$ je potom tzv. standardní nejistota a $u_{aug}$ nejistota rošířená.
201  
202 \begin{equation}
203 u_{DPI} = 0.0002 \cdot rdg + 0.0001 \cdot FS
204 \end{equation}
205 \begin{equation}
206 u_{s} = 0.005 kPa
207 \end{equation}
208 \begin{equation}
209 u_{st} = \sqrt{u_{DPI}^{2}+u_{s}^{2}}
210 \end{equation}
211 \begin{equation}
212 u_{aug} = \frac{2}{\sqrt{3}} \cdot u_{st}
213 \end{equation}
214  
215 Například pro naměřenou hodnotu tlaku 0.30259 kPa vyjde nejistota 0.30669 kPa. Tato chyba je oproti chybě senzorů udávané výrobcem velmi vysoká. Proto není možné senzory pomocí přístroje DPI145 kalibrovat. Přesnost DPI145 by bylo vhodné vylepšit vhodnějším nastavením rozsahu, to by ovšem zmenšilo chybu pouze 2.6x což stále není přesnější než senzory.
216  
217 \subsection{Závěr}
218  
219 \begin{itemize}
3486 kaklik 220 \item Nebyl nastaven optimálně měřící rozsah přístroje DPI145. Z hlediska nejistoty by bylo vhodnější nastavit menší rozsah.
3484 pomiceva 221 \item Použité přístroje nevykázaly žádné potíže ani ve výškách vyšších než 11 km. Pouze vakuování zvonu ve vyšších výškách trvalo delší dobu.
222 \item Senzory měří i mimo výrobcem udávaný rozsah (ve větších výškách) a to minimálně se stejnou přesností jako přístroj DPI145.
3486 kaklik 223 \item Senzory jsou v rozsahu udávaném výrobcem dle jejich katalogového listu přesnější než přístroj DPI145.
3484 pomiceva 224 \item Senzory není možné kalibrovat pomocí přístroje DPI145.
3486 kaklik 225 \item Naměřené hodnoty přibližně odpovídají hodnotám MSA. Do cca 18 km nejsou vykázány žádné výrazné změny oproti MSA, ačkoli obecně barometrická rovnice platí pouze do 11 km. Pro účely tohoto měření a zobrazení postačí.
3484 pomiceva 226 \end{itemize}
227  
228  
229  
3465 kaklik 230 \begin{thebibliography}{99}
3474 kaklik 231 \bibitem{MLAB-I2c-modules}{https://github.com/MLAB-project/MLAB-I2c-modules}
232 \href{https://github.com/MLAB-project/MLAB-I2c-modules}{MLAB-I2c-modules}
233 \bibitem{data_logger}{svn://svn.mlab.cz/mlab/Modules/Sensors/ALTIMET01A/SW/Python}
234 \href{svn://svn.mlab.cz/mlab/Modules/Sensors/ALTIMET01A/SW/Python}{MLAB-I2c-modules}
3480 kaklik 235 \bibitem{i2c_avr_USB}{http://wiki.mlab.cz/doku.php?id=cs:i2c\_avr\_usb}
236 \href{http://wiki.mlab.cz/doku.php?id=cs:i2c_avr_usb}{i2c-avr-USB}
3465 kaklik 237 \end{thebibliography}
238 \end{document}