Ejemplo n.º 1
0
omega_l = 2.0 * pi / Tl
d_omega_l = omega_l * d_Tl / Tl
omega_r = 2.0 * pi / Tr
d_omega_r = omega_r * d_Tr / Tr

omega = 0.5 * (omega_l + omega_r)
d_omega = 0.5 * sqrt(d_omega_l**2 + d_omega_r**2)

omega_spec = 2.0 * pi * f
d_omega_spec = 2.0 * pi * d_f

## Output
if __name__ == '__main__':
    print(
        dpr.tbl([
            dpr.lst(gen.l, gen.d_l, name='l', unit='m'),
            dpr.lst(Tl, d_Tl, name='TL', unit='s'),
            dpr.lst(Tr, d_Tr, name='TR', unit='s'),
            dpr.lst(omega_l, d_omega_l, name='ω_L', unit='s'),
            dpr.lst(omega_r, d_omega_r, name='ω_R', unit='s')
        ]))

    print(
        dpr.tbl([
            dpr.lst(gen.l, gen.d_l, name='l', unit='m'),
            dpr.lst(omega, d_omega, name='ω', prefix=False, unit='1/s'),
            dpr.lst(omega_spec,
                    d_omega_spec,
                    name='ω_spec',
                    prefix=False,
                    unit='1/s'),
Ejemplo n.º 2
0
])

## Data processing
omega_F1 = 2 * pi * f_F
d_omega_F1 = 2 * pi * d_f_F

omega_F2 = omega_F1 * exp(-delta * T_P)
d_omega_F2 = omega_F2 * sqrt((d_omega_F1 / omega_F1)**2 + (d_delta * T_P)**2 + (d_T_P * delta)**2)

omega_F = 0.5 * (omega_F1 + omega_F2)
d_omega_F = sqrt(d_omega_F1**2 + d_omega_F2**2)

## Evaluation
if output:
  print(dpr.tbl([
    dpr.lst(m / cs.gram, name='m', unit='g'),
    dpr.lst(l / cs.centi, name='l', unit='cm')
  ]))

if output:
  plt.subplots(num=2)
  plt.xlabel(r'$\omega_F / (1/s)$')
  plt.ylabel(r'$T_P / s$')

s, d_s = np.zeros(len(m)), np.zeros(len(m))
b, d_b = np.zeros(len(m)), np.zeros(len(m))
for i in range(len(m)):
  par = [omega_F[i], T_P[i], d_T_P[i], d_omega_F[i]]
  for j in range(len(par)):
    par[j] = np.insert(par[j], 0, 0.0)
  
Ejemplo n.º 3
0
W_pV = A
d_W_pV = d_A

W_D = pi * l * F
d_W_D = W_D * d_F / F

eta_th = W_pV / Q_el
d_eta_th = eta_th * sqrt((d_W_pV / W_pV)**2 + (d_Q_el / Q_el)**2)

eta_eff = W_D / Q_el
d_eta_eff = eta_eff * sqrt((d_W_D / W_D)**2 + (d_Q_el / Q_el)**2)

if output:
  print(dpr.tbl([
    dpr.lst(F, d_F, name='F', unit='N'),
    dpr.lst(f, d_f, name='f', unit='Hz'),
    dpr.lst(Q_el, d_Q_el, name='Q_el', unit='J'),
    dpr.lst(W_pV, d_W_pV, name='W_pV', unit='J'),
    dpr.lst(W_D, d_W_D, name='W_D', unit='J')
  ]))

if output:
  plt.subplots(num=1)
  plt.xlabel(r'$f$ / Hz')
  plt.ylabel(r'$\eta_\textnormal{th}$, $\eta_\textnormal{eff}$')
  plt.errorbar(f, eta_th, d_eta_th, d_f, fmt='o', ls='-')
  plt.errorbar(f, eta_eff, d_eta_eff, d_f, fmt='o', ls='-')

if output:
  fig_folder_path = 'figures/stirling_engine'
Ejemplo n.º 4
0
T = 24.8 + cs.zero_Celsius
d_T = 0.3

m = np.array([0.0, 4.0, 9.0, 14.0, 19.0])
p_mano = np.array([[735.0, 680.0, 605.0, 535.0, 460.0],
                   [730.0, 670.0, 595.0, 525.0, 450.0],
                   [730.0, 670.0, 600.0, 525.0, 455.0]]) * cs.torr

## Data procession
p = p_mano[:, 0:1] - p_mano[:, 0:]
d_p = sqrt((5 * cs.torr)**2 + p / (5 * cs.torr) * (0.006 * 5 * cs.torr)**2)

if output:
    print(
        dpr.tbl([
            dpr.lst(m, name='m'), *[
                dpr.lst(p_, d_p_, name='p', unit='Pa')
                for p_, d_p_ in zip(p, d_p)
            ]
        ]))

popts = np.zeros((len(p), 2))
d_popts = np.zeros((len(p), 2))
for i in range(len(p)):
    popt = dpl.linreg(m, p[i], d_p[i])
    popts[i] = popt[0], popt[2]
    d_popts[i] = popt[1], popt[3]

if output:
    fig, axes = plt.subplots(num=1, nrows=2, ncols=2)
    plt.subplots_adjust(hspace=0.25, wspace=0.25)
Ejemplo n.º 5
0
d_rho_K = 0.5 * np.abs(np.diff(rho_K, axis=1)[:,0])
rho_K = 0.5 * np.sum(rho_K, axis=1)

## Evaluation
r2 = r**2
d_r2 = 2 * r * d_r
v = s / t
d_v = v * d_t / t

lda = 1 + 2.1 * r / R
d_lda = 2.0 * d_r / R
v_c = v * lda
d_v_c = sqrt(d_v**2 + d_lda**2)
if output:
  print(dpr.tbl([
    dpr.lst(r, d_r, name='r', unit='m'),
    dpr.lst(lda, d_lda, name='λ'),
    dpr.lst(v, d_v, name='v', unit='m / s'),
    dpr.lst(v_c, d_v_c, name='v_corr', unit='m / s'),
    dpr.dev(v, d_v, v_c, d_v_c, name='v, v_c')
  ]))
  print()

v_rho_ratio = v / (rho_K - rho_peg)
d_v_rho_ratio = v_rho_ratio * sqrt((d_v / v)**2 + (d_rho_K**2 + d_rho_peg**2) / (rho_K - rho_peg)**2)

if output:
  plt.subplots(num=1)
  plt.xlabel(r'$r^2$ / mm$^2$')
  plt.ylabel(r'$\frac{v}{\varrho_K - \varrho_\textnormal{PEG}} / \frac{\textnormal{cm}^4}{\textnormal{g} \, \textnormal{s}}$')
  plt.errorbar(*dp.to_units(r2, v_rho_ratio, d_v_rho_ratio, d_r2, x_unit=cs.milli**2, y_unit=(cs.centi**4 / cs.gram)), fmt='o')
Ejemplo n.º 6
0
pL = 0.5 * (pL2 + pL1)
d_pL = 0.5 * (pL2 - pL1)

print(dpr.val(pL, d_pL, name='pL', unit='Pa'))
print()

kappa_rL = 4 * m * V / (r**4 * tL**2 * pL)
d_kappa_rL = kappa_rL * sqrt((d_m / m)**2 + (d_V / V)**2 + (4 * d_r / r)**2 +
                             (2 * d_tL / tL)**2 + (d_pL / pL)**2)
kappa_rAr = 4 * m * V / (r**4 * tAr**2 * pL)
d_kappa_rAr = kappa_rAr * sqrt((d_m / m)**2 + (d_V / V)**2 + (4 * d_r / r)**2 +
                               (2 * d_tAr / tAr)**2 + (d_pL / pL)**2)

print(
    dpr.tbl([
        dpr.lst(kappa_cd, d_kappa_cd, name='ĸ_cd'),
        dpr.dev(kappa_cd, d_kappa_cd, kappa_rL, d_kappa_rL, name='κ_cd, κ_r')
    ]))

kappa_cd = np.mean(kappa_cd)
d_kappa_cd = sqrt(np.sum(d_kappa_cd**2)) / len(d_kappa_cd)

print(dpr.val(kappa_cd, d_kappa_cd, name='ĸ_cd'))
print(dpr.val(kappa_rL, d_kappa_rL, name='ĸ_rL'))
print()
print(dpr.dev(kappa_cd, d_kappa_cd, kappa_L, name='ĸ_cd, ĸ_L'))
print(dpr.dev(kappa_rL, d_kappa_rL, kappa_L, name='ĸ_rL, ĸ_L'))
print(dpr.dev(kappa_cd, d_kappa_cd, kappa_rL, d_kappa_rL, name='ĸ_cd, ĸ_rL'))
print()
print(dpr.val(kappa_rAr, d_kappa_rL, name='ĸ_rAr'))
print()