Skip to content
Snippets Groups Projects
Commit 15872372 authored by Thomas Bock's avatar Thomas Bock :speech_balloon:
Browse files

se1 2019

parent c9dd0f77
No related branches found
No related tags found
No related merge requests found
a <- abbrevList(doc)
doc <- refreshResult(doc)
t.ms.b <- getConstVal(a$cmv$Time, "begin")
t.h <- (t.ms.b - t.ms.b[1])/1000/3600
t.ptb <- getConstVal(a$cmv$Temperature, "mkt50")
meas.M <- length(t.ptb)
skip.M <- 5
par(mfrow=c(1,1))
t.ptb <- t.ptb[skip.M:meas.M]
t.h <- t.h[skip.M:meas.M]
ch <- 101:110
ch.N <- length(ch)
corr.sd <- rep(NA, ch.N)
single.sd <- rep(NA, ch.N)
corr.mean <- rep(NA, ch.N)
corr.max <- rep(NA, ch.N)
corr.min <- rep(NA, ch.N)
ch.name <- rep(NA,ch.N)
for( i in 1:ch.N){
ch.name[i] <- paste0("keithley_ch",ch[i])
T.CH <- getSubList(a$cmv$Temperature, ch.name[i])
t.ch <- getConstVal(NA, NA, T.CH)
t.ch <- t.ch[skip.M:meas.M]
corr <- t.ptb - t.ch
single.sd[i] <- mean(unlist(T.CH$SdValue))
corr.sd[i] <- sd(corr)
corr.mean[i] <- mean(corr)
corr.max[i] <- max(corr)
corr.min[i] <- min(corr)
doc$Calibration$Result$Values$Temperature <-
setCcl(doc$Calibration$Result$Values$Temperature,
paste0("corr_", ch.name[i]),
"K",
corr.mean[i])
if(i == 1){
plot(t.h
, corr
, ylim=c(-0.27,0.05)
, main=cdb$id
, xlab = "t in h"
, ylab="k"
, pch=i
)
}else{
points(t.h, corr, col = i, pch=i)
}
}
grid()
legend(16,0.05, ch.name, pch=1:ch.N, col=1:ch.N, bg="white")
File added
File added
File added
\documentclass[titlepage=true,twoside]{vl-report}
\usepackage{amssymb}
\usepackage{hyperref}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage{fancyvrb}
\usepackage{verbatimbox}
\usepackage{url}
\usepackage{ltablex}
\usepackage{amsbsy}
\usepackage[multiple]{footmisc}
\usepackage{listings}
\usepackage{color}
\definecolor{middlegray}{rgb}{0.5,0.5,0.5}
\definecolor{lightgray}{rgb}{0.8,0.8,0.8}
\definecolor{orange}{rgb}{0.8,0.3,0.3}
\definecolor{yac}{rgb}{0.6,0.6,0.1}
\lstset{
basicstyle=\scriptsize\ttfamily,
keywordstyle=\bfseries\ttfamily\color{orange},
stringstyle=\color{green}\ttfamily,
commentstyle=\color{middlegray}\ttfamily,
emph={square},
emphstyle=\color{blue}\texttt,
emph={[2]root,base},
emphstyle={[2]\color{yac}\texttt},
showstringspaces=false,
flexiblecolumns=false,
tabsize=2,
numbers=left,
numberstyle=\tiny,
numberblanklines=false,
stepnumber=1,
numbersep=10pt,
xleftmargin=15pt
}
\newcommand{\rinline}[1]{SOMETHING WRONG WITH knitr}
% Für serifenlose Schrift:
\renewcommand{\familydefault}{\sfdefault}
\usepackage[cmbright,cmbrightmath]{tpslifonts}
%%%%%%%%%%%%%%%%%%%%%%%%%%
\MakeShortVerb{\|} %ermöglicht:
% Das ist eine XML-Anweisung |<hugo> ... </hugo>|. Und hier geht der satz
% weiter.
% ------------------------------------------------------------------
\usepackage{lmodern}
\IfFileExists{luximono.sty}%
{%
\usepackage[scaled]{luximono}%
}
{%
\IfFileExists{beramono.sty}%
{%
\usepackage[scaled]{beramono}%
}{}
}
\usepackage{listings,xcolor}
\lstset{%
basicstyle=\ttfamily\tiny,
showspaces=false,
showstringspaces=false,
breaklines=true,
backgroundcolor=\color{white},
breakautoindent=true,
captionpos=t,
%numbers=left,
numberstyle=\tiny,
numbersep=0.8em,
xleftmargin=1em,
columns=flexible,
}
\definecolor{lightgray}{rgb}{.9,.9,.9}
\definecolor{darkgray}{rgb}{.4,.4,.4}
\definecolor{purple}{rgb}{0.65, 0.12, 0.82}
\lstdefinelanguage{JavaScript}{
keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
keywordstyle=\color{blue}\bfseries,
ndkeywords={class, export, boolean, throw, implements, import, this},
ndkeywordstyle=\color{darkblue}\bfseries,
identifierstyle=\color{darkblue},
sensitive=false,
comment=[l]{//},
morecomment=[s]{/*}{*/},
commentstyle=\color{purple}\ttfamily,
stringstyle=\color{black}\ttfamily,
morestring=[b]',
morestring=[b]"
}
% \usepackage[font=small,labelfont=bf,justification=raggedright,%
% singlelinecheck=false]{caption}
% ------------------------------------------------------------------
\markright{QS 2/19}
\title{QS 2/19}
\author{Kalibrierung der Temperatursensoren von SE1 \\
\normalsize Physikalisch-Technische Bundesanstalt\\
\normalsize Labor für Vakuummetrologie -- AG 7.54}
\date{\normalsize 05.04.2019}
\begin{document}
\maketitle
\begin{table*}[h]
\begin{tabular}{@{}ll@{}}
\centering
Gegenstand: & 10 Pt100 Sensoren\\
& Temperaturauslesegerät \\
&\\
Hersteller: &LKM/ Keithley\\
&\\
Typ: & Pt100/DMM 2700\\
&\\
Seriennummer:& 4072951 (neu)\\
&\\
Prüfmittelnummer: &7.5-4027\\
&\\
Datum der Kalibrierungen: &04.04.2019\\
\end{tabular}
\label{sensor}
\end{table*}
QS\,2/19 beschreibt die Rekalibrierung der Temperatursensoren nach Ablauf der
regulären Kalibrierfrist.
Als Prüfnormal wurde das 2016 beschaffte MKT50 (PN 7.5-4039, KS: 74135PTB18)
benutzt.
Die automatische Auslese des bisher benutzten DMM (SN: 1192465) des Herstellers Keithley war
aufgrund einer nahezu undokumentierten Fehlermeldung\footnote{Eine detaillierte
Beschreibung des Fehlers ERROR -420 (unterminated query) wird im Handbuch
nicht gegeben und scheint auch in anderen Quellen nicht verfügbar.}
nicht mehr möglich. Es wurde deshalb ein Wechsel des DMM nötig.
\section*{Ablauf}
Die Messreihen wurden im klimatisierten Raum FOE024 am 5.4.2019 aufgenommen.
Zusammen mit dem Messfühler des Temperaturnormals waren die zu kalibrierenden
Temperaturfühler in einen Cu-Zylinder eingelassen und von
einem Kunststoffgehäuse umgeben.
Der Kanal 1 des MKT50 wurde mit Hilfe, eines auf
|ssmp|\footnote{\url{a75436.berlin.ptb.de/vaclab/ssmp}}
basierenden Messprogramms ausgelesen. Die Erfassung der Anzeige der
Keithley Kanäle erfolgte ebenfalls mit diesem System.
Die Rohdaten sind über die Labordatenbank im Dokument |cal-2019-mkt50-ik-4027_0001|
unter |Calibration.Measurement| zugänglich.
Die Anzeigen der Kanäle |101|, |102|,$\dots$ |110|
(nachfolgend abgekürzt mit
$T_{1,2\dots 10}$ bzw. $T_i$) tragen dort das Prefix |keithley_ch|. Ein
Messpunkt im Kalibrierdokument stellt den Mittelwert aus 20
Einzelmessungen und der daraus gebildeten Standardabweichung der Einzelwerte
dar. |mkt50| gibt den vom Temperaturnormal angezeigten Wert (referenziert als
$T_{PTB}$) wieder.
\section*{Auswertung}
Zur Auswertung bzw. zur Ermittlung der Sensorkorrekturen $k_i$ wird der
arithmetische Mittelwert der Differenzen $T_{PTB} - T_{i}$
gebildet. $k_i$ muss zur Korrektur eines Anzeigewertes addiert
werden:
\begin{equation}
\label{eq:k}
T_{korr,i} = T_i + k_i \rightarrow T_i +\frac{1}{N}\sum_{j=1}^N( T_{PTB} - T_{i})_j \rightarrow T_{PTB}
\end{equation}
In nachfolgender Rechnung wird die Messreihe vom 4. April 2019 ausgewertet und
die Ergebnisse in den |Calibration.Result|-Abschnitt des Dokuments
geschrieben.
%% begin.rcode
%% library(R4CouchDB)
%% library(vacLabTools)
%% cdb <- cdbIni()
%% cdb$DBName <- "vl_db"
%% cdb$id <- "cal-2019-mkt50-ik-4027_0001"
%% doc <- cdbGetDoc(cdb)$res
%%
%% source("ausw.r")
%%
%% if(!FALSE){
%% cdb$dataList <- doc
%% cdbUpdateDoc(cdb)$res
%% }
%% end.rcode
Vom Zeitpunkt der Berechnung der Korrekturen und der damit
verbundenen Erzeugung des |Results|-Abschnittes im oben genannten
Kalibrierdokument werden die Änderungen wirksam.
\section*{Unsicherheit der Kalibrierung}
Folgende Unsicherheiten sind beim vorliegenden Kalibrierverfahren zu
berücksichtigen:
%% begin.rcode
% # Unsicherheit des Temperaturnormals (KS-Angabe ist 5mK)
% # hizu kommt Langzeitstabilität Abschätzung: 2.5mK/a
% u1 <- 0.0025 + 0.0025# K
% # Digitalisierung
% u2 <- 2.9e-5 # K
% # Unsicherheit durch Temperaturgradienten über dem Cu-Zylinder
% # abgeschätzt aus dem Mittelwert der Variation der
% u3 <- mean(corr.max - corr.min) # K
% u3
% # Temperaturabhängigkeit der Korrektur (vernachlässigbar)
% # bzw in u3 enthalten
% u4 <- 0 # K
% # konservative Abschätzung der Langzeitstabilität auf
% # Grundlage von Erfahrungswerten da neues Auslesegerät
% u5 <- 0.05
% # experimentelle Streuung wird aus der Standardabw.
% # der 10 Einzelwerte eines Messpunktes abgeschätzt
% u6 <- max(single.sd) # K
% u6
%% end.rcode
Die Gesamtunsicherheit der Kalibrierung der Sensoren ergibt sich durch
quadratische Addition der Einzelbeiträge:
\begin{equation}
\label{eq:u}
u_c = \sqrt{u_1^2+u_2^2+u_3^2+u_4^2+u_5^2 +u_6^2}
\end{equation}
Man erhält eine erweiterte Gesamtunsicherheit von:
%% begin.rcode
% k <- 2
% k * sqrt(u1^2 + u2^2 + u3^2 +u4^2 +u5^2 +u6^2)
%% end.rcode
\section*{Rekalibrierung}
Das Messsystem sollte nach 24 Monaten rekalibriert werden.
\vspace{1.5cm}
\emph{Thomas Bock\\
Labor für Vakuummetrologie\\
AG: 7.54}
\end{document}
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment