Blame view
PDH_doppler_mach-zender/PDH_doppler_mach-zender_eom_arm.py
3.45 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 |
#!/usr/bin/python # -*- coding: utf-8 -*- '''Pound-Drever-Hall setup Mach-Zender with one photodiode --- ----- --- ----------|\|---|EOM|---------|/|-----------( ) w_laser --- ----- --- cavity | | | | | ----- --- \----|AOM|---------|\| ----- --- ^ | | U | | | V |---------->(X) | | ----- (W_aom) |---|LPF|--> eps_dop V ----- (W_pdh)---------->(X) | | 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, w_aom, t = symbols('E0, J0, J1, omega_laser, Omega_pdh, Omega_aom, t', imaginary=False, real=True) v_x, d_x = symbols('v_x, delta_x', imaginary=False, real=True) c = symbols('c', imaginary=False, real=True) #laser and phase-mod laser E_laser = E0*exp(I*(w_laser*t)) E_aom = E0*exp(I*((w_laser+w_aom)*t)) 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 and by actuator dx = v_x*t + d_x E_ref = \ E0*( \ F( w_laser *t - w_laser*dx/c ) \ *J0*exp( I*( w_laser *t - 2*w_laser*dx/c ) ) \ + -1*J1*exp( I*( (w_laser+w_pdh)*t - 2*w_laser*dx/c ) ) \ - -1*J1*exp( I*( (w_laser-w_pdh)*t - 2*w_laser*dx/c ) ) \ ) #optical mixer E_mz = sqrt(2)/2 * E_aom + sqrt(2)/2 * E_ref #intensity of mixed wave I_mz = abs(E_mz)**2 I_mz = expand(TR8(expand(expand_complex(I_mz)))) #Q demodulation of I_mz at Omega_aom for doppler error signal obtention kphidop = symbols('k_phi_doppler', real=True) eps_dop = 2 * kphidop * I_mz * cos(w_aom*t-pi/2) eps_dop = expand(TR8(TR7(expand(eps_dop)))) #Q demodulation of I_mich at Omega_pdh for doppler error signal obtention kphipdh = symbols('k_phi_pdh', real=True) eps_pdh = 2 * kphipdh * eps_dop * cos(w_pdh*t) eps_pdh = expand(TR8(TR7(expand(eps_pdh)))) toc = time() print('Elapsed time : %fs'%(toc-tic)) '''results ### EOM sur un bras eps_pdh = 0 eps_dop = 2 ⎛ ω_laser⋅vₓ⎞ ⎛2⋅δₓ⋅ω_laser 2⋅ω_laser⋅t⋅vₓ⎞ E₀ ⋅J₀ ⋅k_φ_doppler⋅⎜ω_laser - ω_cav - ──────────⎟⋅cos⎜──────────── + ──────────────⎟ ⎝ c ⎠ ⎝ c c ⎠ - ───────────────────────────────────────────────────────────────────────────────────── π⋅δ_ν ''' |