Blame view
PDH_doppler_michelson/PDH_doppler_michelson_without_pzt.py
5.02 KB
2ae5099ce first commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
#!/usr/bin/python # -*- coding: utf-8 -*- '''Pound-Drever-Hall setup Michelson with piezo actuator and AOM in cavity arm ----- (2*W_aom)-->(X)---|LPF|---> | ----- eps_dop O | ----- --- --- ----- ------------|EOM|---|\|---|/|---|AOM|---( ) w_laser ----- --- --- ----- cavity ^ | | | | U | | | | | | | _|_ | | //// | | v |---------->(X) (W_pdh) | ----- |LPF| ----- | v eps_pdh ''' from time import time tic = time() from sympy import * from sympy.simplify.fu import * init_printing() #constants E0, J0, J1, w_laser, w_pdh, t = symbols('E0, J0, J1, omega_laser, Omega_pdh, t', imaginary=False, real=True) v_x, d_x, c = symbols('v_x, delta_x, c', imaginary=False, real=True) w_aom, dw, dphi = symbols('Omega_aom, delta_Omega, delta_phi', imaginary=False, real=True) phi_u = dw*t #+ dphi phi = w_aom*t + phi_u '''# #laser E_laser = E0*exp(I*(w_laser*t)) ''' #phase-mod laser E_eom = \ E0*( \ J0*exp(I*((w_laser )*t)) \ + J1*exp(I*((w_laser+w_pdh)*t)) \ - J1*exp(I*((w_laser-w_pdh)*t)) \ ) #approximation of F(w) near a resonance dnu, w_cav = symbols('delta_nu, omega_cav', imaginary=False, real=True) def F(phi): dw = phi.diff(t) - w_cav return -(I/pi)*(dw/dnu) #reflected phase-mod laser and dephased by doppler effect with double aom shift dx = v_x*t + d_x E_ref = \ E0*( \ F( (w_laser )*t - dx*(w_laser+phi.diff(t))/c + phi ) \ * J0*exp( I*( (w_laser )*t - 2*dx*(w_laser+phi.diff(t))/c + 2*phi ) ) \ + -1*J1*exp( I*( (w_laser+w_pdh)*t - 2*dx*(w_laser+phi.diff(t))/c + 2*phi ) ) \ - -1*J1*exp( I*( (w_laser-w_pdh)*t - 2*dx*(w_laser+phi.diff(t))/c + 2*phi ) ) \ ) #intensity of reflected wave I_pdh = abs(E_ref)**2 I_pdh = expand(TR8(expand(expand_complex(I_pdh)))) #optical mixer E_mich = sqrt(2)/2 * E_eom + sqrt(2)/2 * E_ref #intensity of mixed wave I_mich = abs(E_mich)**2 I_mich = expand(TR8(expand(expand_complex(I_mich)))) #Q demodulation of I_pdh at Omega_pdh for PDH error signal obtention kphipdh = symbols('k_phi_pdh', real=True) eps_pdh = 2 * kphipdh * I_pdh * cos(w_pdh*t-pi/2) eps_pdh = expand(TR8(TR7(expand(eps_pdh)))) #Q demodulation of I_mich at 2*Omega_aom for doppler error signal obtention kphidop = symbols('k_phi_doppler', real=True) eps_dop = 2 * kphidop * I_mich * cos(2*w_aom*t-pi/2) #eps_dop = 2 * kphidop * I_mich * cos(2*phi.diff(t)*t-pi/2) eps_dop = expand(TR8(TR7(expand(eps_dop)))) toc = time() print('Elapsed time : %fs'%(toc-tic)) '''results eps_pdh = 2 ⎛ ω_laser + Ω_aom + δ_Ω ⎞ 4⋅E₀ ⋅J₀⋅J₁⋅k_φ_pdh⋅⎜ω_laser + Ω_aom - ω_cav + δ_Ω - ─────────────────────⋅vₓ⎟ ⎝ c ⎠ + ────────────────────────────────────────────────────────────────────────────── π⋅δ_ν eps_dop = 2 2 ⎛ ω_laser + Ω_aom + δ_Ω ⎞ ⎛ 2⋅(ω_laser + Ω_aom + δ_Ω)⋅(vₓ⋅t+δₓ)⎞ E₀ ⋅J₀ ⋅k_φ_dop⋅⎜ω_laser + Ω_aom - ω_cav + δ_Ω - ─────────────────────⋅vₓ⎟⋅cos⎜2⋅δ_Ω⋅t - ───────────────────────────────────⎟ ⎝ c ⎠ ⎝ c ⎠ ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── π⋅δ_ν 2 2 ⎛ 2⋅(ω_laser + Ω_aom + δ_Ω)⋅(vₓ⋅t+δₓ)⎞ + 2⋅E₀ ⋅J₁ ⋅k_φ_dop⋅sin⎜2⋅δ_Ω⋅t - ───────────────────────────────────⎟ ⎝ c ⎠ ''' |