import pandas
ofZ = pandas.read_excel('lab-3-1.xlsx', 't-1')
ofZ.head(len(ofZ))

"""
Explanation: Работа 1.4. Изучение явления взаимной индукции
Цель работы: изучение явлений взаимной индукции двух коаксиально расположенных катушек.  
Приборы и оборудование: источник питания; электронный осциллограф; звуковой генератор; цифровой вольтметр, модуль ФПЭ–05 для изучения взаимоиндукции; две катушки индуктивности на одной оси; шток со шкалой, показывающий взаимное расположение катушек.

Основная формула для вычисления коэффициента взаимной индукции:
$$M_{ij} = \frac{\mathcal{E}_{ij} R}{2\sqrt{2}\pi fU}$$
End of explanation
"""


xOfZ = ofZ.values[:, 0]
yOfZ = ofZ.values[:, 3]

import matplotlib.pyplot
matplotlib.pyplot.figure(figsize=(12, 8))
matplotlib.pyplot.grid(linestyle='--')
matplotlib.pyplot.title('Зависимость коэфициентов взаимной индукции от координаты катушки', fontweight='bold')
matplotlib.pyplot.xlabel('$z$, см')
matplotlib.pyplot.ylabel('$M_{ij}$, Гн')
matplotlib.pyplot.scatter(xOfZ, yOfZ)
matplotlib.pyplot.xlim((-0.5, 10.5))
matplotlib.pyplot.ylim((0.0012, 0.0033))
matplotlib.pyplot.show()

ofU = pandas.read_excel('lab-3-1.xlsx', 't-2')
ofU.head(len(ofU))

"""
Explanation: Здесь $U = 3.003$ В, $R = 10$ кОм, $f = 15$ кГц. Видно, что в этом случае при всех $z = 0, \ldots, 10$ см коэффициенты взаимной индукции совпадают.
End of explanation
"""


xOfU = ofU.values[:, 0]
yOfU = ofU.values[:, 3]

dxOfU = [0.01] * len(xOfU)
dyOfU = ofU.values[:, 4]

matplotlib.pyplot.figure(figsize=(12, 8))
matplotlib.pyplot.grid(linestyle='--')
matplotlib.pyplot.title('Зависимость коэфициентов взаимной индукции от амплитуды питающего напряжения', fontweight='bold')
matplotlib.pyplot.xlabel('$U$, В')
matplotlib.pyplot.ylabel('$M_{ij}$, Гн')
matplotlib.pyplot.scatter(xOfU, yOfU)
matplotlib.pyplot.errorbar(xOfU, yOfU, xerr=dxOfU, yerr=dyOfU, fmt='o')
matplotlib.pyplot.xlim((2, 5))
matplotlib.pyplot.ylim((0.0024, 0.0033))
matplotlib.pyplot.show()

ofF = pandas.read_excel('lab-3-1.xlsx', 't-3')
ofF.head(len(ofF))

"""
Explanation: Здесь $z = 5$ см, $R = 10$ кОм, $f = 15$ кГц. Видно, что в этом случае при всех $U$ от $2$ до $5$ В коэффициент взаимной индукции остается постоянным.
End of explanation
"""


xOfF = ofF.values[:, 4]
yOfF = ofF.values[:, 5]

dxOfF = ofF.values[:, 6]
dyOfF = ofF.values[:, 7]

matplotlib.pyplot.figure(figsize=(12, 8))
matplotlib.pyplot.grid(linestyle='--')
matplotlib.pyplot.title('Измерение коэфициентов взаимной индукции при различных частотах', fontweight='bold')
matplotlib.pyplot.xlabel('$\\frac{1}{f}$, с')
matplotlib.pyplot.ylabel('$M_{ij}$, Гн')
matplotlib.pyplot.scatter(xOfF, yOfF)
matplotlib.pyplot.errorbar(xOfF, yOfF, xerr=dxOfF, yerr=dyOfF, fmt='o')
matplotlib.pyplot.xlim((0.00004, 0.000205))
matplotlib.pyplot.ylim((0.0024, 0.0035))
matplotlib.pyplot.show()

"""
Explanation: Здесь $z = 5$ см, $R = 10$ кОм.
End of explanation
"""


