forked from nicolassmith/OpticklePDE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdoubleOpticalSpring.m
79 lines (57 loc) · 1.94 KB
/
doubleOpticalSpring.m
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
% Optickle Simulation of Double Optical Spring
% set laser powers
Pc = 4;
Ps = 0;
% set detunings
deltac = 2.63;
%deltas = -.3;
% this creates opt and par (setupPDE)
par = paramPDE([],Pc);
par = paramPDE_LSC(par);
% hack in a different vFrf and vArf
c = 299792458;
fGamma = c*par.IX.T/(8*pi*par.Length.Xarm);
%fSubcarrier = (deltas-deltac)*fGamma;
fSubcarrier = par.ITM.w_internal/(2*pi);
par.PSL.vFrf = [par.PSL.vFrf;fSubcarrier;-fSubcarrier];
par.PSL.vArf = [par.PSL.vArf;sqrt(Ps);0];
% choose mod depth
modGamma = 3.9e-4;
% make opt
opt = optPDE(par,RFmodulator('armMod',fSubcarrier,1i*modGamma));
opt = probesPDE(opt,par);
% add probe for SB signal in trans
opt = addProbeIn(opt,'X_TRANS_SB_I','X_TRANS','in',fSubcarrier,0);
opt = addProbeIn(opt,'X_TRANS_SB_Q','X_TRANS','in',fSubcarrier,90);
% set detuning
pos = zeros(1,opt.Ndrive);
fdelta = deltac*fGamma; %detuning
pos(getDriveNum(opt,'EX')) = -fdelta/c*(opt.lambda*par.Length.Xarm); %detuning of EX in meters
% tickle
f = logspace(3,log10(4000),500).';
[fDC, sigDC, sigAC, mMech] = tickle(opt, pos, f);
respOptic = 'EX';
nOpt = getDriveNum(opt,respOptic);
Opt = getOptic(opt,respOptic);
springTF = getTF(mMech,nOpt,nOpt).*squeeze(freqresp(Opt.mechTF,2*pi*f));
subplot(2,1,1)
loglog(f,abs(springTF))
xlim([min(f) max(f)])
grid on
title('ETM radiation pressure modified mechanical response')
ylabel('Magnitude (m/N)')
subplot(2,1,2)
semilogx(f,180/pi*unwrap(angle(springTF)))
xlim([min(f) max(f)])
ylim([-200 200])
grid on
ylabel('Phase (deg)')
xlabel('Frequency (Hz)')
% evaluate modulation deph in terms of meters
disp(['Modulation = ' num2str(modGamma*opt.lambda/(4*pi)) 'm'])
% evaluate the size of the signal at the mod frequency in transmission
nTransDC = getProbeNum(opt,'X_TRANS_DC');
nTransSBI = getProbeNum(opt,'X_TRANS_SB_I');
nTransSBQ = getProbeNum(opt,'X_TRANS_SB_Q');
transMod = sqrt(sigDC(nTransSBI)^2+sigDC(nTransSBQ)^2)/sigDC(nTransDC);
disp(['Transmission signal (RIN) = ' num2str(transMod)])