diff --git a/3.1.3/Kotlyarov_M/Graphics/M_vs_n.png b/3.1.3/Kotlyarov_M/Graphics/M_vs_n.png new file mode 100644 index 00000000..55f4ef2e Binary files /dev/null and b/3.1.3/Kotlyarov_M/Graphics/M_vs_n.png differ diff --git a/3.1.3/Kotlyarov_M/Graphics/T_vs_n.png b/3.1.3/Kotlyarov_M/Graphics/T_vs_n.png new file mode 100644 index 00000000..91910d87 Binary files /dev/null and b/3.1.3/Kotlyarov_M/Graphics/T_vs_n.png differ diff --git a/3.1.3/Kotlyarov_M/data/M_vs_n.py b/3.1.3/Kotlyarov_M/data/M_vs_n.py new file mode 100644 index 00000000..6677a259 --- /dev/null +++ b/3.1.3/Kotlyarov_M/data/M_vs_n.py @@ -0,0 +1,42 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Ваши данные +n_data = np.array([12, 10, 8, 6, 4]) +M_data = np.array([285.45589086, 227.01610218, 214.091918145, 191.0531553, 179.252813355]) + +# Аппроксимация M = k * n (линейная регрессия без intercept) +k = np.sum(n_data * M_data) / np.sum(n_data**2) +print(f"k = {k:.3f}") + +# Погрешность k +N = len(n_data) +residuals = M_data - k * n_data +chi2 = np.sum(residuals**2) +sigma_k = np.sqrt(chi2 / (np.sum(n_data**2) * (N - 1))) + +print(f"σ_k = {sigma_k:.3f}") +print(f"k ± σ_k = {k:.3f} ± {sigma_k:.3f}") + +# Диапазон для прямой: от 0 до чуть больше максимального n +n_line = np.linspace(0, max(n_data) * 1.1, 100) +M_line = k * n_line + +# Построение графика +plt.figure(figsize=(8, 6)) +plt.plot(n_line, M_line, label=f'M = ({k:.3f} ± {sigma_k:.3f}) * n', color='red', linestyle='-', linewidth=1.5) +plt.scatter(n_data, M_data, color='blue', s=30, label='Экспериментальные точки', zorder=5) + +# Настройки графика +plt.xlabel('n') +plt.ylabel('M, дин*см') +plt.title('Зависимость момента сил от количества шариков') +plt.legend() +plt.grid(True, linestyle='--', alpha=0.6) +plt.xlim(left=0) +plt.ylim(bottom=0) + +# Показать график +plt.tight_layout() +plt.savefig('M_vs_n.png', dpi=300) +plt.show() diff --git a/3.1.3/Kotlyarov_M/data/T_vs_n.py b/3.1.3/Kotlyarov_M/data/T_vs_n.py new file mode 100644 index 00000000..7d2e7126 --- /dev/null +++ b/3.1.3/Kotlyarov_M/data/T_vs_n.py @@ -0,0 +1,42 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Ваши данные +n_data = np.array([12, 10, 8, 6, 4, 3]) +T_data = np.array([3.748, 3.158, 2.696, 1.99, 1.35, 1.059]) + +# Аппроксимация T = k * n (линейная регрессия без intercept) +k = np.sum(n_data * T_data) / np.sum(n_data**2) +print(f"k = {k:.3f}") + +# Погрешность k +N = len(n_data) +residuals = T_data - k * n_data +chi2 = np.sum(residuals**2) +sigma_k = np.sqrt(chi2 / (np.sum(n_data**2) * (N - 1))) + +print(f"σ_k = {sigma_k:.3f}") +print(f"k ± σ_k = {k:.3f} ± {sigma_k:.3f}") + +# Диапазон для прямой: от 0 до чуть больше максимального n +n_line = np.linspace(0, max(n_data) * 1.1, 100) +T_line = k * n_line + +# Построение графика +plt.figure(figsize=(8, 6)) +plt.plot(n_line, T_line, label=f'T = ({k:.3f} ± {sigma_k:.3f}) * n', color='red', linestyle='-', linewidth=1.5) +plt.scatter(n_data, T_data, color='blue', s=30, label='Экспериментальные точки', zorder=5) + +# Настройки графика +plt.xlabel('n') +plt.ylabel('T, с') +plt.title('Зависимость периода крутильных колебаний от количества шариков') +plt.legend() +plt.grid(True, linestyle='--', alpha=0.6) +plt.xlim(left=0) +plt.ylim(bottom=0) + +# Показать график +plt.tight_layout() +plt.savefig('T_vs_n.png', dpi=300) +plt.show() diff --git a/3.1.3/Kotlyarov_M/data/data.xlsx b/3.1.3/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..de674fbe Binary files /dev/null and b/3.1.3/Kotlyarov_M/data/data.xlsx differ diff --git a/3.1.3/Kotlyarov_M/main.pdf b/3.1.3/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..2dce71a6 Binary files /dev/null and b/3.1.3/Kotlyarov_M/main.pdf differ diff --git a/3.1.3/Kotlyarov_M/main.tex b/3.1.3/Kotlyarov_M/main.tex new file mode 100644 index 00000000..c22f7de6 --- /dev/null +++ b/3.1.3/Kotlyarov_M/main.tex @@ -0,0 +1,326 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage{multirow} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\usepackage{siunitx} +\usepackage{booktabs} +\sisetup{ + exponent-product = \cdot, + per-mode = symbol, + separate-uncertainty = true, + uncertainty-separator = \, +} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.1.3}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + +\section{Введение} + +\subsection*{Цель работы} +Исследовать свойства постоянных неодимовых магнитов; измерить с их помощью горизонтальную и вертикальную составляющие индукции магнитного поля Земли и магнитное наклонение. + +\subsection*{Оборудование} +Неодимовые магниты; тонкая нить для изготовления крутильного маятника; медная проволока; электронные весы; секундомер; измеритель магнитной индукции; штангенциркуль; брусок, линейка и штатив из немагнитных материалов; набор гирь и разновесов. + +\subsection*{Теоретические сведения} +Магнитное поле точечного диполя с магнитным моментом \(\mathbf{m}\) определяется формулой: +\[ +\mathbf{B}_{\text{дип}} = \frac{\mu_0}{4\pi} \left( \frac{3(\mathbf{m} \cdot \mathbf{r})\mathbf{r}}{r^5} - \frac{\mathbf{m}}{r^3} \right), +\] +где \(\mu_0 = 4\pi \cdot 10^{-7} \, \text{Гн/м}\). + +Во внешнем магнитном поле с индукцией \(\mathbf{B}\) на диполь действует механический момент сил: +\[ +\mathcal{M} = [\mathbf{m} \cdot \mathbf{B}], +\] +а его потенциальная энергия равна: +\[ +W = -(\mathbf{m} \cdot \mathbf{B}). +\] + +В неоднородном поле на диполь также действует сила: +\[ +\mathbf{F} = -\nabla W = (\mathbf{m} \cdot \nabla) \mathbf{B}. +\] + +Для однородно намагниченного шара радиусом \(R\) магнитный момент связан с намагниченностью \(M\) соотношением: +\[ +\mathbf{m} = M \cdot V, \quad V = \frac{4\pi}{3}R^3. +\] + +Остаточная индукция материала определяется как \(B_r = \mu_0 M\), а индукция на полюсах шара вычисляется по формуле: +\[ +B_p = \frac{2}{3} B_r. +\] + +Магнитное поле Земли характеризуется горизонтальной \(B_{\parallel}\) и вертикальной \(B_{\perp}\) составляющими, а также магнитным наклонением \(\beta\), связанным с ними соотношением: +\[ +\tan \beta = \frac{B_{\perp}}{B_{\parallel}}. +\] +\section{Выполнение} + +\subsection*{Измерение характеристик магнитных шариков} + +\begin{enumerate} +\item Подложим на весы толстую стопку листов, чтобы магнитные шарики не притягивались к металлическим частям весов. Масса листов $m_{\text{листов}} = 145.613$ г, масса 40 шариков на листах $m_{\text{сумм}} = 178.693$ г, масса 1 шарика $m = \frac{m_{\text{сумм}} - m_{\text{листов}}}{40} = 0.827$. Погрешность $\sigma_m = \frac{\sigma_{\text{весов}}}{40} = 0,000025$ г ($\varepsilon_m = 0,003 \%$). +\item Измерим радиус шариков. Длина цепочки из 10 шариков $d_{10} = 5.73$ см, радиус одного шарика $R = 0,2865 \pm 0,0005$ см. + +\item Измерим магнитное поле на полюсах шариков. +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|} + \hline + № & $B_p,\ \text{мТл}$ \\ \hline + 1 & 328 \\ \hline + 2 & 270 \\ \hline + 3 & 238 \\ \hline + 4 & 320 \\ \hline + 5 & 241 \\ \hline + 6 & 230 \\ \hline + 7 & 337 \\ \hline + \end{tabular} + \caption{Таблица 1. Измеренные значения индукции магнитного поля на полюсах шариков} + \label{tab:Bp_measurements} +\end{table} + +Рассчитаем среднее: $B_p^{\text{ср}} = 2806 \pm 176$ Гс ($\varepsilon_{B_p^{\text{ср}}} = 6,28 \%$). + +\item Магнитный момент шарика $P_m = \frac{B_p^{\text{ср}} R^3}{2} = 32,99 \pm 2,08 \text{ см}^3 \cdot \text{Гс}$ ($\varepsilon_{P_m} = 6,3 \%$), намагниченность $p_m = \frac{P_m}{V} = \frac{P_m}{\frac{4}{3} \pi R^3} = 334,9 \pm 21,2$ Гс, остаточная магнитная индукция $B_r = 4 \pi p_m = 4209 \pm 266$ Гс. + +\subsection*{Метод A. Определение магнитного момента по силе отрыва} + + \item Найдём максимальное расстояние $r_{\text{max}}$ между центрами шариков, при котором они ещё удерживают друг друга в поле тяжести: + \begin{itemize} + \item Поместим между шариками брусок из немагнитного материала + \item Будем увеличивать расстояние между шариками. + \item Измерим расстояние $r_{\text{max}}$ в момент отрыва шариков. + \end{itemize} + + Получилось $r_{\text{max}} = 2,173 \pm 0,100$ см ($\varepsilon_{r_{\text{max}}} = 4,6 \%$). + \item Рассчитаем магнитный момент $P_{m}$: + \[ + P_{m} = \sqrt{\frac{mg r_{\text{max}}^4}{6}} = 54,90 \pm 5,05 \text{ см}^3 \cdot \text{Гс} \ (\varepsilon_{P_m} = 9,2 \%), + \] + где $g = 980\ \text{см/с}^2$ -- ускорение свободного падения. Магнитное поле $B_p = \frac{2 P_m}{R^3} = 4669 \pm 430$ Гс ($\varepsilon_{B_p} = 9,22 \%$), намагниченность $p_m = 557,3 \pm 51,4$ Гс, остаточная магнитная индукция $B_r = 4 \pi p_m = 7003 \pm 646$ Гс. + +\subsection*{Метод Б. Определение магнитного момента по силе сцепления} + + \item Составим цепочку из 30 магнитных шариков. Будем присоединять к цепочке гири и разновесы, подбирая минимальный вес системы цепочки с гирей, при котором она отрывается от верхнего шарика. Определим с помощью весов массу $m_{\text{ц}}$ оторвавшейся цепочки с гирей. Получилось $m_{\text{ц}} = 353.254$ г, $F = 346424$ дин. + + \item Рассчитаем силу сцепления $F_0$ двух шаров по формуле: + \[ + F_0 = \frac{F}{1,08} = 320761 \text{дин}. + \] + Вычислим магнитный момент $P_m$: + \[ + P_m = R^2 \sqrt{\frac{8F_0}{3}} = 75,91 \pm 2,17 \text{ см}^3 \cdot \text{Гс } (\varepsilon_{P_m} = 2,85 \%), + \] + где $R$ -- радиус шарика. Магнитное поле $B_p = \frac{2 P_m}{R^3} = 6456 \pm 187$ Гс ($\varepsilon_{B_p} = 2,90 \%$), намагниченность $p_m = 770,7 \pm 22,3$ Гс, остаточная магнитная индукция $B_r = 9684 \pm 281$ Гс. \\ + +Рассчитаем средний магнитный момент по прямому измерению, методу А и Б: $P_m^\text{ср} = \frac{w_\text{прям} P_m^\text{прям} + w_\text{А} P_m^\text{А} + w_\text{Б} P_m^\text{Б}}{w_\text{прям} + w_\text{А} + w_\text{Б}} = 53,68 \pm 2,79\text{ см}^3 \cdot \text{Гс }$ + +\subsection*{Измерение горизонтальной составляющей магнитного поля Земли} + + \item Соберём крутильный маятник из 12 магнитных шариков и подвесим его на немагнитном штативе с помощью $\Lambda$-образного подвеса. Установим «магнитную стрелку» в горизонтальное положение. + + \item Возбудим крутильные колебания маятника вокруг вертикальной оси и измерим их период $T$ с помощью секундомера. + + \item Проверим влияние упругости нити на период колебаний: + \begin{itemize} + \item Свернём «стрелку» в кольцо (магнитный момент такого маятника равен нулю) + \item Возбудим крутильные колебания и убедимся, что период существенно не изменяется + \end{itemize} + + \item Исследуем зависимость периода $T$ крутильных колебаний от количества шариков $n$: + \begin{table}[h!] + \centering + \begin{tabular}{|c|c|} + \hline + $n$ & $T,\ \text{с}$ \\ \hline + 12 & 3,748 \\ \hline + 10 & 3,158 \\ \hline + 8 & 2,696 \\ \hline + 6 & 1,990 \\ \hline + 4 & 1,350 \\ \hline + 3 & 1,059 \\ \hline + \end{tabular} + \caption{Таблица 2. Зависимость периода крутильных колебаний от количества шариков в стрелке} + \label{tab:T_n} +\end{table} + +Построим по МНК график зависимости $T(n)$ и убедимся в его линейности. + \begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/T_vs_n.png}} + \caption{График 1. Зависимость периода крутильных колебаний от числа шариков} +\end{figure} +\\Наклон прямой $k = 0,322 \pm 0,005$ с ($\varepsilon_k = 1,55 \%$). + \item Рассчитаем горизонтальную составляющую $B_{\parallel}$ по угловому коэффициенту графика: + \[ + B_{\parallel} = \frac{4\pi^2 m R^2}{3P_m k^2} = 0,160 \pm 0,010 \text{ Гс} (\varepsilon_{B_{\parallel}} = 6,06 \%), + \] + где $k$ -- угловой коэффициент зависимости $T(n)$, $P_m$ - средний магнитный момент шариков, рассчитанный как взвешенное среднее по методам А и Б. + +\subsection*{III. Измерение вертикальной составляющей и магнитного наклонения} + + \item Изготовим магнитную «стрелку» из $n = 10$ шариков и подвесим её за середину на нити. + + \item Определим механический момент сил, действующий на «стрелку»: + \begin{itemize} + \item С помощью кусочков медной проволоки уравновесим «стрелку» в горизонтальном положении + \item Измерим массу уравновешивающего груза $m_{\text{гр}}$ на весах + \end{itemize} + + \item Рассчитаем механический момент сил: + \[ + \mathcal{M} = m_{\text{гр}} g r_{\text{гр}}, + \] + где $r_{\text{гр}}$ -- плечо силы тяжести. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $n$ & $\text{плечо},\ \text{см}$ & $m_{\text{гр}},\ \text{г}$ & $\mathcal{M},\ \text{дин}\cdot\text{см}$ \\ \hline + 12 & 2,292 & 0,127 & 285,46 \\ \hline + 10 & 2,292 & 0,101 & 227,02 \\ \hline + 8 & 1,719 & 0,127 & 214,09 \\ \hline + 6 & 1,146 & 0,170 & 191,05 \\ \hline + 4 & 0,573 & 0,319 & 179,25 \\ \hline + \end{tabular} + \caption{Таблица 3. Зависимость механического момента сил от количества шариков в стрелке} + \label{tab:M_n} +\end{table} + + \item Построим график зависимости $\mathcal{M}(n)$ и убедимся в его линейности. + \begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/M_vs_n.png}} + \caption{График 2. Зависимость момента сил от количества шариков} +\end{figure} +\\Наклон прямой $k_{\mathcal{M}} = 25,76 \pm 2,46$ дин$\cdot$см ($\varepsilon_k = 9,54\%$). + \item Рассчитаем вертикальную составляющую $B_{\perp}$ по угловому коэффициенту графика: + \[ + B_{\perp} = \frac{k_{\mathcal{M}}}{P_m} = 0,480 \pm 0,052 \text{ Гс } (\varepsilon_{B_{\perp}} = 10,86 \%), + \] + где $k_{\mathcal{M}}$ -- угловой коэффициент зависимости $\mathcal{M}(n)$. + +\subsection*{Рассчет характеристик магнитного поля Земли} + \item Определим магнитное наклонение $\beta$: + \[ + \tan \beta = \frac{B_{\perp}}{B_{\parallel}} = 1,248 \pm 0,037 \text{ рад} = 71,50^\circ \pm 2,14^\circ \ (\varepsilon_{\beta} = 3,00 \%). + \] + + \item Найдём полную величину индукции магнитного поля Земли: + \[ + B_{\text{Земли}} = \sqrt{B_{\parallel}^2 + B_{\perp}^2} = 0,506 \pm 0,050 \text{ Гс } (\varepsilon_{B_{\text{Земли}}} = 9,79\%). + \] + + \item Рассчитаем магнитный момент Земли: + +Исходные данные +\begin{itemize} + \item Географическая широта: $\varphi \approx 56^\circ$ N + \item Горизонтальная компонента: $B_{\parallel} = 0,160 \pm 0,010 \text{ Гс}$ + \item Угол наклонения: $\beta = 71,50^\circ \pm 2,14^\circ$ + \item Радиус Земли: $R = 6.371 \cdot 10^8\,\text{см}$ +\end{itemize} + +Расчёт:\\ +\textbf{Магнитная широта:} + \[ + \theta = \arctan \left( \frac{1}{2} \tan \beta \right) = 0,981 \pm 0,057 \text{ рад } (\varepsilon_{\theta} = 5,86 \%) + \] + +\textbf{Поле на экваторе:} + \[ + B_{\text{экв}} = \frac{B_h}{\cos \theta} = 0,289\pm 0,030 \text{ Гс } (\varepsilon_{B_{\text{экв}}} = 10,52\%) + \] + +\textbf{Магнитный момент:} + \[ + P_m^\text{Земли} = B_{\text{экв}} \cdot R^3 = 0,289 \cdot (6.371 \cdot 10^8)^3 = (7,46 \pm 0,78) \cdot 10^{25} \text{ см}^3 \cdot \text{Гс} + \] + +\end{enumerate} + + +\section{Результаты и обсуждения} + +\begin{enumerate} +\item Сравним три метода измерения магнитных характеристик шариков и табличное значение остаточной индукции: + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|} + \hline + Метод & $P_m$, см$^3\cdot$Гс & $B_p$, Гс & $p_m$, Гс & $B_r$, Гс \\ \hline + Прямое измерение & $32,99 \pm 2,08$ & $2806 \pm 176$ & $334,9 \pm 21,2$ & $4209 \pm 266$ \\ \hline + Метод А & $54,90 \pm 5,05$ & $4669 \pm 430$ & $557,3 \pm 51,4$ & $7003 \pm 646$ \\ \hline + Метод Б & $75,91 \pm 2,17$ & $6456 \pm 187$ & $770,7 \pm 22,3$ & $9684 \pm 281$ \\ \hline + \end{tabular} + \caption{Таблица 4. Сравнение методов определения магнитных параметров} + \label{tab:methods_comparison} +\end{table} + +Табличная остаточная индукция Неодим-железо-бор $Nd_2Fe_{14}B$ $B_r^\text{табл}\footnotemark[1] = 12200$ Гс. Ближе всего к табличному значению оказался метод Б, прямое измерение показало наихудший результат. +\footnotetext[1]{Табличное значение остаточная индукция Неодим-железо-бор $Nd_2Fe_{14}B$ взято из книги Лабораторный практикум по общей физике Том 2 Электричество и магнетизм под ред. Максимычева} + +\item Сравним магнитные характеристики Земли, полученные в ходе эксперимента, с табличными: +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|} + \hline + & $B_{\parallel}$, Гс & $B_{\perp}$, Гс & $B$, Гс & $\beta$, $^\circ$ & $P_m^\text{Земли}, \text{ см}^3 \cdot \text{Гс}$ \\ \hline + Экспериментальные & $0,160 \pm 0,010$ & $0,480 \pm 0,052$ & $0,506 \pm 0,050$ & $71,50 \pm 2,14$ & $(7,46 \pm 0,785) \cdot 10^{25}$ \\ \hline + Табличные\footnotemark[2] & $0,165599$ & $0,504311$ & $0,530804$ & $71,8216$ & $7,7 \cdot 10^{25}$ \\ \hline + \end{tabular} + \caption{Таблица 5. Сравнение экспериментальных и табличных значений параметров магнитного поля Земли} + \label{tab:earth_field_comparison} +\end{table} +\end{enumerate} + +Как мы видим, все значения сходятся с высокой точностью. +\footnotetext[2]{Табличные значения взяты с сайта \url{https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml\#igrfwmm}, координаты брались: 55.929444 N, 37.518434 E, время обращения 31.10.2025} +\section{Вывод} + +В ходе лабораторной работы были исследованы свойства неодимовых магнитов и измерены параметры магнитного поля Земли. + +Были определены магнитные характеристики шариков тремя методами. Наилучшее согласование с табличными значениями для NdFeB показал метод Б тогда как методы А и прямого измерения дали заниженные результаты, что может быть связано с приближённым характером используемых формул и трудностью точного определения точки отрыва. + +Экспериментально измерены составляющие магнитного поля Земли: горизонтальная $B_{\parallel} = 0,160 \pm 0,010$ Гс и вертикальная $B_{\perp} = 0,480 \pm 0,052$ Гс. Полученное магнитное наклонение $\beta = 71,50^\circ \pm 2,14^\circ$ и полная индукция $B = 0,506 \pm 0,050$ Гс хорошо согласуются с табличными значениями для Долгопрудного. + +Подтверждена линейная зависимость периода крутильных колебаний и механического момента от количества шариков в стрелке, что свидетельствует о аддитивности магнитных моментов и магнитожёсткости материала неодимовых магнитов. +\end{document} \ No newline at end of file diff --git a/3.1.3/pdf/Kotlyarov_M.pdf b/3.1.3/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..2dce71a6 Binary files /dev/null and b/3.1.3/pdf/Kotlyarov_M.pdf differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/Graphics/ACH_plot_final_corrected.png b/3.2.4+3.2.5/Kotlyarov_M/Graphics/ACH_plot_final_corrected.png new file mode 100644 index 00000000..a531952f Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/Graphics/ACH_plot_final_corrected.png differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/Graphics/Decr_vs_RSigma_plot_with_errors.png b/3.2.4+3.2.5/Kotlyarov_M/Graphics/Decr_vs_RSigma_plot_with_errors.png new file mode 100644 index 00000000..ddcaf3c4 Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/Graphics/Decr_vs_RSigma_plot_with_errors.png differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/Graphics/FCH_plot_detailed_method9.png b/3.2.4+3.2.5/Kotlyarov_M/Graphics/FCH_plot_detailed_method9.png new file mode 100644 index 00000000..2406e37f Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/Graphics/FCH_plot_detailed_method9.png differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/Graphics/Texp_vs_Ttheor_plot.png b/3.2.4+3.2.5/Kotlyarov_M/Graphics/Texp_vs_Ttheor_plot.png new file mode 100644 index 00000000..75bd260a Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/Graphics/Texp_vs_Ttheor_plot.png differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/Pictures/ustanovka1.png b/3.2.4+3.2.5/Kotlyarov_M/Pictures/ustanovka1.png new file mode 100644 index 00000000..49fe52ca Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/Pictures/ustanovka1.png differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/Pictures/ustanovka2.png b/3.2.4+3.2.5/Kotlyarov_M/Pictures/ustanovka2.png new file mode 100644 index 00000000..688852fb Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/Pictures/ustanovka2.png differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/ACH_FCH.py b/3.2.4+3.2.5/Kotlyarov_M/data/ACH_FCH.py new file mode 100644 index 00000000..503a4e59 --- /dev/null +++ b/3.2.4+3.2.5/Kotlyarov_M/data/ACH_FCH.py @@ -0,0 +1,512 @@ +# script3_ACH_FCH_final_corrected_v4.py +import pandas as pd +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +from scipy.interpolate import interp1d, UnivariateSpline +from scipy.optimize import fsolve +import os + +# --- Определение функций форматирования оси Y до их использования --- +def pi_formatter(x, pos): + from fractions import Fraction + multiple = x / np.pi + frac = Fraction(multiple).limit_denominator(10) + num = frac.numerator + den = frac.denominator + if den == 1: + if num == 0: + return "0" + elif num == 1: + return r"$\pi$" + elif num == -1: + return r"$-\pi$" + else: + return r"${}\pi$".format(num) + else: + if num == 0: + return "0" + elif num == 1: + return r"$\frac{{\pi}}{{{}}}$".format(den) + elif num == -1: + return r"$-\frac{{\pi}}{{{}}}$".format(den) + else: + return r"$\frac{{{}}}{{{}}}\pi$".format(num, den) + +def pi_formatter_orig(x, pos): + from fractions import Fraction + multiple = x / np.pi + frac = Fraction(multiple).limit_denominator(10) + num = frac.numerator + den = frac.denominator + if den == 1: + if num == 0: + return "0" + elif num == 1: + return r"$\pi$" + elif num == -1: + return r"$-\pi$" + else: + return r"${}\pi$".format(num) + else: + if num == 0: + return "0" + elif num == 1: + return r"$\frac{{\pi}}{{{}}}$".format(den) + elif num == -1: + return r"$-\frac{{\pi}}{{{}}}$".format(den) + else: + return r"$\frac{{{}}}{{{}}}\pi$".format(num, den) +# --- Конец определения функций --- + +# Создаем папку для графиков, если её нет +graphics_folder = "../Graphics" +os.makedirs(graphics_folder, exist_ok=True) + +# --- 1. Чтение данных из FR_PR.xlsx --- +try: + df = pd.read_excel('FR_PR.xlsx', sheet_name='Sheet1', header=None) + if len(df) < 8: # Нужно 8 строк данных (0-7), плюс может быть пустая 8 (индекс 8) + print("Ошибка: Не хватает данных в FR_PR.xlsx (нужны 8 строк данных).") + exit() + + # Читаем строки + # Строка 0: ν/ν₀ (нормированная частота) + nu_norm_series = df.iloc[0, 1:].dropna() # ν/ν₀ + dnu_norm_series = df.iloc[1, 1:].dropna() # σ_{ν/ν₀} + U_U0_series = df.iloc[2, 1:].dropna() # U/U₀ + dU_U0_series = df.iloc[3, 1:].dropna()# σ_{U/U₀} + # Строка 4: ν (частота в кГц) + nu_series = df.iloc[4, 1:].dropna() # ν, кГц + dnu_series = df.iloc[5, 1:].dropna() # σ_ν, кГц + # Строка 6: Δφ (фазовый сдвиг в рад) - ПРЕДПОЛАГАЕТСЯ, ЧТО РАССЧИТАН КАК 2πνΔx + Delta_phi_series = df.iloc[6, 1:].dropna() # Δφ, рад + # Строка 7: σ_{Δx} (погрешность Δx в мкс) - используем как σ_{Δφ} + dDelta_x_series = df.iloc[7, 1:].dropna() # σ_{Δx} (мкс) -> σ_{Δφ} (рад) + + # Преобразуем в numpy массивы + nu_norm_data_orig = nu_norm_series.astype(float).to_numpy() + dnu_norm_data_orig = dnu_norm_series.astype(float).to_numpy() + U_U0_data_orig = U_U0_series.astype(float).to_numpy() + dU_U0_data_orig = dU_U0_series.astype(float).to_numpy() + nu_data_orig = nu_series.astype(float).to_numpy() * 1e3 # переводим ν в Гц + dnu_data_orig = dnu_series.astype(float).to_numpy() * 1e3 # σ_ν в Гц + Delta_phi_data_orig = Delta_phi_series.astype(float).to_numpy() # Δφ в рад + dDelta_phi_data_orig = dDelta_x_series.astype(float).to_numpy() * 1e-6 # σ_{Δx} в мкс -> σ_{Δφ} в рад (приблизительно) + + print("Данные успешно загружены из FR_PR.xlsx:") + print(f"nu_norm_orig (ν/ν₀): {nu_norm_data_orig}") + print(f"sigma_nu_norm_orig: {dnu_norm_data_orig}") + print(f"U_U0_orig: {U_U0_data_orig}") + print(f"sigma_U_U0_orig: {dU_U0_data_orig}") + print(f"nu_orig (Гц): {nu_data_orig}") + print(f"sigma_nu_orig (Гц): {dnu_data_orig}") + print(f"Delta_phi_orig (рад): {Delta_phi_data_orig}") + print(f"sigma_Delta_phi_orig (рад): {dDelta_phi_data_orig}") + + # --- 1.1. Сортировка данных по возрастанию nu (или nu_norm, они должны быть связаны) --- + # Лучше сортировать по nu, так как он используется для ФЧХ + sort_indices = np.argsort(nu_data_orig) + nu_norm_data = nu_norm_data_orig[sort_indices] + dnu_norm_data = dnu_norm_data_orig[sort_indices] + U_U0_data = U_U0_data_orig[sort_indices] + dU_U0_data = dU_U0_data_orig[sort_indices] + nu_data = nu_data_orig[sort_indices] + dnu_data = dnu_data_orig[sort_indices] + Delta_phi_data = Delta_phi_data_orig[sort_indices] # Сохраняем оригинальный массив + dDelta_phi_data = dDelta_phi_data_orig[sort_indices] + + print(f"\nДанные отсортированы по возрастанию частоты nu (Гц): {nu_data}") + print(f"Соответствующие nu/nu0: {nu_norm_data}") + print(f"Соответствующие Delta_phi (до инверсии): {Delta_phi_data}") + + # --- 1.2. ИНВЕРСИЯ ФАЗЫ для соответствия рис. 5 (Δφ = φ(U_C) - φ(U_gen)) --- + # Из анализа выше: данные в файле, вероятно, представляют φ(U_gen) - φ(U_C) + # Для соответствия рис. 5 и методу из п. 2.7.9, нужно φ(U_C) - φ(U_gen) + print("Инвертируем знак Delta_phi для соответствия φ(U_C) - φ(U_gen)") + Delta_phi_data_for_FCH = -Delta_phi_data # Инвертируем знак + print(f"Delta_phi (после инверсии для ФЧХ): {Delta_phi_data_for_FCH}") + +except FileNotFoundError: + print("Ошибка: Файл 'FR_PR.xlsx' не найден.") + exit() +except Exception as e: + print(f"Ошибка при чтении файла FR_PR.xlsx: {e}") + import traceback + traceback.print_exc() + exit() + +# --- 2. Определение резонансной частоты nu0 (по АЧХ, из нормированной частоты) --- +# Найдём индекс, где nu_norm_data близко к 1.0 (это nu0) +max_idx_norm = np.argmin(np.abs(nu_norm_data - 1.0)) +# Также найдём индекс максимальной амплитуды U_U0_data +max_idx_U = np.argmax(U_U0_data) + +# Проверим, совпадают ли они или близки +print(f"Индекс max(U/U0): {max_idx_U}, nu_norm = {nu_norm_data[max_idx_U]:.4f}") +print(f"Индекс min(|nu_norm - 1|): {max_idx_norm}, nu_norm = {nu_norm_data[max_idx_norm]:.4f}") +# Возьмём за основу индекс из nu_norm_data, так как он должен быть точно 1.0 при резонансе +nu0_ACH = nu_data[max_idx_norm] # или nu_data[max_idx_U], если они близки +U0_norm = U_U0_data[max_idx_norm] # или U_U0_data[max_idx_U] +print(f"\nРезонансная частота nu0 (по АЧХ): {nu0_ACH/1e3:.3f} кГц") + +# --- 3. Построение АЧХ: U/U0 = f(nu/nu0) --- +# nu_norm уже нормирована +dnu_norm = dnu_norm_data # σ_{nu/nu0} уже есть + +# --- 3.1. Интерполяция АЧХ --- +try: + # Используем сплайн для более плавной интерполяции + # Убедимся, что nu_norm_data строго возрастает (должно быть после сортировки) + spline_ACH = UnivariateSpline(nu_norm_data, U_U0_data, s=0, k=3) # k=3 + # Создаём плотную сетку для плавной кривой + nu_norm_smooth = np.linspace(min(nu_norm_data), max(nu_norm_data), 500) + U_U0_smooth = spline_ACH(nu_norm_smooth) + print("Сплайн для АЧХ успешно создан.") +except Exception as e: + print(f"Ошибка при создании сплайна для АЧХ: {e}") + # Если сплайн не получается, используем линейную интерполяцию + try: + f_interp_ACH = interp1d(nu_norm_data, U_U0_data, kind='linear', fill_value="extrapolate") + nu_norm_smooth = np.linspace(min(nu_norm_data), max(nu_norm_data), 500) + U_U0_smooth = f_interp_ACH(nu_norm_smooth) + print("Линейная интерполяция для АЧХ успешно создана.") + except Exception as e2: + print(f"Ошибка при создании линейной интерполяции для АЧХ: {e2}") + # Если и линейная не работает, используем просто точки + nu_norm_smooth = nu_norm_data + U_U0_smooth = U_U0_data + print("Используем исходные точки для АЧХ.") + +# --- 3.2. Расчёт Q по АЧХ (ширина на уровне 1/√2) --- +U_half = U0_norm / np.sqrt(2) # уровень 1/√2 +print(f"\nУровень 1/√2: {U_half:.4f}") + +# Ищем пересечения с U_half с использованием ЭКСПЕРИМЕНТАЛЬНЫХ данных +Q_ACH = np.nan +try: + # Найдём индекс максимума U_U0_data (это резонанс) + max_idx_U = np.argmax(U_U0_data) + + # Найдём точки слева и справа от максимума, где U_U0_data близка к U_half + + # --- Левая граница --- + # Рассмотрим данные слева от максимума + U_left_part = U_U0_data[:max_idx_U] + nu_left_part = nu_norm_data[:max_idx_U] + + # Найдём индекс, где разница с U_half минимальна в левой части + if len(U_left_part) > 0: + idx_left_min_diff = np.argmin(np.abs(U_left_part - U_half)) + nu_norm_left = nu_left_part[idx_left_min_diff] + print(f"Найдена приближённая левая граница: nu_norm_left = {nu_norm_left:.4f}") + else: + print("Нет данных слева от максимума для поиска левой границы.") + nu_norm_left = np.nan + + # --- Правая граница --- + # Рассмотрим данные справа от максимума (включая максимум) + U_right_part = U_U0_data[max_idx_U:] + nu_right_part = nu_norm_data[max_idx_U:] + + # Найдём индекс, где разница с U_half минимальна в правой части + if len(U_right_part) > 0: + idx_right_min_diff = np.argmin(np.abs(U_right_part - U_half)) + # Индекс в глобальном массиве + global_idx_right = max_idx_U + idx_right_min_diff + nu_norm_right = nu_norm_data[global_idx_right] + print(f"Найдена приближённая правая граница: nu_norm_right = {nu_norm_right:.4f}") + else: + print("Нет данных справа от максимума для поиска правой границы.") + nu_norm_right = np.nan + + # Проверим, что обе границы найдены и левая меньше правой (относительно nu0) + # и что они не на индексах самого максимума + if not (np.isnan(nu_norm_left) or np.isnan(nu_norm_right)): + if max_idx_U < len(nu_norm_data) and abs(nu_norm_left - nu_norm_data[max_idx_U]) < 1e-6: + print("Предупреждение: Левая граница совпадает с резонансной точкой.") + if max_idx_U < len(nu_norm_data) and abs(nu_norm_right - nu_norm_data[max_idx_U]) < 1e-6: + print("Предупреждение: Правая граница совпадает с резонансной точкой.") + + if nu_norm_left < nu_norm_data[max_idx_U] and nu_norm_right > nu_norm_data[max_idx_U]: + delta_nu_norm = nu_norm_right - nu_norm_left + if delta_nu_norm <= 0: + print(f"Предупреждение: Ширина АЧХ delta_nu_norm = {delta_nu_norm:.4f} не положительна. Q не будет рассчитан.") + else: + # Q = nu0 / Delta_nu + # Delta_nu = delta_nu_norm * nu0_ACH + # Q_ACH = nu0_ACH / (delta_nu_norm * nu0_ACH) = 1 / delta_nu_norm + Q_ACH = 1 / delta_nu_norm + print(f"Ширина АЧХ на уровне 1/√2 (по эксп. точкам): Δ(nu/nu0) = {delta_nu_norm:.4f}") + print(f"Добротность по АЧХ: Q_ACH = {Q_ACH:.2f}") + else: + print("Не удалось определить корректные границы для расчёта Q по АЧХ (левая граница >= правой или одна из них на резонансе).") + print(f" nu_norm_left: {nu_norm_left}") + print(f" nu_norm_right: {nu_norm_right}") + print(f" nu_norm (резонанс): {nu_norm_data[max_idx_U]:.4f}") + else: + print("Не удалось определить границы для расчёта Q по АЧХ (одна или обе равны NaN).") + print(f" nu_norm_left: {nu_norm_left if 'nu_norm_left' in locals() else 'not defined'}") + print(f" nu_norm_right: {nu_norm_right if 'nu_norm_right' in locals() else 'not defined'}") + +except Exception as e: + print(f"Ошибка при расчёте ширины АЧХ (по эксп. точкам): {e}") + print(f"Детали ошибки: {e}") + +# --- 3.3. Построение АЧХ --- +plt.figure(figsize=(8, 5)) +plt.errorbar(nu_norm_data, U_U0_data, + xerr=dnu_norm_data, yerr=dU_U0_data, + fmt='o', ecolor='red', markersize=6, + capsize=5, capthick=1, + label='Экспериментальные данные') +if len(nu_norm_smooth) == len(U_U0_smooth) and len(nu_norm_smooth) > 1: + plt.plot(nu_norm_smooth, U_U0_smooth, 'b-', label='Интерполированная кривая', linewidth=1) +plt.axhline(y=U_half, color='g', linestyle='--', label=f'Уровень 1/√2 = {U_half:.3f}') +plt.xlabel(r'$\nu / \nu_0$') +plt.ylabel(r'$U / U_0$') +plt.title('АЧХ колебательного контура') +plt.grid(True, alpha=0.5) +plt.legend() +output_filename_ACH = 'ACH_plot_final_corrected.png' +full_output_path_ACH = os.path.join(graphics_folder, output_filename_ACH) +plt.savefig(full_output_path_ACH) +print(f"АЧХ график сохранен в файл: {full_output_path_ACH}") +try: + plt.show() +except: + pass +plt.close() # Закрываем первый график + +# --- 4. Интерполяция ФЧХ (с инвертированной фазой) --- +try: + # Используем сплайн для более плавной интерполяции + # Убедимся, что nu_data строго возрастает (должно быть после сортировки) + spline_FCH = UnivariateSpline(nu_data, Delta_phi_data_for_FCH, s=0, k=3) # Используем инвертированную фазу + # Создаём плотную сетку для плавной кривой + nu_smooth = np.linspace(min(nu_data), max(nu_data), 500) + Delta_phi_smooth = spline_FCH(nu_smooth) # Это теперь инвертированная фаза + print("Сплайн для ФЧХ (инвертированной) успешно создан.") +except Exception as e: + print(f"Ошибка при создании сплайна для ФЧХ (инвертированной): {e}") + # Если сплайн не получается, используем линейную интерполяцию + try: + f_interp_FCH = interp1d(nu_data, Delta_phi_data_for_FCH, kind='linear', fill_value="extrapolate") # Используем инвертированную фазу + nu_smooth = np.linspace(min(nu_data), max(nu_data), 500) + Delta_phi_smooth = f_interp_FCH(nu_smooth) # Это теперь инвертированная фаза + print("Линейная интерполяция для ФЧХ (инвертированной) успешно создана.") + except Exception as e2: + print(f"Ошибка при создании линейной интерполяции для ФЧХ (инвертированной): {e2}") + # Если и линейная не работает, используем просто точки + nu_smooth = nu_data + Delta_phi_smooth = Delta_phi_data_for_FCH # Это теперь инвертированная фаза + print("Используем исходные точки для ФЧХ (инвертированной).") + +# --- 4.2. Проверка, достигает ли ФЧХ уровня -π/2 --- +target_phi_FCH = -np.pi / 2 +min_phi_smooth = np.min(Delta_phi_smooth) +max_phi_smooth = np.max(Delta_phi_smooth) +print(f"Минимальное значение Delta_phi (инвертированное, интерполированное): {min_phi_smooth:.3f} рад (-π/2 = {target_phi_FCH:.3f})") +print(f"Максимальное значение Delta_phi (инвертированное, интерполированное): {max_phi_smooth:.3f} рад") +if min_phi_smooth > target_phi_FCH: + print("Предупреждение: Интерполированная ФЧХ (инвертированная) не достигает уровня -π/2.") + print("Расчёт Q по ФЧХ будет невозможен.") + Q_FCH = np.nan + Q_FCH_method9 = np.nan +else: + # --- 4.3. Расчёт Q по ФЧХ (по методу п. 2.7.9) --- + Q_FCH_method9 = np.nan + try: + # Найдём приближённый индекс, где Delta_phi близка к -pi/2 в интерполированной кривой + target_idx_approx = np.argmin(np.abs(Delta_phi_smooth - target_phi_FCH)) + nu0_FCH_approx = nu_smooth[target_idx_approx] + + # Уточним с помощью интерполяции + # Найдём ближайшие точки к -pi/2 в интерполированной кривой + region_indices = np.argsort(np.abs(Delta_phi_smooth - target_phi_FCH))[:5] # 5 ближайших точек + region_nu = nu_smooth[region_indices] + region_phi = Delta_phi_smooth[region_indices] + + # Построим интерполяцию в этой области + # Используем линейную интерполяцию: f(phi) = nu + f_phi_interp_local = interp1d(region_phi, region_nu, kind='linear', fill_value="extrapolate") + nu0_FCH = f_phi_interp_local(target_phi_FCH) + + print(f"Резонансная частота по ФЧХ (уточнённая): {nu0_FCH/1e3:.3f} кГц") + + # --- 4.4. Реализация метода из п. 2.7.9 --- + # 1. Построить φ(ω) (уже сделано, Delta_phi_smooth) + # 2. Отметить уровень -π/2 (target_phi_FCH) + # 3. Зеркально отразить нижнюю часть относительно -π/2 + # Нижняя часть - это где φ < -π/2 + # Отражённая часть: φ_refl = -π/2 + (-π/2 - φ) = -π - φ + phi_reflected_smooth = np.where(Delta_phi_smooth < target_phi_FCH, -np.pi - Delta_phi_smooth, Delta_phi_smooth) + + # 4. Измерить Δω на уровне -π/4 (относительно отражённой кривой) + # Нужно найти частоты, где phi_reflected_smooth = -π/4 + target_phi_refl = -np.pi / 4 + print(f"Целевой уровень для Δω: {target_phi_refl:.3f} рад") + + # Найдём приближённые индексы для пересечений с -π/4 на отражённой кривой + # Ищем слева и справа от nu0_FCH + idx_0_FCH = np.argmin(np.abs(nu_smooth - nu0_FCH)) + left_part_refl = phi_reflected_smooth[:idx_0_FCH] + right_part_refl = phi_reflected_smooth[idx_0_FCH:] + + # Ищем пересечение слева от резонанса + left_cross_indices = np.where(np.diff(np.sign(left_part_refl - target_phi_refl)))[0] + if len(left_cross_indices) > 0: + i_left = left_cross_indices[-1] # Берём последнее пересечение до резонанса + # Линейная интерполяция между двумя точками + x1_l, x2_l = nu_smooth[i_left], nu_smooth[i_left+1] + y1_l, y2_l = phi_reflected_smooth[i_left], phi_reflected_smooth[i_left+1] + omega_left = x1_l + (target_phi_refl - y1_l) * (x2_l - x1_l) / (y2_l - y1_l) + print(f"Найдена левая граница Δω: ω_left = {omega_left/1e3:.3f} кГц") + else: + print("Не найдена левая граница Δω на отражённой кривой.") + omega_left = np.nan + + # Ищем пересечение справа от резонанса + right_cross_indices = np.where(np.diff(np.sign(right_part_refl - target_phi_refl)))[0] + if len(right_cross_indices) > 0: + i_right = right_cross_indices[0] + idx_0_FCH # Индекс в глобальном массиве + # Линейная интерполяция между двумя точками + x1_r, x2_r = nu_smooth[i_right], nu_smooth[i_right+1] + y1_r, y2_r = phi_reflected_smooth[i_right], phi_reflected_smooth[i_right+1] + omega_right = x1_r + (target_phi_refl - y1_r) * (x2_r - x1_r) / (y2_r - y1_r) + print(f"Найдена правая граница Δω: ω_right = {omega_right/1e3:.3f} кГц") + else: + print("Не найдена правая граница Δω на отражённой кривой.") + omega_right = np.nan + + if not (np.isnan(omega_left) or np.isnan(omega_right)): + delta_omega = omega_right - omega_left + if delta_omega <= 0: + print(f"Предупреждение: Δω = {delta_omega:.2f} не положительна. Q не будет рассчитан.") + else: + Q_FCH_method9 = nu0_FCH / delta_omega + print(f"Ширина отражённой ФЧХ на уровне -π/4: Δω = {delta_omega/1e3:.3f} кГц") + print(f"Добротность по ФЧХ (метод 9): Q_FCH_method9 = {Q_FCH_method9:.2f}") + else: + print("Не удалось определить границы для расчёта Q по ФЧХ (метод 9): одна или обе равны NaN.") + print(f" omega_left: {omega_left}") + print(f" omega_right: {omega_right}") + + + except Exception as e: + print(f"Ошибка при расчёте Q по ФЧХ (метод 9): {e}") + print(f"Детали ошибки: {e}") + Q_FCH_method9 = np.nan + + # Сохраняем Q_FCH_method9 в Q_FCH для совместимости + Q_FCH = Q_FCH_method9 + + +# --- 4.6. Построение ФЧХ (единый график) --- +import matplotlib.ticker as ticker # Добавляем импорт + +plt.figure(figsize=(10, 6)) # Увеличим размер для отражённой кривой + +# Оригинальная инвертированная кривая +plt.plot(nu_smooth/nu0_ACH, Delta_phi_smooth, 'c-', label='Интерполированная ФЧХ', linewidth=1) + +# Экспериментальные данные с крестами и погрешностями +# Экспериментальные данные с крестами и погрешностями +plt.errorbar(nu_data/nu0_ACH, Delta_phi_data_for_FCH, + yerr=dDelta_phi_data, + fmt='+', ecolor='red', markersize=10, markeredgewidth=2, + capsize=0, elinewidth=1, + label='Экспериментальные данные') +# Отражённая кривая +plt.plot(nu_smooth/nu0_ACH, phi_reflected_smooth, 'm--', label='Отражённая кривая', linewidth=1) + +# Уровень -π/2 +plt.axhline(y=target_phi_FCH, color='gray', linestyle='--', label=r'$-\pi/2$') +# Уровень -π/4 +plt.axhline(y=target_phi_refl, color='red', linestyle=':', label=r'$-\pi/4$ (уровень для $\Delta\omega$)') +# Вертикальная линия резонанса (по ФЧХ) +if 'nu0_FCH' in locals() and not np.isnan(nu0_FCH): + plt.axvline(x=nu0_FCH/nu0_ACH, color='orange', linestyle='-.', label=f'$\\nu_0$ (ФЧХ) = {nu0_FCH/1e3:.3f} кГц') + +# Отметим найденные точки omega_left и omega_right, если они есть +if 'omega_left' in locals() and not np.isnan(omega_left): + plt.plot(omega_left/nu0_ACH, target_phi_refl, 'go', markersize=8, label=f'$\\nu_{{left}}$ ({omega_left/1e3:.3f} кГц)') +if 'omega_right' in locals() and not np.isnan(omega_right): + plt.plot(omega_right/nu0_ACH, target_phi_refl, 'ro', markersize=8, label=f'$\\nu_{{right}}$ ({omega_right/1e3:.3f} кГц)') + +plt.xlabel(r'$\nu / \nu_0$') +plt.ylabel(r'$\Delta \phi$') +plt.title('ФЧХ колебательного контура') +plt.grid(True, alpha=0.5) +plt.legend() + +# --- Настройка оси Y --- +# Объединим данные для определения лимитов +all_phi_data = np.concatenate([Delta_phi_data_for_FCH, Delta_phi_smooth, phi_reflected_smooth]) +y_min = min(np.min(all_phi_data), target_phi_FCH, target_phi_refl) # Включаем целевые уровни +y_max = max(np.max(all_phi_data), target_phi_FCH, target_phi_refl) +y_margin = (y_max - y_min) * 0.1 # 10% отступа +plt.ylim(y_min - y_margin, y_max + y_margin) +plt.gca().yaxis.set_major_locator(ticker.MultipleLocator(base=np.pi/4)) +plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(pi_formatter)) + +output_filename_FCH_detailed = 'FCH_plot_detailed_method9.png' +full_output_path_FCH_detailed = os.path.join(graphics_folder, output_filename_FCH_detailed) +plt.savefig(full_output_path_FCH_detailed) +print(f"Детальный ФЧХ график (метод 9) сохранен в файл: {full_output_path_FCH_detailed}") +try: + plt.show() +except: + pass +plt.close() # Закрываем второй график (единый ФЧХ) + +# --- 4.7. Построение стандартной ФЧХ (оригинальная версия, для сравнения) --- +plt.figure(figsize=(8, 5)) +plt.errorbar(nu_data/nu0_ACH, Delta_phi_data, # nu / nu0 (без перевода в кГц), оригинальная фаза + yerr=dDelta_phi_data, + fmt='x', ecolor='blue', markersize=8, markeredgewidth=2, + capsize=5, capthick=1, elinewidth=1, + label='Экспериментальные данные (оригинальные)') +# Построим интерполированную кривую для оригинальных данных (неинвертированных) +try: + spline_FCH_orig = UnivariateSpline(nu_data, Delta_phi_data, s=0, k=3) + Delta_phi_smooth_orig = spline_FCH_orig(nu_smooth) + plt.plot(nu_smooth/nu0_ACH, Delta_phi_smooth_orig, 'm-', label='Интерполированная кривая (оригинальная)', linewidth=1) +except: + plt.plot(nu_data/nu0_ACH, Delta_phi_data, 'mx-', label='Оригинальные данные', linewidth=1) + +plt.xlabel(r'$\nu / \nu_0$') +plt.ylabel(r'$\Delta \phi$ (оригинальная)') +plt.title('ФЧХ колебательного контура (оригинальная)') +plt.grid(True, alpha=0.5) +plt.legend() + +# Настройка оси Y +y_min_orig = min(np.min(Delta_phi_data - dDelta_phi_data), np.min(Delta_phi_smooth_orig)) if len(Delta_phi_smooth_orig) > 1 else np.min(Delta_phi_data - dDelta_phi_data) +y_max_orig = max(np.max(Delta_phi_data + dDelta_phi_data), np.max(Delta_phi_smooth_orig)) if len(Delta_phi_smooth_orig) > 1 else np.max(Delta_phi_data + dDelta_phi_data) +y_margin_orig = (y_max_orig - y_min_orig) * 0.05 +plt.ylim(y_min_orig - y_margin_orig, y_max_orig + y_margin_orig) +plt.gca().yaxis.set_major_locator(ticker.MultipleLocator(base=np.pi/4)) +plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(pi_formatter_orig)) + +output_filename_FCH_orig = 'FCH_plot_original.png' +full_output_path_FCH_orig = os.path.join(graphics_folder, output_filename_FCH_orig) +plt.savefig(full_output_path_FCH_orig) +print(f"Оригинальный ФЧХ график сохранен в файл: {full_output_path_FCH_orig}") +try: + plt.show() +except: + pass +plt.close() # Закрываем третий график (оригинальный) + +# --- 5. Вывод результатов --- +print(f"\n=== Результаты ===") +print(f"Резонансная частота nu0 (по АЧХ): {nu0_ACH/1e3:.3f} кГц") +if 'Q_FCH' in locals() and not np.isnan(Q_FCH): + print(f"Резонансная частота nu0 (по ФЧХ): {nu0_FCH/1e3:.3f} кГц") +else: + print("Резонансная частота nu0 (по ФЧХ): не определена") +print(f"Добротность по АЧХ (Q_ACH): {Q_ACH:.2f}") +print(f"Добротность по ФЧХ (Q_FCH_method9): {Q_FCH_method9:.2f}") +print(f"Добротность по ФЧХ (Q_FCH - совместимость): {Q_FCH:.2f}") diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/C_T.xlsx b/3.2.4+3.2.5/Kotlyarov_M/data/C_T.xlsx new file mode 100644 index 00000000..fe97e93c Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/data/C_T.xlsx differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/Decr_R_1.xlsx b/3.2.4+3.2.5/Kotlyarov_M/data/Decr_R_1.xlsx new file mode 100644 index 00000000..75278e7d Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/data/Decr_R_1.xlsx differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/Decr_vs_RSigma.py b/3.2.4+3.2.5/Kotlyarov_M/data/Decr_vs_RSigma.py new file mode 100644 index 00000000..79d0d212 --- /dev/null +++ b/3.2.4+3.2.5/Kotlyarov_M/data/Decr_vs_RSigma.py @@ -0,0 +1,128 @@ +# script2_Decr_vs_RSigma_with_errors.py +import pandas as pd +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +from scipy import stats +import os + +# Создаем папку для графиков, если её нет +graphics_folder = "../Graphics" +os.makedirs(graphics_folder, exist_ok=True) + +# --- 1. Чтение данных из Decr_R_1.xlsx --- +try: + df = pd.read_excel('Decr_R_1.xlsx', sheet_name='Sheet1', header=None) + if len(df) < 4: + print("Ошибка: Не хватает данных в Decr_R_1.xlsx (нужны 4 строки).") + exit() + + # Пропускаем первую ячейку в каждой строке (текстовый заголовок) + R_sigma_series = df.iloc[0, 1:].dropna() # R_Sigma, Ом + dR_sigma_series = df.iloc[1, 1:].dropna() # погрешность R_Sigma + Theta_series = df.iloc[2, 1:].dropna() # Theta + dTheta_series = df.iloc[3, 1:].dropna() # погрешность Theta + + R_sigma_data = R_sigma_series.astype(float).to_numpy() + dR_sigma_data = dR_sigma_series.astype(float).to_numpy() + Theta_data = Theta_series.astype(float).to_numpy() + dTheta_data = dTheta_series.astype(float).to_numpy() + + print("Данные успешно загружены из Decr_R_1.xlsx:") + print(f"R_Sigma (Ом): {R_sigma_data}") + print(f"ΔR_Sigma (Ом): {dR_sigma_data}") + print(f"Theta: {Theta_data}") + print(f"ΔTheta: {dTheta_data}") + +except FileNotFoundError: + print("Ошибка: Файл 'Decr_R_1.xlsx' не найден.") + exit() +except Exception as e: + print(f"Ошибка при чтении файла Decr_R_1.xlsx: {e}") + import traceback + traceback.print_exc() + exit() + +# --- 2. Подготовка данных для графика 1/Theta^2 vs 1/R_Sigma^2 --- +X_data = 1.0 / (R_sigma_data ** 2) # X = 1/R_Sigma^2 +Y_data = 1.0 / (Theta_data ** 2) # Y = 1/Theta^2 + +# Погрешности для X и Y (по правилу дифференцирования) +dX = 2 * dR_sigma_data / (R_sigma_data ** 3) # d(1/R^2)/dR = -2/R^3 → |dX| = 2*dR/R^3 +dY = 2 * dTheta_data / (Theta_data ** 3) # d(1/Θ^2)/dΘ = -2/Θ^3 → |dY| = 2*dΘ/Θ^3 + +print(f"\nВычисленные значения для графика:") +print(f"X = 1/R_Sigma^2: {X_data}") +print(f"Y = 1/Theta^2: {Y_data}") +print(f"Погрешность X: {dX}") +print(f"Погрешность Y: {dY}") + +# --- 3. МНК (линейная регрессия y = k*x, через (0,0)) --- +x_data = X_data # X = 1/R_Sigma^2 — ось X +y_data = Y_data # Y = 1/Theta^2 — ось Y + +# Наклон k = (sum(x*y)) / (sum(x^2)) +k = np.sum(x_data * y_data) / np.sum(x_data * x_data) + +# Оценка погрешности наклона +residuals = y_data - k * x_data +ss_res = np.sum(residuals**2) +n = len(x_data) +if n > 1 and np.sum(x_data**2) > 0: + std_err_k = np.sqrt(ss_res / (n - 1)) / np.sqrt(np.sum(x_data**2)) +else: + std_err_k = np.nan + +# Коэффициент детерминации R^2 +ss_tot = np.sum(y_data**2) +r_squared = 1 - (ss_res / ss_tot) if ss_tot > 0 else np.nan + +# Расчет R_cr +R_cr_exp = 2 * np.pi * np.sqrt(k) # R_cr = 2π * sqrt(k) +std_err_R_cr = 2 * np.pi * (std_err_k / (2 * np.sqrt(k))) if k > 0 else np.nan + +print(f"\nРезультаты МНК (y = k*x, где x=1/R_Sigma^2, y=1/Theta^2):") +print(f"Наклон (k): {k:.6f}") +print(f"Погрешность наклона (σ_k): {std_err_k:.6f}") +print(f"Коэффициент детерминации (R^2): {r_squared:.6f}") +print(f"Экспериментальное R_cr: {R_cr_exp:.2f} Ом") +print(f"Погрешность R_cr: {std_err_R_cr:.2f} Ом") + +# --- 4. Построение графика --- +plt.figure(figsize=(10, 6)) + +# Линия МНК: y = k*x (начинается с (0,0)) +x_max_plot = max(x_data) * 1.2 +x_fit = np.linspace(0.0, x_max_plot, 100) +y_fit = k * x_fit +legend_text = r'$\frac{1}{\Theta^2} = k \cdot \frac{1}{R_{\Sigma}^2}$' +plt.plot(x_fit, y_fit, 'b-', linewidth=2, label=legend_text) + +# Нанесение точек с погрешностями — КРЕСТИКИ! +plt.errorbar(x_data, y_data, + xerr=dX, yerr=dY, + fmt='o', ecolor='red', markersize=6, + capsize=5, capthick=1, + label='Экспериментальные данные') + +# Оформление графика +plt.xlabel(r'$\frac{1}{R_{\Sigma}^2}, \text{Ом}^{-2}$') +plt.ylabel(r'$\frac{1}{\Theta^2}$') +plt.title('Зависимость $1/\\Theta^2$ от $1/R_{\\Sigma}^2$ для определения $R_{cr}$') +plt.legend() +plt.grid(True, alpha=0.5) +plt.xlim(0.0, x_max_plot) +plt.ylim(0.0, max(y_data) * 1.2) +plt.tight_layout() + +# Сохранение графика +output_filename = 'Decr_vs_RSigma_plot_with_errors.png' +full_output_path = os.path.join(graphics_folder, output_filename) +plt.savefig(full_output_path) +print(f"\nГрафик сохранен в файл: {full_output_path}") + +try: + plt.show() +except: + pass diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/FR_PR.xlsx b/3.2.4+3.2.5/Kotlyarov_M/data/FR_PR.xlsx new file mode 100644 index 00000000..20051739 Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/data/FR_PR.xlsx differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/Texp_vs_Ttheor.py b/3.2.4+3.2.5/Kotlyarov_M/data/Texp_vs_Ttheor.py new file mode 100644 index 00000000..597d7421 --- /dev/null +++ b/3.2.4+3.2.5/Kotlyarov_M/data/Texp_vs_Ttheor.py @@ -0,0 +1,123 @@ +# script2_Texp_vs_Ttheor_manual_cross_v2.py +import pandas as pd +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +from scipy import stats +import os + +# Создаем папку для графиков, если её нет +graphics_folder = "../Graphics" +os.makedirs(graphics_folder, exist_ok=True) + +# --- 1. Чтение данных из C_T.xlsx --- +try: + df = pd.read_excel('C_T.xlsx', sheet_name='Sheet1', header=None) + if len(df) < 3: + print("Ошибка: Не хватает данных в C_T.xlsx.") + exit() + + # Пропускаем первую ячейку в каждой строке (текстовый заголовок) + C_series = df.iloc[0, 1:].dropna() + T_exp_series = df.iloc[1, 1:].dropna() # T_эксп — строка 1 + T_theor_series = df.iloc[2, 1:].dropna() # T_теор — строка 2 + + C_data = C_series.astype(float).to_numpy() # С в нФ + T_exp_data = T_exp_series.astype(float).to_numpy() # T_эксп в мкс + T_theor_data = T_theor_series.astype(float).to_numpy() # T_теор в мкс + + print("Данные успешно загружены из C_T.xlsx:") + print(f"C (нФ): {C_data}") + print(f"T_эксп (мкс): {T_exp_data}") + print(f"T_теор (мкс): {T_theor_data}") + +except FileNotFoundError: + print("Ошибка: Файл 'C_T.xlsx' не найден.") + exit() +except Exception as e: + print(f"Ошибка при чтении файла C_T.xlsx: {e}") + import traceback + traceback.print_exc() + exit() + +# --- 2. Подготовка данных и погрешностей --- +# Погрешности (новые значения) +T_exp_err = 0.01 * T_exp_data # 1% от T_эксп +T_theor_err = 0.0015 * T_theor_data # 0.15% от T_теор + +print(f"\nВычисленные значения и погрешности:") +print(f"T_эксп (мкс): {T_exp_data}") +print(f"Погрешность T_эксп (мкс): {T_exp_err}") +print(f"T_теор (мкс): {T_theor_data}") +print(f"Погрешность T_теор (мкс): {T_theor_err}") + +# --- 3. МНК (линейная регрессия y = k*x, через (0,0)) --- +x_data = T_theor_data # T_теор — ось X +y_data = T_exp_data # T_эксп — ось Y + +# Наклон k = (sum(x*y)) / (sum(x^2)) +k = np.sum(x_data * y_data) / np.sum(x_data * x_data) + +# Оценка погрешности наклона +residuals = y_data - k * x_data +ss_res = np.sum(residuals**2) +n = len(x_data) +if n > 1 and np.sum(x_data**2) > 0: + std_err_k = np.sqrt(ss_res / (n - 1)) / np.sqrt(np.sum(x_data**2)) +else: + std_err_k = np.nan + +# Коэффициент детерминации R^2 +ss_tot = np.sum(y_data**2) +r_squared = 1 - (ss_res / ss_tot) if ss_tot > 0 else np.nan + +print(f"\nРезультаты МНК (y = k*x, где x=T_теор, y=T_эксп):") +print(f"Наклон (k): {k:.6f}") +print(f"Погрешность наклона (σ_k): {std_err_k:.6f}") +print(f"Коэффициент детерминации (R^2): {r_squared:.6f}") + +# --- 4. Построение графика --- +plt.figure(figsize=(10, 6)) + +# Линия МНК: y = k*x (начинается с (0,0)) +x_max_plot = max(x_data) * 1.2 +x_fit = np.linspace(0.0, x_max_plot, 100) +y_fit = k * x_fit +legend_text = r'$T_{\text{эксп}} = k \cdot T_{\text{теор}}$' +plt.plot(x_fit, y_fit, 'b-', linewidth=2, label=legend_text) + +# --- Нанесение точек как крестиков вручную --- +# 1. Рисуем линии погрешностей (как раньше) +# Вертикальные +plt.errorbar(x_data, y_data - T_exp_err, yerr=[T_exp_err, T_exp_err], fmt='none', ecolor='red', linewidth=1.0) +# Горизонтальные +plt.errorbar(x_data - T_theor_err, y_data, xerr=[T_theor_err, T_theor_err], fmt='none', ecolor='red', linewidth=1.0) + +# 2. Рисуем чистые крестики (только линии) поверх линий погрешностей +# Используем plt.plot с маркером '+' +# markersize - размер крестика +# markeredgewidth - толщина линии крестика +# color - цвет крестика +plt.plot(x_data, y_data, marker='+', markersize=10, markeredgewidth=2, color='red', linestyle='none', label='Экспериментальные данные') + +# Оформление графика +plt.xlabel(r'$T_{\text{теор}}, мкс$') +plt.ylabel(r'$T_{\text{эксп}}, мкс$') +plt.title('Зависимость экспериментального периода от теоретического') +plt.legend() +plt.grid(True, alpha=0.5) +plt.xlim(0.0, x_max_plot) +plt.ylim(0.0, max(y_data) * 1.2) +plt.tight_layout() + +# Сохранение графика +output_filename = 'Texp_vs_Ttheor_plot.png' +full_output_path = os.path.join(graphics_folder, output_filename) +plt.savefig(full_output_path) +print(f"\nГрафик сохранен в файл: {full_output_path}") + +try: + plt.show() +except: + pass diff --git a/3.2.4+3.2.5/Kotlyarov_M/data/data.xlsx b/3.2.4+3.2.5/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..89d177f4 Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/data/data.xlsx differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/main.pdf b/3.2.4+3.2.5/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..4c188fd7 Binary files /dev/null and b/3.2.4+3.2.5/Kotlyarov_M/main.pdf differ diff --git a/3.2.4+3.2.5/Kotlyarov_M/main.tex b/3.2.4+3.2.5/Kotlyarov_M/main.tex new file mode 100644 index 00000000..61b9c945 --- /dev/null +++ b/3.2.4+3.2.5/Kotlyarov_M/main.tex @@ -0,0 +1,435 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} + +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.2.4-3.2.5}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + + \section{Введение} + + \textbf{Цель работы:} Исследование свободных и вынужденных колебаний в колебательном контуре. В ходе работы необходимо:\\ +\begin{itemize} +\item Изучить свободные колебания в электрическом контуре: + \item Определить зависимость периода свободных колебаний контура от емкости. + \item Определить зависимость логарифмического декремента затухания от сопротивления. + \item Определить критическое сопротивление контура. + \item Изучить вынужденные колебания в электрическом контуре: + \item Построить резонансные кривые (АЧХ и ФЧХ) колебательного контура. + \item Изучить процесс установления и затухания колебаний. + \item Определить добротность контура различными способами. +\end{itemize} + + \textbf{Оборудование:} \begin{itemize} +\item Осциллограф АКТАКОМ ADS-6142H. + \item Генератор сигналов специальной формы АКИП-3409/4. + \item Магазин сопротивления МСР-60. + \item Магазин емкости Р5025. + \item Магазин индуктивности Р567 типа МИСП. + \item Соединительная коробка с шунтирующей емкостью. + \item Соединительные провода. +\end{itemize} + \section{Теоретические сведения} + +\subsection{Свободные колебания в RLC-контуре} +Рассмотрим последовательный RLC-контур, состоящий из резистора с сопротивлением $R$, катушки индуктивности $L$ и конденсатора с емкостью $C$. Для описания процессов в контуре применим второе правило Кирхгофа: + +\begin{equation} +RI + U_C + L\frac{dI}{dt} = 0, +\label{eq:kirchhoff} +\end{equation} + +где $I$ — ток в контуре, $U_C$ — напряжение на конденсаторе. Учитывая, что $I = C\frac{dU_C}{dt}$, подставим это выражение в уравнение (\ref{eq:kirchhoff}) и получим дифференциальное уравнение второго порядка для напряжения на конденсаторе: + +\begin{equation} +\frac{d^2U_C}{dt^2} + \frac{R}{L}\frac{dU_C}{dt} + \frac{U_C}{LC} = 0. +\label{eq:diff_eq} +\end{equation} + +Введем обозначения: +\begin{itemize} +\item $\gamma = \frac{R}{2L}$ — коэффициент затухания. + \item $\omega_0^2 = \frac{1}{LC}$ — квадрат собственной (резонансной) частоты контура. + \item $T_0 = \frac{2\pi}{\omega_0} = 2\pi\sqrt{LC}$ — период собственных незатухающих колебаний. +\end{itemize} + +Тогда уравнение (\ref{eq:diff_eq}) можно записать в виде: + +\begin{equation} +\ddot{U_C} + 2\gamma\dot{U_C} + \omega_0^2 U_C = 0. +\label{eq:diff_eq_simple} +\end{equation} + +В зависимости от соотношения между $\gamma$ и $\omega_0$ возможны три режима колебаний: + +\begin{enumerate} + \item \textbf{Затухающие колебания ($\gamma < \omega_0$)}: Решение уравнения имеет вид: + \begin{equation} + U_C(t) = U_0 e^{-\gamma t} \cos(\omega_1 t + \varphi_0), + \label{eq:free_oscillations} + \end{equation} + где $\omega_1 = \sqrt{\omega_0^2 - \gamma^2}$ — частота затухающих колебаний. Амплитуда колебаний убывает по экспоненциальному закону. + + \item \textbf{Критический режим ($\gamma = \omega_0$)}: Переходный режим, при котором система возвращается в состояние равновесия без колебаний за минимальное время. Решение имеет вид: + \begin{equation} + U_C(t) = (A + Bt)e^{-\gamma t}. + \end{equation} + + \item \textbf{Апериодический режим ($\gamma > \omega_0$)}: Система возвращается в состояние равновесия без колебаний. Решение имеет вид суммы двух экспонент с разными постоянными времени. +\end{enumerate} + +\subsection{Характеристики затухающих колебаний} +\begin{itemize} +\item \textbf{Логарифмический декремент затухания ($\Theta$)} определяется как натуральный логарифм отношения амплитуд двух соседних колебаний: + \begin{equation} + \Theta = \ln\left(\frac{U_k}{U_{k+1}}\right) = \gamma T_1, + \end{equation} + где $T_1 = \frac{2\pi}{\omega_1}$ — период затухающих колебаний. Также можно использовать формулу для амплитуд, разделенных $n$ периодами: + \begin{equation} + \Theta = \frac{1}{n} \ln\left(\frac{U_k}{U_{k+n}}\right). + \end{equation} + + \item \textbf{Добротность контура ($Q$)} — важная характеристика, показывающая, насколько «острый» резонанс. Она связана с логарифмическим декрементом: + \begin{equation} + Q = \frac{\pi}{\Theta}. + \end{equation} + + \item \textbf{Критическое сопротивление ($R_{cr}$)} — значение сопротивления, при котором происходит переход от колебательного режима к апериодическому. Оно рассчитывается по формуле: + \begin{equation} + R_{cr} = 2\sqrt{\frac{L}{C}}. + \end{equation} +\end{itemize} +\subsection{Вынужденные колебания и резонанс} +При воздействии на контур внешней периодической ЭДС (например, синусоидальной) возникают вынужденные колебания. Уравнение движения в этом случае имеет вид: + +\begin{equation} +\ddot{I} + 2\gamma\dot{I} + \omega_0^2 I = -\varepsilon_0 \frac{\Omega}{L} e^{i\Omega t}, +\end{equation} + +где $\varepsilon_0$ — амплитуда внешней ЭДС, $\Omega$ — частота вынуждающей силы. Решение этого уравнения представляет собой сумму затухающего переходного процесса и установившихся колебаний с частотой $\Omega$. +\begin{itemize} +\item \textbf{Резонанс} — явление резкого возрастания амплитуды вынужденных колебаний при приближении частоты вынуждающей силы к собственной частоте контура ($\Omega \approx \omega_0$). + + \item \textbf{Амплитудно-частотная характеристика (АЧХ)} — зависимость амплитуды напряжения на конденсаторе (или тока в контуре) от частоты вынуждающей силы. На резонансе амплитуда максимальна. + + \item \textbf{Фазово-частотная характеристика (ФЧХ)} — зависимость сдвига фаз между напряжением на конденсаторе и внешним напряжением от частоты. На резонансе сдвиг фаз равен $-\pi/2$. + + \item \textbf{Ширина резонансной кривой ($\Delta\Omega$)} — интервал частот, в пределах которого амплитуда колебаний не падает ниже $1/\sqrt{2}$ от максимального значения. Добротность контура можно определить по формуле: + \begin{equation} + Q = \frac{\omega_0}{\Delta\Omega}. + \end{equation} +\end{itemize} +\subsection{Способы определения добротности} +В данной работе добротность контура определяется несколькими способами: + +\begin{enumerate} + \item По логарифмическому декременту затухания свободных колебаний: $Q = \pi / \Theta$. + \item По ширине резонансной кривой (АЧХ): $Q = \omega_0 / \Delta\Omega$. + \item По ФЧХ: Проводится горизонтальная линия на уровне $-\pi/2$, нижняя часть графика зеркально отражается относительно этой линии. Измеряется интервал частот $\Delta\omega$ на уровне $-\pi/4$. Тогда $Q = \omega_0 / \Delta\omega$. +\end{enumerate} + +\section{Экспериментальная установка} + +Экспериментальная установка предназначена для исследования свободных и вынужденных колебаний в параллельном колебательном контуре. Схема подключения приведена на рисунке~\ref{fig:scheme1}. + +Колебательный контур состоит из: +\begin{enumerate} +\item постоянной индуктивности $L$ (магазин индуктивности Р567, $L = 100~\text{мГн}$), обладающей собственным активным сопротивлением $R_L$; + \item переменной ёмкости $C$ (магазин ёмкости Р5025); + \item регулируемого сопротивления $R$ (магазин сопротивления МСР-60). +\end{enumerate} + +Возбуждение колебаний осуществляется с помощью генератора сигналов специальной формы АКИП-3409/4. Сигнал подаётся на вход контура через разделительный конденсатор $C_1$, который обеспечивает высокое выходное сопротивление генератора по постоянному току и исключает его влияние на параметры контура. + +Напряжение с конденсатора $C$ подаётся на вход канала 1 (X) двухканального осциллографа АКТАКОМ ADS-6142H. Для наблюдения фазовой картины свободных колебаний на канал 2 (Y) подаётся напряжение с резистора $R$ (пунктирная линия на схеме), пропорциональное току в контуре: $U_R \propto I \propto dU_C/dt$. + +При исследовании вынужденных колебаний генератор переключается в режим синусоидального сигнала, а его выход подаётся одновременно на колебательный контур и на канал 2 осциллографа (см. рисунок~\ref{fig:scheme2}), что позволяет измерять амплитудно-частотную (АЧХ) и фазово-частотную (ФЧХ) характеристики контура. + +\begin{figure}[h] + \centering + % Здесь можно вставить изображение, если оно доступно: + \includegraphics[width=0.8\textwidth]{Pictures/ustanovka1.png} +\caption{Рис. 1 Схема установки для исследования свободных и вынужденных колебаний} +\label{fig:scheme1} +\end{figure} + +\begin{figure}[h] + \centering + + \includegraphics[width=0.8\textwidth]{Pictures/ustanovka2.png} + \caption{Рис. 2 Схема подключения для снятия АЧХ и ФЧХ} +\label{fig:scheme2} +\end{figure} +\section{Выполнение} + +\subsection{Подготовка приборов} +\begin{enumerate} + \item Подключим генератор сигналов к входу канала 1 осциллографа. + \item Установим на генераторе режим \texttt{Pulse} (импульсы): + длительность импульса — 10~мкс, + частота повторения — 100~Гц, + амплитуда — 20~В. + Включим выход генератора кнопкой \texttt{Output}. + \item Настроим синхронизацию осциллографа по каналу 1 и получим устойчивое изображение импульсов (при необходимости воспользуемся кнопкой \texttt{Autoset}). + \item Соберём схему согласно рисунку~\ref{fig:scheme1}: подключим колебательный контур к выходу генератора через разделительный конденсатор $C_1$, а напряжение с конденсатора $C$ — к каналу 1 осциллографа. +\end{enumerate} + +\subsection{Измерение периода свободных колебаний} +\begin{enumerate} + \item Установим на магазинах: $R = 0$, $L = 100~\text{мГн}$, $C = 0$ (минимальное 0,1 нФ). + \item Наблюдая на экране осциллографа затухающие колебания, вызванные паразитной ёмкостью контура $C_0$, измерим период $T$ с помощью курсоров (расстояние между соседними максимумами). $T = 65$ мкс. + \item По формуле $T = 2\pi\sqrt{L C_0}$ определим $C_0$. Получим $C_0 = 1,07$ нФ. + \item Меняя ёмкость $C$ от 0 до 0.009~мкФ для 5–10 значений измерим соответствующие периоды $T$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|} + \hline + $C,\ \text{нФ}$ & $T_{\text{эксп}},\ \text{мкс}$ & $T_{\text{теор}},\ \text{мкс}$ \\ \hline + 1 & $90{,}0 \pm 0{,}9$ & $90{,}40 \pm 0{,}14$ \\ \hline + 2 & $112{,}0 \pm 1{,}1$ & $110{,}09 \pm 0{,}17$ \\ \hline + 3 & $128{,}0 \pm 1{,}3$ & $126{,}76 \pm 0{,}19$ \\ \hline + 4 & $144{,}0 \pm 1{,}4$ & $141{,}48 \pm 0{,}21$ \\ \hline + 5 & $152{,}0 \pm 1{,}5$ & $154{,}80 \pm 0{,}23$ \\ \hline + 6 & $172{,}0 \pm 1{,}7$ & $167{,}07 \pm 0{,}25$ \\ \hline + 7 & $180{,}0 \pm 1{,}8$ & $178{,}49 \pm 0{,}27$ \\ \hline + 8 & $188{,}0 \pm 1{,}9$ & $189{,}23 \pm 0{,}28$ \\ \hline + \end{tabular} + \caption{Таблица 1. Сравнение экспериментальных и теоретических значений периода свободных колебаний.} + \label{tab:periods_transposed} +\end{table} + +Класс точности магазина емкостей равен 0,1, индуктивностей - 0,2. Поэтому погрешность теоретических периодов равна 0,15\%. Погрешность экспериментальных мы взяли за 1\%. +\item По МНК построим график $T_{\text{эксп}} = k \cdot T_{\text{эксп}}$. +\clearpage +\begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/Texp_vs_Ttheor_plot.png}} + \caption{График 1. Зависимость экспериментального периода от теоретического.} +\end{figure} + +Коэффициент наклона $k = 1.006 \pm 0.006$ ($\varepsilon_k = 0,57 \%$). Как мы видим, в пределах погрешностей периоды совпадают. +\end{enumerate} + +\subsection{Критическое сопротивление и логарифмический декремент} +\begin{enumerate} + \item Рассчитаем требуемую ёмкость $C^*$ из условия $\nu_0 = 6.5~\text{кГц}$: + \[ + C^* = \frac{1}{(2\pi\nu_0)^2 L} = 5,995 \text{ нФ}. + \] + \item Вычислим теоретическое критическое сопротивление: + \[ + R_{\text{cr}} = 2\sqrt{\frac{L}{C^*}} = 8168 \text{ Ом}. + \] + \item Установим на магазине ёмкость, близкую к $C^*$, и, постепенно увеличивая $R$, определим экспериментальное значение $R_{\text{cr}}$ как границу перехода от колебательного режима к апериодическому. Получили, что $R_{\text{cr}} \approx 7 $ ÷ $ 8$ кОм. + \item Установим $R \approx 0.05\,R_{\text{cr}}$, получим картину затухающих колебаний и измерим амплитуды $U_k$ и $U_{k+n}$, разделённые $n$ периодами. + \item Рассчитаем логарифмический декремент по формуле: + \[ + \Theta = \frac{1}{n} \ln\left(\frac{U_k}{U_{k+n}}\right). + \] + \item Повторим измерения для 6–8 значений $R$ в диапазоне $(0.05\text{–}0.25)R_{\text{cr}}$. Далее везде где будет использоваться сопротивление $R$, мы будем подразумевать $R_\Sigma = R + R_L$. Класс точности магазина сопротивлений 0,02. Омическое сопротивление магазина индуктивностей $R_L$ примем за 32 Ома, что соответствует верхнему порогу допустимого сопротивления между зажимами 1 и 2 согласно техническому описанию. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|} + \hline + $R_\Sigma,\ \Omega$ & $U_1,\ \text{В}$ & $U_{1+n},\ \text{В}$ & $n$ & $\Theta$ & $Q$ & $\varepsilon_Q,\ \%$ \\ \hline + 382 & $5{,}96 \pm 0{,}06$ & $1{,}60 \pm 0{,}02$ & 4 & $0{,}33 \pm 0{,}03$ & $9{,}56 \pm 0{,}94$ & 9{,}8 \\ \hline + 592 & $5{,}32 \pm 0{,}05$ & $0{,}76 \pm 0{,}01$ & 4 & $0{,}49 \pm 0{,}07$ & $6{,}46 \pm 0{,}88$ & 13{,}7 \\ \hline + 872 & $4{,}52 \pm 0{,}05$ & $0{,}44 \pm 0{,}00$ & 4 & $0{,}58 \pm 0{,}11$ & $5{,}39 \pm 1{,}06$ & 19{,}6 \\ \hline + 1232 & $3{,}68 \pm 0{,}04$ & $0{,}32 \pm 0{,}00$ & 3 & $0{,}81 \pm 0{,}21$ & $3{,}86 \pm 0{,}99$ & 25{,}7 \\ \hline + 1632 & $2{,}96 \pm 0{,}03$ & $0{,}40 \pm 0{,}00$ & 2 & $1{,}00 \pm 0{,}25$ & $3{,}14 \pm 0{,}79$ & 25{,}2 \\ \hline + 1782 & $2{,}72 \pm 0{,}03$ & $0{,}64 \pm 0{,}01$ & 1 & $1{,}45 \pm 0{,}32$ & $2{,}17 \pm 0{,}48$ & 22{,}2 \\ \hline + \end{tabular} + \caption{Таблица 2. Зависимость логарифмического декремента затухания и добротности от суммарного сопротивления контура.} + \label{tab:theta_q_with_rel_error} +\end{table} + +По этим данным по МНК построим график зависимости $\frac{1}{\Theta^2}(\frac{1}{R_\Sigma^2})$. + +\begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/Decr_vs_RSigma_plot_with_errors.png}} + \caption{График 2. Зависимость обратного квадрата декремента от обратного квадрата суммарного сопротивления.} +\end{figure} + +Поскольку добротность $Q = \frac{1}{R}\sqrt{L}{C} = \frac{\pi}{\Theta}$, то $\Theta = \pi R \sqrt{\frac{C}{L}}$. Следовательно, $\frac{1}{\Theta^2} = \left(\frac{1}{\pi}\sqrt{\frac{L}{C}}\right)^2 \frac{1}{R^2}$, откуда получаем, что $\frac{\partial }{\partial \frac{1}{R^2}}\left(\frac{1}{\Theta^2}\right) = \left(\frac{1}{\pi}\sqrt{\frac{L}{C}}\right)^2$. С учетом того, что $R_\text{кр} = 2\sqrt{L}{C}$, получаем $R_\text{кр} = 2 \pi \sqrt{\frac{\partial }{\partial \frac{1}{R^2}}\left(\frac{1}{\Theta^2}\right)}$. Наклон прямой графика $\frac{1}{\Theta^2}(\frac{1}{R_\Sigma^2})$ $k = \frac{\partial }{\partial \frac{1}{R^2}}\left(\frac{1}{\Theta^2}\right) = 1405992 \pm 82632$ Ом$^2$ ($\varepsilon_k = 5,88 \%$). Откуда получаем, что $R_\text{кр} = 7450 \pm 219$ Ом ($\varepsilon_{R_\text{кр}} = 2,94 \%$). Полученное значение довольно близко к теоретическому, а так же лежит в экспериментальном диапазоне. +\end{enumerate} + +\subsection{Свободные колебания на фазовой плоскости} +\begin{enumerate} + \item Подключим напряжение с резистора $R$ к каналу 2 осциллографа. + \item Переведём осциллограф в двухканальный режим и подберём масштабы для одновременного наблюдения $U_C(t)$ и $I(t)$. + \item Увеличим частоту следования импульсов до 400 Гц, чтобы интервал между импульсами был сопоставим со временем затухания. + \item Переключим осциллограф в режим \texttt{XY} и получим спираль на фазовой плоскости. + \item Для $R = 382$ ÷ 1782 Ом измерим координаты пересечений спирали с осью $U_C$, разделённые $n$ периодами, и определим $\Theta$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|} + \hline + $R_\Sigma,\ \Omega$ & $X_1,\ \text{дел}$ & $X_{1+n},\ \text{дел}$ & $n$ & $\Theta$ & $Q$ & $\varepsilon_Q,\ \%$ \\ \hline + 382 & $17{,}5 \pm 0{,}5$ & $3{,}0 \pm 0{,}5$ & 5 & $0{,}35 \pm 0{,}03$ & $8{,}91 \pm 0{,}85$ & 9{,}6 \\ \hline + 592 & $17{,}0 \pm 0{,}5$ & $3{,}5 \pm 0{,}5$ & 3 & $0{,}53 \pm 0{,}05$ & $5{,}96 \pm 0{,}55$ & 9{,}2 \\ \hline + 872 & $16{,}0 \pm 0{,}5$ & $3{,}5 \pm 0{,}5$ & 2 & $0{,}76 \pm 0{,}07$ & $4{,}13 \pm 0{,}40$ & 9{,}6 \\ \hline + 1232 & $20{,}0 \pm 0{,}5$ & $6{,}5 \pm 0{,}5$ & 1 & $1{,}12 \pm 0{,}08$ & $2{,}80 \pm 0{,}20$ & 7{,}2 \\ \hline + 1632 & $14{,}0 \pm 0{,}5$ & $3{,}5 \pm 0{,}5$ & 1 & $1{,}39 \pm 0{,}15$ & $2{,}27 \pm 0{,}24$ & 10{,}6 \\ \hline + 1782 & $25{,}0 \pm 0{,}5$ & $5{,}5 \pm 0{,}5$ & 1 & $1{,}51 \pm 0{,}09$ & $2{,}07 \pm 0{,}13$ & 6{,}1 \\ \hline + \end{tabular} + \caption{Таблица 3. Зависимость логарифмического декремента затухания и добротности от суммарного сопротивления при измерении пересечений спирали с осью напряжений.} + \label{tab:theta_q_divisions} +\end{table} +\end{enumerate} + +\subsection{Исследование резонансных кривых (АЧХ и ФЧХ)} +\begin{enumerate} + \item Переключим генератор в режим синусоидального сигнала. + \item Установим $C = C^* = 5,995 \text{ нФ}$, $R = 382$ Ом. + \item Подадим сигнал генератора одновременно на контур и на канал 2 осциллографа. + \item Найдём резонансную частоту $\nu_0$, при которой амплитуда $U_C$ максимальна. $\nu_0 \approx 5,99$ кГц, $U_C \approx 90,4$ В. + \item В диапазоне частот, где $U_C \geq 0.4\,U_{C,\text{рез}}$, снимем не менее 10 точек АЧХ и ФЧХ по обе стороны от $\nu_0$: + \item Амплитуду $U_C$ измерим курсорами. + \item Сдвиг фаз $\Delta\varphi$ определим по временному сдвигу $\Delta x$: + $\Delta\varphi = 2\pi\nu\,\Delta x$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $\nu,\ \text{кГц}$ & $U_c,\ \text{В}$ & $\Delta x,\ \text{мкс}$ & $\Delta \varphi,\ \text{рад}$ \\ \hline + 5{,}39 & $39{,}2 \pm 3{,}2$ & $-75 \pm 1$ & $-2{,}540 \pm 0{,}034$ \\ \hline + 5{,}49 & $46{,}0 \pm 3{,}3$ & $-69 \pm 1$ & $-2{,}380 \pm 0{,}034$ \\ \hline + 5{,}59 & $55{,}2 \pm 3{,}4$ & $-68 \pm 1$ & $-2{,}388 \pm 0{,}035$ \\ \hline + 5{,}69 & $65{,}2 \pm 3{,}6$ & $-61 \pm 1$ & $-2{,}181 \pm 0{,}036$ \\ \hline + 5{,}79 & $77{,}2 \pm 3{,}8$ & $-54 \pm 1$ & $-1{,}965 \pm 0{,}036$ \\ \hline + 5{,}89 & $86{,}0 \pm 4{,}0$ & $-45 \pm 1$ & $-1{,}665 \pm 0{,}037$ \\ \hline + 5{,}99 & $87{,}6 \pm 4{,}0$ & $-38 \pm 1$ & $-1{,}430 \pm 0{,}038$ \\ \hline + 6{,}09 & $87{,}2 \pm 4{,}0$ & $-31 \pm 1$ & $-1{,}186 \pm 0{,}038$ \\ \hline + 6{,}19 & $79{,}6 \pm 3{,}9$ & $-23 \pm 1$ & $-0{,}895 \pm 0{,}039$ \\ \hline + 6{,}29 & $70{,}4 \pm 3{,}7$ & $-18 \pm 1$ & $-0{,}711 \pm 0{,}040$ \\ \hline + 6{,}39 & $62{,}8 \pm 3{,}5$ & $-16 \pm 1$ & $-0{,}642 \pm 0{,}040$ \\ \hline + 6{,}49 & $54{,}0 \pm 3{,}4$ & $-12 \pm 1$ & $-0{,}489 \pm 0{,}041$ \\ \hline + 6{,}59 & $50{,}8 \pm 3{,}3$ & $-12 \pm 1$ & $-0{,}497 \pm 0{,}041$ \\ \hline + 6{,}69 & $46{,}0 \pm 3{,}3$ & $-8 \pm 1$ & $-0{,}336 \pm 0{,}042$ \\ \hline + 6{,}79 & $41{,}6 \pm 3{,}2$ & $-8 \pm 1$ & $-0{,}341 \pm 0{,}043$ \\ \hline + 6{,}89 & $38{,}8 \pm 3{,}2$ & $-6 \pm 1$ & $-0{,}260 \pm 0{,}043$ \\ \hline + 6{,}99 & $36{,}4 \pm 3{,}1$ & $-5 \pm 1$ & $-0{,}220 \pm 0{,}044$ \\ \hline + \end{tabular} + \caption{Таблица 4. АЧХ и ФЧХ колебательного контура, упорядоченные по возрастанию частоты.} + \label{tab:resonance_curves_sorted} +\end{table} + +\item Построим графики АЧХ и ФЧХ, по ним определим добротность системы. +\clearpage +\begin{figure}[h] + \center{\includegraphics[width=0.81\textwidth]{Graphics/ACH_plot_final_corrected.png}} + \caption{График 3. Амплитудно-частотная характеристика контура при $R = 382$ Ом.} +\end{figure} + +\begin{figure}[h] + \center{\includegraphics[width=0.81\textwidth]{Graphics/FCH_plot_detailed_method9.png}} + \caption{График 4. Фазочастотная характеристика контура при $R = 382$ Ом.} +\end{figure} +\clearpage +\item Из АЧХ мы получили, что амплитуде $ \frac{1}{\sqrt{}2}U_0$ ($U_0 = U_{C, \text{рез}}$) соответствуют частоты $\nu_{left} \approx 5690$ Гц, $\nu_{right} \approx 6390$ Гц ($\Delta \nu \approx 700$ Гц). $Q = \frac{\nu_0}{2 \Delta \nu} \approx 8,56$. + +\item На ФЧХ мы отразили график от прямой $\Delta \varphi = -\frac{\pi}{2}$ и нашли пересечения нашей и отраженной зависимости с прямой $\Delta \varphi = -\frac{\pi}{4}$. Получили $\nu_{left} \approx 5613$ Гц, $\nu_{right} \approx 6238$ Гц ($\Delta \nu \approx 785$ Гц). $Q = \frac{\nu_0}{\Delta \nu} \approx 9,49$. + +\end{enumerate} + + +\section{Результаты и обсуждения} + +В данной работе были проведены следующие наблюдения и измерения: +\begin{enumerate} +\item Меняя ёмкость конденсатора, замерили периоды колебаний контура. По этим данным построили зависимость $T_{\text{эксп}} = k \cdot T_{\text{эксп}}$, получили $k = 1.006 \pm 0.006$ ($\varepsilon_k = 0,57 \%$), что подтверждает формулу Томсона $T = 2\pi \sqrt{LC}$. +\item Оценили экспериментально критическое сопротивление контура, когда система переходит в апериодический режим. $R_{\text{cr}} \approx 7 $ ÷ $ 8$ кОм. +\item Меняя сопротивление контура, измерили амплитуды колебаний. С помощью этих данных вычислили декремент затухания и добротность (см. таблицу 2). С помощью графика $\frac{1}{\Theta^2}(\frac{1}{R_\Sigma^2})$ вычислили критическое сопротивление $R_\text{кр} = 7450 \pm 219$ Ом ($\varepsilon_{R_\text{кр}} = 2,94 \%$, теоретическое значение $R_{\text{cr}} = 2\sqrt{\frac{L}{C^*}} = 8168 \text{ Ом}$). +\item Получили спираль на фазовой плоскости на осциллографе. По ней для нашего диапазона сопротивлений получили декременты и добротность (см. таблицу 3). +\item Получили АЧХ и ФЧХ колебательного контура для $R = 382$ Ом. Добротность вычисленная по АЧХ: $Q \approx 8,56$, по ФЧХ: $Q \approx 9,49$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|} + \hline + $R_\Sigma,\ \Omega$ & + $f(L, C, R)$ & + $f(\Theta)$ & + $f(\Theta)$, фаз. пл-ть & + АЧХ & + ФЧХ \\ \hline + 382 & + $10{,}691 \pm 0{,}012$ & + $9{,}56 \pm 0{,}94$ & + $8{,}91 \pm 0{,}85$ & + 8{,}56 & + 9{,}49 \\ \cline{1-4} + 592 & + $6{,}899 \pm 0{,}008$ & + $6{,}46 \pm 0{,}88$ & + $5{,}96 \pm 0{,}55$ & + & \\ \cline{1-4} + 872 & + $4{,}684 \pm 0{,}005$ & + $5{,}39 \pm 1{,}06$ & + $4{,}13 \pm 0{,}40$ & + & \\ \cline{1-4} + 1232 & + $3{,}315 \pm 0{,}004$ & + $3{,}86 \pm 0{,}99$ & + $2{,}80 \pm 0{,}20$ & + & \\ \cline{1-4} + 1632 & + $2{,}502 \pm 0{,}003$ & + $3{,}14 \pm 0{,}79$ & + $2{,}27 \pm 0{,}24$ & + & \\ \cline{1-4} + 1782 & + $2{,}292 \pm 0{,}003$ & + $2{,}17 \pm 0{,}48$ & + $2{,}07 \pm 0{,}13$ & + & \\ \hline + \end{tabular} + \caption{Таблица 5. Сравнение добротности контура, определённой различными методами.} + \label{tab:q_comparison_final} +\end{table} + +\end{enumerate} + +\section{Выводы} + +В ходе работы были исследованы свободные и вынужденные колебания в RLC-контуре. Подтверждена зависимость периода колебаний от ёмкости, определены логарифмический декремент затухания, критическое сопротивление и добротность контура различными методами. Экспериментальные данные согласуются с теоретическими предсказаниями в пределах погрешностей измерений. + +\end{document} \ No newline at end of file diff --git a/3.2.4+3.2.5/pdf/Kotlyarov_M.pdf b/3.2.4+3.2.5/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..4c188fd7 Binary files /dev/null and b/3.2.4+3.2.5/pdf/Kotlyarov_M.pdf differ diff --git a/3.2.6/Kotlyarov_M/Graphics/I_vs_x.png b/3.2.6/Kotlyarov_M/Graphics/I_vs_x.png new file mode 100644 index 00000000..073eb310 Binary files /dev/null and b/3.2.6/Kotlyarov_M/Graphics/I_vs_x.png differ diff --git a/3.2.6/Kotlyarov_M/Graphics/inv_theta2_vs_R_plus_R0_linear_with_b.png b/3.2.6/Kotlyarov_M/Graphics/inv_theta2_vs_R_plus_R0_linear_with_b.png new file mode 100644 index 00000000..3276b741 Binary files /dev/null and b/3.2.6/Kotlyarov_M/Graphics/inv_theta2_vs_R_plus_R0_linear_with_b.png differ diff --git a/3.2.6/Kotlyarov_M/Graphics/lmax_vs_inv_R_plus_R0.png b/3.2.6/Kotlyarov_M/Graphics/lmax_vs_inv_R_plus_R0.png new file mode 100644 index 00000000..d7f6cabb Binary files /dev/null and b/3.2.6/Kotlyarov_M/Graphics/lmax_vs_inv_R_plus_R0.png differ diff --git a/3.2.6/Kotlyarov_M/Pictures/ustanovka_ball.png b/3.2.6/Kotlyarov_M/Pictures/ustanovka_ball.png new file mode 100644 index 00000000..12787993 Binary files /dev/null and b/3.2.6/Kotlyarov_M/Pictures/ustanovka_ball.png differ diff --git a/3.2.6/Kotlyarov_M/Pictures/ustanovka_stat.png b/3.2.6/Kotlyarov_M/Pictures/ustanovka_stat.png new file mode 100644 index 00000000..8ca03f4d Binary files /dev/null and b/3.2.6/Kotlyarov_M/Pictures/ustanovka_stat.png differ diff --git a/3.2.6/Kotlyarov_M/data/I_vs_x.py b/3.2.6/Kotlyarov_M/data/I_vs_x.py new file mode 100644 index 00000000..eb365ae7 --- /dev/null +++ b/3.2.6/Kotlyarov_M/data/I_vs_x.py @@ -0,0 +1,53 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Ваши данные +x_data = np.array([25, 21.9, 19.6, 17.7, 16.2, 14.9, 13.7, 12.6, 11.7, 10.9, 10.1]) +I_data = np.array([64.390243902439, 56.1702127659575, 49.811320754717, 44.7457627118644, + 40.6153846153846, 37.1830985915493, 34.2857142857143, 31.8072289156626, + 29.6629213483146, 27.7894736842105, 26.1386138613861]) + +# Погрешности +dx = 0.1 # для всех x +dI = I_data / 66 # для каждого I + +# Аппроксимация I = k * x (линейная регрессия без intercept) +# Используем метод наименьших квадратов с весами +weights = 1.0 / (dI**2) # Веса = 1 / (погрешность)^2 +k = np.sum(weights * x_data * I_data) / np.sum(weights * x_data**2) + +print(f"k = {k:.3f}") + +# Погрешность k +N = len(x_data) +residuals = I_data - k * x_data +chi2 = np.sum(weights * residuals**2) +sigma_k = np.sqrt(1 / (np.sum(weights * x_data**2) * (N - 1))) + +print(f"σ_k = {sigma_k:.3f}") +print(f"k ± σ_k = {k:.3f} ± {sigma_k:.3f}") + +# Диапазон для прямой: от 0 до чуть больше максимального x +x_line = np.linspace(0, max(x_data) * 1.1, 100) +I_line = k * x_line + +# Построение графика +plt.figure(figsize=(8, 6)) +plt.plot(x_line, I_line, label=f'I = ({k:.3f} ± {sigma_k:.3f}) * x', color='red', linestyle='-', linewidth=1.5) + +# Строим точки с погрешностями +plt.errorbar(x_data, I_data, xerr=dx, yerr=dI, fmt='o', color='blue', label='Экспериментальные точки', zorder=5, capsize=3) + +# Настройки графика +plt.xlabel('x, см') +plt.ylabel('I, нА') +plt.title('Зависимость тока от координаты') +plt.legend() +plt.grid(True, linestyle='--', alpha=0.6) +plt.xlim(left=0) +plt.ylim(bottom=0) + +# Показать график +plt.tight_layout() +plt.savefig('I_vs_x.png', dpi=300) # Если нужно сохранить +plt.show() diff --git a/3.2.6/Kotlyarov_M/data/Theta_vs_R.py b/3.2.6/Kotlyarov_M/data/Theta_vs_R.py new file mode 100644 index 00000000..a1e7cf06 --- /dev/null +++ b/3.2.6/Kotlyarov_M/data/Theta_vs_R.py @@ -0,0 +1,52 @@ +import matplotlib.pyplot as plt +import numpy as np +from scipy.optimize import curve_fit + +# Ваши данные +R_plus_R0 = np.array([552.25, 756.25, 992.25, 1482.25, 2162.25, 2862.25, 5700.25 +]) # в кОм +inv_theta2 = np.array([0.193451816678823, 0.248143394849879, 0.332353906163154, + 0.498842640129033, 0.710240077336327, 0.888534014746984, 1.59082251378463]) + +# Погрешности для 1/theta^2 +d_inv_theta2 = np.array([0.0244388154697937, 0.0277156368862966, 0.0324271769463498, + 0.0290044961574231, 0.0431605241791708, 0.0393915582328418, 0.0710443300669637]) + +# Функция для линейной аппроксимации: y = k * x + b +def linear_func(x, k, b): + return k * x + b + +# Подгонка параметров k и b с учётом погрешностей (взвешенная регрессия) +# sigma - это погрешности по y (ось Y) +popt, pcov = curve_fit(linear_func, R_plus_R0, inv_theta2, sigma=d_inv_theta2, absolute_sigma=True) + +k, b = popt +sigma_k, sigma_b = np.sqrt(np.diag(pcov)) + +print(f"k = {k:.6f} ± {sigma_k:.6f}") +print(f"b = {b:.6f} ± {sigma_b:.6f}") + +# Диапазон для прямой: от 0 до чуть больше максимального R+R0 +x_line = np.linspace(0, max(R_plus_R0) * 1.1, 100) +y_line = linear_func(x_line, k, b) + +# Построение графика +plt.figure(figsize=(8, 6)) +plt.plot(x_line, y_line, label=f'1/θ² = ({k:.5f} ± {sigma_k:.5f}) * (R+R₀) + ({b:.5f} ± {sigma_b:.5f})', color='red', linestyle='-', linewidth=1.5) + +# Строим точки с погрешностями только по Y +plt.errorbar(R_plus_R0, inv_theta2, yerr=d_inv_theta2, fmt='o', color='blue', label='Экспериментальные точки', zorder=5, capsize=3) + +# Настройки графика +plt.xlabel('R + R₀, кОм') +plt.ylabel('1/θ²') +plt.title('Зависимость 1/θ² от (R + R₀)²') +plt.legend() +plt.grid(True, linestyle='--', alpha=0.6) +# plt.xlim(left=0) # Можно убрать, если прямая с b лучше проходит +# plt.ylim(bottom=0) # Аналогично + +# Показать график +plt.tight_layout() +plt.savefig('inv_theta2_vs_R_plus_R0_linear_with_b.png', dpi=300) # Если нужно сохранить +plt.show() diff --git a/3.2.6/Kotlyarov_M/data/data.xlsx b/3.2.6/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..8c15c672 Binary files /dev/null and b/3.2.6/Kotlyarov_M/data/data.xlsx differ diff --git a/3.2.6/Kotlyarov_M/data/l_max_vs_R.py b/3.2.6/Kotlyarov_M/data/l_max_vs_R.py new file mode 100644 index 00000000..7b7a3a06 --- /dev/null +++ b/3.2.6/Kotlyarov_M/data/l_max_vs_R.py @@ -0,0 +1,50 @@ +import matplotlib.pyplot as plt +import numpy as np +from scipy.optimize import curve_fit + +# Ваши данные +l_max = np.array([15.4, 14.4, 13, 10.7, 7, 5.5]) # в см +inv_R_plus_R0 = np.array([0.0246913580246914, 0.0327868852459016, + 0.0487804878048781, 0.0952380952380952, 0.181818181818182, 0.285714285714286]) # в кОм^-1 + +# Погрешности +dl_max = 0.1 # для всех l_max + +# Функция для линейной аппроксимации: y = k * x + b +def linear_func(x, k, b): + return k * x + b + +# Подгонка параметров k и b с учётом погрешностей (взвешенная регрессия) +# sigma - это погрешности по y (ось Y) +popt, pcov = curve_fit(linear_func, inv_R_plus_R0, l_max, sigma=dl_max, absolute_sigma=True) + +k, b = popt +sigma_k, sigma_b = np.sqrt(np.diag(pcov)) + +print(f"k = {k:.3f} ± {sigma_k:.3f}") +print(f"b = {b:.3f} ± {sigma_b:.3f}") + +# Диапазон для прямой: от 0 до чуть больше максимального (R+R0)^-1 +x_line = np.linspace(0, max(inv_R_plus_R0) * 1.1, 100) +y_line = linear_func(x_line, k, b) + +# Построение графика +plt.figure(figsize=(8, 6)) +plt.plot(x_line, y_line, label=f'l_max = ({k:.1f} ± {sigma_k:.1f}) * (R+R₀)⁻¹ + ({b:.1f} ± {sigma_b:.1f})', color='red', linestyle='-', linewidth=1.5) + +# Строим точки с погрешностями только по Y +plt.errorbar(inv_R_plus_R0, l_max, yerr=dl_max, fmt='o', color='blue', label='Экспериментальные точки', zorder=5, capsize=3) + +# Настройки графика +plt.xlabel('(R + R₀)⁻¹, кОм⁻¹') +plt.ylabel('l_max, см') +plt.title('Зависимость l_max от (R + R₀)⁻¹') +plt.legend() +plt.grid(True, linestyle='--', alpha=0.6) +# plt.xlim(left=0) # Можно убрать, если прямая с b лучше проходит +# plt.ylim(bottom=0) # Аналогично + +# Показать график +plt.tight_layout() +plt.savefig('lmax_vs_inv_R_plus_R0.png', dpi=300) # Если нужно сохранить +plt.show() diff --git a/3.2.6/Kotlyarov_M/main.pdf b/3.2.6/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..350ef0f4 Binary files /dev/null and b/3.2.6/Kotlyarov_M/main.pdf differ diff --git a/3.2.6/Kotlyarov_M/main.tex b/3.2.6/Kotlyarov_M/main.tex new file mode 100644 index 00000000..2ded429b --- /dev/null +++ b/3.2.6/Kotlyarov_M/main.tex @@ -0,0 +1,405 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage{multirow} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\usepackage{siunitx} +\usepackage{booktabs} +\sisetup{ + exponent-product = \cdot, + per-mode = symbol, + separate-uncertainty = true, + uncertainty-separator = \, +} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.2.6}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + +\section{Введение} + +\subsubsection*{Цель работы} +Изучение работы высокочувствительного зеркального гальванометра магнитоэлектрической системы в режимах измерения постоянного тока и электрического заряда. + +\subsubsection*{Оборудование} +\begin{itemize} + \item Зеркальный гальванометр с осветителем и шкалой + \item Источник постоянного напряжения + \item Делитель напряжения + \item Магазин сопротивлений + \item Эталонный конденсатор + \item Вольтметр + \item Переключатель + \item Ключи + \item Линейка +\end{itemize} + +\section{Экспериментальная установка} + +\subsection{Определение динамической постоянной} + +\begin{figure}[h] + \centering + \includegraphics[width=10cm]{Pictures/ustanovka_stat.PNG} + \caption{Рис. 1. Схема установки для работы гальванометра в стационарном режиме} + \label{fig:scheme1} +\end{figure} + +Схема для исследования гальванометра в стационарном режиме представлена на рис. \ref{fig:scheme1}. Постоянное напряжение $U = 1,5$ В снимается с блока питания и измеряется вольтметром $V$. Ключ $K_3$ позволяет менять направление тока через гальванометр $\Gamma$, делитель напряжения --- менять величину тока в широких пределах. Ключ $K_2$ служит для включения гальванометра, кнопка $K_1$ --- для его успокоения. Магазин сопротивлений $R$ позволяет менять режим работы гальванометра от колебательного до апериодического. + +При $R_1 \ll R, R_0, R_2$ сила тока, протекающего через гальванометр, может быть вычислена по формуле: +\begin{equation} + I = U_0 \frac{R_1}{R_2} \frac{1}{R + R_0}. + \label{eq:current} +\end{equation} + +Угол отклонения рамки от положения равновесия измеряется с помощью осветителя, зеркальца, укреплённого на рамке, и шкалы. Координата $x$ светового пятна на шкале связана с углом $\varphi$ отклонения рамки формулой: +\[ +x = a \arctg 2\varphi, +\] +где $a$ --- расстояние от шкалы до зеркальца. При малых углах $\varphi = x/2a$. Динамическую постоянную вычисляют по формуле: +\begin{equation} + C_I = \frac{I}{\varphi} = \frac{2aI}{x}. + \label{eq:dyn_const} +\end{equation} + +\subsection{Определение критического сопротивления гальванометра} + +Измерение критического сопротивления гальванометра выполняется с помощью той же схемы (рис. \ref{fig:scheme1}). При больших $R$ свободное движение рамки имеет колебательный характер. С уменьшением $R$ затухание увеличивается, и колебательный режим переходит в апериодический. + +В качестве характеристики процесса затухания колебаний рамки гальванометра используют логарифмический декремент затухания: +\begin{equation} + \Theta = \ln\frac{x_n}{x_{n+1}} = \gamma T = \frac{2\pi \gamma}{\sqrt{\omega_0^2 - \gamma^2}} = \frac{2\pi (R_{\text{кр}} + R_0)}{\sqrt{(R_0 + R)^2 - (R_{\text{кр}} + R_0)^2}}, + \label{eq:decrement} +\end{equation} +где $x_n$ и $x_{n+1}$ --- два последовательных отклонения зайчика в одну сторону. + +Критическое сопротивление рассчитывают по графику в координатах $X = (R_0 + R)^2$, $Y = 1/\Theta^2$: +\begin{equation} + R_{\text{кр}} = \frac{1}{2\pi}\sqrt{\frac{\Delta X}{\Delta Y}} - R_0. + \label{eq:crit_res} +\end{equation} + +\subsection{Определение баллистической постоянной и критического сопротивления гальванометра, работающего в баллистическом режиме} + +\begin{figure}[h] + \centering + \includegraphics[width=10cm]{Pictures/ustanovka_ball.PNG} + \caption{Рис. 2. Схема установки для определения баллистической постоянной} + \label{fig:scheme2} +\end{figure} + +Для изучения работы гальванометра в режиме измерения заряда используется схема, представленная на рис. \ref{fig:scheme2}. + +При нормальном положении кнопки $K_0$ конденсатор $C$ заряжается до напряжения: +\[ +U_c = \frac{R_1}{R_2}U_0. +\] +Заряд конденсатора равен: +\[ +q = \frac{R_1}{R_2}U_0 C. +\] + +При нажатии на ключ $K_0$ конденсатор отключается от источника постоянного напряжения и подключается к гальванометру. К моменту замыкания ключа $K_4$ весь заряд успевает пройти через гальванометр, и рамка получает начальную скорость. + +Баллистическая постоянная гальванометра определяется при критическом сопротивлении: +\begin{equation} + C_Q^{кр} = \frac{q}{\varphi_{max}^{кр}} = 2a\frac{R_1}{R_2} \frac{U_0 C}{l_{max}^{кр}}, + \label{eq:ball_const} +\end{equation} +где $l_{max}^{кр}$ --- величина первого отброса в критическом режиме, выраженная в делениях шкалы. + +\section{Теоретические сведения} + +Баллистический гальванометр --- электроизмерительный прибор магнитоэлектрической системы, отличающийся высокой чувствительностью к току и сравнительно большим периодом колебаний подвижной системы (рамки). Главной частью прибора является подвешенная на вертикальной нити рамка, помещённая в поле постоянного магнита. + +Движение рамки описывается уравнением: +\[ +\ddot{\varphi} + 2\gamma \dot{\varphi} + \omega_0^2 \varphi = KI, +\] +где $\varphi$ --- угол поворота рамки, $\gamma$ --- коэффициент затухания, $\omega_0$ --- собственная частота колебаний, $K$ --- постоянная, зависящая от параметров гальванометра. + +В работе исследуются два основных режима: +\begin{enumerate} + \item \textbf{Стационарный режим} --- измерение постоянного тока. Угол отклонения рамки пропорционален току: + \[ + \varphi = \frac{BSN}{D} I = S_I I = \frac{I}{C_I}, + \] + где $S_I$ --- чувствительность к току, $C_I$ --- динамическая постоянная гальванометра. + + \item \textbf{Баллистический режим} --- измерение электрического заряда. При пропускании короткого импульса тока максимальное отклонение рамки пропорционально прошедшему заряду: + \[ + \varphi_{\text{max}} = \frac{K}{\omega_0} q = \frac{q}{C_q}, + \] + где $C_q$ --- баллистическая постоянная гальванометра. +\end{enumerate} + +Критическое сопротивление $R_{\text{кр}}$ определяет переход между колебательным и апериодическим режимами работы гальванометра. В критическом режиме обеспечивается оптимальное сочетание чувствительности и времени успокоения прибора. + + + +\section{Выполнение} + +\subsection*{Подготовка приборов к работе} +\begin{enumerate} +\item Настроим осветитель гальванометра, добившись появления чёткой вертикальной риски на шкале и совместив её с нулевым делением. Установим делитель на выходное напряжение $\frac{R_1}{R_2} = \frac{1}{1000}$ и сопротивление магазина $R \approx 50$ кОм. Соберём электрическую цепь согласно схеме, включим блок питания и осветитель. Подберём сопротивление магазина, при котором зайчик отклоняется почти на всю шкалу. + +\subsection*{Определение динамической постоянной} + +\item Измерим зависимость отклонения зайчика $x$ от сопротивления магазина $R$ при постоянном положении делителя. Получили ряд значений сопротивлений и соответствующих им отклонений зайчика. + +Рассчитаем ток через гальванометр для каждого измерения по формуле: +\[ +I = U_0 \frac{R_1}{R_2} \frac{1}{R + R_0} +\] +где $U_0 = 1,32 \pm 0,02$ В, $\frac{R_1}{R_2} = \frac{1}{1000}$, $R_0 = 500$ Ом. Погрешность $\sigma_x = 0,1$ см. +\clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|} + \hline + № & $x$, см & $I$, нА \\ \hline + 1 & 25,0 & 64,39 \\ \hline + 2 & 21,9 & 56,17 \\ \hline + 3 & 19,6 & 49,81 \\ \hline + 4 & 17,7 & 44,75 \\ \hline + 5 & 16,2 & 40,62 \\ \hline + 6 & 14,9 & 37,18 \\ \hline + 7 & 13,7 & 34,29 \\ \hline + 8 & 12,6 & 31,81 \\ \hline + 9 & 11,7 & 29,66 \\ \hline + 10 & 10,9 & 27,79 \\ \hline + 11 & 10,1 & 26,14 \\ \hline + \end{tabular} + \caption{Таблица 1. Зависимость отклонения зайчика от силы тока} + \label{tab:current_deflection} +\end{table} + +\item Построим график зависимости $I(x)$ и определим, что зависимость является линейной в рабочем диапазоне отклонений. + \begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/I_vs_x.png}} + \caption{График 1. Зависимость силы тока от отклонения зайчика} +\end{figure} + +Наклон прямой $k = 0,2537 \pm 0,0004 \ \frac{\text{нА}}{\text{мм}}$ ($\varepsilon_k = 0,16 \%$). +По угловому коэффициенту прямой рассчитаем динамическую постоянную: +\[ +C_I = \frac{2aI}{x} = 0,120 \pm 0,001 \ \frac{\text{нА}}{\frac{\text{мм}}{\text{м}}}, +\] +где $a = 1,06 \pm 0,01$ м -- расстояние от шкалы до гальванометра. +\subsection{Определение критического сопротивления} + +\item Исследуем свободные колебания рамки при разомкнутой внешней цепи ($R = \infty$). Измерим последовательные отклонения зайчика в одну сторону: +\clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|} + \hline + $n$ & $x$, см & $\Theta$ \\ \hline + 1 & 19,7 & --- \\ \hline + 2 & 16,7 & 0,165 \\ \hline + 3 & 12,5 & 0,290 \\ \hline + 4 & 9,8 & 0,243 \\ \hline + 5 & 8,9 & 0,096 \\ \hline + 6 & 6,3 & 0,346 \\ \hline + 7 & 5,2 & 0,192 \\ \hline + 8 & 4,2 & 0,214 \\ \hline + 9 & 3,4 & 0,211 \\ \hline + 10 & 2,7 & 0,231 \\ \hline + 11 & 2,2 & 0,205 \\ \hline + \end{tabular} + \caption{Таблица 2. Логарифмический декремент затухания для различных отклонений} + \label{tab:decrement_values} +\end{table} + +Рассчитаем среднее: $\Theta_0 = 0,219 \pm 0,0231$ ($\varepsilon_{\Theta_0} = 10,56 \%$). Погрешность скадывалась из систематической (с учетом $\sigma_x = 0,2$ см) и случайной. + +\item Измерим период свободных колебаний рамки: $T_{11} = 49,23$ с, $T_1 = \frac{T_{11}}{11} = 4,48 \pm 0,05$ с, $\sigma_{T_1} = \frac{\sigma_{T_{11}}}{11} = \frac{0,5}{11} \approx 0,05$. + +\item Подберём наибольшее сопротивление магазина $R$, при котором при размыкании ключа зайчик не переходит за нулевое значение. Получили $R_{\text{кр}}^{\text{подб}} \approx 7,5 \pm 0,5$ кОм. + +\item Проведём серию измерений логарифмического декремента затухания $\Theta$ для различных значений сопротивления $R$ в диапазоне от $3R_{кр}^{подб}$ до $10R_{кр}^{подб}$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|} + \hline + № & $X_1$, см & $X_2$, см & $R$, кОм & $R_1/R_2$ & $1/\Theta^2$ & $(R+R_0)^2$, кОм$^2$ \\ \hline + 1 & 6,8 & 0,7 & 23 & 0,001 & $0,193 \pm 0,024$ & 552,25 \\ \hline + 2 & 6,7 & 0,9 & 27 & 0,001 & $0,248 \pm 0,028$ & 756,25 \\ \hline + 3 & 6,8 & 1,2 & 31 & 0,001 & $0,332 \pm 0,032$& 992,25 \\ \hline + 4 & 10,3 & 2,5 & 38 & 0,002 & $0,499 \pm 0,029$& 1482,25 \\ \hline + 5 & 9,5 & 2,9 & 46 & 0,002 & $0,710 \pm 0,043$ & 2162,25 \\ \hline + 6 & 13,0 & 4,5 & 53 & 0,003 & $0,889 \pm 0,039$& 2862,25 \\ \hline + 7 & 13,7 & 6,2 & 75 & 0,005 & $1,591 \pm 0,071$& 5700,25 \\ \hline + \end{tabular} + \caption{Таблица 3. Зависимость параметров колебаний от сопротивления цепи} + \label{tab:resistance_dependence} +\end{table} + +По МНК построим график $\frac{1}{\Theta^2} = f((R+R_0)^2)$. +\clearpage + \begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/inv_theta2_vs_R_plus_R0_linear_with_b.png}} + \caption{График 2. Зависимость обратного квадрата декремента от квадрата сопротивленя} +\end{figure} +Наклон прямой $k = (2,86 \pm 0,12) \cdot 10^{-4} \ \frac{1}{\text{кОм}}$ ($\varepsilon_k = 4,20 \%$). +Рассчитаем критическое сопротивление по формуле: +\[ +R_{\text{кр}} = \frac{1}{2\pi}\sqrt{\frac{\Delta X}{\Delta Y}} - R_0 = 8,9 \pm 0,20 \text{ кОм } (\varepsilon_{R_{\text{кр}}} = 2,22 \%), +\] +где $\frac{\Delta Y}{\Delta X} = k$ - наклон прямой графика $\frac{1}{\Theta^2} = f((R+R_0)^2)$. + + +\subsection{Баллистический режим} + +Соберём схему для работы в баллистическом режиме. При разомкнутой внешней цепи ($R = \infty$) измерим первый отброс зайчика: $l_{max}^{\infty} = 18$ см. + +Исследуем зависимость первого отброса от сопротивления внешней цепи. Уменьшаем $R$ до тех пор, пока первый отброс не уменьшится в $e$ раз по сравнению с $l_{max}^{\infty}$. + + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|} + \hline + $R$, кОм & $(R+R_0)^{-1}$, кОм$^{-1}$ & $l_{\text{max}}$, см \\ \hline + 40 & 0,0247 & 15,4 \\ \hline + 30 & 0,0328 & 14,4 \\ \hline + 20 & 0,0488 & 13,0 \\ \hline + 10 & 0,0952 & 10,7 \\ \hline + 5 & 0,1818 & 7,0 \\ \hline + 3 & 0,2857 & 5,5 \\ \hline + \end{tabular} + \caption{Таблица 4. Зависимость максимального отклонения от сопротивления цепи} + \label{tab:max_deflection} +\end{table} + +Построим график $l_max = f((R+ R_0)^{-1})$. +\clearpage + \begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/lmax_vs_inv_R_plus_R0.png}} + \caption{График 3. Зависимость максимального отклонения зайчика от обратного сопротивления} +\end{figure} + +Рассчитаем по графику критическое сопротивление и баллистическую постоянную. + +Максимальное отклонение без затухания $l_{max\text{ св.}} = l_{max \infty}\cdot e^\frac{\Theta_0}{4} = 19,0 \pm 0,1$ см. $l_\text{кр} = \frac{l_{max\text{ св.}}}{e} = 6,99 \pm 0,04$ см. Из графика следует, что + +Получили $R_{\text{кр}}^{\text{балл}} = 4,21 \pm 0,32$ кОм ($\varepsilon_{R_{\text{кр}}^{\text{балл}}} = 7,60\%$). +Рассчитаем баллистическую постоянную в критическом режиме: +\[ +C_Q^{\text{кр}} = 2a\frac{R_1}{R_2} \frac{U_0 C}{l_{max}^{\text{кр}}}, +\] +где $a$ -- расстояние от шкалы до гальванометра, $C = 2$ мкФ. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|} + \hline + Метод & $R_{\text{кр}}$, кОм & $l_{\text{max}}^{\text{кр}}$, см & $\varepsilon_{l}$, \% & $C_Q^{\text{кр}}$, нА/мм/м & $\varepsilon_{C_Q}$, \% \\ \hline + Подбор & $7{,}50 \pm 0{,}50$ & $9{,}131 \pm 0{,}457$ & 5,00 & $1{,}532 \pm 0{,}081$ & 5,31 \\ \hline + $\frac{1}{\Theta^2}$ & $8{,}911 \pm 0{,}197$ & $9{,}894 \pm 0{,}461$ & 4,66 & $1{,}414 \pm 0{,}071$ & 4,99 \\ \hline + Балл. & $4{,}21 \pm 0{,}32$ & $6{,}638 \pm 0{,}178$ & 2,68 & $2{,}108 \pm 0{,}068$ & 3,22 \\ \hline + По декременту & $4{,}588 \pm 0{,}487$ & $6{,}995 \pm 0{,}041$ & 0,59 & $2{,}000 \pm 0{,}038$ & 1,88 \\ \hline + \end{tabular} + \caption{Таблица 5. Сравнение результатов, полученных разными методами} + \label{tab:methods_comparison} +\end{table} + +\subsection{Сравнение периода и времени релаксации} + +Сравним период свободных колебаний гальванометра $T_0 = 4,46 \pm 0,05 \text{ с}$ с временем релаксации $\tau = R_0C = 0,001$ с. Получаем, что $T_0 \gg \tau$, что подтверждает применимость баллистического режима для измерения заряда. + +\end{enumerate} + +\section{Результаты и обсуждения} + +В ходе работы были исследованы характеристики зеркального гальванометра в стационарном и баллистическом режимах. Полученные результаты позволяют сделать следующие выводы: + +\subsection{Динамическая постоянная гальванометра} +Была определена динамическая постоянная $C_I = 0,120 \pm 0,001$ нА/(мм/м), что свидетельствует о высокой чувствительности прибора. Линейная зависимость $I(x)$ (График 1) подтверждает корректность работы гальванометра в стационарном режиме и позволяет использовать его для точных измерений постоянного тока. Малая погрешность определения углового коэффициента ($\varepsilon_k = 0,16\%$) указывает на хорошую воспроизводимость результатов. + +\subsection{Критическое сопротивление} +Значения критического сопротивления, полученные разными методами, существенно различаются: +\begin{itemize} + \item Метод подбора: $R_{\text{кр}} = 7,50 \pm 0,50$ кОм + \item По декременту затухания: $R_{\text{кр}} = 8,911 \pm 0,197$ кОм + \item Баллистический метод: $R_{\text{кр}} = 4,21 \pm 0,32$ кОм + \item По декременту (баллистический): $R_{\text{кр}} = 4,588 \pm 0,487$ кОм +\end{itemize} + +Наибольшее доверие вызывает значение, полученное по декременту затухания, так как этот метод основан на строгой теоретической зависимости и имеет минимальную погрешность ($\varepsilon = 2,22\%$). Расхождение с баллистическим методом может быть связано с неидеальностью аппроксимации на Графике 3, где экспериментальные точки плохо ложатся на линейную зависимость. + +\subsection{Баллистическая постоянная} +Значения баллистической постоянной также демонстрируют значительный разброс: +\begin{itemize} + \item Метод подбора: $C_Q^{\text{кр}} = 1,532 \pm 0,081$ нА·мм/м + \item По декременту затухания: $C_Q^{\text{кр}} = 1,414 \pm 0,071$ нА·мм/м + \item Баллистический метод: $C_Q^{\text{кр}} = 2,108 \pm 0,068$ нА·мм/м + \item По декременту (баллистический): $C_Q^{\text{кр}} = 2,000 \pm 0,038$ нА·мм/м +\end{itemize} + +Наиболее надежным представляется значение, полученное по декременту затухания, как имеющее наименьшую погрешность ($\varepsilon = 1,99\%$). Завышенное значение баллистической постоянной в баллистическом методе согласуется с заниженным значением критического сопротивления, полученным этим же методом. + +\subsection{Анализ затуханий} +Логарифмический декремент затухания при разомкнутой цепи $\Theta_0 = 0,219 \pm 0,023$ свидетельствует о наличии заметного внутреннего трения в системе. Погрешность определения ($\varepsilon = 10,56\%$) является наибольшей среди всех измеряемых величин, что объясняется трудностью точного отсчета последовательных максимумов при затухающих колебаниях. + +Соотношение $T_0 \gg \tau$ ($4,46$ с $\gg 0,001$ с) подтверждает выполнение условия применимости баллистического режима, при котором время протекания заряда много меньше периода собственных колебаний системы. + +\subsection{Источники погрешностей} +Основными источниками погрешностей являются: +\begin{enumerate} + \item Субъективность отсчета положений зайчика на шкале + \item Невозможность точной установки критического режима методом подбора + \item Влияние паразитных параметров цепи в баллистическом режиме +\end{enumerate} + +\section{Вывод} + +В ходе работы успешно исследованы характеристики зеркального гальванометра: +\begin{enumerate} + \item Определена динамическая постоянная гальванометра $C_I = 0,120 \pm 0,001$ нА/(мм/м), характеризующая его чувствительность к току + + \item Установлено, что наиболее точным методом определения критического сопротивления является метод по декременту затухания, дающий значение $R_{\text{кр}} = 8,911 \pm 0,197$ кОм + + \item Найдена баллистическая постоянная $C_Q^{\text{кр}} = 1,211 \pm 0,024$ нА·мм/м, определяющая чувствительность прибора к заряду + + \item Подтверждена применимость баллистического режима для измерения малых зарядов, о чем свидетельствует выполнение условия $T_0 \gg \tau$ + + \item Выявлены ограничения баллистического метода, связанные с трудностью точной установки критического режима +\end{enumerate} + +Работа демонстрирует возможность использования гальванометра как для измерений постоянного тока, так и для измерения электрического заряда, причем стационарный режим обеспечивает более высокую точность измерений. +\end{document} \ No newline at end of file diff --git a/3.2.6/pdf/Kotlyarov_M.pdf b/3.2.6/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..350ef0f4 Binary files /dev/null and b/3.2.6/pdf/Kotlyarov_M.pdf differ diff --git a/3.4.1/Kotlyarov_M/Graphics/all_materials_separate.png b/3.4.1/Kotlyarov_M/Graphics/all_materials_separate.png new file mode 100644 index 00000000..f7452a84 Binary files /dev/null and b/3.4.1/Kotlyarov_M/Graphics/all_materials_separate.png differ diff --git a/3.4.1/Kotlyarov_M/Graphics/all_materials_together.png b/3.4.1/Kotlyarov_M/Graphics/all_materials_together.png new file mode 100644 index 00000000..8cde7065 Binary files /dev/null and b/3.4.1/Kotlyarov_M/Graphics/all_materials_together.png differ diff --git "a/3.4.1/Kotlyarov_M/Graphics/\320\263\321\200\320\260\320\264\321\203\320\270\321\200\320\276\320\262\320\276\321\207\320\275\320\260\321\217_\320\272\321\200\320\270\320\262\320\260\321\217_B(I).png" "b/3.4.1/Kotlyarov_M/Graphics/\320\263\321\200\320\260\320\264\321\203\320\270\321\200\320\276\320\262\320\276\321\207\320\275\320\260\321\217_\320\272\321\200\320\270\320\262\320\260\321\217_B(I).png" new file mode 100644 index 00000000..ea7878de Binary files /dev/null and "b/3.4.1/Kotlyarov_M/Graphics/\320\263\321\200\320\260\320\264\321\203\320\270\321\200\320\276\320\262\320\276\321\207\320\275\320\260\321\217_\320\272\321\200\320\270\320\262\320\260\321\217_B(I).png" differ diff --git a/3.4.1/Kotlyarov_M/Pictures/ustanovka.png b/3.4.1/Kotlyarov_M/Pictures/ustanovka.png new file mode 100644 index 00000000..ee26c0f7 Binary files /dev/null and b/3.4.1/Kotlyarov_M/Pictures/ustanovka.png differ diff --git a/3.4.1/Kotlyarov_M/data/B_I.py b/3.4.1/Kotlyarov_M/data/B_I.py new file mode 100644 index 00000000..010da4b1 --- /dev/null +++ b/3.4.1/Kotlyarov_M/data/B_I.py @@ -0,0 +1,76 @@ +import numpy as np +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +import matplotlib as mpl + +# Настройка стиля графиков +mpl.rcParams['font.family'] = 'serif' +mpl.rcParams['mathtext.fontset'] = 'cm' + +# Экспериментальные данные +I = np.array([0.30000, 1.00000, 1.25000, 1.50000, 1.75000, + 2.00000, 2.25000, 2.51000, 2.74000, 3.03000]) # Ток, А +B = np.array([0.09722, 0.31944, 0.38889, 0.45833, 0.54167, + 0.61111, 0.66667, 0.75000, 0.79167, 0.86111]) # Магнитная индукция, Тл + +# Линейная модель для калибровки +def linear_model(I, k, b): + return k * I + b + +# Аппроксимация данных линейной функцией +popt, pcov = curve_fit(linear_model, I, B) +k, b = popt +dk, db = np.sqrt(np.diag(pcov)) + +# Коэффициент детерминации R² +B_pred = linear_model(I, k, b) +ss_res = np.sum((B - B_pred)**2) +ss_tot = np.sum((B - np.mean(B))**2) +r_squared = 1 - (ss_res / ss_tot) + +# Создание гладкой кривой для графика +I_smooth = np.linspace(min(I), max(I), 100) +B_smooth = linear_model(I_smooth, k, b) + +# Построение графика +plt.figure(figsize=(10, 6)) +plt.scatter(I, B, color='red', s=50, zorder=5, label='Экспериментальные точки') +plt.plot(I_smooth, B_smooth, 'b-', linewidth=2, + label=f'Аппроксимация: B(I) = ({k:.4f} ± {dk:.4f})·I + ({b:.4f} ± {db:.4f})') + +plt.xlabel('Ток I, А', fontsize=14) +plt.ylabel('Магнитная индукция B, Тл', fontsize=14) +plt.title('Градуировочная кривая электромагнита B(I)', fontsize=16) +plt.grid(True, linestyle='--', alpha=0.7) +plt.legend(fontsize=12) + +# Добавление аннотации с параметрами +textstr = '\n'.join(( + f'k = {k:.4f} ± {dk:.4f} Тл/А', + f'b = {b:.4f} ± {db:.4f} Тл', + f'R² = {r_squared:.4f}')) +props = dict(boxstyle='round', facecolor='wheat', alpha=0.5) +plt.text(0.05, 0.95, textstr, transform=plt.gca().transAxes, fontsize=12, + verticalalignment='top', bbox=props) + +plt.tight_layout() + +# Сохранение графика +plt.savefig('градуировочная_кривая_B(I).png', dpi=300, bbox_inches='tight') +plt.savefig('градуировочная_кривая_B(I).pdf', bbox_inches='tight') + +# Вывод результатов в консоль +print("Результаты аппроксимации:") +print(f"Коэффициент наклона k = {k:.4f} ± {dk:.4f} Тл/А") +print(f"Свободный член b = {b:.4f} ± {db:.4f} Тл") +print(f"Коэффициент детерминации R² = {r_squared:.4f}") +print(f"Относительная погрешность коэффициента k: {dk/k*100:.2f}%") + +# Расчет невязок +residuals = B - B_pred +print(f"\nСтатистика невязок:") +print(f"Средняя невязка: {np.mean(residuals):.6f} Тл") +print(f"Стандартное отклонение невязок: {np.std(residuals):.6f} Тл") +print(f"Максимальная невязка: {np.max(np.abs(residuals)):.6f} Тл") + +plt.show() diff --git a/3.4.1/Kotlyarov_M/data/P_B_sqr.py b/3.4.1/Kotlyarov_M/data/P_B_sqr.py new file mode 100644 index 00000000..e204eb59 --- /dev/null +++ b/3.4.1/Kotlyarov_M/data/P_B_sqr.py @@ -0,0 +1,186 @@ +import numpy as np +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +import matplotlib as mpl + +# Настройка стиля графиков +mpl.rcParams['font.family'] = 'serif' +mpl.rcParams['mathtext.fontset'] = 'cm' + +# Данные для каждого материала +materials = { + 'Медь': { + 'B2': np.array([0.10125, 0.11601, 0.14640, 0.20743, 0.27612, + 0.35796, 0.44666, 0.54516, 0.64895, 0.76668]), + 'sigma_B2': np.array([0.00270, 0.00314, 0.00409, 0.00615, 0.00870, + 0.01203, 0.01597, 0.02071, 0.02612, 0.03270]), + 'delta_P': np.array([0.00001981, 0.00002972, 0.00003963, 0.00005944, 0.00007925, + 0.00010897, 0.00012879, 0.00015851, 0.00017832, 0.00020804]), + 'diameter': 0.01, # м + 'color': 'red' + }, + 'Алюминий': { + 'B2': np.array([0.06021, 0.09948, 0.14855, 0.20743, 0.27612, + 0.35462, 0.44292, 0.54103, 0.65347, 0.78146]), + 'sigma_B2': np.array([0.00153, 0.00264, 0.00416, 0.00615, 0.00870, + 0.01189, 0.01579, 0.02051, 0.02636, 0.03356]), + 'delta_P': np.array([0.00003963, 0.00005944, 0.00009907, 0.00013869, 0.00017832, + 0.00022785, 0.00028729, 0.00034673, 0.00040617, 0.00046561]), + 'diameter': 0.01, # м + 'color': 'blue' + }, + 'Графит': { + 'B2': np.array([0.04725, 0.09948, 0.14855, 0.20743, 0.27612, + 0.35129, 0.44292, 0.54103, 0.64895, 0.76668]), + 'sigma_B2': np.array([0.00118, 0.00264, 0.00416, 0.00615, 0.00870, + 0.01175, 0.01579, 0.02051, 0.02612, 0.03270]), + 'delta_P': np.array([0.00001981, 0.00005944, 0.00008916, 0.00013869, 0.00018823, + 0.00023776, 0.00030711, 0.00037645, 0.00044580, 0.00050524]), + 'diameter': 0.0056, # м + 'color': 'green' + }, + 'Вольфрам': { + 'B2': np.array([0.03075, 0.06021, 0.09772, 0.15072, 0.20743, + 0.27612, 0.35462, 0.44292, 0.54103, 0.64895, 0.76668]), + 'sigma_B2': np.array([0.00075, 0.00153, 0.00259, 0.00423, 0.00615, + 0.00870, 0.01189, 0.01579, 0.02051, 0.02612, 0.03270]), + 'delta_P': np.array([0.00004953, 0.00011888, 0.00021795, 0.00033683, 0.00047552, + 0.00065384, 0.00083216, 0.00103029, 0.00122842, 0.00143646, 0.00163460]), + 'diameter': 0.01, # м + 'color': 'orange' + } +} + +# Погрешность измерения силы +sigma_delta_P = 0.00001 # Н + +# Магнитная постоянная +mu_0 = 4 * np.pi * 1e-7 # Гн/м + +# Линейная модель (через начало координат) +def linear_model(x, k): + return k * x + +# Создание полотна с 4 субплoтами +fig, axes = plt.subplots(2, 2, figsize=(15, 12)) +fig.suptitle('Зависимость силы |ΔP| от квадрата магнитной индукции B² для различных материалов', fontsize=16) + +# Создание отдельного графика со всеми материалами +fig_all, ax_all = plt.subplots(figsize=(12, 8)) + +# Для хранения результатов +results = {} + +# Обработка каждого материала +for i, (material, data) in enumerate(materials.items()): + # Определяем субплoт + row, col = i // 2, i % 2 + ax = axes[row, col] + + B2 = data['B2'] + sigma_B2 = data['sigma_B2'] + delta_P = data['delta_P'] + color = data['color'] + diameter = data['diameter'] + + # Вычисляем площадь сечения + S = np.pi * (diameter / 2) ** 2 + + # Аппроксимация данных + popt, pcov = curve_fit(linear_model, B2, delta_P, p0=[0.0003], + sigma=sigma_delta_P*np.ones_like(B2), absolute_sigma=True) + k = popt[0] + dk = np.sqrt(pcov[0][0]) + + # Коэффициент детерминации R² + delta_P_pred = linear_model(B2, k) + ss_res = np.sum((delta_P - delta_P_pred)**2) + ss_tot = np.sum((delta_P - np.mean(delta_P))**2) + r_squared = 1 - (ss_res / ss_tot) + + # Создание гладкой кривой для графика + B2_smooth = np.linspace(min(B2)*0.9, max(B2)*1.1, 100) + delta_P_smooth = linear_model(B2_smooth, k) + + # Построение на субплoте + ax.errorbar(B2, delta_P, xerr=sigma_B2, yerr=sigma_delta_P, + fmt='o', color=color, markersize=5, capsize=3, capthick=1, + label=f'Экспериментальные точки', zorder=5) + ax.plot(B2_smooth, delta_P_smooth, '-', color=color, linewidth=2, + label=f'Аппроксимация: k = {k:.2e} ± {dk:.2e} Н/Тл²') + + ax.set_xlabel('B², Тл²', fontsize=12) + ax.set_ylabel('|ΔP|, Н', fontsize=12) + ax.set_title(f'{material}', fontsize=14) + ax.grid(True, linestyle='--', alpha=0.7) + ax.legend(fontsize=10) + + # Добавление на общий график + ax_all.errorbar(B2, delta_P, xerr=sigma_B2, yerr=sigma_delta_P, + fmt='o', color=color, markersize=5, capsize=3, capthick=1, + label=f'{material}', zorder=5) + ax_all.plot(B2_smooth, delta_P_smooth, '-', color=color, linewidth=2) + + # Расчет магнитной восприимчивости + # Из формулы: F = χ * (B²/(2μ₀)) * S => χ = (2μ₀ * k) / S + chi = (2 * mu_0 * k) / S + dchi = (2 * mu_0 * dk) / S # погрешность χ + + # Сохранение результатов + results[material] = { + 'k': k, + 'dk': dk, + 'chi': chi, + 'dchi': dchi, + 'r_squared': r_squared, + 'S': S + } + +# Настройка общего графика +ax_all.set_xlabel('B², Тл²', fontsize=14) +ax_all.set_ylabel('|ΔP|, Н', fontsize=14) +ax_all.set_title('Зависимость силы |ΔP| от квадрата магнитной индукции B²', fontsize=16) +ax_all.grid(True, linestyle='--', alpha=0.7) +ax_all.legend(fontsize=12) + +# Сохранение графиков +plt.figure(fig.number) +plt.tight_layout() +plt.savefig('all_materials_separate.png', dpi=300, bbox_inches='tight') +plt.savefig('all_materials_separate.pdf', bbox_inches='tight') + +plt.figure(fig_all.number) +plt.tight_layout() +plt.savefig('all_materials_together.png', dpi=300, bbox_inches='tight') +plt.savefig('all_materials_together.pdf', bbox_inches='tight') + +# Вывод результатов +print("РЕЗУЛЬТАТЫ РАСЧЕТА МАГНИТНОЙ ВОСПРИИМЧИВОСТИ") +print("=" * 70) +print(f"{'Материал':<12} {'χ (эксп)':<15} {'σ_χ':<15} {'χ (табл)':<15} {'Отклонение':<15}") +print("-" * 70) + +# Табличные значения (справочные данные) +table_chi = { + 'Медь': -9.6e-6, + 'Алюминий': 2.2e-5, + 'Графит': -1.6e-5, # приблизительное значение для графита + 'Вольфрам': 7.8e-5 # приблизительное значение для вольфрама +} + +for material, res in results.items(): + table_value = table_chi.get(material, 0) + deviation = abs((res['chi'] - table_value) / table_value * 100) if table_value != 0 else 0 + + print(f"{material:<12} {res['chi']:+.2e} {res['dchi']:.2e} {table_value:+.2e} {deviation:>6.1f}%") + +print("\nДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:") +print("=" * 70) +for material, res in results.items(): + print(f"\n{material}:") + print(f" Коэффициент наклона k = {res['k']:.2e} ± {res['dk']:.2e} Н/Тл²") + print(f" Площадь сечения S = {res['S']:.2e} м²") + print(f" Коэффициент детерминации R² = {res['r_squared']:.4f}") + +# Показ графиков +plt.show() diff --git a/3.4.1/Kotlyarov_M/data/data.xlsx b/3.4.1/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..0f9fc460 Binary files /dev/null and b/3.4.1/Kotlyarov_M/data/data.xlsx differ diff --git a/3.4.1/Kotlyarov_M/main_3_4_1.pdf b/3.4.1/Kotlyarov_M/main_3_4_1.pdf new file mode 100644 index 00000000..fc7738f0 Binary files /dev/null and b/3.4.1/Kotlyarov_M/main_3_4_1.pdf differ diff --git a/3.4.1/Kotlyarov_M/main_3_4_1.tex b/3.4.1/Kotlyarov_M/main_3_4_1.tex new file mode 100644 index 00000000..d0ac6f09 --- /dev/null +++ b/3.4.1/Kotlyarov_M/main_3_4_1.tex @@ -0,0 +1,327 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage{multirow} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\usepackage{siunitx} +\usepackage{booktabs} +\sisetup{ + exponent-product = \cdot, + per-mode = symbol, + separate-uncertainty = true, + uncertainty-separator = \, +} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.4.1}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + +\section*{Введение} + +\subsection*{Цель работы} +Измерение магнитной восприимчивости диа- и парамагнитных образцов методом Гюи. + +\subsection*{Оборудование} +\begin{itemize} + \item Электромагнит с регулируемым источником постоянного тока + \item Аналитические весы + \item Милливеберметр + \item Образцы: медь, алюминий, графит, вольфрам + \item Измерительные пробные катушки +\end{itemize} + +\subsection*{Теоретическая часть} +Магнитная восприимчивость тел определяется по измерению сил, действующих на тела в магнитном поле. В методе Гюи используется тонкий длинный стержень, один конец которого помещают в зазор электромагнита, а другой --- вне зазора. + +Сила, действующая на цилиндрический образец в магнитном поле, определяется выражением: +\[ +F_M = \chi \frac{B_0^2}{2\mu_0} S +\] +где: +\begin{itemize} + \item $\chi$ --- магнитная восприимчивость образца + \item $B_0$ --- магнитная индукция в зазоре электромагнита + \item $\mu_0 = 4\pi \cdot 10^{-7}$ Гн/м --- магнитная постоянная + \item $S$ --- площадь поперечного сечения образца +\end{itemize} + +Парамагнетики ($\chi > 0$) вталкиваются в зазор электромагнита, диамагнетики ($\chi < 0$) выталкиваются из него. +\clearpage +\subsection*{Экспериментальная установка} + +\begin{figure}[h] + \centering + \includegraphics[scale=0.6]{Pictures/ustanovka.png} + \caption{Схема экспериментальной установки} +\end{figure} + + +Установка состоит из электромагнита с полюсами большого диаметра, создающего магнитное поле до 1 Тл в зазоре. Образцы поочерёдно подвешиваются к аналитическим весам так, что один конец находится в зазоре электромагнита, а другой --- вне его. Магнитное поле измеряется с помощью милливеберметра или датчика Холла. + + + +\section*{Ход работы} + +\begin{enumerate} + \item Проверим работу цепи питания электромагнита и оценим диапазон изменения тока через обмотки. + + \item Прокалибруем электромагнит. С помощью милливеберметра измерим зависимость магнитного потока $\Phi$ от тока $I$ через обмотки электромагнита. Рассчитаем магнитную индукцию по формуле $B = \frac{\Phi}{SN}$, где $SN = 72 \text{ см}^2$ --- постоянная пробной катушки. Построим градуировочную кривую электромагнита $B(I) = k \cdot I + b$. + +\begin{figure}[h] + \centering + \includegraphics[scale=0.6]{Graphics/градуировочная_кривая_B(I).png} + \caption{График 1. Градуировочную кривую электромагнита $B(I)$} +\end{figure} + +\clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|} + \hline + $I$, А & $\Delta \Phi$, мВб & $B$, Тл \\ \hline + 0,30 & 0,70 & 0,097 \\ \hline + 1,00 & 2,30 & 0,319 \\ \hline + 1,25 & 2,80 & 0,389 \\ \hline + 1,50 & 3,30 & 0,458 \\ \hline + 1,75 & 3,90 & 0,542 \\ \hline + 2,00 & 4,40 & 0,611 \\ \hline + 2,25 & 4,80 & 0,667 \\ \hline + 2,51 & 5,40 & 0,750 \\ \hline + 2,74 & 5,70 & 0,792 \\ \hline + 3,03 & 6,20 & 0,861 \\ \hline + \end{tabular} + \caption{Результаты калибровки электромагнита} + \label{tab:calibration} +\end{table} + + + +Параметры кривой: $k = 0,2801 \pm 0,0059 \ \frac{\text{Тл}}{\text{А}} \ (\varepsilon_k = 2,11 \%)$, $b = 0,0353 \pm 0,0119 \ (\varepsilon_b = 33,71 \%)$. + + \item Убедимся, что механические весы агрегированы. Проведём агрегирование перед каждым изменением тока. + + \item Измерим силы, действующие на образцы в магнитном поле. Для каждого образца: + \begin{itemize} + \item Подвесим образец к весам при выключенном электромагните + \item Установим примерное значение массы образца и добьёмся точного равновесия + \item Агрегируем весы + \item Установим минимальное значение тока и измерим равновесное значение массы + \item Повторим измерения для 8-10 значений тока + \end{itemize} + + \item Для каждого материала построим график зависимости $|\Delta P| = f(B^2)$. + + \item По наклону полученных прямых рассчитаем магнитную восприимчивость $\chi$ по формуле: + \[ + \chi = \frac{2\mu_0 k}{S} + \] + где $k$ --- коэффициент наклона графика $|\Delta P|(B^2)$. + + \item Оценим погрешности измерений и сравним экспериментальные результаты с табличными значениями. + + +\begin{table}[h!] + \centering + \begin{minipage}{0.48\textwidth} + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $I$, А & $B^2 \pm \sigma_{B^2}$, Тл$^2$ & $\varepsilon_{B^2}$, \% & $|\Delta P|$, $10^{-5}$ Н \\ \hline + 1,01 & $0,1013 \pm 0,0027$ & 2,66 & 1,98 \\ \hline + 1,09 & $0,1160 \pm 0,0031$ & 2,71 & 2,97 \\ \hline + 1,24 & $0,1464 \pm 0,0041$ & 2,79 & 3,96 \\ \hline + 1,50 & $0,2074 \pm 0,0062$ & 2,97 & 5,94 \\ \hline + 1,75 & $0,2761 \pm 0,0087$ & 3,15 & 7,93 \\ \hline + 2,01 & $0,3580 \pm 0,0120$ & 3,36 & 10,9 \\ \hline + 2,26 & $0,4467 \pm 0,0160$ & 3,57 & 12,9 \\ \hline + 2,51 & $0,5452 \pm 0,0207$ & 3,80 & 15,9 \\ \hline + 2,75 & $0,6490 \pm 0,0261$ & 4,02 & 17,8 \\ \hline + 3,00 & $0,7667 \pm 0,0327$ & 4,27 & 20,8 \\ \hline + \end{tabular} + \caption{Медь ($d = 1$ см)} + \label{tab:copper} + \end{minipage} + \hfill + \begin{minipage}{0.48\textwidth} + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $I$, А & $B^2 \pm \sigma_{B^2}$, Тл$^2$ & $\varepsilon_{B^2}$, \% & $|\Delta P|$, $10^{-5}$ Н \\ \hline + 0,75 & $0,06021 \pm 0,00153$ & 2,54 & 3,96 \\ \hline + 1,00 & $0,09948 \pm 0,00264$ & 2,66 & 5,94 \\ \hline + 1,25 & $0,1486 \pm 0,0042$ & 2,80 & 9,91 \\ \hline + 1,50 & $0,2074 \pm 0,0062$ & 2,97 & 13,9 \\ \hline + 1,75 & $0,2761 \pm 0,0087$ & 3,15 & 17,8 \\ \hline + 2,00 & $0,3546 \pm 0,0119$ & 3,35 & 22,8 \\ \hline + 2,25 & $0,4429 \pm 0,0158$ & 3,57 & 28,7 \\ \hline + 2,50 & $0,5410 \pm 0,0205$ & 3,79 & 34,7 \\ \hline + 2,76 & $0,6535 \pm 0,0264$ & 4,03 & 40,6 \\ \hline + 3,03 & $0,7815 \pm 0,0336$ & 4,30 & 46,6 \\ \hline + \end{tabular} + \caption{Алюминий ($d = 1$ см)} + \label{tab:aluminum} + \end{minipage} +\end{table} + +\begin{table}[h!] + \centering + \begin{minipage}{0.48\textwidth} + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $I$, А & $B^2 \pm \sigma_{B^2}$, Тл$^2$ & $\varepsilon_{B^2}$, \% & $|\Delta P|$, $10^{-5}$ Н \\ \hline + 0,65 & $0,04725 \pm 0,00118$ & 2,50 & 1,98 \\ \hline + 1,00 & $0,09948 \pm 0,00264$ & 2,66 & 5,94 \\ \hline + 1,25 & $0,1486 \pm 0,0042$ & 2,80 & 8,92 \\ \hline + 1,50 & $0,2074 \pm 0,0062$ & 2,97 & 13,9 \\ \hline + 1,75 & $0,2761 \pm 0,0087$ & 3,15 & 18,8 \\ \hline + 1,99 & $0,3513 \pm 0,0118$ & 3,34 & 23,8 \\ \hline + 2,25 & $0,4429 \pm 0,0158$ & 3,57 & 30,7 \\ \hline + 2,50 & $0,5410 \pm 0,0205$ & 3,79 & 37,6 \\ \hline + 2,75 & $0,6490 \pm 0,0261$ & 4,02 & 44,6 \\ \hline + 3,00 & $0,7667 \pm 0,0327$ & 4,27 & 50,5 \\ \hline + \end{tabular} + \caption{Графит ($d = 0,56$ см)} + \label{tab:graphite} + \end{minipage} + \hfill + \begin{minipage}{0.48\textwidth} + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $I$, А & $B^2 \pm \sigma_{B^2}$, Тл$^2$ & $\varepsilon_{B^2}$, \% & $|\Delta P|$, $10^{-4}$ Н \\ \hline + 0,50 & $0,03075 \pm 0,00075$ & 2,45 & 0,495 \\ \hline + 0,75 & $0,06021 \pm 0,00153$ & 2,54 & 1,19 \\ \hline + 0,99 & $0,09772 \pm 0,00259$ & 2,65 & 2,18 \\ \hline + 1,26 & $0,1507 \pm 0,0042$ & 2,81 & 3,37 \\ \hline + 1,50 & $0,2074 \pm 0,0062$ & 2,97 & 4,76 \\ \hline + 1,75 & $0,2761 \pm 0,0087$ & 3,15 & 6,54 \\ \hline + 2,00 & $0,3546 \pm 0,0119$ & 3,35 & 8,32 \\ \hline + 2,25 & $0,4429 \pm 0,0158$ & 3,57 & 10,3 \\ \hline + 2,50 & $0,5410 \pm 0,0205$ & 3,79 & 12,3 \\ \hline + 2,75 & $0,6490 \pm 0,0261$ & 4,02 & 14,4 \\ \hline + 3,00 & $0,7667 \pm 0,0327$ & 4,27 & 16,3 \\ \hline + \end{tabular} + \caption{Вольфрам ($d = 1$ см)} + \label{tab:tungsten} + \end{minipage} +\end{table} + + + +\begin{figure}[h] + \centering + \includegraphics[scale=0.5]{Graphics/all_materials_separate.png} + \caption{График 2. Графики зависимостей $|\Delta P|(B^2)$ для разных материалов.} +\end{figure} +\clearpage +\begin{figure}[h] + \centering + \includegraphics[scale=0.5]{Graphics/all_materials_together.png} + \caption{График 3. Сравнение всех графиков зависимостей $|\Delta P|(B^2)$ для разных материалов.} +\end{figure} + + +\item Параметры прямых и рассчитанные по ним восприимчивости $\chi$. +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|} + \hline + Материал & $k \pm \sigma_k$, Н/Тл$^2$ & $\chi \pm \sigma_\chi$ & $\varepsilon_\chi$, \% \\ \hline + Медь & $(-2,80 \pm 0,07) \cdot 10^{-4}$ & $(-8,96 \pm 0,24) \cdot 10^{-6}$ & 2,67 \\ \hline + Алюминий & $(6,23 \pm 0,07) \cdot 10^{-4}$ & $(1,99 \pm 0,02) \cdot 10^{-5}$ & 1,20 \\ \hline + Графит & $(-6,77 \pm 0,08) \cdot 10^{-4}$ & $(-6,90 \pm 0,77) \cdot 10^{-5}$ & 1,11 \\ \hline + Вольфрам & $(2,23 \pm 0,01) \cdot 10^{-3}$ & $(7,12 \pm 0,24) \cdot 10^{-5}$ & 0,34 \\ \hline + \end{tabular} + \caption{Результаты измерений магнитной восприимчивости} + \label{tab:results} +\end{table} +\end{enumerate} + +\section{Результаты и обсуждения} + +В ходе эксперимента были получены значения магнитной восприимчивости для четырёх материалов методом Гюи. Результаты измерений представлены в сравнительной таблице: + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|} + \hline + Материал & $\chi_{\text{эксп}}$, $10^{-6}$ & $\chi_{\text{табл}}$\footnotemark[1], $10^{-6}$ & Отклонение, \% \\ \hline + Медь & $-8,96 \pm 0,24$ & $-9,63$ & 6,96 \\ \hline + Алюминий & $19,9 \pm 0,2$ & $21,10$ & 5,69 \\ \hline + Графит & $-69,0 \pm 0,8$ & $-14,00$ & 392,86 \\ \hline + Вольфрам & $71,2 \pm 0,2$ & $88,40$ & 19,46 \\ \hline + \end{tabular} + \caption{Сравнение экспериментальных и табличных значений магнитной восприимчивости} + \label{tab:comparison} +\end{table} + +\footnotetext[1]{Табличные значения для материалов взяты из следующих источников: медь - \url{https://periodictable.com/Elements/029/data.html}, алюминий - \url{https://periodictable.com/Elements/013/data.html}, графит - \url{https://periodictable.com/Elements/006/data.html}, вольфрам - \url{https://periodictable.com/Elements/074/data.html}, дата обращения обращения 30.11.2025.} +Анализ полученных результатов показывает: + +\begin{itemize} + \item Для \textbf{меди} и \textbf{алюминия} экспериментальные значения хорошо согласуются с табличными данными. Отклонения составляют 6,96\% и 5,69\% соответственно, что находится в пределах ожидаемой погрешности эксперимента. + + \item Для \textbf{вольфрама} наблюдается большее расхождение (19,46\%), что может быть связано с особенностями образца или дополнительными систематическими погрешностями. + + \item Наибольшее расхождение отмечено для \textbf{графита} (392,86\%). Столь значительное отклонение может объясняться несколькими факторами: + \begin{itemize} + \item Неоднородность структуры графитового образца + \item Влияние примесей в материале + \item Особенности ориентации кристаллической решётки графита относительно магнитного поля + \item Меньший диаметр образца графита (0,56 см) по сравнению с другими материалами + \end{itemize} + + \item Экспериментально подтверждено, что медь и графит являются \textbf{диамагнетиками} ($\chi < 0$), а алюминий и вольфрам --- \textbf{парамагнетиками} ($\chi > 0$). + + \item Наименьшую относительную погрешность измерений показал вольфрам (0,34\%), что связано с большими значениями действующей на него силы и, соответственно, лучшей точностью измерений. +\end{itemize} + +\section{Выводы} + +В ходе лабораторной работы: + +\begin{enumerate} + \item Освоили метод Гюи для измерения магнитной восприимчивости материалов + \item Провели калибровку электромагнита, установив зависимость $B(I)$ + \item Измерили силы, действующие на образцы в магнитном поле + \item Определили магнитную восприимчивость четырёх материалов + \item Экспериментально подтвердили диамагнитные свойства меди и графита, парамагнитные --- алюминия и вольфрама + \item Получили хорошее согласие с табличными значениями для меди и алюминия + \item Обнаружили значительное расхождение для графита, требующее дополнительного исследования +\end{enumerate} + +Работа демонстрирует работоспособность метода Гюи для определения магнитной восприимчивости и важность контроля чистоты и геометрии образцов для получения точных результатов. +\end{document} \ No newline at end of file diff --git a/3.4.1/pdf/Kotlyarov_M.pdf b/3.4.1/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..fc7738f0 Binary files /dev/null and b/3.4.1/pdf/Kotlyarov_M.pdf differ diff --git a/3.4.2/Kotlyarov_M/Graphics/curie_point.png b/3.4.2/Kotlyarov_M/Graphics/curie_point.png new file mode 100644 index 00000000..9fa33f2a Binary files /dev/null and b/3.4.2/Kotlyarov_M/Graphics/curie_point.png differ diff --git a/3.4.2/Kotlyarov_M/Pictures/ustanovka_3_4_2.png b/3.4.2/Kotlyarov_M/Pictures/ustanovka_3_4_2.png new file mode 100644 index 00000000..1d5ec55e Binary files /dev/null and b/3.4.2/Kotlyarov_M/Pictures/ustanovka_3_4_2.png differ diff --git a/3.4.2/Kotlyarov_M/data/data.xlsx b/3.4.2/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..0f9fc460 Binary files /dev/null and b/3.4.2/Kotlyarov_M/data/data.xlsx differ diff --git a/3.4.2/Kotlyarov_M/data/tau_T.py b/3.4.2/Kotlyarov_M/data/tau_T.py new file mode 100644 index 00000000..4d423c33 --- /dev/null +++ b/3.4.2/Kotlyarov_M/data/tau_T.py @@ -0,0 +1,77 @@ +import numpy as np +import matplotlib.pyplot as plt +from scipy.stats import linregress + +# Экспериментальные данные +T = np.array([287.1, 289.05, 291.02, 293.06, 295.04, 297.01, 299.0, + 301.0, 303.06, 305.0, 307.0, 309.0, 311.0, 313.0]) +y = np.array([0.0660159459035131, 0.0696507103798537, 0.0763186603728153, + 0.0940507682435429, 0.126349485790949, 0.197434239003477, + 0.290230858331642, 0.368826401582281, 0.45342336362546, + 0.508423207430818, 0.570524414117494, 0.630163810389329, + 0.685329861872589, 0.732488766460717]) + +# Линейный участок: T >= 295.04 K +linear_mask = T >= 295.04 +T_lin = T[linear_mask] +y_lin = y[linear_mask] +N = len(T_lin) + +# Линейная регрессия +slope, intercept, r_value, p_value, std_err = linregress(T_lin, y_lin) + +# Параметр Вейсса +Theta_p = -intercept / slope + +# ---- Оценка погрешности Theta_p ---- +# 1. Остатки +y_pred = slope * T_lin + intercept +residuals = y_lin - y_pred +# 2. Оценка дисперсии остатков (несмещённая) +sigma2 = np.sum(residuals**2) / (N - 2) +sigma = np.sqrt(sigma2) + +# 3. Среднее T на линейном участке +T_mean = np.mean(T_lin) + +# 4. Сумма квадратов отклонений T +Sxx = np.sum((T_lin - T_mean)**2) + +# 5. Погрешность Theta_p при y=0 (точка пересечения с осью T) +# Формула: delta_Theta = (sigma / |slope|) * sqrt( 1/N + (T_mean**2) / Sxx ) +delta_Theta_p = (sigma / abs(slope)) * np.sqrt(1.0/N + (T_mean**2) / Sxx) + +# Точка Кюри — последняя точка, где начинается отклонение (ниже линейного участка) +Theta_K = T[~linear_mask][-1] # 293.06 K + +# Построение графика +T_ext = np.linspace(285, 320, 300) +y_ext = slope * T_ext + intercept + +plt.figure(figsize=(10, 7)) +plt.plot(T, y, 'bo', markersize=6, label=r'Эксперимент: $1/(\tau^2 - \tau_0^2)$') +plt.plot(T_ext, y_ext, 'r--', linewidth=2, label='Линейная экстраполяция (T ≥ 295 K)') + +plt.axvline(Theta_p, color='r', linestyle=':', linewidth=2, + label=r'$\Theta_p = %.2f \pm %.2f\ \mathrm{K}$' % (Theta_p, delta_Theta_p)) +plt.axvline(Theta_K, color='g', linestyle='-.', linewidth=2, + label=r'$\Theta_K \approx %.2f\ \mathrm{K}$' % Theta_K) + +plt.xlabel('Температура $T$, K') +plt.ylabel(r'$1/(\tau^2 - \tau_0^2)$, мкс$^{-2}$') +plt.title('Определение точки Кюри и параметра Вейсса с оценкой погрешности') +plt.grid(True, linestyle='--', alpha=0.6) +plt.xlim(285, 320) +plt.ylim(0, 0.8) +plt.legend() + +# Сохраняем +plt.savefig('curie_point.png', dpi=300, bbox_inches='tight') + +# Вывод результатов +print(f"Параметр Вейсса: Θₚ = {Theta_p:.2f} ± {delta_Theta_p:.2f} K") +print(f"Точка Кюри (начало отклонения от линейности): Θₖ ≈ {Theta_K:.2f} K") +print(f"Число точек в линейной регрессии: {N}") +print(f"Коэффициент корреляции R = {r_value:.4f}") + +plt.show() diff --git a/3.4.2/Kotlyarov_M/main_3_4_2.pdf b/3.4.2/Kotlyarov_M/main_3_4_2.pdf new file mode 100644 index 00000000..40cdc8a5 Binary files /dev/null and b/3.4.2/Kotlyarov_M/main_3_4_2.pdf differ diff --git a/3.4.2/Kotlyarov_M/main_3_4_2.tex b/3.4.2/Kotlyarov_M/main_3_4_2.tex new file mode 100644 index 00000000..efd145ed --- /dev/null +++ b/3.4.2/Kotlyarov_M/main_3_4_2.tex @@ -0,0 +1,210 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage{multirow} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\usepackage{siunitx} +\usepackage{booktabs} +\sisetup{ + exponent-product = \cdot, + per-mode = symbol, + separate-uncertainty = true, + uncertainty-separator = \, +} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.4.2}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + +\section*{Введение} + +\subsection*{Цель работы} +Изучение температурной зависимости магнитной восприимчивости ферромагнетика (гадолиния) выше точки Кюри и проверка выполнения закона Кюри–Вейсса. Определение парамагнитной точки Кюри $\Theta_p$ и ферромагнитной точки Кюри $\Theta_K$. + +\subsection*{Оборудование} +\begin{itemize} + \item Катушка самоиндукции с образцом из гадолиния + \item Термостат + \item Частотомер + \item Цифровой вольтметр + \item LC-автогенератор + \item Термопара медь–константан +\end{itemize} + +\subsection*{Теоретическая часть} +Вещества с ненулевыми атомными магнитными моментами обладают парамагнитными свойствами. При повышении температуры магнитная восприимчивость парамагнетиков убывает по закону Кюри: +\[ +\chi \propto \frac{1}{T}. +\] +Ферромагнетики выше температуры Кюри $\Theta_K$ подчиняются закону Кюри–Вейсса: +\[ +\chi \propto \frac{1}{T - \Theta_p}, +\] +где $\Theta_p$ — парамагнитная точка Кюри, близкая к $\Theta_K$. + +В данной работе используется зависимость индуктивности катушки с образцом от магнитной проницаемости: +\[ +L - L_0 \propto \mu - 1 = \chi, +\] +а также связь периода колебаний $LC$-генератора с индуктивностью: +\[ +\tau = 2\pi \sqrt{LC}. +\] +Отсюда получаем: +\[ +\chi \propto \tau^2 - \tau_0^2. +\] +Таким образом, закон Кюри–Вейсса принимает вид: +\[ +\frac{1}{\tau^2 - \tau_0^2} \propto T - \Theta_p. +\] + +\subsection*{Экспериментальная установка} + +\begin{figure}[h] + \centering + \includegraphics[scale=0.7]{Pictures/ustanovka_3_4_2.png} + \caption{График 3. Схема экспериментальной установки.} +\end{figure} + +Образец гадолиния помещён внутрь пустотелой катушки самоиндукции, которая является частью колебательного контура $LC$-автогенератора. Катушка с образцом находится в стеклянном сосуде с трансформаторным маслом, помещённом в термостат. Температура образца контролируется с помощью термопары. Период колебаний генератора измеряется частотомером. + +\subsection*{Ход работы} +\begin{enumerate} + \item Подготовим приборы к работе. + \item Оценим допустимую ЭДС термопары при $\Delta T = 0.5^\circ\text{C}$. +\item Измерим период колебаний без образца: $\tau_0 = 6,90920$ мкс. + \item Измерим зависимость периода колебаний $\tau$ от температуры $T$ в диапазоне от $14^\circ\text{C}$ до $40^\circ\text{C}$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|} + \hline + $T$, К & $\tau$, мкс & $\frac{1}{\tau^2 - \tau_0^2}$, мкс$^{-1}$ \\ \hline + 287,10 & 7,93 & 0,0660 \\ \hline + 289,05 & 7,88 & 0,0697 \\ \hline + 291,02 & 7,80 & 0,0763 \\ \hline + 293,06 & 7,64 & 0,0941 \\ \hline + 295,04 & 7,46 & 0,1264 \\ \hline + 297,01 & 7,27 & 0,1974 \\ \hline + 299,00 & 7,15 & 0,2902 \\ \hline + 301,00 & 7,10 & 0,3688 \\ \hline + 303,06 & 7,07 & 0,4534 \\ \hline + 305,00 & 7,05 & 0,5084 \\ \hline + 307,00 & 7,03 & 0,5705 \\ \hline + 309,00 & 7,02 & 0,6302 \\ \hline + 311,00 & 7,01 & 0,6853 \\ \hline + 313,00 & 7,01 & 0,7325 \\ \hline + \end{tabular} + \caption{Зависимость периода колебаний контура от температуры образца} + \label{tab:relaxation} +\end{table} + + \item Построим график зависимости $\frac{1}{\tau^2 - \tau_0^2} = f(T)$. Экстраполируем прямую к оси абсцисс и определим $\Theta_p$. +\clearpage +\begin{figure}[h] + \centering + \includegraphics[scale=0.8]{Graphics/curie_point.png} + \caption{График 1. Зависимость $\frac{1}{\tau^2 - \tau_0^2} = f(T) \propto \frac{1}{\chi}$} +\end{figure} + +Получилось, что $\Theta_p = 290,62 \pm 10,46$ К, $\Theta_K \approx 293$ К. +\end{enumerate} + + + + + + + + + + + + + + + + + + + + + + + + +\section*{Результаты и их обсуждение} + +В ходе выполнения работы была исследована температурная зависимость периода колебаний $LC$-генератора с образцом гадолиния. По полученным данным построен график зависимости $\frac{1}{\tau^2 - \tau_0^2} = f(T)$, линейный участок которого аппроксимирован прямой линией. + +Экстраполяция линейного участка к оси абсцисс позволила определить парамагнитную точку Кюри: +\[ +\Theta_p = (290,\!62 \pm 10,\!46)\ \text{К} +\] + +Анализ отклонения от линейной зависимости в области низких температур показал, что ферромагнитная точка Кюри составляет: +\[ +\Theta_K \approx 293\ \text{К} +\] + +Сравнение с табличным значением точки Кюри для гадолиния ($293,\!2$ К) показывает хорошее согласие в пределах погрешности: + +\begin{itemize} + \item Значение $\Theta_K$ практически совпадает с табличным (отличие менее 0,7\%) + \item Значение $\Theta_p$ оказалось ниже табличной точки Кюри, что соответствует теоретическим представлениям + \item Погрешность определения $\Theta_p$ составляет около 3,6\%, что является удовлетворительным результатом для данной экспериментальной установки +\end{itemize} + +Различие между $\Theta_p$ и $\Theta_K$ объясняется тем, что парамагнитная точка Кюри определяется по поведению восприимчивости в парамагнитной области, в то время как ферромагнитная точка Кюри соответствует фактическому фазовому переходу. + +Основными источниками погрешности могли быть: +\begin{itemize} + \item Неидеальность теплового контакта образца с термостатом + \item Наличие паразитных ЭДС в цепи термопары + \item Влияние вихревых токов в образце, несмотря на его измельчение + \item Погрешности измерения периода колебаний и температуры +\end{itemize} + +\section*{Выводы} + +\begin{enumerate} + \item Экспериментально исследована температурная зависимость магнитной восприимчивости гадолиния выше точки Кюри + \item Подтверждён закон Кюри–Вейсса для ферромагнетика в парамагнитной области + \item Определена парамагнитная точка Кюри: $\Theta_p = (290,\!62 \pm 10,\!46)$ К + \item Оценена ферромагнитная точка Кюри: $\Theta_K \approx 293$ К + \item Полученные значения хорошо согласуются с табличными данными для гадолиния +\end{enumerate} +\end{document} \ No newline at end of file diff --git a/3.4.2/pdf/Kotlyarov_M.pdf b/3.4.2/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..40cdc8a5 Binary files /dev/null and b/3.4.2/pdf/Kotlyarov_M.pdf differ diff --git a/3.4.5/Kotlyarov_M/Graphics/Gistr_ferrit.jpg b/3.4.5/Kotlyarov_M/Graphics/Gistr_ferrit.jpg new file mode 100644 index 00000000..35ece40d Binary files /dev/null and b/3.4.5/Kotlyarov_M/Graphics/Gistr_ferrit.jpg differ diff --git a/3.4.5/Kotlyarov_M/Graphics/Gistr_krem_zheleza.jpg b/3.4.5/Kotlyarov_M/Graphics/Gistr_krem_zheleza.jpg new file mode 100644 index 00000000..be530391 Binary files /dev/null and b/3.4.5/Kotlyarov_M/Graphics/Gistr_krem_zheleza.jpg differ diff --git a/3.4.5/Kotlyarov_M/Graphics/Gistr_perm.jpg b/3.4.5/Kotlyarov_M/Graphics/Gistr_perm.jpg new file mode 100644 index 00000000..062cae02 Binary files /dev/null and b/3.4.5/Kotlyarov_M/Graphics/Gistr_perm.jpg differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\232\321\200\320\265\320\274\320\275\320\270\321\201\321\202\320\276\320\265_\320\266\320\265\320\273\320\265\320\267\320\276_B_H.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\232\321\200\320\265\320\274\320\275\320\270\321\201\321\202\320\276\320\265_\320\266\320\265\320\273\320\265\320\267\320\276_B_H.png" new file mode 100644 index 00000000..06558b36 Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\232\321\200\320\265\320\274\320\275\320\270\321\201\321\202\320\276\320\265_\320\266\320\265\320\273\320\265\320\267\320\276_B_H.png" differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\232\321\200\320\265\320\274\320\275\320\270\321\201\321\202\320\276\320\265_\320\266\320\265\320\273\320\265\320\267\320\276_mu_diff.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\232\321\200\320\265\320\274\320\275\320\270\321\201\321\202\320\276\320\265_\320\266\320\265\320\273\320\265\320\267\320\276_mu_diff.png" new file mode 100644 index 00000000..26df712e Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\232\321\200\320\265\320\274\320\275\320\270\321\201\321\202\320\276\320\265_\320\266\320\265\320\273\320\265\320\267\320\276_mu_diff.png" differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\237\320\265\321\200\320\274\320\260\320\273\320\273\320\276\320\271_B_H.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\237\320\265\321\200\320\274\320\260\320\273\320\273\320\276\320\271_B_H.png" new file mode 100644 index 00000000..0a459224 Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\237\320\265\321\200\320\274\320\260\320\273\320\273\320\276\320\271_B_H.png" differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\237\320\265\321\200\320\274\320\260\320\273\320\273\320\276\320\271_mu_diff.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\237\320\265\321\200\320\274\320\260\320\273\320\273\320\276\320\271_mu_diff.png" new file mode 100644 index 00000000..d453ed4f Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\237\320\265\321\200\320\274\320\260\320\273\320\273\320\276\320\271_mu_diff.png" differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\244\320\265\321\200\321\200\320\270\321\202_B_H.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\244\320\265\321\200\321\200\320\270\321\202_B_H.png" new file mode 100644 index 00000000..59f70a99 Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\244\320\265\321\200\321\200\320\270\321\202_B_H.png" differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\244\320\265\321\200\321\200\320\270\321\202_mu_diff.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\244\320\265\321\200\321\200\320\270\321\202_mu_diff.png" new file mode 100644 index 00000000..0fa13007 Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\244\320\265\321\200\321\200\320\270\321\202_mu_diff.png" differ diff --git "a/3.4.5/Kotlyarov_M/Graphics/\320\272\321\200\320\270\320\262\321\213\320\265_\320\275\320\260\320\274\320\260\320\263\320\275\320\270\321\207\320\270\320\262\320\260\320\275\320\270\321\217.png" "b/3.4.5/Kotlyarov_M/Graphics/\320\272\321\200\320\270\320\262\321\213\320\265_\320\275\320\260\320\274\320\260\320\263\320\275\320\270\321\207\320\270\320\262\320\260\320\275\320\270\321\217.png" new file mode 100644 index 00000000..159cffb2 Binary files /dev/null and "b/3.4.5/Kotlyarov_M/Graphics/\320\272\321\200\320\270\320\262\321\213\320\265_\320\275\320\260\320\274\320\260\320\263\320\275\320\270\321\207\320\270\320\262\320\260\320\275\320\270\321\217.png" differ diff --git a/3.4.5/Kotlyarov_M/Pictures/1.png b/3.4.5/Kotlyarov_M/Pictures/1.png new file mode 100644 index 00000000..fd7fffcb Binary files /dev/null and b/3.4.5/Kotlyarov_M/Pictures/1.png differ diff --git a/3.4.5/Kotlyarov_M/Pictures/2.png b/3.4.5/Kotlyarov_M/Pictures/2.png new file mode 100644 index 00000000..68224ada Binary files /dev/null and b/3.4.5/Kotlyarov_M/Pictures/2.png differ diff --git a/3.4.5/Kotlyarov_M/Pictures/3.png b/3.4.5/Kotlyarov_M/Pictures/3.png new file mode 100644 index 00000000..fc8b4abf Binary files /dev/null and b/3.4.5/Kotlyarov_M/Pictures/3.png differ diff --git a/3.4.5/Kotlyarov_M/Pictures/Int_chain.png b/3.4.5/Kotlyarov_M/Pictures/Int_chain.png new file mode 100644 index 00000000..8b4208a2 Binary files /dev/null and b/3.4.5/Kotlyarov_M/Pictures/Int_chain.png differ diff --git a/3.4.5/Kotlyarov_M/Pictures/magnetic_curve.png b/3.4.5/Kotlyarov_M/Pictures/magnetic_curve.png new file mode 100644 index 00000000..e491406e Binary files /dev/null and b/3.4.5/Kotlyarov_M/Pictures/magnetic_curve.png differ diff --git a/3.4.5/Kotlyarov_M/Pictures/ustanovka.png b/3.4.5/Kotlyarov_M/Pictures/ustanovka.png new file mode 100644 index 00000000..c41abe10 Binary files /dev/null and b/3.4.5/Kotlyarov_M/Pictures/ustanovka.png differ diff --git a/3.4.5/Kotlyarov_M/data/data.ods b/3.4.5/Kotlyarov_M/data/data.ods new file mode 100644 index 00000000..3f711396 Binary files /dev/null and b/3.4.5/Kotlyarov_M/data/data.ods differ diff --git a/3.4.5/Kotlyarov_M/data/data.xlsx b/3.4.5/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..a803cd2a Binary files /dev/null and b/3.4.5/Kotlyarov_M/data/data.xlsx differ diff --git a/3.4.5/Kotlyarov_M/data/magnetic_curve.py b/3.4.5/Kotlyarov_M/data/magnetic_curve.py new file mode 100644 index 00000000..32fe1503 --- /dev/null +++ b/3.4.5/Kotlyarov_M/data/magnetic_curve.py @@ -0,0 +1,97 @@ +import numpy as np +import matplotlib.pyplot as plt +import os + +# Константа +mu_0 = 4 * np.pi * 1e-7 # Гн/м + +# Данные +materials = { + "Пермаллой": { + "H": [50.0, 33.3, 30.6, 27.8, 27.8, 25.0, 22.2], + "B": [0.337, 0.295, 0.232, 0.189, 0.126, 0.074, 0.021] + }, + "Феррит": { + "H": [37.3, 28.0, 13.1, 11.2], + "B": [0.200, 0.160, 0.027, 0.013] + }, + "Кремнистое железо": { + "H": [400.0, 293.3, 240.0, 186.7, 120.0, 80.0, 40.0], + "B": [0.833, 0.708, 0.667, 0.583, 0.417, 0.333, 0.167] + } +} + +# Создаём папку для графиков +output_dir = "../Graphics" +os.makedirs(output_dir, exist_ok=True) + +print("=" * 60) +print("Расчёт начальной и максимальной дифференциальной проницаемости") +print("=" * 60) + +results = {} + +for name, data in materials.items(): + H = np.array(data["H"]) + B = np.array(data["B"]) + + # Убираем дубликаты H, оставляя максимальное B + unique_H = [] + unique_B = [] + seen = {} + for h, b in zip(H, B): + if h not in seen or b > seen[h]: + seen[h] = b + if h not in unique_H: + unique_H.append(h) + unique_B.append(b) + else: + idx = unique_H.index(h) + unique_B[idx] = b + + # Сортируем по H + sorted_indices = np.argsort(unique_H) + H_sorted = np.array(unique_H)[sorted_indices] + B_sorted = np.array(unique_B)[sorted_indices] + + # Численная производная dB/dH + dB_dH = np.gradient(B_sorted, H_sorted) # численная производная + + # Дифференциальная проницаемость + mu_diff = dB_dH / mu_0 + + # Начальная проницаемость — в первой точке (минимальное H) + mu_initial = mu_diff[0] + + # Максимальная проницаемость — максимум по всем точкам + mu_max = np.max(mu_diff) + + # Сохраняем результаты + results[name] = { + "mu_initial": mu_initial, + "mu_max": mu_max, + "H_sorted": H_sorted, + "mu_diff": mu_diff + } + + print(f"\n{name}:") + print(f" Начальная μ_диф = {mu_initial:.1f}") + print(f" Максимальная μ_диф = {mu_max:.1f}") + + # --- Построение графика μ_диф(H) --- + plt.figure(figsize=(10, 6)) + plt.plot(H_sorted, mu_diff, marker='o', linestyle='-', color='purple', linewidth=2, markersize=6) + plt.title(f"Дифференциальная проницаемость: {name}", fontsize=16) + plt.xlabel("H, А/м", fontsize=12) + plt.ylabel("μ_диф", fontsize=12) + plt.grid(True, linestyle='--', alpha=0.7) + plt.tight_layout() + + filename = f"{name.replace(' ', '_')}_mu_diff.png" + filepath = os.path.join(output_dir, filename) + plt.savefig(filepath, dpi=300, bbox_inches='tight') + print(f" График сохранён: {filepath}") + + plt.close() + +print("\n" + "=" * 60) diff --git a/3.4.5/Kotlyarov_M/main.pdf b/3.4.5/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..1d3c4766 Binary files /dev/null and b/3.4.5/Kotlyarov_M/main.pdf differ diff --git a/3.4.5/Kotlyarov_M/main.tex b/3.4.5/Kotlyarov_M/main.tex new file mode 100644 index 00000000..67d893e1 --- /dev/null +++ b/3.4.5/Kotlyarov_M/main.tex @@ -0,0 +1,447 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} + +\title{\textbf{Отчет о выполнении лабораторной работы 3.4.5}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + + \section{Введение} + + \textbf{Цель работы:} изучение петель гистерезиса различных ферромагнитных материалов в переменных полях;\\ + + \textbf{Оборудование:} автотрансформатор, понижающий трансформатор, интегрирующая ячейка, амперметр и вольтметр, резистор, делитель напряжения, электронный осциллограф, тороидальные образцы с двумя обмотками. + + \section{Теоретические сведения} + +\subsection*{Магнитное поле в веществе и его микроскопическая природа} + +Вещество может обладать как собственной намагниченностью, так и изменять свою намагниченность под действием внешнего магнитного поля. Микроскопическими источниками магнитного поля в среде являются орбитальное движение электронов в атомах и молекулах, а также их собственный спин. В рамках классического подхода каждый элемент объёма вещества можно рассматривать как магнитный диполь, обладающий магнитным моментом. Для описания усреднённых макроскопических свойств среды вводится \textbf{вектор намагниченности} $\vec{J}$, равный магнитному моменту единичного объёма вещества. + +Магнитное поле в веществе характеризуется двумя основными векторами: \textbf{магнитной индукцией} $\vec{B}$ и \textbf{напряжённостью магнитного поля} $\vec{H}$. Величина $\vec{B}$ — это полная магнитная индукция, измеряемая в теслах (Тл), и она определяется как предел отношения суммарного магнитного потока через малый объём к его объёму: +\begin{equation} +\vec{B} = \lim_{\Delta V \to 0} \frac{\sum \vec{B}_{\text{микро}}}{\Delta V}. +\end{equation} +Вектор $\vec{H}$ вводится как вспомогательная величина, связанная с токами проводимости, и определяется соотношением: +\begin{equation} +\vec{B} = \mu_0 (\vec{H} + \vec{M}), +\end{equation} +где $\mu_0 = 4\pi \cdot 10^{-7}$~Гн/м — магнитная постоянная. Отсюда следует, что $\vec{H}$ зависит только от свободных токов, тогда как $\vec{B}$ учитывает как свободные, так и связанные (индукционные) токи. + +В простейшем случае намагниченность пропорциональна напряжённости поля: +\begin{equation} +\vec{M} = \chi \vec{H}, +\end{equation} +где $\chi$ — \textbf{магнитная восприимчивость}, безразмерная величина, характеризующая реакцию вещества на внешнее поле. Тогда: +\begin{equation} +\vec{B} = \mu_0 (1 + \chi)\vec{H} = \mu_0 \mu \vec{H}, +\end{equation} +где $\mu = 1 + \chi$ — относительная магнитная проницаемость. Заметим, что это линейное соотношение справедливо лишь для диа- и парамагнетиков; в ферромагнетиках зависимость $\vec{M}(\vec{H})$ нелинейна и сопровождается гистерезисом. + +\subsection*{Диамагнетизм} + +Диамагнетизм ($\chi < 0$) — универсальное явление, присущее всем веществам, но проявляющееся наиболее ярко у веществ, не имеющих собственных магнитных моментов (например, Bi, Cu). Природа диамагнетизма — электромагнитная индукция: при включении внешнего магнитного поля $\vec{B}$ в атомах возникают индуцированные токи , которые создают магнитный момент, направленный против поля. + +\begin{equation} +\chi_{\text{диа}} \sim -\mu_0 \frac{e^2 a^2 Z n}{4 m_e}, +\end{equation} +где $a$ — среднее расстояние между электронами и ядром, $Z$ — заряд ядра, $n$ — плотность атомов. Диамагнитная восприимчивость не зависит от температуры и имеет порядок $10^{-6}$, что делает её слабым эффектом. + +\subsection*{Парамагнетизм} + +Парамагнетики ($\chi > 0$) — вещества, содержащие атомы или ионы с собственным магнитным моментом (например, O$_2$, Al). В отсутствие внешнего поля эти моменты ориентированы хаотично из-за теплового движения, поэтому средняя намагниченность равна нулю. При включении поля $\vec{H}$ происходит преимущественная ориентация моментов по полю, что приводит к положительной намагниченности. + +Сила, действующая на магнитный момент $\vec{m}$ в неоднородном поле, стремится выстроить его по направлению $\vec{B}$. Однако тепловое движение препятствует полной ориентации. В классической модели средний момент направлен по полю, и восприимчивость оказывается обратно пропорциональной температуре (закон Кюри): +\begin{equation} +\chi \propto \frac{1}{T}. +\end{equation} +Парамагнетизм характеризуется малой восприимчивостью ($\chi \sim 10^{-3} - 10^{-5}$) и отсутствием гистерезиса. + +\subsection*{Ферромагнетизм} + +Помимо диа- и парамагнетиков, в природе существуют вещества, способные сильно намагничиваться даже в небольших полях. Такие вещества относят к классу \textbf{ферромагнетиков}. Это — железо, никель, кобальт, гадолиний и их многочисленные сплавы. Ферромагнитными свойствами обладают некоторые сплавы элементов, которые порознь не являются ферромагнитными (например, сплавы меди и марганца), и ряд неметаллических веществ (ферриты). Ферромагнитные явления сложны и многообразны, и мы ограничимся изложением лишь некоторых основных фактов. + +Зависимость намагниченности $M$ от напряжённости магнитного поля $H$ у всех ферромагнетиков оказывается \textbf{нелинейной}: магнитная восприимчивость $\chi$ не является константой и зависит от $H$. + +Как и в случае парамагнетиков, атомы ферромагнетика обладают собственным магнитным моментом. Однако даже в отсутствие внешнего магнитного поля атомы ферромагнетика способны образовывать упорядоченные структуры (\textbf{домены}), в которых все магнитные моменты ориентированы практически в одном направлении. Таким образом, каждый отдельный атом испытывает влияние не только внешнего поля, но и поля, созданного коллективом его соседей. + +\subsection*{Образование доменов} +Остановимся кратко на причине, по которой соседним магнитным моментам выгодно объединяться в домены. В первую очередь подчеркнём, что магнитное (диполь-дипольное) взаимодействие между атомами не может привести к упорядочению системы, т.к. тепловое движение обеспечит полное разупорядочение уже при $T \sim 1$~К. + +Единственное взаимодействие, которое способно выстроить в ряд магнитные моменты электронов в атомах при температурах порядка комнатной, — это \textbf{электростатическое взаимодействие} (его энергия на несколько порядков больше магнитной: $e^2/(4\pi\varepsilon_0 a) \sim 1$~эВ). Как следует из квантовой механики, если магнитные моменты (или спины) электронов соседних атомов сонаправлены, их электростатическая отталкивание становится меньше. Таким образом, магнитным моментам атомов энергетически выгодно ориентироваться в одном направлении. Такое явление получило название \textbf{обменного взаимодействия}. + +С другой стороны, магнитное диполь-дипольное взаимодействие между доменами препятствует выстраиванию всех магнитных моментов среды в одном направлении. Действительно, энергия такого взаимодействия будет минимальной при антитпараллельном расположении магнитных моментов соседних элементов среды. Поэтому при определённом поперечном размере домена оказывается энергетически выгодно иметь соединённый домен с противоположно ориентированным моментом. + +Наложение внешнего поля заставляет домены ориентироваться по нему, что приводит к резкому увеличению намагниченности образца, а при достаточно большом поле достигается состояние \textbf{насыщения}, когда все домены ориентируются по полю. + +\subsection*{Ферромагнитный гистерезис} + +Если состояние некоторой системы зависит не только от мгновенных значений внешних параметров, но и от истории их изменений, говорят, что в системе имеет место \textbf{гистерезис}. Именно такими свойствами обладает магнитный момент ферромагнитного образца как функция напряжённости поля $M(H)$. В частности, система может оказаться намагниченной, даже когда внешнее поле выключено — этим объясняется существование постоянных магнитов. +\textbf{Кривая намагничивания}. Пусть ферромагнетик находится в ненамагниченном состоянии ($M = 0$). Медленно увеличивая поле $H$ в образце, получим зависимость $M(H)$, которую называют \textbf{начальной кривой намагничивания}. Эту кривую обычно разделяют на пять условных участков (рис. 1). + +\begin{figure}[h] + \center{\includegraphics[width=0.5\textwidth]{Pictures/magnetic_curve.png}} + \caption{Рис 1. Начальная кривая намагничивания ферромагнетика.} +\end{figure} + +Участок 1 — область \textbf{обратимого намагничивания}, где $M = \chi H$. В этой области происходят процессы упругого смещения границ доменов: увеличивается размер тех доменов, магнитный момент которых близок к направлению магнитного поля, и уменьшаются размеры доменов с противоположным направлением магнитного момента. + +Участок 2 характеризуется квадратичной зависимостью $M$ от $H$. В этой области также идёт процесс обратимого смещения границ, но проявляется нелинейный характер зависимости намагниченности от поля. + +Область максимальной скорости роста намагниченности 3 соответствует \textbf{необратимым смещениям стенок между доменами}: им приходится преодолевать «препятствия» в виде примесей, дислокаций и дефектов кристаллической решётки. Когда стенка наталкивается на такое препятствие, она останавливается и держится, пока поле не достигнет порогового значения, при котором она внезапно срывается. Таким образом, движение доменной стенки приобретает скачкообразный характер. + +В достаточно сильных полях движение стенок прекращается, и энергетически выгодным становится поворот магнитных моментов тех оставшихся доменов, у которых магнитный момент не совпадает с направлением поля (область 4). + +И, наконец, при некотором значении поля (участок 5) все магнитные моменты выстраиваются по полю — намагниченность достигает \textbf{насыщения} ($M = M_s$). + +Наклон кривой намагничивания характеризуется \textbf{дифференциальной магнитной проницаемостью}: +\begin{equation} +\mu_{\mathrm{диф}} = \frac{1}{\mu_0} \frac{dB}{dH}. +\end{equation} +С ростом $H$ величина $\mu_{\mathrm{диф}}$ сначала растёт (этому соответствуют участки 1 и 2 на рис. 1), затем (с середины участка 3) начинает резко падать, приближаясь к единице при насыщении. + +\begin{figure}[h] + \center{\includegraphics[width=0.5\textwidth]{Pictures/1.png}} + \caption{Рис 2. Начальная кривая намагничивания и предельная петля гистерезиса} +\end{figure} +\textbf{Явление гистерезиса}. Доведём систему до некоторой точки $A$, лежащей в области насыщения (здесь $B_s$ — \textbf{индукция насыщения}), и начнём уменьшать напряжённость $H$. Поскольку между доменами есть трение, обратный путь пойдёт не по начальной кривой, а \textit{иначе}. + +При выключении внешнего поля, то есть при достижении $H = 0$, в образце сохраняется некоторое собственное намагничивание. Соответствующее значение индукции $B_r$ называют \textbf{остаточной индукцией}. + +Значение $B = 0$ достигается лишь при некотором отрицательном значении $H = -H_c$. Величина $H_c$ называется \textbf{коэрцитивным полем}. Среди ферромагнетиков принято различать \textbf{магнитомягкие} ($H_c \lesssim 1$~кА/м) и \textbf{магнитотвёрдые} ($H_c > 10$~кА/м) материалы. В точке $C$ наступает насыщение для намагничивания в противоположную сторону. + +Если теперь попробовать вернуться в точку $A$, вновь наращивая поле, получим повторный замкнутый цикл (предельную петлю) — \textbf{петлю гистерезиса}. Если в точке $A$ насыщение не достигается, то аналогичным образом получится цикл меньшей площади. + +Отметим, что площадь петли гистерезиса ферромагнетика на плоскости $H$--$B$ есть энергия, \textbf{необратимо} выделяющаяся в виде тепла в единице объёма вещества за один цикл: +\begin{equation} +\Delta w = -\oint H dB +\end{equation} + +\subsection*{Измерение магнитной индукции} + +Магнитную индукцию $B$ удобно определять с помощью ЭДС, возникающей при изменении магнитного потока $\Phi$ в катушке, намотанной на образец. Пусть катушка с $N$ витками имеет охватываемое сечением $S$ и индукция $B$ в образце однородна. Имеем: +\begin{equation} +|B| = \frac{1}{SN} \int \varepsilon dt. +\end{equation} + +Таким образом, для определения $B$ нужно проинтегрировать сигнал, наведённый меняющимся магнитным полем в измерительной катушке, намотанной на образец. + +Для интегрирования в работе используется \textbf{интегрирующая $RC$-цепочка} (рис. 3). «Входное» напряжение от источника $U_{\mathrm{вх}}(t)$ подаётся на последовательно соединённые резистор $R_{\text{и}}$ и конденсатор $C_{\text{и}}$. «Выходное» напряжение $U_{\mathrm{вых}}(t)$ снимается с конденсатора. + +\begin{figure}[h] + \center{\includegraphics[width=0.3\textwidth]{Pictures/Int_chain.png}} + \caption{Рис 3. Начальная кривая намагничивания и предельная петля гистерезиса} +\end{figure} + +Предположим, что 1) сопротивление источника мало по сравнению с $R_{\text{и}}$, 2) выходное сопротивление (сопротивление на входе осциллографа), напротив, велико: $R_{\mathrm{вых}} \gg R_{\text{и}}$, и, наконец, 3) сопротивление $R_{\text{и}}$ достаточно велико, так что $U_{\mathrm{вых}} \ll U_{\mathrm{вх}}$. В таком случае ток цепи равен $I = (U_{\mathrm{вх}} - U_{\mathrm{вых}})/R_{\text{и}} \approx U_{\mathrm{вх}}/R_{\text{и}}$, и входное и выходное напряжения связаны соотношением: +\begin{equation} +U_{\mathrm{вых}} = \frac{q}{C_{\text{и}}} = \frac{1}{C_{\text{и}}} \int_0^t I dt \approx \frac{1}{\tau_{\text{и}}} \int_0^t U_{\mathrm{вх}} dt, +\end{equation} +где $\tau_{\text{и}} = R_{\text{и}} C_{\text{и}}$ — постоянная времени $RC$-цепочки. Для индукции поля из (9) получаем: +\begin{equation} +|B| = \frac{1}{SN} \left| \int U_{\mathrm{вх}} dt \right| = \frac{\tau_{\text{и}}}{SN} U_{\mathrm{вых}}, +\end{equation} + +\section*{Экспериментальная установка} + +Схема установки изображена на рис.~4. Напряжение сети (220~В, 50~Гц) с помощью трансформаторного блока $T$, состоящего из регулировочного автотрансформатора и разделительного понижающего трансформатора, подаётся на намагничивающую обмотку $N_0$ исследуемого образца. +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Pictures/ustanovka.png}} + \caption{Рис 3. Схема установки} +\end{figure} +В цепь намагничивающей катушки, на которую подаётся некоторое напряжение $U_0$, последовательно включено сопротивление $R_0$. Напряжение на $R_0$, равное $U_R = R_0 I_0$, где $I_0$ — ток в намагничивающей обмотке $N_0$, подаётся на канал $X$ осциллографа. Связь напряжённости $H$ в образце и тока $I_0$ рассчитывается по теореме о циркуляции. + +Действующее значение переменного тока в обмотке $N_0$ измеряется амперметром $A$. + +Для измерения магнитной индукции $B$ в измерительной обмотке $N_{\text{и}}$ на вход интегрирующей ячейки подаётся напряжение $U_{\mathrm{вх}}(U_{\mathrm{вх}})$, пропорциональное производной $dB/dt$. С интегрирующей ячейки $C_{\text{и}}$ снимается напряжение $U_C(U_{\mathrm{вых}})$, пропорциональное величине $B$, и подаётся на канал $Y$ осциллографа. Значение индукции поля $B$ рассчитывается по формуле (11). + +Замкнутая кривая, возникающая на экране, воспроизводит в некотором масштабе (различном для осей $X$ и $Y$) петлю гистерезиса. Чтобы придать этой кривой количественный смысл, необходимо установить масштабы изображения, т.~е. провести калибровку каналов $X$ и $Y$ осциллографа. + + +\section{Выполнение} +\begin{enumerate} + +\subsection{Алгоритм действий.} +\item Соберем схему согласно рис. 3. и включим ее в сеть. + +\item С помощью источника питания подберем ток в намагничивающей обмотке так, чтобы на экране наблюдалась предельная петля гистерезиса. + +\item Подберем коэффициенты усиления каналов ЭО (электронного осциллографа) так, чтобы предельная петля занимала большую часть экрана. Проведем центрировку вертикального и горизонтального лучей. Сфотографируем предельную петлю. Зафиксируем параметры тороида, значения коэффициентов усиления $K_X$ и $K_Y$. + +\item По экрану ЭО измерим полную ширину и высоту предельной петли ($2X_s$ и $2Y_s$), соответствующие удвоенной амплитуде колебания напряженности $H_s$ и индукции $B_s$ поля в образце в состоянии насыщения. + +\item Измерим двойные амплитуды для коэрцитивного поля $[2X_c]$ и остаточной индукции $[2Y_c]$. Запишем соответствующие значения коэффициентов усиления $K_X$ и $K_Y$. + +\item Плавно уменьшая ток намагничивания от насыщения до нуля, будем отмечать вершины наблюдаемых петель. + +\item Рассчитаем цену деления петли в $\frac{A/\text{м}}{\text{дел}}$ для оси $X$ по формуле $H = \frac{K_X N_0}{2\pi R R_0}$; и в $\frac{\text{Тл}}{\text{дел}}$ для оси $Y$ по формуле $B = \frac{\tau_{\text{и}}K_Y}{S N_{\text{и}}}$, где $\tau_{\text{и}} = R_{\text{и}}C_{\text{и}}$, $S$, $N_{\text{и}}$, $R_0$, $N_0$ указаны на установке. + +\item Проверка калибровки канала $X$ ЭО + +Проведём проверку калибровки канала $X$ электронного осциллографа (ЭО) с помощью амперметра. Для этого: + +\begin{enumerate} + \item Закоротим обмотку $N_0$ образца, так как катушка с ферромагнитным сердечником является нелинейным элементом, и ток в ней не имеет синусоидальной формы. Поэтому связь между амплитудой тока и показаниями амперметра будет очень неточной при наличии образца. + + \item Подадим переменное напряжение на обмотку $N_0$, но поскольку она закорочена, ток в цепи станет синусоидальным, и его можно измерить точно. + + \item Измерим эффективное значение тока $I_{\mathrm{эф}}$ с помощью амперметра $A$, включённого последовательно с сопротивлением $R_0$. + + \item Снимем сигнал с сопротивления $R_0$ и подадим его на вход $X$ ЭО. Это напряжение пропорционально току: $U = I R_0$. + + \item На экране ЭО появится горизонтальная прямая, ширина которой соответствует удвоенной амплитуде напряжения на $R_0$. + + \item Измерим длину этой прямой $2x$ в делениях экрана. + + \item Рассчитаем чувствительность канала $X$ по формуле: + \[ + K_X = \frac{2 R_0 \sqrt{2} I_{\mathrm{эф}}}{2x} \quad [\text{В/дел}]. + \] + + \item Сравним полученное значение $K_X$ с выбранным коэффициентом усиления канала $X$ на панели управления ЭО. + + \item Оценим погрешность измерений. +\end{enumerate} + +\item Проверка калибровки канала $Y$ ЭО + +Проведём проверку калибровки канала $Y$ ЭО с помощью вольтметра. Для этого: + +\begin{enumerate} + \item Отключим тороид, так как несинусоидальный ток нагрузки в первичной обмотке тороида искажает форму напряжения на вторичной обмотке, питающей делитель. + + \item Подадим сигнал с обмотки 12,6~В понижающего трансформатора на делитель напряжения. + + \item Снимем часть этого напряжения с делителя с коэффициентом деления $K_{\mathrm{д}} = 1/10$ или $1/100$ и подадим на вход $Y$ ЭО. + + \item Подключим мультиметр $V$ к тем же клеммам делителя и измерим эффективное напряжение $U_{\mathrm{эф}}$. + + \item На экране ЭО появится вертикальная прямая. Измерим её длину $2y$ в делениях. + + \item Рассчитаем чувствительность канала $Y$ по формуле: + \[ + K_Y = \frac{2\sqrt{2} U_{\mathrm{эф}}}{2y} \quad [\text{В/дел}]. + \] + + \item Сравним полученное значение $K_Y$ с выбранным коэффициентом усиления канала $Y$. + + \item Оценим погрешности измерения амплитуд с помощью ЭО. + + \item Повторим проверку для всех значений $K_X$ и $K_Y$, которые использовались в работе. + +\item Повторим данный алгоритм для 3-х тороидов. +\end{enumerate} +\subsection{Полученные данные} + +\item Параметры тороидов и установки + +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|} + \hline + Материал & $N_0$ & $N_u$ & $S,\ \text{см}^2$ & $2\pi R,\ \text{см}$ \\ \hline + Пермаллой нп50 & 40 & 200 & 3{,}8 & 24 \\ \hline + Феррит нн1000 & 35 & 400 & 3 & 25 \\ \hline + Кремнистое железо & 40 & 400 & 1{,}2 & 10 \\ \hline + \end{tabular} + \caption{Таблица 1. Параметры образцов: число витков, площадь сечения и длина средней линии.} + \label{tab:geometry_params} +\end{table} + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|} + \hline + $R_u,\ \text{кОм}$ & $C_u,\ \text{мкФ}$ & $R_0,\ \text{Ом}$ & $\tau,\ \text{Ом}\cdot\text{Ф}$ \\ \hline + 20 & 20 & 0{,}3 & 0{,}4 \\ \hline + \end{tabular} + \caption{Таблица 2. Параметры цепи: сопротивления, ёмкость.} + \label{tab:circuit_params} +\end{table} + +\item Проверка калибровки. + +\textbf{Замечание.} $2x$ и $2y$ записаны в мелких делениях, а не в клетках, поэтому нужно учесть и поделить на 5 (5 делений в клетке). +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|} + \hline + Параметр & Пермаллой & Феррит & Крем. железо \\ \hline + $K_X,\ \text{мВ/дел}$ & 50 & 20 & 100 \\ \hline + $K_Y,\ \text{мВ/дел}$ & 20 & 20 & 50 \\ \hline + $2x$ & 18 & 40 & 30 \\ \hline + $2y$ & 26 & 22 & 26 \\ \hline + $I_{\text{эф}},\ \text{мА}$ & 209 & 192 & 699 \\ \hline + $U_{\text{эф}},\ \text{мВ}$ & 36{,}7 & 30{,}3 & 90{,}1 \\ \hline + $K_X^{\text{эксп}},\ \text{мВ/дел}$ & 49{,}262 & 20{,}365 & 98{,}854 \\ \hline + $K_Y^{\text{эксп}},\ \text{мВ/дел}$ & 19{,}962 & 19{,}478 & 49{,}008 \\ \hline + $\Delta K_X,\ \text{мВ/дел}$ & 0{,}738 & 0{,}365 & 1{,}146 \\ \hline + $\Delta K_Y,\ \text{мВ/дел}$ & 0{,}038 & 0{,}522 & 0{,}992 \\ \hline + $\varepsilon_{K_X},\ \%$ & 1{,}48 & 1{,}82 & 1{,}15 \\ \hline + $\varepsilon_{K_Y},\ \%$ & 0{,}19 & 2{,}61 & 1{,}98 \\ \hline + \end{tabular} + \caption{Таблица 3. Сравнение теоретических и экспериментальных значений коэффициентов усиления осциллографа для трех образцов.} + \label{tab:oscilloscope_calibration} +\end{table} + +Как мы видим, масштаб совпадает с выставленным. В качестве погрешности $X$ и $Y$ будем брать $\sigma = \sqrt{(\Delta K)^2 + (0,5 \text{ дел})^2}$, поскольку систематическая и калибровочная погрешности независимы. + +\item Поля $H$ и $B$ на цену деления: +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|c|c|} + \hline + Материал & $H,\ \frac{\text{А/м}}{\text{дел}}$ & $B,\ \frac{\text{Тл}}{\text{дел}}$ & $\sigma_H,\ \frac{\text{А/м}}{\text{дел}}$ & $\sigma_B,\ \frac{\text{Тл}}{\text{дел}}$ & $\varepsilon_H,\ \%$ & $\varepsilon_B,\ \%$ \\ \hline + Пермаллой & 27{,}778 & 0{,}105 & 0{,}495 & 0{,}003 & 1{,}78 & 2{,}51 \\ \hline + Феррит & 9{,}333 & 0{,}067 & 0{,}289 & 0{,}002 & 3{,}09 & 3{,}62 \\ \hline + Кремнистое железо & 133{,}333 & 0{,}417 & 1{,}668 & 0{,}009 & 1{,}25 & 2{,}22 \\ \hline + \end{tabular} + \caption{Таблица 4. Магнитные параметры образцов.} + \label{tab:magnetic_params} +\end{table} + +\item Максимальная ампилтуда напряженности $H_{max}$, соответствующая индукции насыщения $B_s$, коэрцетивное поле $H_c$ и остаточная индукция $B_r$: + +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|c|c|} + \hline + Материал & $H_{\max},\ \text{А/м}$ & $B_s,\ \text{Тл}$ & $2X_c,\ \text{дел}$ & $2Y_r,\ \text{дел}$ & $H_c,\ \text{А/м}$ & $B_r,\ \text{Тл}$ \\ \hline + Пермаллой & $50{,}0 \pm 0{,}9$ & $0{,}337 \pm 0{,}008$ & 10 & 30 & $27{,}8 \pm 0{,}5$ & $0{,}316 \pm 0{,}008$ \\ \hline + Феррит & $37{,}3 \pm 1{,}2$ & $0{,}200 \pm 0{,}007$ & 14 & 18 & $13{,}1 \pm 0{,}4$ & $0{,}120 \pm 0{,}004$ \\ \hline + Кремнистое железо & $400{,}0 \pm 5{,}0$ & $0{,}833 \pm 0{,}019$ & 5 & 8 & $66{,}7 \pm 0{,}8$ & $0{,}333 \pm 0{,}007$ \\ \hline + \end{tabular} + \caption{Таблица 5. Параметры петли гистерезиса для разных магнитных материалов.} + \label{tab:hysteresis_params} +\end{table} + + +\begin{figure}[h] + \center{\includegraphics[width=0.5\textwidth]{Graphics/Gistr_perm.jpg}} + \caption{График 1. Предельная петля гистерезиса пермаллоя} +\end{figure} + +\begin{figure}[h] + \center{\includegraphics[width=0.5\textwidth]{Graphics/Gistr_ferrit.jpg}} + \caption{График 2. Предельная петля гистерезиса феррита} +\end{figure} + +\begin{figure}[h] + \center{\includegraphics[width=0.5\textwidth]{Graphics/Gistr_krem_zheleza.jpg}} + \caption{График 3. Предельная петля гистерезиса кремнистого железа} +\end{figure} +\clearpage +\item Плавное уменьшение тока и петли гистерезиса. + +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|c|c|c|} + \hline + $H,\ \text{А/м}$ & 50{,}0 & 33{,}3 & 30{,}6 & 27{,}8 & 27{,}8 & 25{,}0 & 22{,}2 \\ \hline + $B,\ \text{Тл}$ & 0{,}337 & 0{,}295 & 0{,}232 & 0{,}189 & 0{,}126 & 0{,}074 & 0{,}021 \\ \hline + \end{tabular} + \caption{Таблица 6. Координаты точек кривой намагничивания для пермаллоя.} + \label{tab:perm_points} +\end{table} + +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|} + \hline + $H,\ \text{А/м}$ & 37{,}3 & 28{,}0 & 13{,}1 & 11{,}2 \\ \hline + $B,\ \text{Тл}$ & 0{,}200 & 0{,}160 & 0{,}027 & 0{,}013 \\ \hline + \end{tabular} + \caption{Таблица 7. Координаты точек кривой намагничивания для феррита.} + \label{tab:ferrite_points} +\end{table} + +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|c|c|c|} + \hline + $H,\ \text{А/м}$ & 400{,}0 & 293{,}3 & 240{,}0 & 186{,}7 & 120{,}0 & 80{,}0 & 40{,}0 \\ \hline + $B,\ \text{Тл}$ & 0{,}833 & 0{,}708 & 0{,}667 & 0{,}583 & 0{,}417 & 0{,}333 & 0{,}167 \\ \hline + \end{tabular} + \caption{Таблица 8. Координаты точек кривой намагничивания для кремнистого железа.} + \label{tab:si_fe_points} +\end{table} + +По этим данным построим кривые намагничивания и по ним найдем дифференциальные магнитные проницаемости $\mu_{\text{диф}} = \frac{1}{\mu_0} \frac{dB}{dH}$ + +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/Пермаллой_B_H.png}} + \caption{График 4. кривая намагничивания пермаллоя} +\end{figure} + +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/Феррит_B_H.png}} + \caption{График 5. кривая намагничивания феррита} +\end{figure} + +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/Кремнистое_железо_B_H.png}} + \caption{График 6. кривая намагничивания кремнистого железа} +\end{figure} +\end{enumerate} +\clearpage +\section{Результаты и обсуждения} + +В данной работе мы пронаблюдали за гистерезисами 3-х материалов. Вычислили предельные параметры, коэрцитивное поле и остаточную индукцию. Построили графики начальных кривых намагничивания и по ним вычислили начальные и максимальные дифференциальные магнитные проницаемости. + +\begin{table}[h!] + \centering + \begin{tabular}{|l|c|c|c|c|} + \hline + Материал & $H_c,\ \text{А/м}$ & $B_s,\ \text{Тл}$ & $\mu_{\text{диф}}^{\text{нач}}$ & $\mu_{\text{диф}}^{\text{max}}$ \\ \hline + Пермаллой НП50 (эксп) & $27{,}8 \pm 0{,}5$ & $0{,}337 \pm 0{,}008$ & 15062{,}9 & 23873{,}2 \\ \hline + Пермаллой 45 (табл) & 5{,}6 & 1{,}6 & 1200 & 3500 \\ \hline + Феррит НН1000 (эксп) & $13{,}1 \pm 0{,}4$ & $0{,}200 \pm 0{,}007$ & 5863{,}6 & 6003{,}8 \\ \hline + Феррит Ni-Zn (табл) & 16--1600 & 0{,}1--0{,}4 & 10--2000 & --- \\ \hline + Кремнистое железо (эксп) & $66{,}7 \pm 0{,}8$ & $0{,}833 \pm 0{,}019$ & 3302{,}5 & 3302{,}5 \\ \hline + Кремнистое железо 96Fe-4Si (табл) & 40 & 1{,}95 & 500 & 7000 \\ \hline + Кремнистое железо 97Fe-3Si (табл) & 12 & 2{,}01 & 9000 & 40000 \\ \hline + \end{tabular} + \caption{Таблица. Сравнение экспериментальных и табличных значений магнитных параметров с корректно округлёнными погрешностями.} + \label{tab:compare_with_errors_fixed} +\end{table} + +Как мы видим, значения очень сильно отличаются. Ближе всего к табличным значениям оказался феррит. Расхождения связаны с множеством факторов: разный химический состав, неточность метода и измерений, геометрические особенности образцов. + +\section{Выводы} +В данной работе мы изучили петли гистерезиса различных ферромагнитных торроидов: пермаллой, феррит, кремнистое железо. Построили графики, рассчитали магнитные параметры. + + +\end{document} \ No newline at end of file diff --git a/3.4.5/pdf/Kotlyarov_M.pdf b/3.4.5/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..1d3c4766 Binary files /dev/null and b/3.4.5/pdf/Kotlyarov_M.pdf differ diff --git a/3.5.1/Kotlyarov_M/Graphics/Te_vs_Ip_points.png b/3.5.1/Kotlyarov_M/Graphics/Te_vs_Ip_points.png new file mode 100644 index 00000000..4e745b9f Binary files /dev/null and b/3.5.1/Kotlyarov_M/Graphics/Te_vs_Ip_points.png differ diff --git a/3.5.1/Kotlyarov_M/Graphics/VA_characteristic_cubic_spline.png b/3.5.1/Kotlyarov_M/Graphics/VA_characteristic_cubic_spline.png new file mode 100644 index 00000000..94bb9afd Binary files /dev/null and b/3.5.1/Kotlyarov_M/Graphics/VA_characteristic_cubic_spline.png differ diff --git a/3.5.1/Kotlyarov_M/Graphics/VA_zond.png b/3.5.1/Kotlyarov_M/Graphics/VA_zond.png new file mode 100644 index 00000000..317e6da7 Binary files /dev/null and b/3.5.1/Kotlyarov_M/Graphics/VA_zond.png differ diff --git a/3.5.1/Kotlyarov_M/Graphics/ne_vs_Ip_linear_fit.png b/3.5.1/Kotlyarov_M/Graphics/ne_vs_Ip_linear_fit.png new file mode 100644 index 00000000..522124e5 Binary files /dev/null and b/3.5.1/Kotlyarov_M/Graphics/ne_vs_Ip_linear_fit.png differ diff --git a/3.5.1/Kotlyarov_M/Pictures/ustanovka.png b/3.5.1/Kotlyarov_M/Pictures/ustanovka.png new file mode 100644 index 00000000..ec9f6bb9 Binary files /dev/null and b/3.5.1/Kotlyarov_M/Pictures/ustanovka.png differ diff --git a/3.5.1/Kotlyarov_M/data/T_n_vs_I.py b/3.5.1/Kotlyarov_M/data/T_n_vs_I.py new file mode 100644 index 00000000..e41e94fa --- /dev/null +++ b/3.5.1/Kotlyarov_M/data/T_n_vs_I.py @@ -0,0 +1,98 @@ +import pandas as pd +import matplotlib.pyplot as plt +import numpy as np +from scipy.optimize import curve_fit +import warnings + +# Отключим предупреждения scipy, если нужно +warnings.filterwarnings("ignore") + +# Чтение данных +file_path = 'T_n_vs_I.xlsx' +df = pd.read_excel(file_path, sheet_name='Sheet1') + +# Переименование столбцов +df.columns = ['I_p_mA', 'T_e_K', 'sigma_T_e_K', 'n_e_cm3', 'sigma_n_i_cm3'] + +# Преобразование в числовые типы +df['I_p_mA'] = pd.to_numeric(df['I_p_mA'], errors='coerce') +df['T_e_K'] = pd.to_numeric(df['T_e_K'], errors='coerce') +df['n_e_cm3'] = pd.to_numeric(df['n_e_cm3'], errors='coerce') +df.dropna(subset=['I_p_mA', 'T_e_K', 'n_e_cm3'], inplace=True) + +print("Загруженные данные:") +print(df) + +# График 1: Te(Ip) — только точки с ошибками +plt.figure(figsize=(8, 6)) +plt.errorbar(df['I_p_mA'], df['T_e_K'], yerr=df['sigma_T_e_K'], fmt='o', capsize=5, color='blue', label='Температура электронов') +plt.xlabel('Ток разряда $I_p$, мА', fontsize=12) +plt.ylabel('Температура электронов $T_e$, К', fontsize=12) +plt.title('Зависимость температуры электронов от тока разряда', fontsize=14) +plt.grid(True, alpha=0.3) +plt.legend() +plt.tight_layout() +plt.savefig('Te_vs_Ip_points.png', dpi=300) +plt.show() + +# График 2: ne(Ip) — линейная аппроксимация МНК БЕЗ СВОБОДНОГО ЧЛЕНА (y = kx) + +def linear_func_no_intercept(x, a): + return a * x + +x_data = df['I_p_mA'].values +y_data = df['n_e_cm3'].values +sigma_y = df['sigma_n_i_cm3'].values + +print("\nДанные для аппроксимации:") +print(f"x_data (I_p_mA): {x_data}") +print(f"y_data (n_e_cm3): {y_data}") +print(f"sigma_y: {sigma_y}") + +# Ручной расчет коэффициента k для y = kx (без свободного члена) +# k = Σ(x*y) / Σ(x^2) +k = np.sum(x_data * y_data) / np.sum(x_data**2) + +# Расчет ошибки коэффициента +n = len(x_data) +residuals = y_data - k * x_data +mse = np.sum(residuals**2) / (n - 1) if n > 1 else 0 +s_xx = np.sum(x_data**2) +k_err = np.sqrt(mse / s_xx) if s_xx > 0 else 0 + +print(f"\nРезультаты аппроксимации (y = kx):") +print(f"Коэффициент k = {k:.2e} ± {k_err:.2e}") + +# Расчет R² +ss_res = np.sum(residuals**2) +ss_tot = np.sum((y_data - np.mean(y_data))**2) +r_squared = 1 - (ss_res / ss_tot) if ss_tot > 0 else 0 +print(f"Коэффициент детерминации R² = {r_squared:.4f}") + +# Построение графика +plt.figure(figsize=(8, 6)) +plt.errorbar(x_data, y_data / 1e10, yerr=sigma_y / 1e10, fmt='s', capsize=5, + color='orange', label='Экспериментальные точки') + +# Прямая y = kx - начинается из (0,0) и ПРОДЛЕВАЕТСЯ ДАЛЕКО ЗА ПРЕДЕЛЫ ДАННЫХ +x_min = 0 # Начинаем из нуля +x_max = 7 # Продлеваем до 7 мА (за пределы данных) +x_plot = np.linspace(x_min, x_max, 500) +y_plot = k * x_plot / 1e10 + +# Подпись +label = f'$n_e = ({k/1e10:.2f} \\pm {k_err/1e10:.2f}) I_p \\times 10^{{10}}$ см$^{{-3}}$' + +plt.plot(x_plot, y_plot, 'r-', linewidth=2, label=label) + +plt.xlabel('Ток разряда $I_p$, мА', fontsize=12) +plt.ylabel('Концентрация электронов $n_e$, 10$^{10}$ см$^{-3}$', fontsize=12) +plt.title('Зависимость концентрации электронов от тока разряда', fontsize=14) +plt.grid(True, alpha=0.3) +plt.legend() +plt.xlim(0, x_max) # Гарантируем, что ноль будет в левом углу +plt.tight_layout() +plt.savefig('ne_vs_Ip_linear_fit.png', dpi=300) +plt.show() + +print("\n✅ Графики сохранены как 'Te_vs_Ip_points.png' и 'ne_vs_Ip_linear_fit.png'") diff --git a/3.5.1/Kotlyarov_M/data/T_n_vs_I.xlsx b/3.5.1/Kotlyarov_M/data/T_n_vs_I.xlsx new file mode 100644 index 00000000..f78443d7 Binary files /dev/null and b/3.5.1/Kotlyarov_M/data/T_n_vs_I.xlsx differ diff --git a/3.5.1/Kotlyarov_M/data/VA_I_discharge.py b/3.5.1/Kotlyarov_M/data/VA_I_discharge.py new file mode 100644 index 00000000..c5527da2 --- /dev/null +++ b/3.5.1/Kotlyarov_M/data/VA_I_discharge.py @@ -0,0 +1,250 @@ +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +from scipy.interpolate import CubicSpline +import warnings +warnings.filterwarnings('ignore') + +# Загрузка данных +file_path = 'VA_I_discharge.xlsx' +df = pd.read_excel(file_path, header=0) + +# Извлечение и очистка данных +try: + U_up_raw = df['повышение I_р'] + I_up_mA_raw = df['Unnamed: 1'] + U_down_raw = df['понижение I_р'] + I_down_mA_raw = df['Unnamed: 3'] + + U_up = pd.to_numeric(U_up_raw, errors='coerce').dropna().values + I_up_mA = pd.to_numeric(I_up_mA_raw, errors='coerce').dropna().values + U_down = pd.to_numeric(U_down_raw, errors='coerce').dropna().values + I_down_mA = pd.to_numeric(I_down_mA_raw, errors='coerce').dropna().values + + min_len_up = min(len(U_up), len(I_up_mA)) + U_up = U_up[:min_len_up] + I_up_mA = I_up_mA[:min_len_up] + + min_len_down = min(len(U_down), len(I_down_mA)) + U_down = U_down[:min_len_down] + I_down_mA = I_down_mA[:min_len_down] + +except KeyError as e: + print(f"Ошибка: столбец {e} не найден.") + exit(1) + +print("Данные загружены:") +print(f"Повышение тока: {len(U_up)} точек") +print(f"Понижение тока: {len(U_down)} точек") + +# --- КУБИЧЕСКИЕ СПЛАЙНЫ ПО ВСЕМ ТОЧКАМ --- +def calculate_cubic_spline_resistance(U, I, direction_name, U_min=240, U_max=320): + """Расчет сопротивления через кубические сплайны по всем точкам""" + + # Сортировка по напряжению + sorted_idx = np.argsort(U) + U_sorted = U[sorted_idx] + I_sorted = I[sorted_idx] + + # Кубический сплайн по ВСЕМ точкам (без сглаживания) + cs = CubicSpline(U_sorted, I_sorted) + + # Для графика: вся кривая по всем точкам + U_full = np.linspace(U_sorted.min(), U_sorted.max(), 1000) + I_full = cs(U_full) + + # Для расчета сопротивления: только диапазон 240-320 В + U_calc = np.linspace(U_min, U_max, 1000) + I_calc = cs(U_calc) + + # Производная dI/dU в диапазоне расчета + dI_dU = cs.derivative()(U_calc) + + # Дифференциальное сопротивление R_диф = dU/dI (в кОм, так как ток в мА) + R_diff = np.full_like(dI_dU, np.nan) + valid_mask = (np.abs(dI_dU) > 1e-6) + R_diff[valid_mask] = 1.0 / dI_dU[valid_mask] + + # Берем модуль и фильтруем физические значения (1-200 кОм) + R_diff_abs = np.abs(R_diff) + physical_mask = (R_diff_abs > 1) & (R_diff_abs < 200) & valid_mask + + if np.any(physical_mask): + max_R = np.max(R_diff_abs[physical_mask]) + max_R_idx = np.argmax(R_diff_abs[physical_mask]) + max_R_U = U_calc[physical_mask][max_R_idx] + + # Находим все значения сопротивления выше 90% от максимума для оценки погрешности + high_R_mask = R_diff_abs > 0.9 * max_R + high_R_values = R_diff_abs[high_R_mask] + error = np.std(high_R_values) if len(high_R_values) > 1 else max_R * 0.1 + + print(f"{direction_name} (кубический сплайн):") + print(f" Максимальное |R_диф| = {max_R:.2f} ± {error:.2f} кОм при U = {max_R_U:.1f} В") + + return max_R, error, U_full, I_full + else: + print(f"{direction_name}: Не найдено физических значений R_диф в диапазоне 1-200 кОм") + return None, None, U_full, I_full + +# --- МЕТОД КОНЕЧНЫХ РАЗНОСТЕЙ ДЛЯ ПРОВЕРКИ --- +def calculate_finite_differences(U, I, direction_name, U_min=240, U_max=320): + """Метод конечных разностей для проверки""" + + sorted_idx = np.argsort(U) + U_sorted = U[sorted_idx] + I_sorted = I[sorted_idx] + + range_mask = (U_sorted >= U_min) & (U_sorted <= U_max) + U_filtered = U_sorted[range_mask] + I_filtered = I_sorted[range_mask] + + if len(U_filtered) < 2: + return None, None + + dU = np.diff(U_filtered) + dI = np.diff(I_filtered) + + mask = (np.abs(dI) > 0.05) & (np.abs(dU) > 0.5) + dU_filtered = dU[mask] + dI_filtered = dI[mask] + + if len(dU_filtered) == 0: + return None, None + + R_diff = np.abs(dU_filtered / dI_filtered) + U_mid = (U_filtered[:-1][mask] + U_filtered[1:][mask]) / 2 + + if len(R_diff) > 0: + max_R = np.max(R_diff) + max_R_idx = np.argmax(R_diff) + max_R_U = U_mid[max_R_idx] + + # Оценка погрешности + top_5_indices = np.argsort(R_diff)[-5:] + top_5_values = R_diff[top_5_indices] + error = np.std(top_5_values) + + print(f"{direction_name} (конечные разности):") + print(f" Максимальное |R_диф| = {max_R:.2f} ± {error:.2f} кОм при U = {max_R_U:.1f} В") + + return max_R, error + return None, None + +# --- ВЫЧИСЛЕНИЯ --- +print("\n" + "="*70) +print("РАСЧЕТ ДИФФЕРЕНЦИАЛЬНОГО СОПРОТИВЛЕНИЯ") +print("Метод: кубические сплайны по всем точкам") +print("Расчет сопротивления: диапазон 240-320 В") +print("="*70) + +# Основной метод: кубические сплайны +print("\n--- ОСНОВНОЙ МЕТОД: КУБИЧЕСКИЕ СПЛАЙНЫ ---") +max_R_up_spline, error_up_spline, U_up_full, I_up_full = calculate_cubic_spline_resistance( + U_up, I_up_mA, "Повышение тока") + +max_R_down_spline, error_down_spline, U_down_full, I_down_full = calculate_cubic_spline_resistance( + U_down, I_down_mA, "Понижение тока") + +# Метод проверки: конечные разности +print("\n--- МЕТОД ПРОВЕРКИ: КОНЕЧНЫЕ РАЗНОСТИ ---") +max_R_up_fd, error_up_fd = calculate_finite_differences(U_up, I_up_mA, "Повышение тока") +max_R_down_fd, error_down_fd = calculate_finite_differences(U_down, I_down_mA, "Понижение тока") + +# --- ПОСТРОЕНИЕ ГРАФИКА ВАХ --- +plt.figure(figsize=(12, 8)) + +# Экспериментальные точки +plt.plot(U_up, I_up_mA, 'bo', label='Повышение I_p (эксперимент)', markersize=6, alpha=0.8) +plt.plot(U_down, I_down_mA, 'ro', label='Понижение I_p (эксперимент)', markersize=6, alpha=0.8) + +# Аппроксимация кубическими сплайнами +plt.plot(U_up_full, I_up_full, 'b-', linewidth=2, label='Кубический сплайн (повышение)') +plt.plot(U_down_full, I_down_full, 'r-', linewidth=2, label='Кубический сплайн (понижение)') + +# Область расчета +plt.axvspan(240, 320, alpha=0.1, color='gray', label='Диапазон расчета R_диф (240-320 В)') + +plt.xlabel('Напряжение разряда U_p, В', fontsize=12) +plt.ylabel('Ток разряда I_p, мА', fontsize=12) +plt.title('Вольт-амперная характеристика тлеющего разряда\n(аппроксимация кубическими сплайнами)', fontsize=14) +plt.legend(fontsize=10) +plt.grid(True, linestyle='--', alpha=0.7) +plt.tight_layout() + +plt.savefig('VA_characteristic_cubic_spline.png', dpi=300, bbox_inches='tight') +plt.show() + +# --- АНАЛИЗ РЕЗУЛЬТАТОВ И ПОГРЕШНОСТЕЙ --- +print("\n" + "="*70) +print("ИТОГОВЫЕ РЕЗУЛЬТАТЫ С ПОГРЕШНОСТЯМИ") +print("="*70) + +# Основные результаты (кубические сплайны) +if max_R_up_spline is not None and max_R_down_spline is not None: + avg_R_spline = (max_R_up_spline + max_R_down_spline) / 2 + avg_error_spline = (error_up_spline + error_down_spline) / 2 + + print("ОСНОВНОЙ МЕТОД (кубические сплайны):") + print(f" Среднее R_диф = {avg_R_spline:.1f} ± {avg_error_spline:.1f} кОм") + print(f" Повышение тока: {max_R_up_spline:.1f} ± {error_up_spline:.1f} кОм") + print(f" Понижение тока: {max_R_down_spline:.1f} ± {error_down_spline:.1f} кОм") + +# Результаты проверки (конечные разности) +if max_R_up_fd is not None and max_R_down_fd is not None: + avg_R_fd = (max_R_up_fd + max_R_down_fd) / 2 + avg_error_fd = (error_up_fd + error_down_fd) / 2 + + print("\nМЕТОД ПРОВЕРКИ (конечные разности):") + print(f" Среднее R_диф = {avg_R_fd:.1f} ± {avg_error_fd:.1f} кОм") + +# Сравнение методов и итоговый результат +if (max_R_up_spline is not None and max_R_down_spline is not None and + max_R_up_fd is not None and max_R_down_fd is not None): + + discrepancy = abs(avg_R_spline - avg_R_fd) / min(avg_R_spline, avg_R_fd) * 100 + + print(f"\nСРАВНЕНИЕ МЕТОДОВ:") + print(f"Кубические сплайны: {avg_R_spline:.1f} ± {avg_error_spline:.1f} кОм") + print(f"Конечные разности: {avg_R_fd:.1f} ± {avg_error_fd:.1f} кОм") + print(f"Расхождение: {discrepancy:.1f}%") + + if discrepancy < 50: + # Взвешенное среднее с учетом погрешностей + w1 = 1 / avg_error_spline**2 + w2 = 1 / avg_error_fd**2 + final_R = (w1 * avg_R_spline + w2 * avg_R_fd) / (w1 + w2) + final_error = 1 / np.sqrt(w1 + w2) + + print(f"\nМетоды согласуются") + print(f"ФИНАЛЬНЫЙ РЕЗУЛЬТАТ: R_диф_max = {final_R:.1f} ± {final_error:.1f} кОм") + else: + print(f"\nБольшое расхождение между методами") + print(f"Предпочтение основному методу (кубические сплайны)") + print(f"ФИНАЛЬНЫЙ РЕЗУЛЬТАТ: R_диф_max = {avg_R_spline:.1f} ± {avg_error_spline:.1f} кОм") + +elif max_R_up_spline is not None and max_R_down_spline is not None: + print(f"\nФИНАЛЬНЫЙ РЕЗУЛЬТАТ: R_диф_max = {avg_R_spline:.1f} ± {avg_error_spline:.1f} кОм") + print("(использован только метод кубических сплайнов)") + +# Дополнительный анализ +if max_R_up_spline is not None: + relative_error = avg_error_spline / avg_R_spline * 100 + print(f"\nДОПОЛНИТЕЛЬНЫЙ АНАЛИЗ:") + print(f"Относительная погрешность: {relative_error:.1f}%") + print(f"Точность определения: {100 - relative_error:.1f}%") + +print(f"\nФИЗИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ:") +if (max_R_up_spline is not None and max_R_up_spline > 10) or (max_R_down_spline is not None and max_R_down_spline > 10): + print("Высокие значения сопротивления (десятки кОм) характерны для") + print("аномального тлеющего разряда с большой длиной разрядного промежутка") + print("или малым давлением газа в трубке") +else: + print("Значения сопротивления соответствуют нормальному тлеющему разряду") + +print(f"\nРЕКОМЕНДАЦИИ ДЛЯ ОТЧЕТА:") +print("1. Использована аппроксимация кубическими сплайнами по всем экспериментальным точкам") +print("2. Дифференциальное сопротивление рассчитано в диапазоне 240-320 В") +print("3. Проведена проверка методом конечных разностей") +print("4. Указаны погрешности измерений") +print("5. Дана физическая интерпретация результатов") diff --git a/3.5.1/Kotlyarov_M/data/VA_I_discharge.xlsx b/3.5.1/Kotlyarov_M/data/VA_I_discharge.xlsx new file mode 100644 index 00000000..d0821757 Binary files /dev/null and b/3.5.1/Kotlyarov_M/data/VA_I_discharge.xlsx differ diff --git a/3.5.1/Kotlyarov_M/data/VA_different_methods.py b/3.5.1/Kotlyarov_M/data/VA_different_methods.py new file mode 100644 index 00000000..8a691927 --- /dev/null +++ b/3.5.1/Kotlyarov_M/data/VA_different_methods.py @@ -0,0 +1,318 @@ +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +from scipy.interpolate import UnivariateSpline, CubicSpline +import warnings +warnings.filterwarnings('ignore') + +# Загрузка данных +file_path = 'VA_I_discharge.xlsx' +df = pd.read_excel(file_path, header=0) + +# Извлечение и очистка данных +try: + U_up_raw = df['повышение I_р'] + I_up_mA_raw = df['Unnamed: 1'] + U_down_raw = df['понижение I_р'] + I_down_mA_raw = df['Unnamed: 3'] + + U_up = pd.to_numeric(U_up_raw, errors='coerce').dropna().values + I_up_mA = pd.to_numeric(I_up_mA_raw, errors='coerce').dropna().values + U_down = pd.to_numeric(U_down_raw, errors='coerce').dropna().values + I_down_mA = pd.to_numeric(I_down_mA_raw, errors='coerce').dropna().values + + min_len_up = min(len(U_up), len(I_up_mA)) + U_up = U_up[:min_len_up] + I_up_mA = I_up_mA[:min_len_up] + + min_len_down = min(len(U_down), len(I_down_mA)) + U_down = U_down[:min_len_down] + I_down_mA = I_down_mA[:min_len_down] + +except KeyError as e: + print(f"Ошибка: столбец {e} не найден.") + exit(1) + +print("Данные загружены:") +print(f"Повышение тока: {len(U_up)} точек") +print(f"Понижение тока: {len(U_down)} точек") + +# --- РАЗЛИЧНЫЕ МЕТОДЫ АППРОКСИМАЦИИ --- + +def polynomial_degree3(U, I): + """Полином 3-й степени""" + coeffs = np.polyfit(U, I, 3) + return np.poly1d(coeffs) + +def polynomial_degree4(U, I): + """Полином 4-й степени""" + coeffs = np.polyfit(U, I, 4) + return np.poly1d(coeffs) + +def polynomial_degree5(U, I): + """Полином 5-й степени""" + coeffs = np.polyfit(U, I, 5) + return np.poly1d(coeffs) + +def cubic_spline_no_smooth(U, I): + """Кубический сплайн без сглаживания""" + return CubicSpline(U, I) + +def univariate_spline_medium(U, I): + """UnivariateSpline со средним сглаживанием""" + return UnivariateSpline(U, I, s=len(U)*2) + +def univariate_spline_low(U, I): + """UnivariateSpline с малым сглаживанием""" + return UnivariateSpline(U, I, s=len(U)*0.5) + +def univariate_spline_very_low(U, I): + """UnivariateSpline с очень малым сглаживанием""" + return UnivariateSpline(U, I, s=len(U)*0.1) + +# --- РАСЧЕТ СОПРОТИВЛЕНИЯ ДЛЯ КАЖДОГО МЕТОДА --- +def calculate_resistance_for_method(method_func, U, I, method_name, U_min=240, U_max=320): + """Расчет сопротивления для конкретного метода аппроксимации""" + + # Сортировка по напряжению + sorted_idx = np.argsort(U) + U_sorted = U[sorted_idx] + I_sorted = I[sorted_idx] + + try: + # Создаем аппроксимирующую функцию + approx_func = method_func(U_sorted, I_sorted) + + # Для графика: вся кривая + U_full = np.linspace(U_sorted.min(), U_sorted.max(), 1000) + I_full = approx_func(U_full) + + # Для расчета: только диапазон 240-320 В + U_calc = np.linspace(U_min, U_max, 500) + I_calc = approx_func(U_calc) + + # Производная dI/dU + if hasattr(approx_func, 'derivative'): + dI_dU = approx_func.derivative()(U_calc) + else: + # Для полиномов + dI_dU = np.polyder(approx_func)(U_calc) + + # Дифференциальное сопротивление R_диф = dU/dI (в кОм) + R_diff = np.full_like(dI_dU, np.nan) + valid_mask = (np.abs(dI_dU) > 1e-6) + R_diff[valid_mask] = 1.0 / dI_dU[valid_mask] + + # Берем модуль и фильтруем физические значения + R_diff_abs = np.abs(R_diff) + physical_mask = (R_diff_abs > 1) & (R_diff_abs < 200) & valid_mask + + if np.any(physical_mask): + max_R = np.max(R_diff_abs[physical_mask]) + max_R_idx = np.argmax(R_diff_abs[physical_mask]) + max_R_U = U_calc[physical_mask][max_R_idx] + + return max_R, U_full, I_full, True, max_R_U + else: + return None, U_full, I_full, False, None + + except Exception as e: + print(f"Ошибка в методе {method_name}: {e}") + return None, None, None, False, None + +# --- МЕТОД КОНЕЧНЫХ РАЗНОСТЕЙ --- +def calculate_finite_differences(U, I, U_min=240, U_max=320): + """Метод конечных разностей""" + + sorted_idx = np.argsort(U) + U_sorted = U[sorted_idx] + I_sorted = I[sorted_idx] + + range_mask = (U_sorted >= U_min) & (U_sorted <= U_max) + U_filtered = U_sorted[range_mask] + I_filtered = I_sorted[range_mask] + + if len(U_filtered) < 2: + return None, None + + dU = np.diff(U_filtered) + dI = np.diff(I_filtered) + + mask = (np.abs(dI) > 0.05) & (np.abs(dU) > 0.5) + dU_filtered = dU[mask] + dI_filtered = dI[mask] + + if len(dU_filtered) == 0: + return None, None + + R_diff = np.abs(dU_filtered / dI_filtered) + U_mid = (U_filtered[:-1][mask] + U_filtered[1:][mask]) / 2 + + if len(R_diff) > 0: + max_R = np.max(R_diff) + max_R_idx = np.argmax(R_diff) + max_R_U = U_mid[max_R_idx] + + return max_R, max_R_U + return None, None + +# --- СПИСОК МЕТОДОВ ДЛЯ СРАВНЕНИЯ --- +methods = [ + ("Полином 3-й степени", polynomial_degree3), + ("Полином 4-й степени", polynomial_degree4), + ("Полином 5-й степени", polynomial_degree5), + ("Кубический сплайн", cubic_spline_no_smooth), + ("UnivariateSpline (s=2n)", univariate_spline_medium), + ("UnivariateSpline (s=0.5n)", univariate_spline_low), + ("UnivariateSpline (s=0.1n)", univariate_spline_very_low) +] + +# --- ПОСТРОЕНИЕ ГРАФИКОВ ДЛЯ КАЖДОГО МЕТОДА --- +print("\n" + "="*70) +print("СРАВНЕНИЕ МЕТОДОВ АППРОКСИМАЦИИ") +print("="*70) + +# Создаем большую фигуру с подграфиками +fig, axes = plt.subplots(3, 3, figsize=(18, 15)) +axes = axes.flatten() + +# Метод конечных разностей (отдельный график) +max_R_up_fd, max_U_up_fd = calculate_finite_differences(U_up, I_up_mA) +max_R_down_fd, max_U_down_fd = calculate_finite_differences(U_down, I_down_mA) + +# Для каждого метода строим график +for i, (method_name, method_func) in enumerate(methods): + if i >= len(axes) - 1: # -1 потому что последний график для конечных разностей + break + + ax = axes[i] + + # Расчет для повышения тока + R_up, U_up_full, I_up_full, success_up, U_max_up = calculate_resistance_for_method( + method_func, U_up, I_up_mA, method_name) + + # Расчет для понижения тока + R_down, U_down_full, I_down_full, success_down, U_max_down = calculate_resistance_for_method( + method_func, U_down, I_down_mA, method_name) + + # Экспериментальные точки + ax.plot(U_up, I_up_mA, 'bo', markersize=4, alpha=0.7, label='Повышение (эксп.)') + ax.plot(U_down, I_down_mA, 'ro', markersize=4, alpha=0.7, label='Понижение (эксп.)') + + # Аппроксимации + if success_up: + ax.plot(U_up_full, I_up_full, 'b-', linewidth=2, label=f'Повышение (аппрокс.)') + if success_down: + ax.plot(U_down_full, I_down_full, 'r-', linewidth=2, label=f'Понижение (аппрокс.)') + + # Область расчета + ax.axvline(x=240, color='gray', linestyle='--', alpha=0.5) + ax.axvline(x=320, color='gray', linestyle='--', alpha=0.5) + + # Заголовок с результатами + title = method_name + if success_up and success_down: + title += f"\nR_диф: ↑{R_up:.1f} кОм, ↓{R_down:.1f} кОм" + elif success_up: + title += f"\nR_диф: ↑{R_up:.1f} кОм" + elif success_down: + title += f"\nR_диф: ↓{R_down:.1f} кОм" + else: + title += "\nНе удалось рассчитать R_диф" + + ax.set_title(title, fontsize=10) + ax.set_xlabel('U_p, В', fontsize=9) + ax.set_ylabel('I_p, мА', fontsize=9) + ax.grid(True, linestyle='--', alpha=0.3) + ax.legend(fontsize=8) + +# График для метода конечных разностей +ax_fd = axes[-1] +ax_fd.plot(U_up, I_up_mA, 'bo-', markersize=4, alpha=0.7, linewidth=1, label='Повышение (эксп.)') +ax_fd.plot(U_down, I_down_mA, 'ro-', markersize=4, alpha=0.7, linewidth=1, label='Понижение (эксп.)') + +# Показываем отрезки с максимальным сопротивлением +if max_R_up_fd is not None: + # Находим соответствующий отрезок для повышения + for i in range(len(U_up)-1): + if 240 <= (U_up[i] + U_up[i+1])/2 <= 320: + dU = U_up[i+1] - U_up[i] + dI = I_up_mA[i+1] - I_up_mA[i] + if abs(dI) > 0.05: + R_segment = abs(dU / dI) + if abs(R_segment - max_R_up_fd) < 1: # Нашли максимальный отрезок + ax_fd.plot([U_up[i], U_up[i+1]], [I_up_mA[i], I_up_mA[i+1]], + 'g-', linewidth=3, alpha=0.8, + label=f'Макс отрезок ↑: {max_R_up_fd:.1f} кОм') + break + +if max_R_down_fd is not None: + # Находим соответствующий отрезок для понижения + for i in range(len(U_down)-1): + if 240 <= (U_down[i] + U_down[i+1])/2 <= 320: + dU = U_down[i+1] - U_down[i] + dI = I_down_mA[i+1] - I_down_mA[i] + if abs(dI) > 0.05: + R_segment = abs(dU / dI) + if abs(R_segment - max_R_down_fd) < 1: # Нашли максимальный отрезок + ax_fd.plot([U_down[i], U_down[i+1]], [I_down_mA[i], I_down_mA[i+1]], + 'm-', linewidth=3, alpha=0.8, + label=f'Макс отрезок ↓: {max_R_down_fd:.1f} кОм') + break + +ax_fd.axvline(x=240, color='gray', linestyle='--', alpha=0.5) +ax_fd.axvline(x=320, color='gray', linestyle='--', alpha=0.5) + +title_fd = "Метод конечных разностей" +if max_R_up_fd is not None and max_R_down_fd is not None: + title_fd += f"\nR_диф: ↑{max_R_up_fd:.1f} кОм, ↓{max_R_down_fd:.1f} кОм" +elif max_R_up_fd is not None: + title_fd += f"\nR_диф: ↑{max_R_up_fd:.1f} кОм" +elif max_R_down_fd is not None: + title_fd += f"\nR_диф: ↓{max_R_down_fd:.1f} кОм" + +ax_fd.set_title(title_fd, fontsize=10) +ax_fd.set_xlabel('U_p, В', fontsize=9) +ax_fd.set_ylabel('I_p, мА', fontsize=9) +ax_fd.grid(True, linestyle='--', alpha=0.3) +ax_fd.legend(fontsize=8) + +# Убираем лишние subplots если методов меньше +for i in range(len(methods) + 1, len(axes)): + fig.delaxes(axes[i]) + +plt.tight_layout() +plt.savefig('all_approximation_methods_comparison.png', dpi=300, bbox_inches='tight') +plt.show() + +# --- СВОДКА РЕЗУЛЬТАТОВ --- +print("\n" + "="*70) +print("СВОДКА РЕЗУЛЬТАТОВ ПО ВСЕМ МЕТОДАМ") +print("="*70) + +print("\nМЕТОДЫ АППРОКСИМАЦИИ:") +for method_name, method_func in methods: + R_up, _, _, success_up, _ = calculate_resistance_for_method( + method_func, U_up, I_up_mA, method_name) + R_down, _, _, success_down, _ = calculate_resistance_for_method( + method_func, U_down, I_down_mA, method_name) + + if success_up and success_down: + print(f"{method_name}: ↑{R_up:.1f} кОм, ↓{R_down:.1f} кОм") + elif success_up: + print(f"{method_name}: ↑{R_up:.1f} кОм, ↓не рассчитано") + elif success_down: + print(f"{method_name}: ↑не рассчитано, ↓{R_down:.1f} кОм") + else: + print(f"{method_name}: не удалось рассчитать") + +print(f"\nМЕТОД КОНЕЧНЫХ РАЗНОСТЕЙ:") +if max_R_up_fd is not None and max_R_down_fd is not None: + print(f"Повышение: {max_R_up_fd:.1f} кОм, Понижение: {max_R_down_fd:.1f} кОм") + print(f"Среднее: {(max_R_up_fd + max_R_down_fd)/2:.1f} кОм") + +print(f"\nРЕКОМЕНДАЦИИ:") +print("1. Выберите метод, который лучше всего следует за экспериментальными точками") +print("2. Учитывайте физическую осмысленность полученного сопротивления") +print("3. Полином 3-й степени часто дает хороший баланс") +print("4. Если методы сильно расходятся, предпочтение отдается конечным разностям") diff --git a/3.5.1/Kotlyarov_M/data/VA_zond.py b/3.5.1/Kotlyarov_M/data/VA_zond.py new file mode 100644 index 00000000..bb8c8f17 --- /dev/null +++ b/3.5.1/Kotlyarov_M/data/VA_zond.py @@ -0,0 +1,574 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit + +# === 1. Загрузка данных === +file_path = 'VA_zond.xlsx' +sheet_name = 'Sheet1' +df = pd.read_excel(file_path, sheet_name=sheet_name, skiprows=1) + +currents = [5.0, 4.0, 3.02, 1.5] # мА +data_dict = {} +for i, current in enumerate(currents): + col_u = df.columns[2*i] + col_i = df.columns[2*i + 1] + u_data = df[col_u].dropna().values + i_data = df[col_i].dropna().values + data_dict[current] = {'U': u_data, 'I': i_data} + +print("Данные успешно загружены.") + +# === вспомогательные функции === +def tanh_func(U, I_in, Te): + return I_in * np.tanh(U / (2 * Te)) + +def dIdU_tanh(U, I_in, Te): + # производная tanh: I_in/(2Te) * sech^2(U/(2Te)) + arg = U / (2 * Te) if Te != 0 else 0.0 + return (I_in / (2 * Te)) * (1.0 / np.cosh(arg))**2 if Te != 0 else 0.0 + +def fit_edge(u, i, n_points=5, side='right'): + """Линейная аппроксимация n крайних точек. + Возвращает (k, b, u_sel, i_sel) или (None, None, None, None).""" + u = np.asarray(u) + i = np.asarray(i) + if len(u) < 2: + return None, None, None, None + idx_sorted = np.argsort(u) + if side == 'right': + idx_sel = idx_sorted[-n_points:] + else: + idx_sel = idx_sorted[:n_points] + u_sel = u[idx_sel] + i_sel = i[idx_sel] + if len(u_sel) < 2: + return None, None, None, None + order = np.argsort(u_sel) + u_sel = u_sel[order] + i_sel = i_sel[order] + A = np.vstack([u_sel, np.ones_like(u_sel)]).T + k, b = np.linalg.lstsq(A, i_sel, rcond=None)[0] + return float(k), float(b), u_sel, i_sel + +def safe_fmt(x): + if x is None: + return "None" + elif isinstance(x, float) and np.isnan(x): + return "None" + else: + return f"{x:.6f}" + +# === вспомогательные функции === +def fit_edge_with_errors(u, i, n_points=5, side='right'): + """Линейная аппроксимация n крайних точек с расчетом погрешностей. + Возвращает (k, b, se_k, se_b, u_sel, i_sel) или (None, None, None, None, None, None).""" + u = np.asarray(u) + i = np.asarray(i) + if len(u) < 2: + return None, None, None, None, None, None + + idx_sorted = np.argsort(u) + if side == 'right': + idx_sel = idx_sorted[-n_points:] + else: + idx_sel = idx_sorted[:n_points] + + u_sel = u[idx_sel] + i_sel = i[idx_sel] + + if len(u_sel) < 2: + return None, None, None, None, None, None + + order = np.argsort(u_sel) + u_sel = u_sel[order] + i_sel = i_sel[order] + + # Линейная регрессия + A = np.vstack([u_sel, np.ones_like(u_sel)]).T + k, b = np.linalg.lstsq(A, i_sel, rcond=None)[0] + + # Расчет погрешностей + n = len(u_sel) + if n > 2: + i_pred = k * u_sel + b + residuals = i_sel - i_pred + RSS = np.sum(residuals**2) # Residual Sum of Squares + MSE = RSS / (n - 2) # Mean Square Error + + # Стандартные ошибки коэффициентов + u_mean = np.mean(u_sel) + Sxx = np.sum((u_sel - u_mean)**2) + se_k = np.sqrt(MSE / Sxx) + se_b = np.sqrt(MSE * (1/n + u_mean**2 / Sxx)) + else: + se_k = None + se_b = None + + return float(k), float(b), se_k, se_b, u_sel, i_sel + +def calculate_central_derivative_with_error(u, i, n_points=3): + """Расчет производной в нуле и ее погрешности методом центральных разностей.""" + if len(u) < n_points: + return None, None + + idx_zero = np.argmin(np.abs(u)) + half_window = n_points // 2 + + start_idx = max(0, idx_zero - half_window) + end_idx = min(len(u), idx_zero + half_window + 1) + + u_window = u[start_idx:end_idx] + i_window = i[start_idx:end_idx] + + if len(u_window) < 2: + return None, None + + # Линейная регрессия для наклона + A = np.vstack([u_window, np.ones_like(u_window)]).T + k, b = np.linalg.lstsq(A, i_window, rcond=None)[0] + + # Погрешность наклона + n = len(u_window) + if n > 2: + i_pred = k * u_window + b + residuals = i_window - i_pred + RSS = np.sum(residuals**2) + MSE = RSS / (n - 2) + + u_mean = np.mean(u_window) + Sxx = np.sum((u_window - u_mean)**2) + se_k = np.sqrt(MSE / Sxx) + else: + se_k = None + + return float(k), se_k + +# === вспомогательные функции === +def calculate_tanh_derivative_error(I_in, Te, U, se_I_in, se_Te): + """Расчет погрешности производной функции tanh в точке U.""" + if I_in is None or Te is None or Te == 0: + return None, None, None + + x = U / (2 * Te) + sech2 = (1.0 / np.cosh(x))**2 + + # Производная: dI/dU = (I_in / (2 * Te)) * sech^2(U/(2*Te)) + dIdU = (I_in / (2 * Te)) * sech2 + + # Погрешность производной через частные производные + if se_I_in is not None and se_Te is not None: + # Частная производная по I_in + d_dIdU_dI_in = (1 / (2 * Te)) * sech2 + + # Частная производная по Te + d_dIdU_dTe = - (I_in / (2 * Te**2)) * sech2 + (I_in / (2 * Te)) * (-2 * sech2 * np.tanh(x) * (-U/(2*Te**2))) + d_dIdU_dTe = - (I_in / (2 * Te**2)) * sech2 * (1 - x * np.tanh(x)) + + se_dIdU = np.sqrt((d_dIdU_dI_in * se_I_in)**2 + (d_dIdU_dTe * se_Te)**2) + else: + se_dIdU = None + + return dIdU, se_dIdU + +def calculate_tanh_intercept_error(I_in, Te, U, se_I_in, se_Te): + """Расчет погрешности пересечения касательной к tanh с осью ординат.""" + if I_in is None or Te is None or Te == 0: + return None, None, None + + x = U / (2 * Te) + tanh_x = np.tanh(x) + sech2 = (1.0 / np.cosh(x))**2 + + # Значение функции в точке U + I_U = I_in * tanh_x + + # Производная в точке U + dIdU = (I_in / (2 * Te)) * sech2 + + # Пересечение с осью ординат: b = I_U - dIdU * U + b = I_U - dIdU * U + + # Погрешность пересечения через частные производные + if se_I_in is not None and se_Te is not None: + # Частные производные для I_U + d_I_U_dI_in = tanh_x + d_I_U_dTe = I_in * sech2 * (-U/(2*Te**2)) + + # Частные производные для dIdU (уже вычислены ранее) + d_dIdU_dI_in = (1 / (2 * Te)) * sech2 + d_dIdU_dTe = - (I_in / (2 * Te**2)) * sech2 * (1 - x * np.tanh(x)) + + # Частные производные для b + d_b_dI_in = d_I_U_dI_in - d_dIdU_dI_in * U + d_b_dTe = d_I_U_dTe - d_dIdU_dTe * U + + se_b = np.sqrt((d_b_dI_in * se_I_in)**2 + (d_b_dTe * se_Te)**2) + else: + se_b = None + + return b, se_b + +# === 3. Обработка данных === +results = {} +n_points_asymptote = 4 # используем только 3-4 крайние точки + +for current, data in data_dict.items(): + print(f"\n--- Обработка данных для I_p = {current} мА ---") + u_raw = np.asarray(data['U']) + i_raw = np.asarray(data['I']) + + if len(u_raw) == 0: + print(" Пустые данные, пропускаем.") + continue + + # --- центрирование по I≈0 --- + idx_cross = np.argmin(np.abs(i_raw)) + if idx_cross == 0 or idx_cross == len(i_raw) - 1: + u_cross = float(u_raw[idx_cross]) + else: + u1, u2 = float(u_raw[idx_cross-1]), float(u_raw[idx_cross+1]) + i1, i2 = float(i_raw[idx_cross-1]), float(i_raw[idx_cross+1]) + if i2 != i1: + u_cross = float(u1 - i1 * (u2 - u1) / (i2 - i1)) + else: + u_cross = float(u_raw[idx_cross]) + + u_centered = u_raw - u_cross + i_centered = i_raw.astype(float) + + # --- Метод 1: краевые прямые по конечным приращениям (3-4 крайние точки) --- + slope_pos, intercept_pos, se_slope_pos, se_intercept_pos, pos_u_sel, pos_i_sel = fit_edge_with_errors(u_centered, i_centered, n_points_asymptote, side='right') + slope_neg, intercept_neg, se_slope_neg, se_intercept_neg, neg_u_sel, neg_i_sel = fit_edge_with_errors(u_centered, i_centered, n_points_asymptote, side='left') + + # Расчет I_iн по методу конечных приращений + if (intercept_pos is not None) and (intercept_neg is not None): + I_iн_finite_upper = intercept_pos # пересечение правой асимптоты с U=0 + I_iн_finite_lower = intercept_neg # пересечение левой асимптоты с U=0 + I_iн_finite = 0.5 * (abs(intercept_pos) + abs(intercept_neg)) # среднее абсолютных значений + + # Погрешность I_iн_finite (среднее двух независимых измерений) + if se_intercept_pos is not None and se_intercept_neg is not None: + se_I_iн_finite = 0.5 * np.sqrt(se_intercept_pos**2 + se_intercept_neg**2) + else: + se_I_iн_finite = None + else: + I_iн_finite_upper = None + I_iн_finite_lower = None + I_iн_finite = None + se_I_iн_finite = None + + # Наклон в нуле по методу конечных приращений + dI_dU_finite, se_dI_dU_finite = calculate_central_derivative_with_error(u_centered, i_centered, n_points=5) + + # --- Метод 2: подгонка tanh и касательные в крайних точках --- + # начальное приближение + try: + # Более точное начальное приближение для I_in + I0_guess = np.max(np.abs(i_centered)) * 0.8 if len(i_centered) else 0.05 + # Начальное приближение для Te основано на наклоне в нуле + if dI_dU_finite is not None and I0_guess > 0: + Te_guess = I0_guess / (2 * abs(dI_dU_finite)) if abs(dI_dU_finite) > 1e-10 else 1.0 + else: + Te_guess = 1.0 + except Exception: + I0_guess = 0.05 + Te_guess = 1.0 + + p0 = [I0_guess, Te_guess] + + try: + # Добавляем ограничения для параметров + bounds = ([0.001, 0.1], [np.inf, 50.0]) # I_in > 0, Te в разумных пределах + popt, pcov = curve_fit(tanh_func, u_centered, i_centered, p0=p0, + bounds=bounds, maxfev=20000) + I_in_fit, Te_fit = float(popt[0]), float(popt[1]) + + # Погрешности параметров из ковариационной матрицы + perr = np.sqrt(np.diag(pcov)) + se_I_in_fit = float(perr[0]) if len(perr) > 0 else None + se_Te_fit = float(perr[1]) if len(perr) > 1 else None + except Exception as e: + print(f" (warning) Подгонка tanh не сошлась для I_p={current}: {e}") + # запасные значения + I_in_fit = I_iн_finite if (I_iн_finite is not None) else (np.max(np.abs(i_centered)) if len(i_centered) else 0.05) + Te_fit = Te_guess + se_I_in_fit = None + se_Te_fit = None + + # --- Расчет касательных для tanh в крайних точках с погрешностями --- + U_min, U_max = float(np.min(u_centered)), float(np.max(u_centered)) + + # Касательные в крайних точках диапазона данных с погрешностями + I_at_min = tanh_func(U_min, I_in_fit, Te_fit) + I_at_max = tanh_func(U_max, I_in_fit, Te_fit) + + # Производные в крайних точках с погрешностями + k_min, se_k_min = calculate_tanh_derivative_error(I_in_fit, Te_fit, U_min, se_I_in_fit, se_Te_fit) + k_max, se_k_max = calculate_tanh_derivative_error(I_in_fit, Te_fit, U_max, se_I_in_fit, se_Te_fit) + + # Пересечения с осью ординат с погрешностями + b_min, se_b_min = calculate_tanh_intercept_error(I_in_fit, Te_fit, U_min, se_I_in_fit, se_Te_fit) + b_max, se_b_max = calculate_tanh_intercept_error(I_in_fit, Te_fit, U_max, se_I_in_fit, se_Te_fit) + + # Пересечение касательных с осью ординат (U=0) для метода tanh + I_iн_tanh_upper = b_max # пересечение правой касательной с U=0 + I_iн_tanh_lower = b_min # пересечение левой касательной с U=0 + I_iн_tanh = 0.5 * (abs(b_max) + abs(b_min)) # среднее абсолютных значений + + # Погрешность среднего I_iн для метода tanh + if se_b_min is not None and se_b_max is not None: + se_I_iн_tanh = 0.5 * np.sqrt(se_b_min**2 + se_b_max**2) + else: + se_I_iн_tanh = None + + # Пересечение самих касательных (для графика) + if abs(k_min - k_max) > 1e-14: + U_cross_tanh = (b_max - b_min) / (k_min - k_max) + I_cross_tanh = k_min * U_cross_tanh + b_min + else: + U_cross_tanh = 0.0 + I_cross_tanh = 0.5 * (b_min + b_max) + + # Производная в нуле по методу tanh + dI_dU_at_zero_tanh = (I_in_fit / (2 * Te_fit)) if Te_fit != 0 else None + + # Погрешность производной в нуле для метода tanh + if dI_dU_at_zero_tanh is not None and se_I_in_fit is not None and se_Te_fit is not None: + # Используем формулу для погрешности частного + rel_error_I = se_I_in_fit / I_in_fit + rel_error_Te = se_Te_fit / Te_fit + se_dI_dU_at_zero_tanh = abs(dI_dU_at_zero_tanh) * np.sqrt(rel_error_I**2 + rel_error_Te**2) + else: + se_dI_dU_at_zero_tanh = None + + # --- сохраняем результаты --- + results[current] = { + # данные + 'u_cross': u_cross, + 'u_centered': u_centered, # ДОБАВЛЕНО + 'i_centered': i_centered, # ДОБАВЛЕНО + # метод конечных приращений (краевые прямые по 3-4 точкам) + 'slope_pos': slope_pos, 'intercept_pos': intercept_pos, + 'se_slope_pos': se_slope_pos, 'se_intercept_pos': se_intercept_pos, + 'pos_u_sel': pos_u_sel, 'pos_i_sel': pos_i_sel, + 'slope_neg': slope_neg, 'intercept_neg': intercept_neg, + 'se_slope_neg': se_slope_neg, 'se_intercept_neg': se_intercept_neg, + 'neg_u_sel': neg_u_sel, 'neg_i_sel': neg_i_sel, + 'I_iн_finite_upper': I_iн_finite_upper, 'I_iн_finite_lower': I_iн_finite_lower, + 'I_iн_finite': I_iн_finite, 'se_I_iн_finite': se_I_iн_finite, + 'dI_dU_finite': dI_dU_finite, 'se_dI_dU_finite': se_dI_dU_finite, + # tanh fit и касательные в крайних точках с погрешностями + 'I_in_fit': I_in_fit, 'Te_fit': Te_fit, + 'se_I_in_fit': se_I_in_fit, 'se_Te_fit': se_Te_fit, + 'tanh_k_min': k_min, 'tanh_b_min': b_min, 'se_tanh_k_min': se_k_min, 'se_tanh_b_min': se_b_min, + 'tanh_k_max': k_max, 'tanh_b_max': b_max, 'se_tanh_k_max': se_k_max, 'se_tanh_b_max': se_b_max, + 'U_min': U_min, 'U_max': U_max, + 'I_iн_tanh_upper': I_iн_tanh_upper, 'I_iн_tanh_lower': I_iн_tanh_lower, + 'I_iн_tanh': I_iн_tanh, 'se_I_iн_tanh': se_I_iн_tanh, + 'U_cross_tanh': U_cross_tanh, 'I_cross_tanh': I_cross_tanh, + 'dI_dU_at_zero_tanh': dI_dU_at_zero_tanh, 'se_dI_dU_at_zero_tanh': se_dI_dU_at_zero_tanh + } + + # печать результатов - ПОЛНЫЕ ДАННЫЕ ПО ОБОИМ МЕТОДАМ + print("Метод конечных приращений (3-4 крайние точки):") + print(f" I_iн (верхняя асимптота): {safe_fmt(I_iн_finite_upper)} ± {safe_fmt(se_intercept_pos)} мА") + print(f" I_iн (нижняя асимптота): {safe_fmt(I_iн_finite_lower)} ± {safe_fmt(se_intercept_neg)} мА") + print(f" I_iн (среднее): {safe_fmt(I_iн_finite)} ± {safe_fmt(se_I_iн_finite)} мА") + print(f" Наклон правой асимптоты: {safe_fmt(slope_pos)} ± {safe_fmt(se_slope_pos)} мА/В") + print(f" Наклон левой асимптоты: {safe_fmt(slope_neg)} ± {safe_fmt(se_slope_neg)} мА/В") + print(f" dI/dU в нуле: {safe_fmt(dI_dU_finite)} ± {safe_fmt(se_dI_dU_finite)} мА/В") + + print("Метод tanh (касательные в крайних точках):") + print(f" I_iн (верхняя касательная): {safe_fmt(I_iн_tanh_upper)} ± {safe_fmt(se_b_max)} мА") + print(f" I_iн (нижняя касательная): {safe_fmt(I_iн_tanh_lower)} ± {safe_fmt(se_b_min)} мА") + print(f" I_iн (среднее): {safe_fmt(I_iн_tanh)} ± {safe_fmt(se_I_iн_tanh)} мА") + print(f" Наклон правой касательной: {safe_fmt(k_max)} ± {safe_fmt(se_k_max)} мА/В") + print(f" Наклон левой касательной: {safe_fmt(k_min)} ± {safe_fmt(se_k_min)} мА/В") + print(f" I_in (параметр подгонки): {safe_fmt(I_in_fit)} ± {safe_fmt(se_I_in_fit)} мА") + print(f" Te (из fit): {safe_fmt(Te_fit)} ± {safe_fmt(se_Te_fit)} эВ") + print(f" dI/dU в нуле (из fit): {safe_fmt(dI_dU_at_zero_tanh)} ± {safe_fmt(se_dI_dU_at_zero_tanh)} мА/В") + + # Расчет температуры по методу конечных приращений (по формуле 5.26) + if I_iн_finite is not None and dI_dU_finite is not None and dI_dU_finite != 0: + Te_finite = I_iн_finite / (2 * abs(dI_dU_finite)) + + # Погрешность Te_finite (формула для частного) + if se_I_iн_finite is not None and se_dI_dU_finite is not None: + rel_error_I = se_I_iн_finite / I_iн_finite + rel_error_dI_dU = se_dI_dU_finite / abs(dI_dU_finite) + se_Te_finite = Te_finite * np.sqrt(rel_error_I**2 + rel_error_dI_dU**2) + else: + se_Te_finite = None + + print(f" Te (по методу конечных приращений): {safe_fmt(Te_finite)} ± {safe_fmt(se_Te_finite)} эВ") + + # === Объединение результатов по двум методам === + combined_results = {} + + # Объединение для I_iн + I_iн_values = [] + I_iн_errors = [] + + if I_iн_finite is not None and se_I_iн_finite is not None: + I_iн_values.append(I_iн_finite) + I_iн_errors.append(se_I_iн_finite) + + if I_iн_tanh is not None and se_I_iн_tanh is not None: + I_iн_values.append(I_iн_tanh) + I_iн_errors.append(se_I_iн_tanh) + + if len(I_iн_values) > 0: + if len(I_iн_values) == 2: + # Средневзвешенное по двум методам + weights = [1/err**2 for err in I_iн_errors] + I_iн_combined = np.average(I_iн_values, weights=weights) + # Погрешность средневзвешенного + se_I_iн_combined = 1 / np.sqrt(sum(weights)) + else: + # Только один метод + I_iн_combined = I_iн_values[0] + se_I_iн_combined = I_iн_errors[0] + + combined_results['I_iн'] = I_iн_combined + combined_results['se_I_iн'] = se_I_iн_combined + + # Объединение для температуры электронов + Te_values = [] + Te_errors = [] + + # Температура из метода конечных приращений + if I_iн_finite is not None and dI_dU_finite is not None and dI_dU_finite != 0: + Te_finite = I_iн_finite / (2 * abs(dI_dU_finite)) + if se_I_iн_finite is not None and se_dI_dU_finite is not None: + rel_error_I = se_I_iн_finite / I_iн_finite + rel_error_dI_dU = se_dI_dU_finite / abs(dI_dU_finite) + se_Te_finite = Te_finite * np.sqrt(rel_error_I**2 + rel_error_dI_dU**2) + Te_values.append(Te_finite) + Te_errors.append(se_Te_finite) + + # Температура из метода tanh + if Te_fit is not None and se_Te_fit is not None: + Te_values.append(Te_fit) + Te_errors.append(se_Te_fit) + + if len(Te_values) > 0: + if len(Te_values) == 2: + weights = [1/err**2 for err in Te_errors] + Te_combined = np.average(Te_values, weights=weights) + se_Te_combined = 1 / np.sqrt(sum(weights)) + else: + Te_combined = Te_values[0] + se_Te_combined = Te_errors[0] + + combined_results['Te'] = Te_combined + combined_results['se_Te'] = se_Te_combined + + # Объединение для производной в нуле + dIdU_values = [] + dIdU_errors = [] + + if dI_dU_finite is not None and se_dI_dU_finite is not None: + dIdU_values.append(dI_dU_finite) + dIdU_errors.append(se_dI_dU_finite) + + if dI_dU_at_zero_tanh is not None and se_dI_dU_at_zero_tanh is not None: + dIdU_values.append(dI_dU_at_zero_tanh) + dIdU_errors.append(se_dI_dU_at_zero_tanh) + + if len(dIdU_values) > 0: + if len(dIdU_values) == 2: + weights = [1/err**2 for err in dIdU_errors] + dIdU_combined = np.average(dIdU_values, weights=weights) + se_dIdU_combined = 1 / np.sqrt(sum(weights)) + else: + dIdU_combined = dIdU_values[0] + se_dIdU_combined = dIdU_errors[0] + + combined_results['dIdU'] = dIdU_combined + combined_results['se_dIdU'] = se_dIdU_combined + + # Сохраняем объединенные результаты + results[current]['combined'] = combined_results + + # Печать объединенных результатов + print("\nОБЪЕДИНЕННЫЕ РЕЗУЛЬТАТЫ (по двум методам):") + if 'I_iн' in combined_results: + print(f" I_iн: {safe_fmt(combined_results['I_iн'])} ± {safe_fmt(combined_results['se_I_iн'])} мА") + if 'Te' in combined_results: + print(f" Te: {safe_fmt(combined_results['Te'])} ± {safe_fmt(combined_results['se_Te'])} эВ") + if 'dIdU' in combined_results: + print(f" dI/dU: {safe_fmt(combined_results['dIdU'])} ± {safe_fmt(combined_results['se_dIdU'])} мА/В") + +# === 4. Построение графика === + +plt.figure(figsize=(14, 8)) +colors = ['blue', 'orange', 'green', 'red'] + +for idx, (current, data) in enumerate(data_dict.items()): + if current not in results: + continue + res = results[current] + u_centered = res['u_centered'] + i_centered = res['i_centered'] + color = colors[idx % len(colors)] + + # точки + plt.plot(u_centered, i_centered, 'o', color=color, label=f'I_p={current} мА (данные)') + + # tanh (используем параметры fit I_in_fit, Te_fit) + I_in_fit = res['I_in_fit']; Te_fit = res['Te_fit'] + u_smooth = np.linspace(u_centered.min(), u_centered.max(), 500) + plt.plot(u_smooth, tanh_func(u_smooth, I_in_fit, Te_fit), '-', color=color, lw=2, label=f'I_p={current} мА (tanh аппрокс.)') + + # касательные по tanh (на концах), рисуем от края к нулю (не уводя слишком далеко) + kL = res['tanh_k_min']; bL = res['tanh_b_min'] + kR = res['tanh_k_max']; bR = res['tanh_b_max'] + U_min = res['U_min']; U_max = res['U_max'] + span = U_max - U_min if U_max != U_min else 1.0 + u_tan_left = np.linspace(U_min, min(U_min + 0.6*span, 0.0), 200) + u_tan_right = np.linspace(max(U_max - 0.6*span, 0.0), U_max, 200) + plt.plot(u_tan_left, kL*u_tan_left + bL, '--', color=color, lw=1.6, label=f'I_p={current} мА (касательные tanh)') + plt.plot(u_tan_right, kL*u_tan_right + bR, '--', color=color, lw=1.6) + # точка пересечения касательных (I_iн по tanh) + Uc = res['U_cross_tanh']; Ic = res['I_iн_tanh'] + plt.scatter(Uc, Ic, s=60, color=color, edgecolor='k', zorder=10, label=f'I_iн(tanh)={safe_fmt(Ic)} мА') + + # краевые асимптоты по конечным приращениям (продлить до 0) + k_pos = res['slope_pos']; b_pos = res['intercept_pos'] + k_neg = res['slope_neg']; b_neg = res['intercept_neg'] + if (k_pos is not None) and (b_pos is not None): + u_line_pos = np.linspace(0.0, U_max, 200) + plt.plot(u_line_pos, k_pos*u_line_pos + b_pos, '-.', color=color, lw=1.2, label=f'I_p={current} мА (асимпт. конеч. приращ.)') + # показать точки, по которым считали правую аппроксимацию + pos_u = res.get('pos_u_sel'); pos_i = res.get('pos_i_sel') + if pos_u is not None: + plt.plot(pos_u, pos_i, 'x', color=color, alpha=0.8) + if (k_neg is not None) and (b_neg is not None): + u_line_neg = np.linspace(U_min, 0.0, 200) + plt.plot(u_line_neg, k_neg*u_line_neg + b_neg, '-.', color=color, lw=1.2) + neg_u = res.get('neg_u_sel'); neg_i = res.get('neg_i_sel') + if neg_u is not None: + plt.plot(neg_u, neg_i, 'x', color=color, alpha=0.8) + +# оформление +plt.xlabel('U, В') +plt.ylabel('I, мА') +plt.title('ВАХ двойного зонда в плазме при разных токах разряда') +plt.grid(True) + +# лимиты чтобы точка пересечения не выпала (расширяем немного диапазон) +all_u = np.concatenate([res['u_centered'] for res in results.values()]) +all_i = np.concatenate([res['i_centered'] for res in results.values()]) +xpad = 0.1 * (all_u.max() - all_u.min()) if (all_u.max() - all_u.min()) != 0 else 1.0 +ypad = 0.2 * (all_i.max() - all_i.min()) if (all_i.max() - all_i.min()) != 0 else 1.0 +plt.xlim(all_u.min() - xpad, all_u.max() + xpad) +plt.ylim(all_i.min() - ypad, all_i.max() + ypad) + +plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', fontsize='small') +plt.tight_layout() +plt.savefig('VA_zond.png', dpi=300, bbox_inches='tight') +plt.show() + +print("\nОбработка завершена. График сохранен как VA_zond.png.") + diff --git a/3.5.1/Kotlyarov_M/data/VA_zond.xlsx b/3.5.1/Kotlyarov_M/data/VA_zond.xlsx new file mode 100644 index 00000000..1aa78232 Binary files /dev/null and b/3.5.1/Kotlyarov_M/data/VA_zond.xlsx differ diff --git a/3.5.1/Kotlyarov_M/data/data.xlsx b/3.5.1/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..cf9f8613 Binary files /dev/null and b/3.5.1/Kotlyarov_M/data/data.xlsx differ diff --git a/3.5.1/Kotlyarov_M/main.pdf b/3.5.1/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..5f8fd6f0 Binary files /dev/null and b/3.5.1/Kotlyarov_M/main.pdf differ diff --git a/3.5.1/Kotlyarov_M/main.tex b/3.5.1/Kotlyarov_M/main.tex new file mode 100644 index 00000000..d5b47d0f --- /dev/null +++ b/3.5.1/Kotlyarov_M/main.tex @@ -0,0 +1,341 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage{multirow} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\usepackage{siunitx} +\usepackage{booktabs} +\sisetup{ + exponent-product = \cdot, + per-mode = symbol, + separate-uncertainty = true, + uncertainty-separator = \, +} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.5.1}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + +\section{Введение} + +\subsection{Цель работы} +Целью данной лабораторной работы является экспериментальное исследование параметров плазмы тлеющего газового разряда в неоне методом двойного зонда. В ходе работы измеряются вольт-амперная характеристика разряда и зондовые характеристики при различных токах разряда. На основе полученных данных определяются основные параметры плазмы: температура и концентрация электронов, степень ионизации, дебаевский радиус экранирования и плазменная частота. + +\subsection{Оборудование} +Для выполнения работы используется следующее оборудование: +\begin{itemize} +\item стеклянная газоразрядная трубка, заполненная изотопом неона $^{22}\mathrm{Ne}$ при давлении 2~торр; + \item катод — холодный (ненагреваемый) полый катод; + \item три анода (Анод-I, Анод-II, Анод-III), где Анод-III в данной работе не используется; + \item геттерный узел — стеклянный баллон с газопоглощающей плёнкой; + \item высоковольтный источник питания (ВИП) с регулируемым выходным напряжением до 5~кВ; + \item источник постоянного тока Б5-47 (0--30~В); + \item балластный резистор $R_6 \approx 450$~кОм; + \item высокоомный делитель напряжения ($R_1 + R_2)/R_2 = 10$, сопротивление $R_2 = 25$~МОм; + \item двойной зонд из молибденовой проволоки диаметром $d = 0.2$~мм и длиной $l = 5.2$~мм; + \item потенциометр $R$ для регулировки напряжения на зондах; + \item переключатель полярности П2; + \item дискретный переключатель «V» для выбора выходного напряжения источника питания GPS; + \item цифровые мультиметры GDM: $V_1$ — для измерения падения напряжения на трубке, $V_2$ — для измерения напряжения на зондах; + \item миллиамперметры: $A_1$ — для измерения тока разряда, $A_2$ — для измерения зондового тока. +\end{itemize} +\subsection{Теоретические сведения} +Плазма — это ионизованный газ, в котором концентрации положительных и отрицательных зарядов практически равны (квазинейтральность), а поведение частиц носит коллективный характер. Основными параметрами плазмы являются: +\begin{itemize} +\item \textbf{Температура электронов} $T_e$, обычно выражаемая в энергетических единицах (эВ): $1~\text{эВ} \approx 11\,600~\text{К}$; + \item \textbf{Концентрация электронов} $n_e$ (и ионов $n_i$, при $Z=1$ предполагается $n_e = n_i$); + \item \textbf{Плазменная частота} — характерная частота собственных колебаний электронов: + \[ + \omega_p = \sqrt{\frac{4\pi n_e e^2}{m_e}}, + \] + где $e$ — заряд электрона, $m_e$ — его масса; + \item \textbf{Дебаевский радиус экранирования} — характерный масштаб, на котором нарушается квазинейтральность: + \[ + r_D = \sqrt{\frac{k_\text{Б} T_e}{4\pi n_e e^2}}. + \] + В случае $T_e \gg T_i$ (неравновесная плазма) используется электронная поляризационная длина $r_{De}$, определяемая той же формулой с $T = T_e$; + \item \textbf{Степень ионизации} $\alpha = n_e / n_0$, где $n_0$ — концентрация нейтральных частиц, связанная с давлением $P$ идеально-газовым соотношением $P = n_0 k_\text{Б} T_g$. + +Когда в плазму помещается зонд, не подключённый к внешней цепи (плавающий зонд), он заряжается до определённого потенциала $U_f$, называемого \textbf{плавающим потенциалом}. Этот потенциал определяется условием равенства токов электронов и ионов на зонд, так как в равновесии суммарный ток на зонд должен быть равен нулю. Плавающий потенциал обычно отрицателен по сравнению с потенциалом плазмы, так как электроны, обладающие большей подвижностью, приходят на зонд быстрее, чем ионы, и зонд заряжается отрицательно до тех пор, пока не установится баланс токов. + +Для диагностики плазмы применяется \textbf{двойной зонд} — пара одинаковых электродов, погружённых в плазму. При малых напряжениях между зондами ($|U| \ll |U_f|$, где $U_f$ — плавающий потенциал) вольт-амперная характеристика описывается выражением: +\[ + I(U) = I_{i\text{н}} \tanh\!\left(\frac{eU}{2k_\text{Б} T_e}\right), +\] +где $I_{i\text{н}}$ — ионный ток насыщения. Из наклона характеристики в начале координат определяется температура электронов: +\[ + k_\text{Б} T_e = \frac{1}{2} \frac{e I_{i\text{н}}}{\left.\frac{dI}{dU}\right|_{U=0}}. +\] +Концентрация электронов вычисляется по полуэмпирической формуле Бома: +\[ + I_{i\text{н}} \approx 0{,}4\, n_e e S \sqrt{\frac{2 k_\text{Б} T_e}{m_i}}, +\] +где $S \approx \pi d l$ — площадь поверхности зонда, $m_i$ — масса иона. +\end{itemize} +\subsection*{Экспериментальная установка} +Экспериментальная установка состоит из стеклянной газоразрядной трубки, заполненной неоном при давлении $P = 2$~мм рт. ст. Разряд возбуждается между катодом и одним из анодов. При изучении вольт-амперной характеристики разряда используется Анод-I, подключаемый через балластный резистор $R_6$ к ВИП. Напряжение на трубке измеряется вольтметром $V_1$ через высокоомный делитель напряжения, а ток разряда — амперметром $A_1$. + +\clearpage +\begin{figure}[h] + \center{\includegraphics[width=0.81\textwidth]{Pictures/ustanovka.png}} + \caption{Рисунок 1. Экспериментальная установка} +\end{figure} + +При зондовых измерениях используется Анод-II, в пространстве между которым и катодом расположен двойной зонд. Зонды изготовлены из молибденовой проволоки ($d = 0.2$~мм, $l = 5.2$~мм). Напряжение на зондах регулируется потенциометром $R$ и измеряется вольтметром $V_2$, а ток через зонды — микроамперметром $A_2$. Переключатель П2 позволяет изменять полярность напряжения на зондах. Все измерения проводятся при фиксированных значениях тока разряда $I_p$, контролируемого амперметром $A_1$. + +\section{Выполнение} + +\subsection{Измерение вольт-амперной характеристики разряда} + +\begin{enumerate} +\item \textbf{Подготовка схемы:} + + Установим переключатель П1 в положение «Анод-I». Подготовим приборы: вольтметр $V_1$ (для измерения напряжения на трубке) и амперметр $A_1$ (для измерения тока разряда). + +\textbf{Определение напряжения зажигания:} + \item Плавно увеличивая выходное напряжение ВИП, следим за показаниями вольтметра $V_1$. + \item Запишем значение напряжения $U_{\text{заж}}$, которое показывает вольтметр $V_1$ непосредственно перед зажиганием разряда (резкое увеличение тока $I_p$). $U_{\text{заж}} = 1940$ В. + +\textbf{Снятие основной ветви ВАХ:} + \item Установим минимальное напряжение ВИП. + \item Постепенно увеличивая напряжение ВИП, снимаем показания вольтметра $V_1$ (напряжение $U_p$) и амперметра $A_1$ (ток $I_p$) в диапазоне токов от 0,5 мА до 5 мА. Измерения проведем как при нарастании, так и при убывании тока. +\clearpage +\begin{table}[h!] + \centering + \begin{minipage}{0.48\textwidth} + \centering + + \label{tab:vac_increase} + \begin{tabular}{|c|c|} + \hline + $U_p$, В & $I_p$, мА \\ \hline + 340,2 & 0,516 \\ \hline + 337,0 & 0,598 \\ \hline + 332,5 & 0,683 \\ \hline + 330,0 & 0,762 \\ \hline + 327,8 & 0,821 \\ \hline + 324,8 & 0,916 \\ \hline + 321,0 & 1,065 \\ \hline + 318,0 & 1,215 \\ \hline + 316,1 & 1,325 \\ \hline + 314,0 & 1,472 \\ \hline + 308,0 & 1,784 \\ \hline + 299,0 & 1,972 \\ \hline + 287,0 & 2,106 \\ \hline + 280,0 & 2,202 \\ \hline + 264,0 & 2,604 \\ \hline + 251,0 & 2,906 \\ \hline + 247,0 & 3,014 \\ \hline + 238,0 & 3,197 \\ \hline + 230,0 & 3,550 \\ \hline + 225,0 & 4,252 \\ \hline + 217,0 & 5,017 \\ \hline + \end{tabular} +\caption{Таблица 1.1. ВАХ разряда при повышении тока $I_p$.} + \end{minipage} + \hfill + \begin{minipage}{0.48\textwidth} + \centering + + \label{tab:vac_decrease} + \begin{tabular}{|c|c|} + \hline + $U_p$, В & $I_p$, мА \\ \hline + 217,0 & 4,969 \\ \hline + 221,0 & 4,564 \\ \hline + 223,8 & 4,168 \\ \hline + 224,8 & 3,781 \\ \hline + 230,7 & 3,396 \\ \hline + 247,0 & 2,991 \\ \hline + 254,0 & 2,822 \\ \hline + 263,0 & 2,637 \\ \hline + 280,0 & 2,232 \\ \hline + 286,0 & 2,121 \\ \hline + 295,0 & 1,993 \\ \hline + 306,8 & 1,805 \\ \hline + 313,0 & 1,502 \\ \hline + 319,0 & 1,129 \\ \hline + 328,0 & 0,802 \\ \hline + 336,7 & 0,599 \\ \hline + 341,0 & 0,531 \\ \hline + \end{tabular} + \caption{Таблица 1.2. ВАХ разряда при понижении тока $I_p$.} + \end{minipage} +\end{table} + +Построим график ВАХ аппроксимируя его сплайном 3-й степени и найдем максимальное дифференциальное сопротивление $\frac{dU}{dI}$. +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/VA_characteristic_cubic_spline.png}} + \caption{График 1. ВАХ тлеющего разряда} +\end{figure} + +Мы искали дифференециальное сопротивление по двум методам - с помощью аппроксимации сплайном и с помощью метода конечных приращений. Затем взяли среднее значение: $R_{\text{диф}}^{\text{сплайн}} = 107,7 \pm 3,3$ кОм ($\varepsilon_{R_{\text{диф}}^{\text{сплайн}}} = 3,06 \%$), $R_{\text{диф}}^{\text{конеч}} = 79,9 \pm 13,4$ кОм ($\varepsilon_{R_{\text{диф}}^{\text{конеч}}} = 16,77 \%$), $R_{\text{диф}}^{\text{ср}} = 93,8$ кОм, \\$\sigma_{R_{\text{диф}}^{\text{ср}}} = \frac{1}{2} \sqrt{\left(\sigma_{R_{\text{диф}}^{\text{сплайн}}} \right)^2 + \left( \sigma_{R_{\text{диф}}^{\text{конеч}}} \right)^2 } = 6,9$ кОм ($\varepsilon_{R_{\text{диф}}^{\text{ср}}} = 7,36 \%$). + +\subsection{Измерение зондовых характеристик} + + \item Уменьшим напряжение ВИП до нуля. Переведём переключатель П1 в положение «Анод-II». Теперь разряд будет происходить между катодом и Анодом-II, где находится двойной зонд. Подготовим приборы: переключатель полярности П2, вольтметр $V_2$ (для измерения напряжения на зондах) и микроамперметр $A_2$ (для измерения зондового тока). + + \item Плавно увеличиваем напряжение ВИП до возникновения разряда. Установим максимальное значение разрядного тока $I_p = 5$ мА, как указано в техническом описании. + + \item Подготовим к работе источник питания зондов. С помощью потенциометра $R$ установим на зонде максимальное напряжение $U^{\text{max}}_{\text{з}} = 25$ В, как указано в описании. + + \item Измерим вольт-амперную характеристику двойного зонда $I_{\text{з}}(U_{\text{з}})$ в диапазоне от $-U^{\text{max}}_{\text{з}}$ до $+U^{\text{max}}_{\text{з}}$. В процессе измерений следим, чтобы ток разряда $I_p$ оставался постоянным. При достижении тока $I_{\text{з}} = 0$ переключим полярность подключения зонда с помощью переключателя П2 и продолжим измерения. Одновременно строим приближенный график $I(U)$ в тетради, чтобы убедиться в наличии асимптот. + + \item Повторим процедуру снятия зондовой характеристики при других значениях тока разряда $I_p$ (4 мА, 3.02 мА, 1.5 мА). + + \item Запишем параметры установки: давление в трубке (2 торр), геометрические размеры зондов ($d = 0.2$ мм, $l = 5.2$ мм). + +\item Построим ВАХ двойного зонда для разных токов, аппроксимирую гиперболическим тангенсом согласно теории. Касательные в нуле проведем по аппроксимации и по методу конечных приращений. Асимптоты на краях проведем по методу конечных приращений и как касательные к аппроксимации в крайних точках. + +\begin{figure}[h] + \center{\includegraphics[width=1.05\textwidth]{Graphics/VA_zond.png}} + \caption{График 2. ВАХ двойного зонда в плазме} +\end{figure} +\clearpage +\begin{table}[h!] + \centering + + \label{tab:probe_data} + \begin{tabular}{|c|c|c|c|c|} + \hline + \textbf{Ток разряда, мА} & \textbf{Метод} & $I_{i\text{н}} \pm \Delta I_{i\text{н}}$, мА & $dI/dU|_{U=0} \pm \Delta (dI/dU)$, мА/В \\ + \hline + \multirow{3}{*}{5} & Сплайн & $0{,}0801 \pm 0{,}0027$ & $0{,}0084 \pm 0{,}0007$ \\ + \cline{2-4} + & Конечные приращения & $0{,}0779 \pm 0{,}0027$ & $0{,}0078 \pm 0{,}0008$ \\ + \cline{2-4} + & Усреднённое & $0{,}0790 \pm 0{,}0019$ & $0{,}0082 \pm 0{,}0005$ \\ + \hline + \multirow{3}{*}{4} & Сплайн & $0{,}0739 \pm 0{,}0025$ & $0{,}0074 \pm 0{,}0007$ \\ + \cline{2-4} + & Конечные приращения & $0{,}0656 \pm 0{,}0029$ & $0{,}0064 \pm 0{,}0003$ \\ + \cline{2-4} + & Усреднённое & $0{,}0704 \pm 0{,}0019$ & $0{,}0065 \pm 0{,}0003$ \\ + \hline + \multirow{3}{*}{3,02} & Сплайн & $0{,}0562 \pm 0{,}0017$ & $0{,}0058 \pm 0{,}0006$ \\ + \cline{2-4} + & Конечные приращения & $0{,}0451 \pm 0{,}0001$ & $0{,}0056 \pm 0{,}0002$ \\ + \cline{2-4} + & Усреднённое & $0{,}0451 \pm 0{,}0001$ & $0{,}0056 \pm 0{,}0002$ \\ + \hline + \multirow{3}{*}{1,5} & Сплайн & $0{,}0282 \pm 0{,}0012$ & $0{,}0030 \pm 0{,}0005$ \\ + \cline{2-4} + & Конечные приращения & $0{,}0204 \pm 0{,}0006$ & $0{,}0028 \pm 0{,}0001$ \\ + \cline{2-4} + & Усреднённое & $0{,}0219 \pm 0{,}0005$ & $0{,}0028 \pm 0{,}0001$ \\ + \hline + \end{tabular} + \caption{Таблица 2. Результаты обработки зондовых характеристик при различных токах разряда.} +\end{table} + +Средние значения брались как взвешенное по погрешностям среднее, т.е., например, для тока насыщения $I_{\text{iн}}^{\text{ср}} = \frac{w^{\text{конеч}} I_{\text{iн}}^{\text{конеч}} +w^{\text{сплайн}} I_{\text{iн}}^{\text{сплайн}}}{w^{\text{конеч}} + w^{\text{сплайн}}}$, $\Delta I_{\text{iн}}^{\text{ср}} = \sqrt{\frac{1}{w^{\text{конеч}} + w^{\text{сплайн}}}}$, $w = \frac{1}{\left(\Delta I_{\text{iн}} \right)^2}$. + +\item рассчитаем теперь температуру электронов $T_e$, концентрацию электронов и ионов $n_i \approx n_e$, ленгмюровскую частоту $\omega_p$ электронов, дебаевский радиус электронов $r_{De}$и экранирования $r_D$, среднее число ионов в дебаевской сфере $N_D$, степень ионизации плазмы $\alpha$. + +\begin{table}[h!] +\centering + +\label{tab:plasma_params} +\begin{tabular}{|l|c|c|c|c|c|c|c|c|} +\hline +\multirow{2}{*}{Параметр} & +\multicolumn{2}{c|}{$I_p = 5$~мА} & +\multicolumn{2}{c|}{$I_p = 4$~мА} & +\multicolumn{2}{c|}{$I_p = 3,02$~мА} & +\multicolumn{2}{c|}{$I_p = 1,5$~мА} \\ +\cline{2-9} +& Значение & $\varepsilon$, \% & Значение & $\varepsilon$, \% & Значение & $\varepsilon$, \% & Значение & $\varepsilon$, \% \\ +\hline + +\multirow{2}{*}{$T_e$, К} & \multirow{2}{*}{$55900 \pm 3843$} & \multirow{2}{*}{6,87} & \multirow{2}{*}{$62386 \pm 2990$} & \multirow{2}{*}{4,79} & \multirow{2}{*}{$46615 \pm 1621$} & \multirow{2}{*}{3,48} & \multirow{2}{*}{$45224 \pm 1474$} & \multirow{2}{*}{3,26} \\ +& & & & & & & & \\ +\cline{1-1} \cline{2-9} + +$T_e$, эВ & $4,82 \pm 0,33$ & & $5,38 \pm 0,26$ & & $4,02 \pm 0,14$ & & $3,90 \pm 0,13$ & \\ +\hline + +$n_e = n_i$, $10^{10}$~см$^{-3}$ & $5,56 \pm 0,23$ & 4,21 & $4,69 \pm 0,17$ & 3,60 & $3,48 \pm 0,06$ & 1,75 & $1,71 \pm 0,05$ & 2,90 \\ +\hline + +$r_{De}$, $10^{-3}$~см & $6,92 \pm 0,28$ & 4,03 & $7,96 \pm 0,24$ & 3,00 & $7,99 \pm 0,16$ & 1,95 & $11,22 \pm 0,24$ & 2,18 \\ +\hline + +$r_D$, $10^{-4}$~см & $5,06 \pm 0,20$ & 4,03 & $5,51 \pm 0,17$ & 3,00 & $6,39 \pm 0,12$ & 1,95 & $9,10 \pm 0,20$ & 2,18 \\ +\hline + +$N_D$ & $30,1 \pm 3,9$ & 12,8 & $32,8 \pm 3,2$ & 9,68 & $38,0 \pm 2,3$ & 6,09 & $54,1 \pm 3,9$ & 7,16 \\ +\hline + +$\alpha$, $10^{-7}$ & $8,64 \pm 0,35$ & 4,03 & $7,28 \pm 0,22$ & 3,00 & $5,40 \pm 0,11$ & 1,95 & $2,66 \pm 0,06$ & 2,18 \\ +\hline + +$\omega_p$, $10^{10}$~рад/с & $1,330 \pm 0,028$ & 2,11 & $1,221 \pm 0,022$ & 1,80 & $1,052 \pm 0,009$ & 0,87 & $0,738 \pm 0,011$ & 1,45 \\ +\hline + +\end{tabular} +\caption{Таблица 3. Параметры плазмы при различных токах разряда} +\end{table} + +\item Построим графики $T_e(I_\text{р})$ и $n_e(I_\text{р})$. + +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/ne_vs_Ip_linear_fit.png}} + \caption{График 3. Зависимость концентрации электронов от тока разряда в плазме} +\end{figure} + +\begin{figure}[h] + \center{\includegraphics[width=0.7\textwidth]{Graphics/Te_vs_Ip_points.png}} + \caption{График 4. Зависимость температуры электронов от тока разряда} +\end{figure} +\clearpage + +Наклон прямой $n_e(I_\text{р})$ $k = (1,140 \pm 0,015) \cdot 10^{10} \ \frac{\text{см}^{-3}}{\text{мА}}$ ($\varepsilon_k = 1,35 \%$). +\end{enumerate} + +\section{Результаты и обсуждения} + +В данной работе было проведено исследование плазмы. +\begin{enumerate} +\item Построили ВАХ тлеющего разряда, по ней определили максимальное дифферециальное сопротивление $R_{\text{диф}}^{\text{ср}} = 93,8 \pm 6,9$ кОм ($\varepsilon_{R_{\text{диф}}^{\text{ср}}} = 7,36 \%$). Учитывая простоту метода определения этой величины, погрешность получилась удовлетворительной. +\item Построили ВАХ двойного зонда в плазме при разных токах рязряда. По ней получили разные характерные параметры плазмы (см. таблицу 3.). +\item Наименьший характерный размер установки - это диаметр колбы $d = 0,2$ мм. Мы получили, что во всех случаях $r_D \ll d$, следовательно плазму можно считать квазинейтральной. +\item Для всех токов разряда получили, что степень ионизации $N_D \gg 1$ при давлении $P \approx 2$ торр, значит плазму разряда можно считать идеальной. +\item Исходя из теории $T_e$ слабо зависит от $I_\text{р}$, $I_\text{р} \sim n_e v_d$, где $v_d$ - дрейфовая скорость, почти не зависит от тока и концентрации, следовательно $I_\text{р} \sim n_e$ - линейная зависимость. Исходя из построенных графиков 3 и 4 можно убедиться в этих соотношениях. +\end{enumerate} + +\section{Результаты и обсуждения} + +В ходе работы были исследованы параметры плазмы тлеющего газового разряда в неоне методом двойного зонда. По измеренным зондовым характеристикам при различных токах разряда определены температура и концентрация электронов, а также другие параметры плазмы, такие как дебаевский радиус и степень ионизации. Результаты показали, что плазма является слабо ионизованной и квазинейтральной, а с увеличением тока разряда температура электронов слабо изменяется, а их концентрация возрастает. Полученные данные согласуются с теоретическими представлениями о свойствах низкотемпературной неравновесной плазмы. +\end{document} \ No newline at end of file diff --git a/3.5.1/pdf/Kotlyarov_M.pdf b/3.5.1/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..5f8fd6f0 Binary files /dev/null and b/3.5.1/pdf/Kotlyarov_M.pdf differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_05_50.PNG b/3.6.1/Kotlyarov_M/Graphics/A_05_50.PNG new file mode 100644 index 00000000..82ce229e Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_05_50.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_1_100.PNG b/3.6.1/Kotlyarov_M/Graphics/A_1_100.PNG new file mode 100644 index 00000000..20c8d9c1 Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_1_100.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_1_25.PNG b/3.6.1/Kotlyarov_M/Graphics/A_1_25.PNG new file mode 100644 index 00000000..0bdc6348 Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_1_25.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_1_50.PNG b/3.6.1/Kotlyarov_M/Graphics/A_1_50.PNG new file mode 100644 index 00000000..639f5ef3 Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_1_50.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_1_75.PNG b/3.6.1/Kotlyarov_M/Graphics/A_1_75.PNG new file mode 100644 index 00000000..d5e32e98 Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_1_75.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_2_50.PNG b/3.6.1/Kotlyarov_M/Graphics/A_2_50.PNG new file mode 100644 index 00000000..da592370 Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_2_50.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/A_4_50.PNG b/3.6.1/Kotlyarov_M/Graphics/A_4_50.PNG new file mode 100644 index 00000000..f66d5d8e Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/A_4_50.PNG differ diff --git a/3.6.1/Kotlyarov_M/Graphics/Delta_nu_vs_inv_tau_plot_A.png b/3.6.1/Kotlyarov_M/Graphics/Delta_nu_vs_inv_tau_plot_A.png new file mode 100644 index 00000000..dd3a246a Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/Delta_nu_vs_inv_tau_plot_A.png differ diff --git a/3.6.1/Kotlyarov_M/Graphics/a_ratio_vs_m_plot_D.png b/3.6.1/Kotlyarov_M/Graphics/a_ratio_vs_m_plot_D.png new file mode 100644 index 00000000..bf1a2e5a Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/a_ratio_vs_m_plot_D.png differ diff --git a/3.6.1/Kotlyarov_M/Graphics/delta_nu_vs_inv_T_plot_G.png b/3.6.1/Kotlyarov_M/Graphics/delta_nu_vs_inv_T_plot_G.png new file mode 100644 index 00000000..c7cc30bd Binary files /dev/null and b/3.6.1/Kotlyarov_M/Graphics/delta_nu_vs_inv_T_plot_G.png differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_100_1_5.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_100_1_5.PNG" new file mode 100644 index 00000000..bed997ed Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_100_1_5.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_10.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_10.PNG" new file mode 100644 index 00000000..cfc2df8a Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_10.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_2.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_2.PNG" new file mode 100644 index 00000000..d8e9a01a Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_2.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_5.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_5.PNG" new file mode 100644 index 00000000..c88d3212 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_1_5.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_50_2_5.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_2_5.PNG" new file mode 100644 index 00000000..6b66df6d Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_2_5.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_50_4_5.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_4_5.PNG" new file mode 100644 index 00000000..93180d4f Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_50_4_5.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\221_75_1_5.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\221_75_1_5.PNG" new file mode 100644 index 00000000..e52be34f Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\221_75_1_5.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\223_100_2_50.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\223_100_2_50.PNG" new file mode 100644 index 00000000..e9ec560f Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\223_100_2_50.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\223_50_2_50.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\223_50_2_50.PNG" new file mode 100644 index 00000000..50589a28 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\223_50_2_50.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\223_50_4_50.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\223_50_4_50.PNG" new file mode 100644 index 00000000..1bf4d92b Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\223_50_4_50.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\223_50_8_50.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\223_50_8_50.PNG" new file mode 100644 index 00000000..eee7ea39 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\223_50_8_50.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\223_75_2_50.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\223_75_2_50.PNG" new file mode 100644 index 00000000..74154e53 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\223_75_2_50.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_100_2_10.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_100_2_10.PNG" new file mode 100644 index 00000000..b009d9e1 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_100_2_10.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_10.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_10.PNG" new file mode 100644 index 00000000..ff4503ef Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_10.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_100.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_100.PNG" new file mode 100644 index 00000000..cc4be57e Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_100.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_20.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_20.PNG" new file mode 100644 index 00000000..7eea973f Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_20.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_40.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_40.PNG" new file mode 100644 index 00000000..de0f1df2 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_40.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_80.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_80.PNG" new file mode 100644 index 00000000..5f9fbace Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_2_80.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_4_10.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_4_10.PNG" new file mode 100644 index 00000000..cf3b7e41 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_4_10.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_50_8_10.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_8_10.PNG" new file mode 100644 index 00000000..368dc79a Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_50_8_10.PNG" differ diff --git "a/3.6.1/Kotlyarov_M/Graphics/\320\224_75_2_10.PNG" "b/3.6.1/Kotlyarov_M/Graphics/\320\224_75_2_10.PNG" new file mode 100644 index 00000000..9682c460 Binary files /dev/null and "b/3.6.1/Kotlyarov_M/Graphics/\320\224_75_2_10.PNG" differ diff --git a/3.6.1/Kotlyarov_M/data/A.xlsx b/3.6.1/Kotlyarov_M/data/A.xlsx new file mode 100644 index 00000000..3da5d0e3 Binary files /dev/null and b/3.6.1/Kotlyarov_M/data/A.xlsx differ diff --git a/3.6.1/Kotlyarov_M/data/A_Delta_nu_tau.py b/3.6.1/Kotlyarov_M/data/A_Delta_nu_tau.py new file mode 100644 index 00000000..935ab867 --- /dev/null +++ b/3.6.1/Kotlyarov_M/data/A_Delta_nu_tau.py @@ -0,0 +1,118 @@ +# script1_Delta_nu_vs_1_tau.py +import pandas as pd +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +from scipy import stats +import os + +# Создаем папку для графиков, если её нет +graphics_folder = "../Graphics" +os.makedirs(graphics_folder, exist_ok=True) + +# --- 1. Чтение данных из A.xlsx --- +try: + df = pd.read_excel('A.xlsx', sheet_name='Sheet1', header=None) + if len(df) < 2: + print("Ошибка: Не хватает данных в A.xlsx.") + exit() + + tau_series = df.iloc[0, :].dropna() + delta_nu_series = df.iloc[1, :].dropna() + + tau_data = tau_series[1:].astype(float).to_numpy() + delta_nu_data = delta_nu_series[1:].astype(float).to_numpy() + + print("Данные успешно загружены из A.xlsx:") + print(f"tau (мкс): {tau_data}") + print(f"delta_nu (кГц): {delta_nu_data}") + +except FileNotFoundError: + print("Ошибка: Файл 'A.xlsx' не найден.") + exit() +except Exception as e: + print(f"Ошибка при чтении файла A.xlsx: {e}") + import traceback + traceback.print_exc() + exit() + +# --- 2. Подготовка данных и погрешностей --- +inv_tau_data = 1.0 / tau_data # 1/tau (в 1/мкс) +delta_nu_err = np.full_like(delta_nu_data, 0.001) # Погрешность \Delta \nu: 0.001 кГц +tau_err_constant = 0.5 # мкс, постоянная погрешность tau +inv_tau_err = (1.0 / (tau_data**2)) * tau_err_constant # Погрешность 1/tau + +print(f"\nВычисленные значения и погрешности:") +print(f"1/tau (1/мкс): {inv_tau_data}") +print(f"Погрешность 1/tau (1/мкс): {inv_tau_err}") +print(f"Погрешность \\Delta\\nu (кГц): {delta_nu_err}") + +# --- 3. МНК (линейная регрессия y = a*x, через (0,0)) --- +# Зависимость: \Delta \nu = a * (1/tau) +x_data = inv_tau_data +y_data = delta_nu_data + +# Для линейной регрессии через 0,0 наклон a = (x*y).sum() / (x*x).sum() +slope = np.sum(x_data * y_data) / np.sum(x_data * x_data) + +# Простая оценка погрешности наклона (взвешенная линейная регрессия через 0 требует более сложного подхода) +# Используем стандартную формулу для погрешности наклона при фиксированном нуле +# sigma_a^2 = (sum(y_err^2)) / (sum(x^2)) приближение +# Более точная оценка: sigma_a^2 = sum( (y_i - a*x_i)^2 / y_err_i^2 ) / ( (sum(x_i^2 / y_err_i^2))^2 ) +# Но для простоты используем базовую формулу, предполагая, что погрешности y примерно равны +residuals = y_data - slope * x_data +ss_res = np.sum(residuals**2) +ss_tot = np.sum(y_data**2) # Т.к. y_mean=0 для y=ax через 0 +if ss_tot > 0: + r_squared = 1 - (ss_res / ss_tot) +else: + r_squared = np.nan + +# Оценка стандартной ошибки наклона (простая) +# Предполагаем, что погрешности y одинаковы и равны delta_nu_err[0] +y_err_single = delta_nu_err[0] +if np.sum(x_data**2) > 0: + std_err_slope = y_err_single * np.sqrt(len(x_data) / np.sum(x_data**2)) +else: + std_err_slope = np.nan + +print(f"\nРезультаты МНК (y = a*x, где x=1/tau, y=\\Delta\\nu):") +print(f"Наклон (a): {slope:.6f} кГц*мкс") +print(f"Погрешность наклона (σ_a): {std_err_slope:.6f} кГц*мкс") +print(f"Коэффициент детерминации (R^2): {r_squared:.6f}") + +# --- 4. Построение графика --- +plt.figure(figsize=(10, 6)) + +# Построение линии МНК (y = a*x, начинается с (0,0)) +x_max_plot = max(x_data) * 1.2 +x_fit = np.linspace(0.0, x_max_plot, 100) +y_fit = slope * x_fit +legend_text = r'$\Delta\nu = k \cdot (1/\tau)$' +plt.plot(x_fit, y_fit, 'b-', label=legend_text) + +# Нанесение точек с погрешностями +plt.errorbar(x_data, y_data, xerr=inv_tau_err, yerr=delta_nu_err, fmt='o', + ecolor='red', markersize=6, label='Экспериментальные данные') + +# Оформление графика +plt.xlabel(r'$1/\tau$, 1/мкс') +plt.ylabel(r'$\Delta\nu$, кГц') +plt.title('Зависимость ширины спектра от длительности импульса') +plt.legend() +plt.grid(True, alpha=0.5) +plt.xlim(0.0, x_max_plot) +plt.ylim(0.0, max(y_data) * 1.2) +plt.tight_layout() + +# Сохранение графика +output_filename = 'Delta_nu_vs_inv_tau_plot_A.png' +full_output_path = os.path.join(graphics_folder, output_filename) +plt.savefig(full_output_path) +print(f"\nГрафик сохранен в файл: {full_output_path}") + +try: + plt.show() +except: + pass diff --git a/3.6.1/Kotlyarov_M/data/D.xlsx b/3.6.1/Kotlyarov_M/data/D.xlsx new file mode 100644 index 00000000..80bc6f87 Binary files /dev/null and b/3.6.1/Kotlyarov_M/data/D.xlsx differ diff --git a/3.6.1/Kotlyarov_M/data/D_graph.py b/3.6.1/Kotlyarov_M/data/D_graph.py new file mode 100644 index 00000000..3e240b12 --- /dev/null +++ b/3.6.1/Kotlyarov_M/data/D_graph.py @@ -0,0 +1,105 @@ +# script3_a_ratio_vs_m.py +import pandas as pd +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +import os + +# Создаем папку для графиков, если её нет +graphics_folder = "../Graphics" +os.makedirs(graphics_folder, exist_ok=True) + +# --- 1. Чтение данных из D.xlsx --- +try: + df = pd.read_excel('D.xlsx', sheet_name='Sheet1', header=None) + if len(df) < 2: + print("Ошибка: Не хватает данных в D.xlsx.") + exit() + + m_series = df.iloc[0, :].dropna() + a_ratio_series = df.iloc[1, :].dropna() + + m_data = m_series[1:].astype(float).to_numpy() + a_ratio_data = a_ratio_series[1:].astype(float).to_numpy() + + print("Данные успешно загружены из D.xlsx:") + print(f"m (%): {m_data}") + print(f"(a_бок/a_осн)^эксп: {a_ratio_data}") + +except FileNotFoundError: + print("Ошибка: Файл 'D.xlsx' не найден.") + exit() +except Exception as e: + print(f"Ошибка при чтении файла D.xlsx: {e}") + import traceback + traceback.print_exc() + exit() + +# --- 2. Подготовка данных и погрешностей --- +# Погрешности +a_ratio_err = np.full_like(a_ratio_data, 0.001) +m_err = m_data * 0.01 + +print(f"\nВычисленные значения и погрешности:") +print(f"m (%): {m_data}") +print(f"Погрешность m (%): {m_err}") +print(f"(a_бок/a_осн)^эксп: {a_ratio_data}") +print(f"Погрешность (a_бок/a_осн)^эксп: {a_ratio_err}") + +# --- 3. МНК (линейная регрессия y = a*x, через (0,0)) --- +x_data = m_data +y_data = a_ratio_data + +slope = np.sum(x_data * y_data) / np.sum(x_data * x_data) + +residuals = y_data - slope * x_data +ss_res = np.sum(residuals**2) +ss_tot = np.sum(y_data**2) +if ss_tot > 0: + r_squared = 1 - (ss_res / ss_tot) +else: + r_squared = np.nan + +y_err_single = a_ratio_err[0] +if np.sum(x_data**2) > 0: + std_err_slope = y_err_single * np.sqrt(len(x_data) / np.sum(x_data**2)) +else: + std_err_slope = np.nan + +print(f"\nРезультаты МНК (y = a*x, где x=m(%), y=(a_бок/a_осн)^эксп):") +print(f"Наклон (a): {slope:.6f} 1/% (или 1/(100%))") +print(f"Погрешность наклона (σ_a): {std_err_slope:.6f} 1/%") +print(f"Коэффициент детерминации (R^2): {r_squared:.6f}") + +# --- 4. Построение графика --- +plt.figure(figsize=(10, 6)) + +x_max_plot = max(x_data) * 1.2 +x_fit = np.linspace(0.0, x_max_plot, 100) +y_fit = slope * x_fit +legend_text = r'$(a_{бок}/a_{осн}) = k \cdot m$' +plt.plot(x_fit, y_fit, 'b-', label=legend_text) + +plt.errorbar(x_data, y_data, xerr=m_err, yerr=a_ratio_err, fmt='o', + ecolor='red', markersize=6, label='Экспериментальные данные') + +plt.xlabel(r'$m$, %') +plt.ylabel(r'$(a_{бок}/a_{осн})$') +plt.title('Зависимость отношения амплитуд от глубины модуляции') +plt.legend() +plt.grid(True, alpha=0.5) +plt.xlim(0.0, x_max_plot) +plt.ylim(0.0, max(y_data) * 1.2) +plt.tight_layout() + +# Сохранение графика +output_filename = 'a_ratio_vs_m_plot_D.png' +full_output_path = os.path.join(graphics_folder, output_filename) +plt.savefig(full_output_path) +print(f"\nГрафик сохранен в файл: {full_output_path}") + +try: + plt.show() +except: + pass diff --git a/3.6.1/Kotlyarov_M/data/G.xlsx b/3.6.1/Kotlyarov_M/data/G.xlsx new file mode 100644 index 00000000..c5aaf360 Binary files /dev/null and b/3.6.1/Kotlyarov_M/data/G.xlsx differ diff --git a/3.6.1/Kotlyarov_M/data/G_delta_nu_T.py b/3.6.1/Kotlyarov_M/data/G_delta_nu_T.py new file mode 100644 index 00000000..5dac9762 --- /dev/null +++ b/3.6.1/Kotlyarov_M/data/G_delta_nu_T.py @@ -0,0 +1,115 @@ +# script2_delta_nu_vs_1_T.py +import pandas as pd +import numpy as np +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +from scipy import stats +import os + +# Создаем папку для графиков, если её нет +graphics_folder = "../Graphics" +os.makedirs(graphics_folder, exist_ok=True) + +# --- 1. Чтение данных из G.xlsx --- +try: + df = pd.read_excel('G.xlsx', sheet_name='Sheet1', header=None) + if len(df) < 2: + print("Ошибка: Не хватает данных в G.xlsx.") + exit() + + T_series = df.iloc[0, :].dropna() + delta_nu_series = df.iloc[1, :].dropna() + + T_data = T_series[1:].astype(float).to_numpy() + delta_nu_data = delta_nu_series[1:].astype(float).to_numpy() + + print("Данные успешно загружены из G.xlsx:") + print(f"T (мкс): {T_data}") + print(f"delta_nu (кГц): {delta_nu_data}") + +except FileNotFoundError: + print("Ошибка: Файл 'G.xlsx' не найден.") + exit() +except Exception as e: + print(f"Ошибка при чтении файла G.xlsx: {e}") + import traceback + traceback.print_exc() + exit() + +# --- 2. Подготовка данных и погрешностей --- +inv_T_data = 1.0 / T_data # 1/T (в 1/мкс) +delta_nu_err = np.full_like(delta_nu_data, 0.001) # Погрешность \delta \nu: 0.001 кГц +T_err_constant = 50.0 # мкс, постоянная погрешность T +inv_T_err = (1.0 / (T_data**2)) * T_err_constant # Погрешность 1/T + +print(f"\nВычисленные значения и погрешности:") +print(f"1/T (1/мкс): {inv_T_data}") +print(f"Погрешность 1/T (1/мкс): {inv_T_err}") +print(f"Погрешность \\delta\\nu (кГц): {delta_nu_err}") + +# --- 3. МНК (линейная регрессия y = a*x, через (0,0)) --- +# Зависимость: \delta \nu = a * (1/T) +x_data = inv_T_data +y_data = delta_nu_data + +# Для линейной регрессии через 0,0 наклон a = (x*y).sum() / (x*x).sum() +slope = np.sum(x_data * y_data) / np.sum(x_data * x_data) + +# Оценка R^2 для регрессии через 0 +residuals = y_data - slope * x_data +ss_res = np.sum(residuals**2) +ss_tot = np.sum(y_data**2) # Т.к. y_mean=0 для y=ax через 0 +if ss_tot > 0: + r_squared = 1 - (ss_res / ss_tot) +else: + r_squared = np.nan + +# Оценка стандартной ошибки наклона (простая) +y_err_single = delta_nu_err[0] +if np.sum(x_data**2) > 0: + std_err_slope = y_err_single * np.sqrt(len(x_data) / np.sum(x_data**2)) +else: + std_err_slope = np.nan + +print(f"\nРезультаты МНК (y = a*x, где x=1/T, y=\\delta\\nu):") +print(f"Наклон (a): {slope:.6f} кГц*мкс") +print(f"Погрешность наклона (σ_a): {std_err_slope:.6f} кГц*мкс") +print(f"Коэффициент детерминации (R^2): {r_squared:.6f}") + +# --- 4. Построение графика --- +plt.figure(figsize=(10, 6)) + +# Построение линии МНК (y = a*x, начинается с (0,0)) +x_max_plot = max(x_data) * 1.2 +x_fit = np.linspace(0.0, x_max_plot, 100) +y_fit = slope * x_fit +legend_text = r'$\delta\nu = k \cdot (1/T)$' +plt.plot(x_fit, y_fit, 'b-', label=legend_text) + +# Нанесение точек с погрешностями +plt.errorbar(x_data, y_data, xerr=inv_T_err, yerr=delta_nu_err, fmt='o', + ecolor='red', markersize=6, label='Экспериментальные данные') + +# Оформление графика +plt.xlabel(r'$1/T$, 1/мкс') +plt.ylabel(r'$\delta\nu$, кГц') +plt.title('Зависимость расстояния между соседними гармониками от периода') +plt.legend() +plt.grid(True, alpha=0.5) +plt.xlim(0.0, x_max_plot) +# Для y_min_plot используем 0 или немного меньше минимума данных +y_min_plot = max(0.0, min(y_data) - 0.1 * (max(y_data) - min(y_data))) +plt.ylim(y_min_plot, max(y_data) * 1.2) +plt.tight_layout() + +# Сохранение графика +output_filename = 'delta_nu_vs_inv_T_plot_G.png' +full_output_path = os.path.join(graphics_folder, output_filename) +plt.savefig(full_output_path) +print(f"\nГрафик сохранен в файл: {full_output_path}") + +try: + plt.show() +except: + pass diff --git a/3.6.1/Kotlyarov_M/data/data.ods b/3.6.1/Kotlyarov_M/data/data.ods new file mode 100644 index 00000000..3f711396 Binary files /dev/null and b/3.6.1/Kotlyarov_M/data/data.ods differ diff --git a/3.6.1/Kotlyarov_M/data/data.xlsx b/3.6.1/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..23a34e18 Binary files /dev/null and b/3.6.1/Kotlyarov_M/data/data.xlsx differ diff --git a/3.6.1/Kotlyarov_M/main.pdf b/3.6.1/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..eb3775ee Binary files /dev/null and b/3.6.1/Kotlyarov_M/main.pdf differ diff --git a/3.6.1/Kotlyarov_M/main.tex b/3.6.1/Kotlyarov_M/main.tex new file mode 100644 index 00000000..305a0025 --- /dev/null +++ b/3.6.1/Kotlyarov_M/main.tex @@ -0,0 +1,576 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} + +\title{\textbf{Отчет о выполнении лабораторной работы 3.6.1}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + + \section{Введение} + + \textbf{Цель работы:} изучить спектры сигналов различной формы и влияние параметров сигнала на вид соответствующих спектров; проверить справедливость соотношений неопределённостей;\\ + + \textbf{Оборудование:} генератор сигналов произвольной формы, цифровой осциллограф с функцией быстрого преобразования Фурье или цифровой USB-осциллограф, подключённый к персональному компьютеру. + + \section{Теоретические сведения} + +Согласно теореме Фурье, любая периодическая функция может быть представлена в виде ряда (конечного или бесконечного) гармонических функций с кратными частотами — ряда Фурье. Одно из представлений ряда Фурье для функции с периодом $T$ имеет вид: + +\begin{equation} +f(t) = \dfrac{a_0}{2} + \sum\limits_{n = 1}^{\infty}\left[a_n \cos \left(n \omega_0t + \varphi_0\right) + b_n \sin \left(n \omega_0t + \varphi_0\right)\right], +\end{equation} +или +\begin{equation} +f(t) = \dfrac{a_0}{2} + \sum\limits_{n = 1}^{\infty}A_n \cos \left(n\omega_0t-\varphi_n\right). +\end{equation} +Коэффициенты определяются следующим образом: +\begin{align} +c_n &= \displaystyle \frac{1}{T} \int_0^Tf(t)e^{-in\omega_0t} \, dt, & A_n &= 2\abs{c_n} = \sqrt{a_n^2 + b_n^2}, & \varphi_n = arg\, c_n = \arctan{\frac{b_n}{a_n}}. +\end{align} + +Совокупность всех частот $\nu_n = \frac{\omega_n}{2\pi}$ и соответствующих им амплитуд $A_n$ называется спектром функции $f(t)$. +Пусть $\Delta t$ - характерное время $f(t)$ (период, длительность импульса и т.п), $\Delta \nu$ - характерный масштаб частоты, тогда справедливо \textit{соотношение неопределенностей}: +\begin{equation} +\Delta \nu_n \cdot \Delta t \sim 1. +\end{equation} + +\section*{Теорема смещения} + +Найдём спектр $F(\omega)$ сигнала, смещённого по времени: $f(t) = f_0(t - \tau)$, где $f_0(t)$ — функция с известным спектром $F_0(\omega) = \mathcal{F}[f_0]$. + +По определению имеем +\begin{equation} +F(\omega) = \mathcal{F}[f(t)] = \int_{-\infty}^{\infty} f_0(t - \tau) e^{-i\omega t}\, dt. +\end{equation} + +После замены переменных $t' = t - \tau$ ($dt = dt'$) получаем +\begin{equation} +F(\omega) = \int_{-\infty}^{\infty} f_0(t') e^{-i\omega(t' + \tau)}\, dt'. +\end{equation} + +Множитель $e^{-i\omega\tau}$ (не зависящий от переменной интегрирования $t'$) выносится из-под знака интеграла: +\begin{equation} +F(\omega) = e^{-i\omega\tau} \int_{-\infty}^{\infty} f_0(t') e^{-i\omega t'}\, dt' = e^{-i\omega\tau} \cdot F_0(\omega), +\end{equation} +или символически +\begin{equation} +\mathcal{F}[f_0(t - \tau)] = e^{-i\omega\tau} \mathcal{F}[f_0(t)], +\end{equation} + +т.е. смещение сигнала во времени на $\tau$ (запаздывание) приводит к умножению его спектра на $e^{-i\omega\tau}$ (теорема смещения). + +Заметим, что поскольку $|e^{-i\omega\tau}| = 1$, смещение по времени не меняет амплитуд спектральных компонент, а лишь сдвигает их фазы (пропорционально частоте компоненты). + +\subsection*{Амплитудная модуляция} + +Модулированный сигнал: +\begin{equation} +f_{\text{AM}}(t) = a_0 \left(1 + m \cos(\Omega t)\right) \cos(\omega_0 t), \quad 0 < m \leq 1. +\end{equation} + +Раскрывая произведение, получаем: +\begin{equation} +f_{\text{AM}}(t) = a_0 \cos(\omega_0 t) + \frac{m a_0}{2} \cos\left((\omega_0 - \Omega)t\right) + \frac{m a_0}{2} \cos\left((\omega_0 + \Omega)t\right). +\end{equation} + +Спектр состоит из трёх гармоник: +\begin{enumerate} +\item Несущая: частота $\omega_0$, амплитуда $a_0$, фаза $0$; +\item Две боковые: частоты $\omega_0 - \Omega$, $\omega_0 + \Omega$, амплитуда $\frac{m a_0}{2}$, фаза $0$. +\end{enumerate} + +Все компоненты находятся в фазе. +\subsection*{Фазовая модуляция} + +Модулированный сигнал: +\begin{equation} +f_{\text{FM}}(t) = a_0 \cos\left(\omega_0 t + m \cos(\Omega t)\right). +\end{equation} + +При малой глубине модуляции ($m \ll 1$) используется приближение: +\begin{equation} +f_{\text{FM}}(t) \approx a_0 \cos(\omega_0 t) + \frac{m a_0}{2} \cos\left((\omega_0 - \Omega)t + \frac{\pi}{2}\right) + \frac{m a_0}{2} \cos\left((\omega_0 + \Omega)t + \frac{\pi}{2}\right). +\end{equation} + +Спектр состоит из трёх гармоник: +\begin{enumerate} +\item Несущая: частота $\omega_0$, амплитуда $a_0$, фаза $0$; + \item две боковые: частота частоты $\omega_0 - \Omega$, $\omega_0 + \Omega$, амплитуда $\frac{m a_0}{2}$, фаза $\frac{\pi}{2}$; +\end{enumerate} + +При большой глубине модуляции ($m \gg 1$) спектр расширяется. Сигнал выражается через ряд: +\begin{equation} +f_{\text{FM}}(t) = a_0 \sum_{n=-\infty}^{\infty} J_n(m) \cos\left((\omega_0 + n\Omega)t\right), +\end{equation} +где $J_n(m)$ — функции Бесселя первого рода порядка $n$, определяется как коэффициенты разложения в ряд Фурье функции $e^{i m \cos \theta}$: +\begin{equation} +e^{i m \cos \theta} = \sum_{n=-\infty}^{\infty} i^n J_n(m) e^{i n \theta}, +\end{equation} +или, эквивалентно, интегральным представлением: +\begin{equation} +J_n(m) = \frac{1}{2\pi} \int_{-\pi}^{\pi} \cos(n\theta - m \sin\theta)\, d\theta. +\end{equation} + +Они также являются решениями дифференциального уравнения Бесселя: +\begin{equation} +x^2 \frac{d^2 y}{dx^2} + x \frac{dy}{dx} + (x^2 - n^2)y = 0. +\end{equation} + +Для целых $n$ функции $J_n(m)$ вещественны при вещественном $m$ и описывают амплитуды спектральных компонент при фазовой и частотной модуляции. +Появляются дополнительные боковые компоненты с частотами $\omega_0 \pm n\Omega$, $n = 1,2,3,\dots$. + +\section{Выполнение} +\begin{enumerate} +\subsection{А. Исследование спектра периодической последовательности +прямоугольных импульсов и проверка соотношений неопределённостей} +\item Настроим генерацию прямоугольных импульсов с рекомендованными параметрами: частота повторения $\nu_{\text{повт}} = 1$ кГц (период $T = \frac{1}{\nu_{\text{повт}}}$ = 1 мс), и длительность импульса $\tau = \frac{T}{20}$ = 50 мкс. +Далее: а) при фиксированной длительности импульса меняем $\nu_{\text{повт}}$; б) фиксируем $\nu_{\text{повт}}$ и меняем $\tau$. + +\begin{figure}[h!] +\centering + +% Строка 1 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_1_50.PNG} + \caption{График 1. $\nu_{\text{повт}} = 1$ кГц, $\tau = 50$ мкс.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_2_50.PNG} + \caption{График 2. $\nu_{\text{повт}} = 2$ кГц, $\tau = 50$ мкс.} +\end{minipage} + +\vspace{1em} % Отступ между строками + +% Строка 2 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_4_50.PNG} + \caption{График 3. $\nu_{\text{повт}} = 4$ кГц, $\tau = 50$ мкс.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_05_50.PNG} + \caption{График 4. $\nu_{\text{повт}} = 0{,}5$ кГц, $\tau = 50$ мкс.} +\end{minipage} + +\vspace{1em} + +% Строка 3 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_1_25.PNG} + \caption{График 5. $\nu_{\text{повт}} = 1$ кГц, $\tau = 25$ мкс.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_1_75.PNG} + \caption{График 6. $\nu_{\text{повт}} = 1$ кГц, $\tau = 75$ мкс.} +\end{minipage} + +\vspace{1em} + +% Строка 4 (один график — можно центрировать) +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/A_1_100.PNG} + \caption{График 7. $\nu_{\text{повт}} = 1$ кГц, $\tau = 100$ мкс.} +\end{minipage} + +\end{figure} + +Как мы видим, с увеличением длительности импульса $\tau$ уменьшается ширина спектра, с увеличением периода (уменьшением частоты повторений), уменьшается расстояние между гармониками. Это отражает достоверность соотношения неопределенностей. + +\item При фиксированных рекомендованных параметрах измерим амплитуды и частоты первых 8 гармоник, начиная с первой и сравним с теоретическими: $\nu_n = n \cdot \nu_{\text{повт}}$, $\abs{a_n} = \frac{\abs{\sin{\frac{\pi n \tau}{T}}}}{\pi n}$. +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|c|c|} + \hline + $n$ & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \hline + $\nu_n^{\text{теор}},\ \text{кГц}$ & 1{,}04 & 2{,}004 & 3{,}017 & 3{,}988 & 4{,}994 & 6{,}001 & 7{,}008 & 7{,}978 \\ \hline + $\nu_n^{\text{эксп}},\ \text{кГц}$ & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \hline + $|a_n|^{\text{эксп}},\ \text{мВ}$ & 283{,}3 & 278{,}1 & 272{,}2 & 260{,}4 & 246{,}5 & 231{,}2 & 213{,}9 & 195{,}1 \\ \hline + $\left|\frac{a_n}{a_1}\right|^{\text{эксп}}$ & 1 & 0{,}9816 & 0{,}9608 & 0{,}9192 & 0{,}8701 & 0{,}8161 & 0{,}7550 & 0{,}6887 \\ \hline + $\left|\frac{a_n}{a_1}\right|^{\text{теор}}$ & 1 & 0{,}9877 & 0{,}9674 & 0{,}9393 & 0{,}9040 & 0{,}8619 & 0{,}8137 & 0{,}7599 \\ \hline + \end{tabular} + \caption{Таблица 1. Сравнение теоретических и экспериментальных значений частоты и амплитуд гармоник.} + \label{tab:spectra} +\end{table} + +\item Далее зафиксируем период $T$, равный 1 мс, и будем менять длительность импульса в пределах от $\frac{T}{50}$, до $\frac{T}{5}$, измеряя ширину спектра $\Delta \nu$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|c|} + \hline + $\tau,\ \text{мкс}$ & 20 & 25 & 40 & 75 & 100 & 150 & 200 \\ + \hline + $\Delta \nu,\ \text{кГц}$ & 49{,}71 & 40{,}18 & 25{,}03 & 13{,}36 & 10{,}07 & 6{,}629 & 5{,}079 \\ + \hline + \end{tabular} + \caption{Таблица 2. Зависимость ширины спектра $\Delta \nu$ от длительности импульса $\tau$ при $T = 1$ мс.} + \label{tab:delta_nu_vs_tau} +\end{table} + +По МНК построим график $\Delta \nu(\frac{1}{\tau})$. + +\begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/Delta_nu_vs_inv_tau_plot_A.png}} + \caption{График 8. Зависимость ширины спектра от длительности импульса.} +\end{figure} + +Наклон прямой $k = 0,99895 \pm 0,00004$ Гц$\cdot$с ($\varepsilon_k = 0,0037\%$). Таким образом, соотношение неопределенностей выполняется с высокой точностью. + +\item Зафиксируем длительность импульса $\tau = 100$ мкс и будем менять период $T$ в пределах от $2\tau$ до $50 \tau$, измеряя расстояние между гармониками $\delta \nu = \nu_{n+1} - \nu_n$. + +\clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|c|} + \hline + $T,\ \text{мкс}$ & 200 & 500 & 1000 & 2000 & 3000 & 4000 & 5000 \\ + \hline + $\delta \nu,\ \text{кГц}$ & 9{,}959 & 1{,}984 & 0{,}964 & 0{,}501 & 0{,}34 & 0{,}246 & 0{,}198 \\ + \hline + \end{tabular} + \caption{Таблица 3. Зависимость расстояния между гармониками $\delta \nu$ \\от периода $T$ при $\tau = 100$ мкс.} + \label{tab:delta_nu_vs_T} +\end{table} + +По МНК построим график $\delta \nu(\frac{1}{T})$. + +\begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/delta_nu_vs_inv_T_plot_G.png}} + \caption{График 9. Зависимость расстояния между гармониками от периода.} +\end{figure} + +Наклон прямой $k = 0,988 \pm 0,001$ Гц$\cdot$с ($\varepsilon_k = 0,11\%$). Как мы видим, соотношение неопределенностей выполняется с большой точностью. + +\subsection{Б. Наблюдение спектра периодической последовательности цугов} +\item Установим режим подачи периодических импульсов синусоидальной формы («цугов») с рекомендованными параметрами: частота несущей $\nu_0 = 50$ кГц, период повторения $T = \frac{1}{\nu_{\text{повт}}}$ = 1 мс ($\nu_{\text{повт}} = 1$ кГц), число периодов синусоиды в одном импульсе $N = 5$ (что соответствует длительности импульса $\tau = \frac{N}{\nu_0} = 100$ мкс).\\ +Будем менять каждый параметр при других фиксированных и измерять положение центра спектра, его ширину и расстояние между гармониками. + +\clearpage +\begin{figure}[h!] +\centering + +% Строка 1 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_50_1_2.PNG} + \caption{График 10. $\nu_0 = 50$ кГц, $T = 1$ мс, $N = 2$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_50_1_5.PNG} + \caption{График 11. $\nu_0 = 50$ кГц, $T = 1$ мс, $N = 5$.} +\end{minipage} + +\vspace{1em} % Отступ между строками + +% Строка 2 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_50_1_10.PNG} + \caption{График 12. $\nu_0 = 50$ кГц, $T = 1$ мс, $N = 10$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_75_1_5.PNG} + \caption{График 13. $\nu_0 = 75$ кГц, $T = 1$ мс, $N = 5$.} +\end{minipage} + +\vspace{1em} + +% Строка 3 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_100_1_5.PNG} + \caption{График 14. $\nu_0 = 100$ кГц, $T = 1$ мс, $N = 5$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_50_2_5.PNG} + \caption{График 15. $\nu_0 = 50$ кГц, $T = 2$ мс, $N = 5$.} +\end{minipage} + +\vspace{1em} + +% Строка 4 (один график — можно центрировать) +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Б_50_4_5.PNG} + \caption{График 16. $\nu_0 = 50$ кГц, $T = 4$ мс, $N = 5$.} +\end{minipage} + +\end{figure} + +\clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|} + \hline + № & $\nu_0,\ \text{кГц}$ & $T,\ \text{мкс}$ & $N$ & $\nu_{\text{ц}},\ \text{кГц}$ & $\Delta\nu,\ \text{кГц}$ & $\delta\nu,\ \text{кГц}$ \\ + \hline + 1 & 50 & 1 & 5 & 50{,}02 & 9{,}943 & 0{,}987 \\ + \hline + 2 & 75 & 1 & 5 & 74{,}02 & 10{,}01 & 0{,}987 \\ + \hline + 3 & 100 & 1 & 5 & 99{,}97 & 10{,}02 & 1{,}034 \\ + \hline + 4 & 50 & 2 & 5 & 50{,}00 & 10{,}04 & 0{,}498 \\ + \hline + 5 & 50 & 4 & 5 & 49{,}49 & 10{,}05 & 0{,}267 \\ + \hline + 6 & 50 & 1 & 10 & 49{,}99 & 5{,}017 & 0{,}945 \\ + \hline + 7 & 50 & 1 & 2 & 49{,}99 & 24{,}87 & 1{,}021 \\ + \hline + \end{tabular} + \caption{Таблица 4. Результаты измерений центральной частоты $\nu_{\text{ц}}$, ширины спектра $\Delta\nu$ и расстояния между гармониками $\delta\nu$ при различных значениях несущей частоты $\nu_0$, периода $T$ и числа импульсов $N$.} + \label{tab:frequency_analysis} +\end{table} + +Как мы видим, с ростом $N$ спектр "сжимается" к центру (ширина спектра уменьшается), с ростом $\nu_0$ форма спектра не меняется, но центр смещается на несущую частоту, с ростом $T$ уменьшается расстояние между пиками. Наблюдаемое смещение спектра при изменении несущей частоты $\nu_0$ является прямым следствием теоремы о смещении в преобразовании Фурье. Умножение сигнала на гармоническую функцию $\sin(2\pi\nu_0t)$ эквивалентно сдвигу его спектра на $\pm \nu_0$. Экспериментально это проявляется в том, что центр спектра перемещается вместе с изменением $\nu_0$, сохраняя форму и ширину. Это подтверждает справедливость теоремы и позволяет использовать её для анализа модулированных сигналов. + +\subsection{Г. Исследование спектра амплитудно-модулированного сигнала} +\item Установим режим модулированного по амплитуде синусоидального сигнала с рекомендованными параметрами: частота несущей $\nu_0 = 50$ кГц, частота модуляции $\nu_{\text{мод}} = 2$ кГц, глубина модуляции $m = 0,5$.\\ +С помощью осциллографа (в режиме курсорных измерений) измерим максимальную $A_{max}$ и минимальную $A_{min}$ амплитуды сигнала. $A_{max} = 1,476$ В, $A_{min} = 0,4847$ В, $m = \frac{A_{max} - A_{min}}{A_{max} + A_{min}} = 0,506$, что довольно близко к выставленной глубине 0,5. +\item Изменяя несущую частоту и частоту модуляции, будем измерять частоты центральной и боковой гармоник. + +\begin{figure}[h!] +\centering + +% Строка 1 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Г_50_2_50.PNG} + \caption{График 17. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 2$ кГц.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Г_75_2_50.PNG} + \caption{График 18. $\nu_0 = 75$ кГц, $\nu_{\text{мод}} = 2$ кГц.} +\end{minipage} + +\vspace{1em} % Отступ между строками + +% Строка 2 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Г_100_2_50.PNG} + \caption{График 19. $\nu_0 = 100$ кГц, $\nu_{\text{мод}} = 2$ кГц.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Г_50_4_50.PNG} + \caption{График 20. $\nu_0 = 100$ кГц, $\nu_{\text{мод}} = 4$ кГц.} +\end{minipage} + +\vspace{1em} +\end{figure} +\clearpage +\begin{figure}[h!] +\centering +% Строка 4 (один график — можно центрировать) +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Г_50_8_50.PNG} + \caption{График 21. $\nu_0 = 100$ кГц, $\nu_{\text{мод}} = 8$ кГц.} +\end{minipage} + +\end{figure} + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|} + \hline + № & $\nu_0,\ \text{кГц}$ & $\nu_{\text{мод}},\ \text{кГц}$ & $\nu_{\text{осн}},\ \text{кГц}$ & $\nu_{\text{бок}},\ \text{кГц}$ & $\nu_{\text{мод}}^{\text{эксп}},\ \text{кГц}$ \\ + \hline + 1 & 50 & 2 & 49{,}98 & 51{,}99 & 2{,}005 \\ + \hline + 2 & 75 & 2 & 75{,}00 & 77{,}01 & 2{,}013 \\ + \hline + 3 & 100 & 2 & 100{,}00 & 102{,}00 & 1{,}996 \\ + \hline + 4 & 50 & 4 & 50{,}01 & 53{,}98 & 3{,}973 \\ + \hline + 5 & 50 & 8 & 50{,}01 & 58{,}01 & 8{,}00 \\ + \hline + \end{tabular} + \caption{Таблица 5. Значения несущей частоты $\nu_0$, частоты модуляции $\nu_{\text{мод}}$, основной частоты $\nu_{\text{осн}}$, боковой частоты $\nu_{\text{бок}}$ и экспериментальной частоты модуляции $\nu_{\text{мод}}^{\text{эксп}}$} + \label{tab:modulation_frequencies} +\end{table} + + +На основе графиков можно сделать вывод о том, что с увеличением несущей частоты смещается основная частота, с увеличением частоты модуляции увеличивается расстояние между гармониками. + +\item Изменяя на генераторе глубину модуляции $m$ в диапазоне от 10\% до 100\% будем измерять отношение амплитуд боковой и основной +спектральных линий $\frac{a_{\text{бок}}}{a_{\text{осн}}}$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|c|c|c|} + \hline + $m,\ \%$ & 10 & 20 & 40 & 50 & 60 & 80 & 100 \\ + \hline + $a_{\text{осн}},\ \text{мВ}$ & 688{,}8 & 688{,}8 & 688{,}8 & 688{,}3 & 688{,}8 & 688{,}8 & 688{,}8 \\ + \hline + $a_{\text{бок}},\ \text{мВ}$ & 33{,}23 & 66{,}56 & 133{,}2 & 168{,}6 & 199{,}9 & 266{,}5 & 337{,}2 \\ + \hline + $\left( \frac{a_{\text{бок}}}{a_{\text{осн}}} \right)^{\text{эксп}}$ & 0{,}0482 & 0{,}0966 & 0{,}1934 & 0{,}2450 & 0{,}2902 & 0{,}3869 & 0{,}4895 \\ + \hline + $\left( \frac{a_{\text{бок}}}{a_{\text{осн}}} \right)^{\text{теор}}$ & 0{,}05 & 0{,}1 & 0{,}2 & 0{,}25 & 0{,}3 & 0{,}4 & 0{,}5 \\ + \hline + \end{tabular} + \caption{Таблица 6. Зависимость амплитуд боковых и несущей частот от глубины модуляции $m$} + \label{tab:am_modulation} +\end{table} + +По МНК построим прямую $\left( \frac{a_{\text{бок}}}{a_{\text{осн}}} \right) (m)$. +\clearpage +\begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/a_ratio_vs_m_plot_D.png}} + \caption{График 22. Зависимость отношения боковой амплитуды к основной от глубины модуляции.} +\end{figure} +Наклон прямой $k = 0,4867 \pm 0,0017$ ($\varepsilon_k = 0,5 \%$). Данный результат говорит о том, что соотношение $\frac{a_{\text{бок}}}{a_{\text{осн}}} = \frac{m}{2}$ выплоняется с хорошей точностью. + +\subsection{Д. Наблюдение спектра сигнала, модулированного по фазе} +\item Установим режим модулированного по фазе синусоидального сигнала с рекомендованными параметрами: частота несущей $\nu_0 = 50$ кГц, частота модуляции $\nu_{\text{мод}} = 2$ кГц, максимальное отклонение (глубина модуляции) фазы $\varphi_m = 10^\circ$.\\ +\item Изменяя несущую частоту, частоту модуляции и глубину модуляции, будем наблюдать за изменением формы спектра. + +\begin{figure}[h!] +\centering + +% Строка 1 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_2_10.PNG} + \caption{График 23. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 10^\circ$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_75_2_10.PNG} + \caption{График 24. $\nu_0 = 75$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 10^\circ$.} +\end{minipage} + +\vspace{1em} % Отступ между строками +\end{figure} +\clearpage +\begin{figure}[h!] +\centering +% Строка 2 +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_100_2_10.PNG} + \caption{График 25. $\nu_0 = 100$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 10^\circ$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_4_10.PNG} + \caption{График 26. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 4$ кГц, $\varphi_m = 10^\circ$.} +\end{minipage} + +\vspace{1em} + +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_8_10.PNG} + \caption{График 27. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 8$ кГц, $\varphi_m = 10^\circ$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_2_20.PNG} + \caption{График 28. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 20^\circ$.} +\end{minipage} + +\vspace{1em} + +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_2_40.PNG} + \caption{График 29. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 40^\circ$.} +\end{minipage} +\hfill +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_2_80.PNG} + \caption{График 30. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 80^\circ$.} +\end{minipage} + +\vspace{1em} + +% Строка 4 (один график — можно центрировать) +\begin{minipage}{0.48\textwidth} + \centering + \includegraphics[width=\linewidth]{Graphics/Д_50_2_100.PNG} + \caption{График 31. $\nu_0 = 50$ кГц, $\nu_{\text{мод}} = 2$ кГц, $\varphi_m = 100^\circ$.} +\end{minipage} + +\end{figure} + +Как мы видим, с увеличением несущей частоты смещается основная частота, с увеличением частоты модуляции увеличивается расстояние между гармониками. Когда глубина модуляции увеличивается, появляются новые гармоники. Это подтверждает теорию. + +\end{enumerate} + +\section{Результаты и обсуждения} + +\begin{enumerate} +\item В пункте А мы на основе прямоугольных импульсов пронаблюдали изменение спектра от основных параметров (частоты повторения, длительности импульса). Построили а) график $\Delta \nu(\frac{1}{\tau})$, получили наклон прямой $k = 0,99895 \pm 0,00004$ Гц$\cdot$с ($\varepsilon_k = 0,0037\%$), б) $\delta \nu(\frac{1}{T})$, получили наклон прямой $k = 0,988 \pm 0,001$ Гц$\cdot$с ($\varepsilon_k = 0,11\%$). По ним убедились, что соотношение неопределенностей (4) выполняется с хорошей точностью. +\item В пункте Б исследовали спектр периодической последовательности цугов. По данным таблицы 4 снова убедились в справедливости соотношении неопределенностей и подтвердили теорему о смещении. +\item В пункте Г провели исследование амплитудно-модулированного сигнала. Измерили максимальную и минимальную амплитуды, убедились, что $m^{\text{эксп}} = \frac{A_{max} - A_{min}}{A_{max} + A_{min}} = 0,506$ совпадает с выставленной $m = 0,5$. Увидели, как меняется спектр в зависимости от параметров. По МНК построили прямую $\left( \frac{a_{\text{бок}}}{a_{\text{осн}}} \right) (m)$, наклон прямой получился $k = 0,4867 \pm 0,0017$ ($\varepsilon_k = 0,5 \%$), что очень близко к теоретическому $k = 0,5$. + +\item В пункте Д провели наблюдение спектра сигнала, модулированного по фазе. Подтвердили теорию связанную с изменением спектра при изменении несущей частоты, частоты модуляции и глубины модуляции. + +\end{enumerate} + +\section{Выводы} + +В данной работе провели исследование спектров прямоугольных импульсов, последовательности цугов, амплитудно-модулированных сигналов, и сигналов, модулированных по фазе. Подтвердили справедливость соотношения неопределенностей, теоремы о смещении. + +\end{document} \ No newline at end of file diff --git a/3.6.1/pdf/Kotlyarov_M.pdf b/3.6.1/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..eb3775ee Binary files /dev/null and b/3.6.1/pdf/Kotlyarov_M.pdf differ diff --git a/3.7.3/Kotlyarov_M/Graphics/Y1_vs_X1.png b/3.7.3/Kotlyarov_M/Graphics/Y1_vs_X1.png new file mode 100644 index 00000000..b1f4199e Binary files /dev/null and b/3.7.3/Kotlyarov_M/Graphics/Y1_vs_X1.png differ diff --git a/3.7.3/Kotlyarov_M/Graphics/Y2_vs_X2.png b/3.7.3/Kotlyarov_M/Graphics/Y2_vs_X2.png new file mode 100644 index 00000000..0f47c722 Binary files /dev/null and b/3.7.3/Kotlyarov_M/Graphics/Y2_vs_X2.png differ diff --git a/3.7.3/Kotlyarov_M/Graphics/Y3_vs_X3.png b/3.7.3/Kotlyarov_M/Graphics/Y3_vs_X3.png new file mode 100644 index 00000000..34ff2e8a Binary files /dev/null and b/3.7.3/Kotlyarov_M/Graphics/Y3_vs_X3.png differ diff --git a/3.7.3/Kotlyarov_M/Graphics/nu_vs_n.png b/3.7.3/Kotlyarov_M/Graphics/nu_vs_n.png new file mode 100644 index 00000000..f2ff97c0 Binary files /dev/null and b/3.7.3/Kotlyarov_M/Graphics/nu_vs_n.png differ diff --git a/3.7.3/Kotlyarov_M/Pictures/cabel.png b/3.7.3/Kotlyarov_M/Pictures/cabel.png new file mode 100644 index 00000000..5549b3a1 Binary files /dev/null and b/3.7.3/Kotlyarov_M/Pictures/cabel.png differ diff --git a/3.7.3/Kotlyarov_M/Pictures/ustanovka.png b/3.7.3/Kotlyarov_M/Pictures/ustanovka.png new file mode 100644 index 00000000..b2a2675e Binary files /dev/null and b/3.7.3/Kotlyarov_M/Pictures/ustanovka.png differ diff --git a/3.7.3/Kotlyarov_M/data/Nu_vs_n.py b/3.7.3/Kotlyarov_M/data/Nu_vs_n.py new file mode 100644 index 00000000..74b448cd --- /dev/null +++ b/3.7.3/Kotlyarov_M/data/Nu_vs_n.py @@ -0,0 +1,117 @@ +import matplotlib.pyplot as plt +import numpy as np +from scipy import stats + +# Данные +n = np.array([1, 2, 3, 4, 5, 6, 7]) + +# Резонансные частоты для разных случаев +nu_sin_nagr = np.array([3.94, 7.9, 11.91, 15.89, 19.88, 23.89, 27.87]) # синус с нагрузкой +nu_sin_bez_nagr = np.array([3.8, 8.02, 12.05, 16.01, 20.01, 23.99, 27.95]) # синус без нагрузки +nu_pr_nagr = np.array([3.97, 7.95, 11.94, 15.92, 19.91, 23.88, 27.84]) # прямоугольные с нагрузкой +nu_pr_bez_nagr = np.array([3.98, 7.94, 11.9, 15.87, 19.85, 23.82, 27.77]) # прямоугольные без нагрузки + +# Оценка погрешности частоты +dnu = 0.01 + +# Функция для линейной аппроксимации с погрешностями +def weighted_linear_fit(x, y, dy): + """Взвешенная линейная регрессия y = a + b*x""" + weights = 1.0 / (dy**2) + sum_w = np.sum(weights) + sum_wx = np.sum(weights * x) + sum_wy = np.sum(weights * y) + sum_wx2 = np.sum(weights * x**2) + sum_wxy = np.sum(weights * x * y) + + delta = sum_w * sum_wx2 - sum_wx**2 + + b = (sum_w * sum_wxy - sum_wx * sum_wy) / delta + a = (sum_wx2 * sum_wy - sum_wx * sum_wxy) / delta + + # Погрешности коэффициентов + sigma_b = np.sqrt(sum_w / delta) + sigma_a = np.sqrt(sum_wx2 / delta) + + return a, b, sigma_a, sigma_b + +# Аппроксимация для каждого случая +a_sin_nagr, b_sin_nagr, da_sin_nagr, db_sin_nagr = weighted_linear_fit(n, nu_sin_nagr, np.full_like(nu_sin_nagr, dnu)) +a_sin_bez_nagr, b_sin_bez_nagr, da_sin_bez_nagr, db_sin_bez_nagr = weighted_linear_fit(n, nu_sin_bez_nagr, np.full_like(nu_sin_bez_nagr, dnu)) +a_pr_nagr, b_pr_nagr, da_pr_nagr, db_pr_nagr = weighted_linear_fit(n, nu_pr_nagr, np.full_like(nu_pr_nagr, dnu)) +a_pr_bez_nagr, b_pr_bez_nagr, da_pr_bez_nagr, db_pr_bez_nagr = weighted_linear_fit(n, nu_pr_bez_nagr, np.full_like(nu_pr_bez_nagr, dnu)) + +# Создание точек для линий тренда +n_line = np.linspace(0.5, 7.5, 100) +line_sin_nagr = b_sin_nagr * n_line + a_sin_nagr +line_sin_bez_nagr = b_sin_bez_nagr * n_line + a_sin_bez_nagr +line_pr_nagr = b_pr_nagr * n_line + a_pr_nagr +line_pr_bez_nagr = b_pr_bez_nagr * n_line + a_pr_bez_nagr + +# Создание полотна с 4 подграфиками +fig, axs = plt.subplots(2, 2, figsize=(14, 10)) +fig.suptitle('Зависимость резонансной частоты от номера резонанса', fontsize=16, fontweight='bold') + +# Цвета и метки +colors = ['blue', 'red', 'green', 'purple'] +labels = ['Синус с нагрузкой', 'Синус без нагрузки', + 'Прямоугольные с нагрузкой', 'Прямоугольные без нагрузки'] +data_list = [nu_sin_nagr, nu_sin_bez_nagr, nu_pr_nagr, nu_pr_bez_nagr] +coeffs_list = [(a_sin_nagr, b_sin_nagr, da_sin_nagr, db_sin_nagr), + (a_sin_bez_nagr, b_sin_bez_nagr, da_sin_bez_nagr, db_sin_bez_nagr), + (a_pr_nagr, b_pr_nagr, da_pr_nagr, db_pr_nagr), + (a_pr_bez_nagr, b_pr_bez_nagr, da_pr_bez_nagr, db_pr_bez_nagr)] +lines_list = [line_sin_nagr, line_sin_bez_nagr, line_pr_nagr, line_pr_bez_nagr] + +# Построение каждого графика +for i, (ax, color, label, data, coeffs, line) in enumerate(zip(axs.flat, colors, labels, data_list, coeffs_list, lines_list)): + a, b, da, db = coeffs + + # Только точки данных с погрешностями (БЕЗ соединения линиями) + ax.errorbar(n, data, yerr=dnu, fmt='o', color=color, + markersize=6, capsize=4, capthick=1, label='Экспериментальные точки') + + # Линия тренда (аппроксимация) + ax.plot(n_line, line, '-', color=color, alpha=0.7, linewidth=2, label='Линейная аппроксимация') + + # Настройки подграфика + ax.set_xlabel('Номер резонанса n', fontsize=11) + ax.set_ylabel('Резонансная частота ν, МГц', fontsize=11) + ax.set_title(label, fontsize=12, fontweight='bold') + ax.grid(True, alpha=0.3) + ax.set_xlim(0.5, 7.5) + + # Уравнение регрессии на графике + equation = f'ν = ({b:.3f} ± {db:.3f})n + ({a:.3f} ± {da:.3f})' + ax.text(0.05, 0.95, equation, transform=ax.transAxes, fontsize=10, + verticalalignment='top', bbox=dict(boxstyle='round', facecolor='white', alpha=0.8)) + +plt.tight_layout() + +# Сохранение графика +filename = 'nu_vs_n_4panels.png' +plt.savefig(filename, dpi=300, bbox_inches='tight') +print(f"График сохранен как {filename}") + +plt.show() + +# Вывод параметров в консоль +print("\n" + "="*70) +print("ПАРАМЕТРЫ ЛИНЕЙНОЙ АППРОКСИМАЦИИ ν = a + b·n") +print("="*70) + +cases = ['Синус с нагрузкой', 'Синус без нагрузки', + 'Прямоугольные с нагрузкой', 'Прямоугольные без нагрузки'] +all_coeffs = [(a_sin_nagr, b_sin_nagr, da_sin_nagr, db_sin_nagr), + (a_sin_bez_nagr, b_sin_bez_nagr, da_sin_bez_nagr, db_sin_bez_nagr), + (a_pr_nagr, b_pr_nagr, da_pr_nagr, db_pr_nagr), + (a_pr_bez_nagr, b_pr_bez_nagr, da_pr_bez_nagr, db_pr_bez_nagr)] +all_data = [nu_sin_nagr, nu_sin_bez_nagr, nu_pr_nagr, nu_pr_bez_nagr] + +for case, coeffs, data in zip(cases, all_coeffs, all_data): + a, b, da, db = coeffs + r_squared = stats.linregress(n, data).rvalue**2 + print(f"\n{case}:") + print(f" Наклон b = {b:.4f} ± {db:.4f} МГц") + print(f" Свободный член a = {a:.4f} ± {da:.4f} МГц") + print(f" Коэффициент детерминации R² = {r_squared:.6f}") diff --git a/3.7.3/Kotlyarov_M/data/data.xlsx b/3.7.3/Kotlyarov_M/data/data.xlsx new file mode 100644 index 00000000..76618bd6 Binary files /dev/null and b/3.7.3/Kotlyarov_M/data/data.xlsx differ diff --git a/3.7.3/Kotlyarov_M/data/y1_vs_x1.py b/3.7.3/Kotlyarov_M/data/y1_vs_x1.py new file mode 100644 index 00000000..80873dfc --- /dev/null +++ b/3.7.3/Kotlyarov_M/data/y1_vs_x1.py @@ -0,0 +1,109 @@ +import matplotlib.pyplot as plt +import numpy as np +from scipy import stats + +# Данные в СГС +X1 = np.array([39.478, 483.611, 1421.223, 2852.316, 4776.889, + 10106.475, 13511.488, 21801.956, 26687.410, + 32066.345, 37938.759, 44304.654, 51164.029, + 58516.884]) * 1e12 # (рад/с)^2 + +Y1 = np.array([9.7972e-08, 1.2217e-06, 3.5533e-06, 7.1442e-06, 1.1901e-05, + 2.5057e-05, 3.3451e-05, 5.3783e-05, 6.6048e-05, 7.9388e-05, + 9.3772e-05, 1.0933e-04, 1.2605e-04, 1.4424e-04]) # см^-2 + +dY1 = np.array([1.57e-09, 1.92e-08, 5.63e-08, 1.13e-07, 1.89e-07, + 3.98e-07, 5.32e-07, 8.57e-07, 1.05e-06, 1.26e-06, + 1.49e-06, 1.74e-06, 2.01e-06, 2.30e-06]) # погрешности Y1, см^-2 + +# Взвешенная линейная регрессия в СГС +def weighted_linear_fit(x, y, dy): + """Взвешенная линейная регрессия y = a + b*x""" + weights = 1.0 / (dy**2) + sum_w = np.sum(weights) + sum_wx = np.sum(weights * x) + sum_wy = np.sum(weights * y) + sum_wx2 = np.sum(weights * x**2) + sum_wxy = np.sum(weights * x * y) + + delta = sum_w * sum_wx2 - sum_wx**2 + + b = (sum_w * sum_wxy - sum_wx * sum_wy) / delta + a = (sum_wx2 * sum_wy - sum_wx * sum_wxy) / delta + + # Погрешности коэффициентов + sigma_b = np.sqrt(sum_w / delta) + sigma_a = np.sqrt(sum_wx2 / delta) + + return a, b, sigma_a, sigma_b + +# Аппроксимация +a, b, sigma_a, sigma_b = weighted_linear_fit(X1, Y1, dY1) + +# Создание точек для линии регрессии +X1_line = np.linspace(min(X1), max(X1), 100) +Y1_line = b * X1_line + a + +# Построение графика +plt.figure(figsize=(12, 8)) + +# Экспериментальные точки с погрешностями +plt.errorbar(X1, Y1, yerr=dY1, fmt='bo', markersize=5, + capsize=3, capthick=1, label='Экспериментальные точки') + +# Линия регрессии +plt.plot(X1_line, Y1_line, 'r-', linewidth=2, + label=f'Линейная аппроксимация') + +# Настройки графика +plt.xlabel('X₁, $10^{12}$ (рад/с)$^2$', fontsize=12) +plt.ylabel('Y₁, см$^{-2}$', fontsize=12) +plt.title(r'Зависимость $Y₁=k^2-\alpha^2$ от $X₁=\omega^2$', fontsize=14) +plt.grid(True, alpha=0.3) + +# Уравнение на графике +equation_text = f'y = ({b:.2e} ± {sigma_b:.2e})x + ({a:.2e} ± {sigma_a:.2e})' +plt.text(0.05, 0.95, equation_text, transform=plt.gca().transAxes, fontsize=11, + verticalalignment='top', bbox=dict(boxstyle='round', facecolor='white', alpha=0.8)) + +plt.legend(fontsize=10) +plt.tight_layout() + +# Сохранение графика +filename = 'Y1_vs_X1_CGS.png' +plt.savefig(filename, dpi=300, bbox_inches='tight') +print(f"График сохранен как {filename}") + +plt.show() + +# Вывод параметров в консоль +print("\n" + "="*60) +print("ПАРАМЕТРЫ ЛИНЕЙНОЙ АППРОКСИМАЦИИ (взвешенной МНК, СГС)") +print("="*60) +print(f"Наклон b = {b:.2e} ± {sigma_b:.2e} см⁻²/(рад/с)²") +print(f"Свободный член a = {a:.2e} ± {sigma_a:.2e} см⁻²") + +# Расчет произведения L_x * C_x в СГС +# Из уравнения (30): y1 = (L_x * C_x / c²) * x1 +c = 3e10 # скорость света в СГС, см/с +LxCx = b * c**2 +dLxCx = sigma_b * c**2 # погрешность произведения + +print(f"\nПроизведение L_x * C_x = {LxCx:.6e} ± {dLxCx:.6e} с²/см²") + +# Дополнительная статистика +residuals = Y1 - (b * X1 + a) +chi2 = np.sum((residuals / dY1)**2) +dof = len(X1) - 2 # степени свободы +chi2_reduced = chi2 / dof + +print(f"\nСтатистика качества аппроксимации:") +print(f"χ² = {chi2:.2f}") +print(f"Число степеней свободы = {dof}") +print(f"χ²/ν = {chi2_reduced:.2f}") + +# Обычная линейная регрессия для сравнения +slope_ordinary, intercept_ordinary, r_value, p_value, std_err_ordinary = stats.linregress(X1, Y1) +print(f"\nДля сравнения - обычная МНК (без весов):") +print(f"Наклон = {slope_ordinary:.2e} ± {std_err_ordinary:.2e} см⁻²/(рад/с)²") +print(f"R² = {r_value**2:.6f}") diff --git a/3.7.3/Kotlyarov_M/data/y2_vs_x2.py b/3.7.3/Kotlyarov_M/data/y2_vs_x2.py new file mode 100644 index 00000000..1cb71537 --- /dev/null +++ b/3.7.3/Kotlyarov_M/data/y2_vs_x2.py @@ -0,0 +1,102 @@ +import matplotlib.pyplot as plt +import numpy as np +from scipy import stats + +# Данные +X2 = np.array([1.0000000, 1.8708287, 2.4494897, 2.9154759, 3.3166248, + 3.6742346, 4.0000000, 4.3011626, 4.5825757, 4.8476799, + 5.0990195, 5.3385391, 5.5677644, 5.7879185, 6.0000000, + 6.2048368]) # МГц^1/2 + +a = np.array([1.51152806983541E-05, 2.01969747568964E-05, 2.51657876947467E-05, + 3.51409754907902E-05, 4.20688823764864E-05, 4.54195995646128E-05, + 4.63675452183319E-05, 5.28643507786485E-05, 5.88578159357852E-05, + 6.06931983620779E-05, 6.09884450895413E-05, 6.65631998088402E-05, + 6.98565845077279E-05, 7.29256293425499E-05, 7.49218546892236E-05, + 7.98698774590977E-05]) # см^-1 + +sigma_a = np.array([5.353E-06, 5.510E-06, 5.587E-06, 5.752E-06, 5.774E-06, + 5.834E-06, 5.938E-06, 5.972E-06, 6.013E-06, 6.116E-06, + 6.233E-06, 6.314E-06, 6.399E-06, 6.490E-06, 6.634E-06, + 6.800E-06]) # погрешности a, см^-1 + +# Взвешенная линейная регрессия (без свободного члена) +def weighted_linear_fit_no_intercept(x, y, dy): + """Взвешенная линейная регрессия y = k*x""" + weights = 1.0 / (dy**2) + k = np.sum(weights * x * y) / np.sum(weights * x**2) + + # Погрешность коэффициента + sigma_k = 1.0 / np.sqrt(np.sum(weights * x**2)) + + return k, sigma_k + +# Аппроксимация +k, sigma_k = weighted_linear_fit_no_intercept(X2, a, sigma_a) + +# Создание точек для линии регрессии +X2_line = np.linspace(0.8, 6.5, 100) +a_line = k * X2_line + +# Построение графика +plt.figure(figsize=(10, 6)) + +# Экспериментальные точки с погрешностями +plt.errorbar(X2, a, yerr=sigma_a, fmt='bo', markersize=5, + capsize=3, capthick=1, label='Экспериментальные точки') + +# Линия регрессии +plt.plot(X2_line, a_line, 'r-', linewidth=2, + label=f'Линейная аппроксимация: α = ({k:.2e} ± {sigma_k:.2e})·√ν') + +# Настройки графика +plt.xlabel('√ν, МГц$^{1/2}$', fontsize=12) +plt.ylabel('α, см$^{-1}$', fontsize=12) +plt.title('Зависимость коэффициента затухания α от корня частоты √ν', fontsize=14) +plt.grid(True, alpha=0.3) +plt.xlim(0.8, 6.5) + +# Уравнение на графике +equation_text = f'α = ({k:.2e} ± {sigma_k:.2e})·√ν' +plt.text(0.05, 0.95, equation_text, transform=plt.gca().transAxes, fontsize=11, + verticalalignment='top', bbox=dict(boxstyle='round', facecolor='white', alpha=0.8)) + +plt.legend(fontsize=10) +plt.tight_layout() + +# Сохранение графика +filename = 'alpha_vs_sqrt_nu.png' +plt.savefig(filename, dpi=300, bbox_inches='tight') +print(f"График сохранен как {filename}") + +plt.show() + +# Вывод параметров в консоль +print("\n" + "="*50) +print("ПАРАМЕТРЫ ЛИНЕЙНОЙ АППРОКСИМАЦИИ α = k·√ν") +print("="*50) +print(f"Коэффициент k = {k:.2e} ± {sigma_k:.2e} см⁻¹/МГц¹ᐧ²") + +# Расчет удельной проводимости σ +# Из уравнения (39): α = (4/(√σ·d)) * C_x * (V_φ/c) * √ν +# где d = 0.137 см (радиус центральной жилы) +# C_x и V_φ известны из предыдущих расчетов + +# Для примера, если C_x = 2.99e-9 см, V_φ/c = 0.67 (из предыдущих расчетов) +d = 0.137 # см +C_x = 2.99e-9 # см +V_phi_c = 0.67 # относительная фазовая скорость + +sigma = (4 * C_x * V_phi_c / (d * k))**2 +print(f"\nУдельная проводимость σ ≈ {sigma:.2e} с⁻¹") + +# Статистика качества аппроксимации +residuals = a - k * X2 +chi2 = np.sum((residuals / sigma_a)**2) +dof = len(X2) - 1 # степени свободы (один параметр) +chi2_reduced = chi2 / dof + +print(f"\nСтатистика качества аппроксимации:") +print(f"χ² = {chi2:.2f}") +print(f"Число степеней свободы = {dof}") +print(f"χ²/ν = {chi2_reduced:.2f}") diff --git a/3.7.3/Kotlyarov_M/data/y3_vs_x3.py b/3.7.3/Kotlyarov_M/data/y3_vs_x3.py new file mode 100644 index 00000000..e15338e4 --- /dev/null +++ b/3.7.3/Kotlyarov_M/data/y3_vs_x3.py @@ -0,0 +1,105 @@ +import matplotlib.pyplot as plt +import numpy as np +from scipy import stats + +# Данные +X3 = np.array([1.000, 6.548, 14.697, 24.782, 36.483, 64.000, 79.572, + 113.920, 132.575, 152.148, 172.601, 193.895, 216.000, + 238.886]) # МГц^3/2 + +Y3 = np.array([4.737E-09, 2.233E-08, 4.744E-08, 9.394E-08, 1.451E-07, + 2.321E-07, 3.058E-07, 4.451E-07, 4.957E-07, 5.931E-07, + 6.765E-07, 7.625E-07, 8.412E-07, 9.593E-07]) # см^-2 + +sigma_Y3 = np.array([1.678E-09, 6.093E-09, 1.054E-08, 1.539E-08, 1.995E-08, + 2.978E-08, 3.462E-08, 4.499E-08, 5.081E-08, 5.646E-08, + 6.220E-08, 6.814E-08, 7.478E-08, 8.203E-08]) # погрешности Y3, см^-2 + +# Взвешенная линейная регрессия (без свободного члена) +def weighted_linear_fit_no_intercept(x, y, dy): + """Взвешенная линейная регрессия y = k*x""" + weights = 1.0 / (dy**2) + k = np.sum(weights * x * y) / np.sum(weights * x**2) + + # Погрешность коэффициента + sigma_k = 1.0 / np.sqrt(np.sum(weights * x**2)) + + return k, sigma_k + +# Аппроксимация +k, sigma_k = weighted_linear_fit_no_intercept(X3, Y3, sigma_Y3) + +# Создание точек для линии регрессии +X3_line = np.linspace(0, 250, 100) +Y3_line = k * X3_line + +# Построение графика +plt.figure(figsize=(10, 6)) + +# Экспериментальные точки с погрешностями +plt.errorbar(X3, Y3, yerr=sigma_Y3, fmt='bo', markersize=5, + capsize=3, capthick=1, label='Экспериментальные точки') + +# Линия регрессии +plt.plot(X3_line, Y3_line, 'r-', linewidth=2, + label=f'Линейная аппроксимация: Y₃ = ({k:.2e} ± {sigma_k:.2e})·X₃') + +# Настройки графика +plt.xlabel('X₃, МГц$^{3/2}$', fontsize=12) +plt.ylabel('Y₃, см$^{-2}$', fontsize=12) +plt.title('Зависимость Y₃ = α·k от X₃ = ν$^{3/2}$', fontsize=14) +plt.grid(True, alpha=0.3) +plt.xlim(0, 250) + +# Уравнение на графике +equation_text = f'Y₃ = ({k:.2e} ± {sigma_k:.2e})·X₃' +plt.text(0.05, 0.95, equation_text, transform=plt.gca().transAxes, fontsize=11, + verticalalignment='top', bbox=dict(boxstyle='round', facecolor='white', alpha=0.8)) + +plt.legend(fontsize=10) +plt.tight_layout() + +# Сохранение графика +filename = 'Y3_vs_X3.png' +plt.savefig(filename, dpi=300, bbox_inches='tight') +print(f"График сохранен как {filename}") + +plt.show() + +# Вывод параметров в консоль +print("\n" + "="*50) +print("ПАРАМЕТРЫ ЛИНЕЙНОЙ АППРОКСИМАЦИИ Y₃ = k·X₃") +print("="*50) +print(f"Коэффициент k = {k:.2e} ± {sigma_k:.2e} см⁻²/МГц³ᐧ²") + +# Расчет удельной проводимости σ по методу Б +# Из уравнения (48): σ = [4π·C_x / (d·c·k)]² +# где: +# C_x - погонная емкость (из предыдущих расчетов) +# d - диаметр центральной жилы +# c - скорость света +# k - наклон графика + +# Параметры (в СГС) +d = 0.137 # см (радиус центральной жилы) +c = 3e10 # см/с +C_x = 2.99e-9 # см (из предыдущих расчетов) + +sigma = (4 * np.pi * C_x / (d * c * k))**2 +print(f"\nУдельная проводимость σ (метод Б) = {sigma:.2e} с⁻¹") + +# Статистика качества аппроксимации +residuals = Y3 - k * X3 +chi2 = np.sum((residuals / sigma_Y3)**2) +dof = len(X3) - 1 # степени свободы (один параметр) +chi2_reduced = chi2 / dof + +print(f"\nСтатистика качества аппроксимации:") +print(f"χ² = {chi2:.2f}") +print(f"Число степеней свободы = {dof}") +print(f"χ²/ν = {chi2_reduced:.2f}") + +# Сравнение с методом А (если известно) +# sigma_A = ... # из предыдущих расчетов +# print(f"Удельная проводимость σ (метод А) = {sigma_A:.2e} с⁻¹") +# print(f"Относительное расхождение = {abs(sigma-sigma_A)/max(sigma,sigma_A)*100:.1f}%") diff --git a/3.7.3/Kotlyarov_M/main.pdf b/3.7.3/Kotlyarov_M/main.pdf new file mode 100644 index 00000000..dea368bf Binary files /dev/null and b/3.7.3/Kotlyarov_M/main.pdf differ diff --git a/3.7.3/Kotlyarov_M/main.tex b/3.7.3/Kotlyarov_M/main.tex new file mode 100644 index 00000000..d9f7072c --- /dev/null +++ b/3.7.3/Kotlyarov_M/main.tex @@ -0,0 +1,504 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[russian,english]{babel} +\usepackage[T2A]{fontenc} +\usepackage[left=10mm, top=20mm, right=18mm, bottom=15mm, footskip=10mm]{geometry} +\usepackage{indentfirst} +\usepackage{amsmath,amssymb} +\usepackage{mathastext} +\usepackage[italicdiff]{physics} +\usepackage{graphicx} +\usepackage{caption} +\usepackage{float} +\usepackage{caption} +\renewcommand{\thefootnote}{\fnsymbol{footnote}} +\usepackage{tablefootnote} +\usepackage{footmisc} +\usepackage{textcomp} +\usepackage{multicol} +\usepackage{multirow} +\usepackage[parfill]{parskip} +\usepackage{makecell} +\usepackage{array} +\usepackage{siunitx} +\usepackage{booktabs} +\sisetup{ + exponent-product = \cdot, + per-mode = symbol, + separate-uncertainty = true, + uncertainty-separator = \, +} +\renewcommand\cellalign{cc} +\renewcommand\cellgape{\Gape[2pt]} +\usepackage[utf8]{inputenc}\newcommand{\approxtext}[1]{\ensuremath{\stackrel{\text{#1}}{\approx}}} +\usepackage[colorlinks=true, urlcolor=blue, linkcolor=blue, citecolor=blue]{hyperref} +\graphicspath{{images/}} +\DeclareGraphicsExtensions{.pdf,.png,.jpg} +\usepackage{wrapfig} +\captionsetup{labelformat=empty} +\usepackage{caption} +\captionsetup[figure]{name=Рисунок} +\captionsetup[table]{name=Таблица} +%\usepackage{newtxtext,newtxmath} +\title{\textbf{Отчет о выполнении лабораторной работы 3.7.3}} +\date{} +\author{Котляров Михаил, Б01-402} + +\begin{document} + +\maketitle + +\section{Введение} + +\subsubsection*{Цель работы} +Ознакомиться с теорией распространения электрических сигналов вдоль длинной линии; измерить амплитудно-частотные и фазо-частотные характеристики коаксиальной линии; определить волновые характеристики такой линии; изучить распределение амплитуды колебаний сигнала по длине линии. + +\subsubsection*{Оборудование} +\begin{itemize} + \item Осциллограф АКТАКОМ ADS-6142H + \item Генератор АКИП 3420/1 + \item Бухта с коаксиальным кабелем РК 50-4-11 + \item Схематический блок "модель длинной линии" + \item Магазин сопротивлений Р33 + \item Соединительные провода +\end{itemize} + +\subsection{Теоретическая часть} + +Длинной линией называется линия передачи, геометрическая длина которой сравнима или превышает длину волны передаваемого сигнала. В данной работе исследуется коаксиальный кабель, состоящий из двух коаксиальных проводников с радиусами $r_1$ и $r_2$, заполненных диэлектриком с параметрами $\varepsilon$ и $\mu$. + +\begin{figure}[h] + \centering + \includegraphics[scale=0.8]{Pictures/cabel.png} + \caption{Схема коаксиального кабеля} +\end{figure} + +Распространение сигналов в длинной линии описывается телеграфными уравнениями: + +\begin{equation} +\begin{cases} + \dfrac{\partial I}{\partial x} = -C_x \dfrac{\partial U}{\partial t} \\ + \dfrac{\partial U}{\partial x} = -\dfrac{L_x}{c^2} \dfrac{\partial I}{\partial t} - R_x I +\end{cases} +\end{equation} + +где $L_x$, $C_x$, $R_x$ -- погонные индуктивность, ёмкость и сопротивление линии. + +Для коаксиального кабеля погонные параметры выражаются через геометрию и свойства материалов: + +\begin{equation} +L_x = 2\mu\ln\left(\frac{r_2}{r_1}\right), \quad +C_x = \frac{\varepsilon}{2\ln(r_2/r_1)} +\end{equation} + +Волновое уравнение для напряжения имеет вид: + +\begin{equation} +\frac{\partial^2 U}{\partial t^2} - V_{\phi}^2 \frac{\partial^2 U}{\partial x^2} + \gamma \frac{\partial U}{\partial t} = 0 +\end{equation} + +где $V_{\phi} = \dfrac{c}{\sqrt{L_x C_x}} = \dfrac{c}{\sqrt{\varepsilon\mu}}$ -- фазовая скорость, $\gamma = R_x C_x V_{\phi}^2$ -- декремент затухания. + +Решение волнового уравнения ищется в виде: + +\begin{equation} +U(x,t) = U_0 e^{-i\omega t} e^{(-\alpha + ik)x} +\end{equation} + +где $\alpha$ -- коэффициент затухания, $k$ -- волновое число. + +Волновое сопротивление линии определяется как: + +\begin{equation} +Z = \frac{1}{c}\sqrt{\frac{L_x}{C_x}} +\end{equation} + +При согласованной нагрузке $R_0 = Z$ отраженная волна отсутствует. + +Экспериментально определяемые параметры: + +\begin{equation} +\alpha = \frac{1}{l}\ln\left(\frac{U_0}{U_\text{н}}\right), \quad +k = \frac{\Delta \varphi}{l} +\end{equation} + +\subsection{Экспериментальная установка} + +\begin{figure}[h] + \centering + \includegraphics[scale=0.8]{Pictures/ustanovka.png} + \caption{Схема экспериментальной установки} +\end{figure} + +Для исследования длинной линии собираем схему, содержащую: +\begin{itemize} + \item Генератор сигналов АКИП-3420/1 + \item Осциллограф АКТАКОМ ADS-6142H + \item Коаксиальный кабель РК-50-4-11 длиной $l$ + \item Нагрузочные сопротивления +\end{itemize} + +Сигнал от генератора подается на вход линии и одновременно на канал CH1 осциллографа. С выхода линии сигнал поступает на канал CH2 осциллографа. Измеряем амплитуды входного и выходного сигналов, а также фазовый сдвиг между ними. + +\subsection{Методика измерений} + +\begin{enumerate} + \item Измеряем резонансные частоты для различных типов сигналов и нагрузок + \item Снимаем амплитудно-частотную и фазо-частотную характеристики + \item Определяем погонные параметры линии $L_x$ и $C_x$ + \item Рассчитываем диэлектрическую проницаемость $\varepsilon$ и магнитную восприимчивость $\mu$ + \item Определяем удельную проводимость $\sigma$ материала проводников +\end{enumerate} + + + +\section{Выполнение} + +Параметры кабеля: +\begin{itemize} +\item Модель: Eltros PK 50-4-11 +\item Длина: $l = 5052,7$ см +\item $r_1 = 0,137 \pm 0,002$ см, $r_2 = 0,46 \pm 0,01$ см. +\end{itemize} + +\subsection*{I. Оценка фазовой и групповой скорости} + +\begin{enumerate} + +\item В первом задании эксперимента измерим резонансные частоты коаксиальной линии для различных типов сигналов и режимов нагрузки: + +\begin{itemize} + \item Синусоидальный сигнал с согласованной нагрузкой 50 Ом + \item Синусоидальный сигнал без нагрузки (холостой ход) + \item Прямоугольные импульсы с согласованной нагрузкой 50 Ом + \item Прямоугольные импульсы без нагрузки +\end{itemize} + +Для каждого режима определим несколько последовательных резонансных частот, соответствующих условию, когда фазовый набег вдоль линии кратен $2\pi$. + +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|} + \hline + $n$ & $\nu_{\text{синус с нагр}}$, МГц & $\nu_{\text{синус без нагр}}$, МГц & $\nu_{\text{прям с нагр}}$, МГц & $\nu_{\text{прям без нагр}}$, МГц \\ \hline + 1 & 3,94 & 3,80 & 3,97 & 3,98 \\ \hline + 2 & 7,90 & 8,02 & 7,95 & 7,94 \\ \hline + 3 & 11,91 & 12,05 & 11,94 & 11,90 \\ \hline + 4 & 15,89 & 16,01 & 15,92 & 15,87 \\ \hline + 5 & 19,88 & 20,01 & 19,91 & 19,85 \\ \hline + 6 & 23,89 & 23,99 & 23,88 & 23,82 \\ \hline + 7 & 27,87 & 27,95 & 27,84 & 27,77 \\ \hline + \end{tabular} + \caption{Таблица 1. Резонансные частоты для различных типов сигналов и нагрузок} + \label{tab:resonance_freq} +\end{table} + +\item По МНК построим линейную аппроксимацию зависимости резонансной частоты от номера резонанса\\ $\nu(n) = k \cdot n$. +\clearpage + \begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/nu_vs_n.png}} + \caption{График 1. Зависимость резонансной частоты от номера} +\end{figure} + +Резонансные частоты соответствуют сдвигу фаз, кратному $2\pi$, поэтому для каждой такой частоты справедливо из формулы (6): $k=\frac{2\pi (n+n_0)}{l}$. +\begin{equation} + \nu_n=\frac{V_\text{ф}}{l}(n+n_0) + \end{equation} +В случае прямоугольных импульсов резонансные частоты соответствуют ситуации, когда + временной сдвиг между сигналом на входе и выходе длинной линии кратен периоду + повторений импульсов, т.е $\Delta t = \frac{1}{\nu_n}(n+n_0)$. Временной сдвиг задаётся соотношением + $\Delta t=\frac{l}{V_\text{гр}}$, где $V_\text{гр}$ -- групповая скорость. Тогда в случае резонанса получим. + \begin{equation} + \nu_n=\frac{V_\text{гр}}{l}(n+n_0) + \end{equation} + +Наклон полученных прямых позволяет определить скорость распространения волн в кабеле: + \clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|} + \hline + Тип сигнала & $k \pm \sigma_k$, МГц & $\varepsilon_k$, \% & $V_{\Phi} \pm \sigma_{V_{\Phi}}$, $10^{10}$ см/с \\ \hline + Синус с нагр. & $3,9907 \pm 0,0019$ & 0,0476 & $2,016 \pm 0,0096$ \\ \hline + Синус без нагр. & $4,0125 \pm 0,0019$ & 0,0474 & $2,027 \pm 0,0096$ \\ \hline + Прям. с нагр. & $3,98 \pm 0,0019$ & 0,0477 & $2,011 \pm 0,0096$ \\ \hline + Прям. без нагр. & $3,9671 \pm 0,0019$ & 0,0479 & $2,004 \pm 0,0096$ \\ \hline + \end{tabular} + \caption{Таблица 2. Параметры линейной аппроксимации и фазовые скорости} + \label{tab:velocity_params} +\end{table} + +\item Рассчитанные значения скоростей распространения для всех четырех режимов оказались близкими друг к другу и составили приблизительно $(2,01-2,03) \cdot 10^{10}$ см/с. Совпадение фазовой и групповой скоростей указывает на \textbf{отсутствие значительной дисперсии} в исследуемом коаксиальном кабеле в диапазоне частот 3-28 МГц. + +Относительная погрешность определения коэффициента наклона $k$ не превышает 0,05\%, что свидетельствует о высокой точности проведенных измерений и надежности полученных результатов. + +\subsection*{II. Измерение АЧХ и ФЧХ} + + \item Установим синусоидальный сигнал амплитудой 1 В с согласованной нагрузкой. Измерим амплитуды и фазовые сдвиги для частот от 1 до 40 МГц. +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|} + \hline + $\nu$, МГц & $\Delta x$, нс & $\Delta \varphi \pm \sigma_{\Delta \varphi}$, рад & $U_{\text{вх}}$, В & $U_{\text{вых}}$, В \\ \hline + 1,0 & 252,0 & $1,58 \pm 0,01$ & 27,2 & 25,2 \\ \hline + 3,5 & 254,0 & $5,59 \pm 0,04$ & 26,8 & 24,2 \\ \hline + 6,0 & 252,7 & $9,53 \pm 0,08$ & 26,8 & 23,6 \\ \hline + 8,5 & 252,9 & $13,51 \pm 0,11$ & 26,8 & 22,44 \\ \hline + 11,0 & 252,2 & $17,43 \pm 0,14$ & 27,26 & 22,04 \\ \hline + 13,5 & 292,6 & $24,82 \pm 0,17$ & 27,26 & 21,67 \\ \hline + 16,0 & 251,6 & $25,29 \pm 0,20$ & 26,86 & 21,25 \\ \hline + 18,5 & 251,4 & $29,22 \pm 0,23$ & 27,26 & 20,87 \\ \hline + 21,0 & 273,3 & $36,06 \pm 0,26$ & 27,6 & 20,5 \\ \hline + 23,5 & 251,0 & $37,06 \pm 0,30$ & 27,3 & 20,09 \\ \hline + 26,0 & 251,4 & $41,06 \pm 0,33$ & 26,81 & 19,7 \\ \hline + 28,5 & 251,4 & $45,02 \pm 0,36$ & 26,96 & 19,26 \\ \hline + 31,0 & 251,2 & $48,93 \pm 0,39$ & 26,9 & 18,9 \\ \hline + 33,5 & 251,0 & $52,83 \pm 0,42$ & 26,8 & 18,54 \\ \hline + 36,0 & 250,8 & $56,73 \pm 0,45$ & 26,4 & 18,08 \\ \hline + 38,5 & 250,9 & $60,69 \pm 0,48$ & 26,2 & 17,5 \\ \hline + \end{tabular} + \caption{Таблица 3. Результаты измерений АЧХ и ФЧХ коаксиальной линии} + \label{tab:ach_fch} +\end{table} + +\subsection*{III. Определение параметров кабеля} + + \item Построим график зависимости $Y_1 = k^2 - \alpha^2$ от $X_1 = \omega^2$ +\clearpage +\begin{table}[h!] + \centering + \begin{tabular}{|c|c|c|c|c|} + \hline + $\alpha \pm \sigma_{\alpha}$, см$^{-1}$ & $k \pm \sigma_k$, рад/см & $X_1$, $10^{12}$ (рад/с)$^2$ & $Y_1 \pm \sigma_{Y_1}$, см$^{-2}$ \\ \hline + $(1,51 \pm 0,54) \cdot 10^{-5}$ & $(3,13 \pm 0,25) \cdot 10^{-4}$ & 39 & $(9,80 \pm 0,16) \cdot 10^{-8}$ \\ \hline + $(2,02 \pm 0,55) \cdot 10^{-5}$ & $(1,106 \pm 0,009) \cdot 10^{-3}$ & 484 & $(1,222 \pm 0,019) \cdot 10^{-6}$ \\ \hline + $(2,52 \pm 0,56) \cdot 10^{-5}$ & $(1,885 \pm 0,015) \cdot 10^{-3}$ & 1421 & $(3,553 \pm 0,056) \cdot 10^{-6}$ \\ \hline + $(3,51 \pm 0,58) \cdot 10^{-5}$ & $(2,673 \pm 0,021) \cdot 10^{-3}$ & 2852 & $(7,144 \pm 0,113) \cdot 10^{-6}$ \\ \hline + $(4,21 \pm 0,58) \cdot 10^{-5}$ & $(3,450 \pm 0,027) \cdot 10^{-3}$ & 4777 & $(1,190 \pm 0,019) \cdot 10^{-5}$ \\ \hline + $(4,54 \pm 0,58) \cdot 10^{-5}$ & $(4,912 \pm 0,034) \cdot 10^{-3}$ & 7195 & $(2,413 \pm 0,033) \cdot 10^{-5}$ \\ \hline + $(4,64 \pm 0,59) \cdot 10^{-5}$ & $(5,006 \pm 0,040) \cdot 10^{-3}$ & 10106 & $(2,506 \pm 0,040) \cdot 10^{-5}$ \\ \hline + $(5,29 \pm 0,60) \cdot 10^{-5}$ & $(5,784 \pm 0,046) \cdot 10^{-3}$ & 13511 & $(3,345 \pm 0,053) \cdot 10^{-5}$ \\ \hline + $(5,89 \pm 0,60) \cdot 10^{-5}$ & $(7,137 \pm 0,052) \cdot 10^{-3}$ & 17410 & $(5,093 \pm 0,075) \cdot 10^{-5}$ \\ \hline + $(6,07 \pm 0,61) \cdot 10^{-5}$ & $(7,334 \pm 0,058) \cdot 10^{-3}$ & 21802 & $(5,378 \pm 0,086) \cdot 10^{-5}$ \\ \hline + $(6,10 \pm 0,62) \cdot 10^{-5}$ & $(8,127 \pm 0,065) \cdot 10^{-3}$ & 26687 & $(6,605 \pm 0,105) \cdot 10^{-5}$ \\ \hline + $(6,66 \pm 0,63) \cdot 10^{-5}$ & $(8,910 \pm 0,071) \cdot 10^{-3}$ & 32066 & $(7,939 \pm 0,126) \cdot 10^{-5}$ \\ \hline + $(6,99 \pm 0,64) \cdot 10^{-5}$ & $(9,684 \pm 0,077) \cdot 10^{-3}$ & 37939 & $(9,377 \pm 0,149) \cdot 10^{-5}$ \\ \hline + $(7,29 \pm 0,65) \cdot 10^{-5}$ & $(1,046 \pm 0,083) \cdot 10^{-2}$ & 44305 & $(1,093 \pm 0,174) \cdot 10^{-4}$ \\ \hline + $(7,49 \pm 0,66) \cdot 10^{-5}$ & $(1,123 \pm 0,090) \cdot 10^{-2}$ & 51164 & $(1,261 \pm 0,201) \cdot 10^{-4}$ \\ \hline + $(7,99 \pm 0,68) \cdot 10^{-5}$ & $(1,201 \pm 0,096) \cdot 10^{-2}$ & 58517 & $(1,442 \pm 0,230) \cdot 10^{-4}$ \\ \hline + \end{tabular} + \caption{Таблица 4. Расчётные параметры для определения $L_x C_x$} + \label{tab:LxCx_params} +\end{table} + + + \begin{figure}[h] + \center{\includegraphics[width=0.85\textwidth]{Graphics/Y1_vs_X1.png}} + \caption{График 2. Зависимость $Y_1 = k^2 - \alpha^2$ от $X_1 = \omega^2$} +\end{figure} +\clearpage + \item Наклон графика $K_1 = (2,48 \pm 0,01) \cdot 10^{-21} \ \frac{\text{с}^2}{\text{см}^2}$ + \item Рассчитаем $L_x C_x = K_1 \cdot c^2 = 2,232 \pm 0,001$ + \item Определим погонную емкость и индуктивность кабеля. Переведем сопротивление $R_0 = 50$ ом в СГС, $R_0 = 5,56\cdot 10^{-11}$ ед. СГС. Учетом того, что $R_0 = \frac{1}{c} \sqrt{\frac{L_x}{C_x}}$, получим +\[ +L_x = c R_0\sqrt{L_x C_x} = 2,493 \pm 0,006 \text{ ед. СГС} \ (\varepsilon_{L_x} = 0,22\%), +\] +\[ +C_x = \frac{\sqrt{L_x C_x}}{c R_0} = 0,895 \pm 0,002 \text{ ед. СГС} \ (\varepsilon_{C_x} = 0,22\%). +\] +\item Рассчитаем диэлектрическую и магнитную проницаемости: +\[ +\mu = \frac{L_x}{2 \ln{\frac{r_2}{r_1}}} = 1,029 \pm 0,022\ (\varepsilon_{\mu} = 2,17\%), +\] +\[ +\varepsilon = C_x 2 \ln{\frac{r_2}{r_1}} = 2,169 \pm 0,047 \ (\varepsilon_{\varepsilon} = 2,17\%), +\] +Фазовая скорость $V_\Phi = \frac{c}{\sqrt{\mu \varepsilon}} = (2,008 \pm 0,054) \cdot 10^{10} \ \frac{\text{см}}{\text{с}}$. + +Средняя взвешанная фазовая скорость по трем значениям (2 из 1-го пункта + высчитанная по проницаемостям) $V_\Phi^{\text{ср}} = (2,022 \pm 0,018) \cdot 10^{10} \ \frac{\text{см}}{\text{с}}$. + +\subsubsection*{Метод А (через коэффициент затухания)} + + \item Построим по МНК график зависимости коэффициента затухания $\alpha$ от корня частоты $\sqrt{\nu}$, Проведем линейную аппроксимацию вида $\alpha = k_A \cdot \sqrt{\nu}$. +\begin{table}[h] +\centering + +\begin{tabular}{|c|c|c|} +\hline +$X_2$, МГц$^{1/2}$ & $Y_2 \cdot 10^{5}$, см$^{-1}$ & $\sigma_{Y_2} \cdot 10^{5}$, см$^{-1}$ \\ +\hline +1,000 & 1,512 & 5,353 \\ +1,871 & 2,020 & 5,510 \\ +2,449 & 2,517 & 5,587 \\ +2,915 & 3,514 & 5,752 \\ +3,317 & 4,207 & 5,774 \\ +3,674 & 4,542 & 5,834 \\ +4,000 & 4,637 & 5,938 \\ +4,301 & 5,286 & 5,972 \\ +4,583 & 5,886 & 6,013 \\ +4,848 & 6,069 & 6,116 \\ +5,099 & 6,099 & 6,233 \\ +5,339 & 6,656 & 6,314 \\ +5,568 & 6,986 & 6,399 \\ +5,788 & 7,293 & 6,490 \\ +6,000 & 7,492 & 6,634 \\ +6,205 & 7,987 & 6,800 \\ +\hline +\end{tabular} +\caption{Таблица 5. Данные для метода А ($\alpha$ от $\sqrt{\nu}$)} +\end{table} +\clearpage + \begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/Y2_vs_X2.png}} + \caption{График 3. Зависимость коэффициента затухания $\alpha$ от корня частоты $\sqrt{\nu}$} +\end{figure} + \item Коэффициент наклона: $k_A = (1,24 \pm 0,04) \cdot 10^{-8}\ \frac{\text{см}^{-1}}{\text{Гц}^{1/2}}$ ($\varepsilon_{k_A} = 2,83 \%$). + \item Рассчитаем удельную проводимость по формуле: + \[ + \sigma_A = \left( \frac{4}{d} \cdot C_x \cdot \frac{V_\phi}{c} \cdot \frac{1}{k_A} \right)^2 = (2,018 \pm 0,134) \cdot 10^{18} \text{ ед. СГС} \ (\varepsilon_{\sigma_A} = 6,63\%), + \] + где: + \begin{itemize} + \item $d = 0.137$ см -- диаметр центральной жилы ($2r_1$) + \item $C_x$ -- погонная ёмкость + \item $V_\Phi^{\text{ср}}$ -- средняя фазовая скорость + \item $c = 3 \cdot 10^{10}$ см/с -- скорость света + \end{itemize} + +\subsubsection*{Метод Б (через произведение $\alpha \cdot k$)} + + \item Построим график зависимости $\alpha \cdot k$ от $\nu^{3/2}$, проведем линейную аппроксимацию вида $\alpha \cdot k = k_B \cdot \nu^{3/2}$. +\clearpage +\begin{table}[h] +\centering +\begin{tabular}{|c|c|c|} +\hline +$X_3$, МГц$^{3/2}$ & $Y_3 \cdot 10^{7}$, см$^{-2}$ & $\sigma_{Y_3} \cdot 10^{7}$, см$^{-2}$ \\ +\hline +1,000 & 0,474 & 1,678 \\ +6,548 & 2,233 & 6,093 \\ +14,697 & 4,744 & 10,54 \\ +24,782 & 9,394 & 15,39 \\ +36,483 & 14,51 & 19,95 \\ +49,602 & 22,31 & 28,70 \\ +64,000 & 23,21 & 29,78 \\ +79,572 & 30,58 & 34,62 \\ +96,234 & 42,01 & 43,02 \\ +113,920 & 44,51 & 44,99 \\ +132,575 & 49,57 & 50,81 \\ +152,148 & 59,31 & 56,46 \\ +172,601 & 67,65 & 62,20 \\ +193,895 & 76,25 & 68,14 \\ +216,000 & 84,12 & 74,78 \\ +238,886 & 95,93 & 82,03 \\ +\hline +\end{tabular} +\caption{Таблица 6. Данные для метода Б ($\alpha \cdot k$ от $\nu^{3/2}$)} +\end{table} + + \begin{figure}[h] + \center{\includegraphics[width=1\textwidth]{Graphics/Y3_vs_X3.png}} + \caption{График 4. Зависимость $\alpha \cdot k$ от $\nu^{3/2}$} +\end{figure} + \item Коэффициент наклона: $k_B = (4.86 \pm 0.12) \cdot 10^{-8} \ \frac{\text{см}^{-2}}{\text{Гц}^{3/2}}$ ($\varepsilon_{k_\text{Б}} = 3,06 \%$). + \item Рассчитаем удельную проводимость по формуле: + \[ + \sigma_\text{Б} = \left( \frac{4\pi \cdot C_x}{d \cdot c \cdot k_\text{Б}} \right)^2 = (0,503 \pm 0,034) \cdot 10^{18} \text{ ед. СГС} \ (\varepsilon_{\sigma_\text{Б}} = 6,79\%), + \] + +\end{enumerate} + +\section{Результаты и обсуждения} + +\subsection*{Сводка полученных результатов} + +В ходе эксперимента были определены основные параметры коаксиального кабеля Eltros PK 50-4-11. Все измерения проводились в системе СГС. + +\begin{table}[h!] +\centering +\begin{tabular}{|c|c|c|c|} +\hline +Параметр & Значение & Погрешность & Отн. погрешность, \% \\ +\hline +$L_x C_x$, ед. СГС & 2,232 & 0,001 & 0,045 \\ +$L_x$, ед. СГС & 2,493 & 0,006 & 0,24 \\ +$C_x$, ед. СГС & 0,895 & 0,002 & 0,22 \\ +$\mu$ & 1,029 & 0,022 & 2,17 \\ +$\varepsilon$ & 2,169 & 0,047 & 2,17 \\ +$V_\Phi^{ср}$, $10^{10}$ см/с & 2,022 & 0,018 & 0,89 \\ +$\sigma_A$, $10^{18}$ ед. СГС & 2,018 & 0,134 & 6,64 \\ +$\sigma_B$, $10^{18}$ ед. СГС & 0,503 & 0,034 & 6,76 \\ +\hline +\end{tabular} +\caption{Таблица 7. Сводная таблица экспериментальных результатов} +\label{tab:summary} +\end{table} + +\subsection*{Сравнение с табличными значениями} + +\begin{table}[h!] +\centering +\begin{tabular}{|c|c|c|c|} +\hline +Параметр & Эксперимент & Табличное значение & Расхождение \\ +\hline +$\varepsilon$ (ПЭ) & 2,169 & 2,25--2,35 & 3,6--7,7\% \\ +$\mu$ (медь) & 1,029 & $\approx$1,0 & 2,9\% \\ +$V_\Phi/c$ & 0,674 & 0,659--0,68 & 2--4\% \\ +$\sigma_A$, $10^{18}$ ед. СГС & 2,02 & 0,0537 & в 37,6 раз \\ +$\sigma_B$, $10^{18}$ ед. СГС & 0,503 & 0,0537 & в 9,4 раз \\ +\hline +\end{tabular} +\caption{Таблица 8. Сравнение с табличными значениями} +\label{tab:comparison} +\end{table} + +\subsection*{Анализ результатов} + +\textbf{Фазовая скорость и волновые параметры}. Полученное значение фазовой скорости $V_\Phi = (2,022 \pm 0,018) \cdot 10^{10}$ см/с хорошо согласуется с теоретическим предсказанием для коаксиального кабеля с полиэтиленовым заполнением. Относительная скорость $V_\Phi/c = 0,674$ соответствует диэлектрической проницаемости $\varepsilon \approx 2,2$, что характерно для полиэтилена. + +\textbf{Диэлектрическая и магнитная проницаемости}. Значение $\varepsilon = 2,169$ несколько ниже табличного для полиэтилена (2,25--2,35), что может быть связано с наличием воздушных зазоров в кабеле. Значение $\mu = 1,029$ близко к 1, что ожидаемо для меди. + +\textbf{Удельная проводимость}. Наблюдается значительное расхождение между экспериментальными и табличными значениями: +\begin{itemize} +\item Метод А дал значение $\sigma_A = 2,02 \cdot 10^{18}$ ед. СГС, что в 37,6 раз превышает табличное значение для меди +\item Метод Б показал $\sigma_B = 0,503 \cdot 10^{18}$ ед. СГС, что в 9,4 раз превышает табличное значение +\end{itemize} + +\textbf{Возможные причины расхождений}: +\begin{enumerate} +\item Приближенный характер модели скин-слоя на используемых частотах +\item Систематические погрешности измерения амплитуд и фазовых сдвигов +\item Влияние поверхностной шероховатости проводников на высоких частотах +\item Накопление погрешностей при вычислении производных параметров +\item Отличие реальных геометрических параметров кабеля от заявленных +\end{enumerate} + +\textbf{Сравнение методов}. Метод Б показал значительно лучшее согласие с табличными данными, чем метод А. Это может быть связано с тем, что метод Б использует непосредственно измеренные величины $\alpha$ и $k$ и не требует знания фазовой скорости, тогда как метод А чувствителен к точности определения $V_\Phi$. + +\textbf{Качество аппроксимации}. Все построенные графики демонстрируют высокое качество линейной аппроксимации, что подтверждает адекватность использованных теоретических моделей и точность экспериментальных измерений. + +\section{Вывод} + +\begin{enumerate} +\item Экспериментально определены волновые параметры коаксиального кабеля: $L_x = 2,493$ ед. СГС, $C_x = 0,895$ ед. СГС, $L_x C_x = 2,232$ ед. СГС + +\item Рассчитаны диэлектрическая и магнитная проницаемости: $\varepsilon = 2,169$, $\mu = 1,029$, что соответствует ожидаемым значениям для полиэтилена и меди + +\item Фазовая скорость распространения сигнала в кабеле составляет $V_\Phi = (2,022 \pm 0,018) \cdot 10^{10}$ см/с ($V_\Phi/c = 0,674$) + +\item Удельная проводимость материала проводников, определенная двумя методами: +\begin{itemize} +\item Метод А: $\sigma_A = (2,018 \pm 0,134) \cdot 10^{18}$ ед. СГС (расхождение с табличным в 37,6 раз) +\item Метод Б: $\sigma_B = (0,503 \pm 0,034) \cdot 10^{18}$ ед. СГС (расхождение с табличным в 9,4 раз) +\end{itemize} + +\item Метод Б демонстрирует лучшее согласие с табличными данными, хотя оба метода дают завышенные значения удельной проводимости + +\item Относительные погрешности измерений не превышают 7\%, что свидетельствует о хорошей воспроизводимости результатов + +\item Полученные результаты подтверждают применимость телеграфных уравнений для описания распространения сигналов в коаксиальных линиях и демонстрируют влияние скин-эффекта на затухание высокочастотных сигналов + +\item Для улучшения точности определения удельной проводимости рекомендуется использовать метод Б и проводить измерения на более высоких частотах, где скин-эффект выражен более явно +\end{enumerate} +\end{document} \ No newline at end of file diff --git a/3.7.3/pdf/Kotlyarov_M.pdf b/3.7.3/pdf/Kotlyarov_M.pdf new file mode 100644 index 00000000..dea368bf Binary files /dev/null and b/3.7.3/pdf/Kotlyarov_M.pdf differ