{ "cells": [ { "cell_type": "markdown", "id": "1d75c115", "metadata": {}, "source": [ "Know Thy System\n", "============================\n", "Before we discuss the concepts of measurement errors and uncertainties we will first introduce the concept of calibration. We will\n", "\n", "**Calibration** is an extremely important step in experiments as it allows us to confront our measurement system against a known **standard**. The process of calibration allows us to understand the response of the measurement system (i.e. the output) to the input values and assert their relationship. \n", "\n", "### Standards \n", "\n", "The process of calibration relies on comparing the system's output to a reference value - *a standard*. \n", "\n", "**Primary Standards** are standards which are used for the defining the measurement unit - meter; second; Kg etc. Not all units are defined directly by primary standards, some, such as energy [J] or pressure [Pa] are derived from the base units. \n", "\n", "**Transfer standards** are calibrated based on primary standards and are then used to calibrate **local standards**, which in turn are used for calibrating **working** standards which are used for calibrating instruments. \n", "\n", "Not all laboratories will have a working standard. Many times, external organizations will calibrate the instruments periodically. \n", "\n", "Note however, that even when no *official* standards exist, a simple calibration or *sanity check* of the instrument is usually performed prior to the experiment itself. These checks do not by any mean replace the need for formal periodic calibration, but they increase the user's confidence and serve to validate that unknown factors have not led to significant biases in the measurement. and\n" ] }, { "cell_type": "markdown", "id": "e1d6b7ac", "metadata": {}, "source": [ "### A simple calibration example\n", "\n", "In the [linked csv file](../BC/Temp.csv) you will find experimental data obtained from two different sources - a non-contact IR sensor which we wish to calibrate and a calibrated thermocouple (I have saved you the trouble and converted the thermocouple measurments to Kelvin). \n" ] }, { "cell_type": "markdown", "id": "cf9b3205", "metadata": {}, "source": [ "First we need to import some libraries :" ] }, { "cell_type": "code", "execution_count": 1, "id": "cd041f5f", "metadata": { "tags": [ "remove-output" ] }, "outputs": [], "source": [ "import numpy as np \n", "import pandas as pd\n", "import plotly.express as px\n", "from scipy import optimize" ] }, { "cell_type": "markdown", "id": "caf05d91", "metadata": {}, "source": [ "Next, we use the pandas package to read in our csv file and reshape it. Note that the emphasize here is on making it easy to understand and not on proper usage of the python language." ] }, { "cell_type": "code", "execution_count": 2, "id": "fd2e1482", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | IR1 | \n", "TC1 | \n", "IR2 | \n", "TC2 | \n", "IR3 | \n", "TC3 | \n", "IR4 | \n", "TC4 | \n", "IR5 | \n", "TC5 | \n", "
---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0.100000 | \n", "33.966335 | \n", "0.100000 | \n", "33.980729 | \n", "0.100000 | \n", "34.082835 | \n", "0.100000 | \n", "34.521812 | \n", "0.100000 | \n", "33.141800 | \n", "
1 | \n", "0.102634 | \n", "35.116676 | \n", "0.102634 | \n", "32.230332 | \n", "0.102634 | \n", "34.818297 | \n", "0.102634 | \n", "33.849606 | \n", "0.102634 | \n", "37.990984 | \n", "
2 | \n", "0.105268 | \n", "30.092609 | \n", "0.105268 | \n", "36.143939 | \n", "0.105268 | \n", "33.194092 | \n", "0.105268 | \n", "30.467709 | \n", "0.105268 | \n", "33.394834 | \n", "
3 | \n", "0.107903 | \n", "33.151242 | \n", "0.107903 | \n", "34.130346 | \n", "0.107903 | \n", "33.057566 | \n", "0.107903 | \n", "31.620905 | \n", "0.107903 | \n", "34.685687 | \n", "
4 | \n", "0.110537 | \n", "34.467250 | \n", "0.110537 | \n", "36.130374 | \n", "0.110537 | \n", "28.626641 | \n", "0.110537 | \n", "33.981638 | \n", "0.110537 | \n", "33.095601 | \n", "