In [1]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from labwork import *
In [2]:
nu = np.arange(1, 11) * 1e-9
freqs = np.array([12.4, 9.08, 7.38, 6.31, 5.71, 5.25, 4.83, 4.57, 4.28, 4.08]) * 1e3
nu, freqs
df = pd.DataFrame()
df[r"$\nu [нФ]$"] = nu * 1e9
df[r"$f [Гц]$"] = freqs
df
Out[2]:
In [3]:
F = (1./(2. * np.pi * freqs)**2)
a, b, sigma_a, sigma_b = linPlot(nu, F, xlabel="C", ylabel=r"$F = (\frac{2*\pi}{f})^2$", labplot=True)
In [4]:
sciPrintR(b *1e3, sigma_b, "L [мГн] = ")
In [5]:
f_resonance = 7.37
In [6]:
# АЧХ
f = np.array(
[7.38, 7.44, 7.50, 7.55, 7.6 , 7.66, 7.7 , 7.75, 7.8 , 7.32, 7.29, 7.26, 7.23, 7.2 , 7.15, 7.85]
)
uy = np.array(
[7.4 , 7. , 6.55, 6. , 5.4 , 4.8 , 4.4 , 4.2 , 3.8 , 6.6 , 5.4 , 4.8 , 3.8 , 3.4 , 2.8 , 3.4]
) # 20 мВ # 7.4 = 7.1
ux = np.array(
[6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6. , 6.]
) #0.1 В
In [7]:
plt.figure(figsize=(14, 5))
plt.scatter(f / f[0], uy / uy.max())
#plt.plot(f / f[0], uy / uy.max())
plt.xlabel(r"$\frac{\omega}{\omega_0}$", fontsize=15)
plt.ylabel(r"$\frac{U}{U_0}$", fontsize=15)
plt.grid()
plt.show()
ω 0 − ω = ∆ω/2 = γ.
$\frac{\Delta\omega}{\omega_0} = \frac{1}{Q}$
In [8]:
delta_f = (7.6 - 7.29)
Q = f[0] / (delta_f )
Q
Out[8]:
In [9]:
multiplier = 0.0005 # 0.5 ms
T = 7.8 / 6
T_RE = 0.2 / 7.8 # 0.2 - цена деления
sciPrintR(T, T_RE, "T =")
ts_re = np.array([
[6. , 0],
[4.6 , 30],
[3.9 , 60],
[3.2 , 90],
[2.5, 120],
[2.2, 150],
[2. , 180],
[1.8 , 210],
[1.65, 240]
]) # 0.5 ms
ts_re_1 = np.array([
[6.1 , 0],
[4.9 , 30],
[3.6 , 60],
[3.4 , 90],
[2.6, 120],
[2.3, 150],
[2.15, 180],
[2.08, 210],
[2.02, 240]
]) # 0.5 ms
ts_re_2 = np.array([
[1.6, 0],
[1.5 , 30], # 1.3 - 1.5
[1.2 , 60],
[1.1 , 90],
[1.05, 120],
]) # 1 ms
df = pd.DataFrame()
df[r"$R_k [Ом]$"] = ts_re[:, 1]
df[r"$t [с]$"] = [sciRoundR(ts_re[i, 0] * multiplier, 0.2 / ts_re[i, 0]) for i in range(len(ts_re[:,0]))]
df
Out[9]:
In [10]:
T = T * multiplier
ts_re[:, 0] = ts_re[:, 0] * multiplier
In [11]:
plt.figure(figsize=(14,5))
a, b, sigma_a, sigma_b = eval_mnk(ts_re[:, 1], T / ts_re[:, 0])
plt.plot([0, 250], b * np.array([0, 250]) + a, color="red")
plt.scatter(ts_re[:, 1], T / ts_re[:, 0])
plt.grid()
plt.show()
In [12]:
Rkr = a / b
Rkr_RE = prodErrorR([sigma_a, sigma_b])
sciPrintR(Rkr, Rkr_RE, "Rkr = ")
In [13]:
a
Out[13]:
In [14]:
sciPrintR(T * 1e6, T_RE, "T =")
In [15]:
gamma = 1. / ts_re[:, 0]
lambd = gamma * T
lambd_RE = [prodErrorR([T_RE, 0.2 * multiplier / ts]) for ts in ts_re[:,0]]
In [17]:
lambd_rounded = []
for i in range(len(lambd)):
sciPrintR(lambd[i], lambd_RE[i], "lambd (Rk = {}) =".format(ts_re[i, 1]))
lambd_rounded.append(sciRoundR(lambd[i],lambd_RE[i]))
df["$\lambda$"] = lambd_rounded
df
Out[17]:
In [18]:
a, b, sigma_a, sigma_b = linPlot(ts_re[:, 1], lambd, xlabel=r"$R_m$", ylabel=r"$\lambda$", labplot=True)
In [19]:
R_coil = a / b
R_coil_RE = prodErrorR([sigma_a, sigma_b])
sciPrintR(R_coil, R_coil_RE, "R_coil = ")
In [20]:
Q = np.pi / lambd
Q_RE = lambd_RE
for i in range(len(Q)):
sciPrintR(Q[i], Q_RE[i], "Q (Rk = {}) =".format(ts_re[i, 1]))
df["$Q$"] = [sciRoundR(Q[i], Q_RE[i]) for i in range(len(Q))]
df
Out[20]:
$\gamma = \frac{R}{2L}$
In [21]:
L_values = (ts_re[:, 1] + R_coil) / (2.* gamma)
L = L_values.mean()
L_RE = L_values.std(ddof=1)
sciPrintR(L*1e3, L_RE, "L = ")
$T = 2\pi \sqrt{LC}$
In [22]:
C = (T / (2. * np.pi))**2 / L
C_RE = prodErrorR_degs([(2, T_RE), (-1, L_RE)])
sciPrintR(C, C_RE, "C = ")
In [23]:
R_crit = 2. * sqrt(L/C)
sciPrintR(R_crit, prodErrorR_degs([(0.5, L_RE), (0.5, C_RE)]), "R_crit = ")
In [24]:
Q_RCL = 1. / (ts_re[:, 1] + R_coil) * sqrt(L / C)
Q_RCL_RE = prodErrorR_degs([(0.5, L_RE), (0.5, C_RE), (-1, R_coil_RE)]) # на погрешность сопротивления забили, маленькая
for i, q_rcl in enumerate(Q_RCL):
sciPrintR(q_rcl, Q_RCL_RE, "Q_RCL (R = {})=".format(ts_re[i, 1]))
df["$Q_{RCL}$"] = [sciRoundR(Q_RCL[i], Q_RCL_RE) for i in range(len(Q))]
df
Out[24]:
In [25]:
plotIntervals(Q_RCL, [Q_RCL_RE * Q_RCL] * len(Q_RCL), Q, Q_RE * Q, title="Измерения Q и $Q_{RCL}$")
In [26]:
sciRoundR(219.20056, 0.00145754, unit="Гн")
Out[26]:
In [316]:
1// 3
Out[316]:
In [ ]: