Blame view
PDH_doppler_michelson/PDH_doppler_michelson_with_pzt.py
4.59 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 122 |
#!/usr/bin/python # -*- coding: utf-8 -*- '''Pound-Drever-Hall setup Michelson with piezo actuator in cavity arm and AOM in reference arm ----- (2*W_aom)-->(X)---|LPF|---> | ----- eps_dop O | ----- --- --- ------------|EOM|---|\|---|/|-----------( ) w_laser ----- --- --- cavity ^ | | | ----- U | |AOM| | | ----- | | _|_ | | //// | | 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, w_aom, t, c = symbols('E0, J0, J1, omega_laser, Omega_pdh, Omega_aom, t, c', imaginary=False, real=True) '''#laser and phase-mod laser E_laser = E0*exp(I*(w_laser*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)) \ )''' #aom double shifted phase-mod wave in reference arm E_aom = \ E0*( \ J0*exp(I*((w_laser +2*w_aom)*t)) \ + J1*exp(I*((w_laser+w_pdh+2*w_aom)*t)) \ - J1*exp(I*((w_laser-w_pdh+2*w_aom)*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 v_x, d_x, v_u, d_u = symbols('v_x, delta_x, v_u, delta_u', imaginary=False, real=True) dx = v_x*t + d_x du = v_u*t + d_u E_ref = \ E0*( \ F( w_laser *t - (dx+du)*(w_laser)/c ) \ *J0*exp( I*( w_laser *t - 2*(dx+du)*(w_laser)/c ) ) \ + -1*J1*exp( I*( (w_laser+w_pdh)*t - 2*(dx+du)*(w_laser)/c ) ) \ - -1*J1*exp( I*( (w_laser-w_pdh)*t - 2*(dx+du)*(w_laser)/c ) ) \ ) #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_aom + 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 = expand(TR8(TR7(expand(eps_dop)))) toc = time() print('Elapsed time : %fs'%(toc-tic)) '''results eps_pdh = 2 ⎛ ω_laser ⎞ 4⋅E₀ ⋅J₀⋅J₁⋅k_φ_pdh⋅⎜ω_laser - ω_cav - ───────⋅(vₓ+vᵤ)⎟ ⎝ c ⎠ + ─────────────────────────────────────────────────────── π⋅δ_ν eps_dop = 2 2 ⎛ ω_laser ⎞ ⎛2⋅[(δₓ+t⋅vₓ)+(δᵤ+t⋅vᵤ)]⋅ω_laser⎞ E₀ ⋅J₀ ⋅k_φ_doppler⋅⎜ω_laser - ω_cav - ───────⋅(vₓ+vᵤ)⎟⋅cos⎜───────────────────────────────⎟ ⎝ c ⎠ ⎝ c ⎠ - ──────────────────────────────────────────────────────────────────────────────────────────── π⋅δ_ν 2 2 ⎛2⋅[(δₓ+t⋅vₓ)+(δᵤ+t⋅vᵤ)]⋅ω_laser⎞ + 2⋅E₀ ⋅J₁ ⋅k_φ_doppler⋅sin⎜───────────────────────────────⎟ ⎝ c ⎠ ''' |