Attachment 'optC1.m'
Download 1 %------------------- o p t C 1 . m ---------------------
2 % Creates an Optickle model instance of Caltech 40m interferomter
3 %
4 % by Kiwamu Izumi (2011 July)
5 %
6 %--------------------------------------------------------
7 %
8 % [Description]
9 % This function creates an interferomter based on the information
10 % specified in 'par' structure variable.
11 % The function adds necessary components such as laser, EOM, mirrors in
12 % to the model and then links all those components while spcifying the
13 % distance between the components
14 %
15 % Example usage:
16 % par = paramC1;
17 % opt = optC1(par);
18 % where 'par' is a parameter struct returned from paramC1
19 %
20 %--------------------------------------------------------
21 %
22 % [Notes]
23 % In the current setting PR3, SR2 and SR3 are omitted for simplicity.
24 % However PR2 is included as a high reflective beam splitter so that
25 % the POP2 (light coming from BS to PRM) signal can be obtained.
26 %
27 %--------------------------------------------------------
28 %
29
30 function opt = optC1(par)
31
32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33 % Add a Field Source
34
35 % create an empty model, with frequencies specified
36 opt = Optickle(par.Laser.vFrf);
37
38 % add a source, with RF amplitudes specified
39 opt = addSource(opt, 'Laser', par.Laser.vArf);
40
41 % add modulators for Laser amplitude and phase noise
42 opt = addModulator(opt, 'AM', 1);
43 opt = addModulator(opt, 'PM', i);
44
45 % link, output of Laser is PM->out
46 opt = addLink(opt, 'Laser', 'out', 'AM', 'in', 0);
47 opt = addLink(opt, 'AM', 'out', 'PM', 'in', 0);
48
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 % Add Input Optics
51 % The argument list for addMirror is:
52 % [opt, sn] = addMirror(opt, name, aio, Chr, Thr, Lhr, Rar, Lmd)
53 % type "help addMirror" for more information
54
55
56 % Modulators
57 opt = addRFmodulator(opt, 'Mod1', par.Mod.f1, i * par.Mod.g1);
58 opt = addRFmodulator(opt, 'Mod2', par.Mod.f2, i * par.Mod.g2);
59
60 % link, No MZ
61 opt = addLink(opt, 'PM', 'out', 'Mod1', 'in', 5);
62 opt = addLink(opt, 'Mod1', 'out', 'Mod2', 'in',0);
63
64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65 % Add Core Optics
66 %
67 % The parameter struct must contain parameters the following
68 % for each mirror: T, L, Rar, mechTF, pos, ROC
69
70 listMirror = {'PR','SR', 'BS', 'IX', 'IY', 'EX', 'EY', 'PR2'};
71
72 for n = 1:length(listMirror)
73 name = listMirror{n};
74 p = par.(name);
75
76 % add mirror
77 if strmatch(name, 'BS')
78 opt = addBeamSplitter(opt, name, 45, 1 / p.ROC, p.T, p.L, p.Rar, 0);
79 elseif strmatch('PR2', name)
80 opt = addBeamSplitter(opt, name, 10, 1 / p.ROC, p.T, p.L, p.Rar, 0);
81 else
82 opt = addMirror(opt, name, 0, 1 / p.ROC, p.T, p.L, p.Rar, 0);
83 end
84
85 % set mechanical transfer-functions and mirror position offsets
86 opt = setPosOffset(opt, name, p.pos);
87 end
88
89 dampRes = [-0.1 + 1i, -0.1 - 1i];
90 opt = setMechTF(opt, 'IX', zpk([], par.w * dampRes, 1 / par.mass));
91 opt = setMechTF(opt, 'EX', zpk([], par.w * dampRes, 1 / par.mass));
92 opt = setMechTF(opt, 'IY', zpk([], par.w * dampRes, 1 / par.mass));
93 opt = setMechTF(opt, 'EY', zpk([], par.w * dampRes, 1 / par.mass));
94 opt = setMechTF(opt, 'PR', zpk([], par.w * dampRes, 1 / par.mass));
95 opt = setMechTF(opt, 'SR', zpk([], par.w * dampRes, 1 / par.mass));
96 opt = setMechTF(opt, 'BS', zpk([], par.w * dampRes, 1 / par.mass));
97
98
99 % link Modulators output to PR back input (no input Mode Cleaner)
100 opt = addLink(opt, 'Mod2', 'out', 'PR', 'bk', 0.2);%35);
101
102 % link PR front output -> PR2 A-side fron input
103 opt = addLink(opt, 'PR', 'fr', 'PR2', 'frA', par.Length.PR_PR2);
104
105 % link BS A-side inputs to PR2 A-side and SR front outputs
106 opt = addLink(opt, 'PR2', 'frA', 'BS', 'frA', par.Length.PR2_BS);
107 opt = addLink(opt, 'SR', 'fr', 'BS', 'bkA', par.Length.SR);
108
109 % link BS A-side outputs to and IX and IY back inputs
110 opt = addLink(opt, 'BS', 'frA', 'IY', 'bk', par.Length.IY);
111 opt = addLink(opt, 'BS', 'bkA', 'IX', 'bk', par.Length.IX);
112
113 % link BS B-side inputs to and IX and IY back outputs
114 opt = addLink(opt, 'IY', 'bk', 'BS', 'frB', par.Length.IY);
115 opt = addLink(opt, 'IX', 'bk', 'BS', 'bkB', par.Length.IX);
116
117 % link BS B-side outputs to PR2 B-side and SR front inputs
118 opt = addLink(opt, 'BS', 'frB', 'PR2', 'frB', par.Length.PR2_BS);
119 opt = addLink(opt, 'BS', 'bkB', 'SR', 'fr', par.Length.SR);
120
121 % link PR2 B-side front output to PR fron input
122 opt = addLink(opt, 'PR2', 'frB', 'PR', 'fr', par.Length.PR_PR2);
123
124 % link the X arm
125 opt = addLink(opt, 'IX', 'fr', 'EX', 'fr', par.Length.EX);
126 opt = addLink(opt, 'EX', 'fr', 'IX', 'fr', par.Length.EX);
127
128 % link the Y arm
129 opt = addLink(opt, 'IY', 'fr', 'EY', 'fr', par.Length.EY);
130 opt = addLink(opt, 'EY', 'fr', 'IY', 'fr', par.Length.EY);
131
132
133 % tell Optickle to use this cavity basis
134 opt = setCavityBasis(opt, 'IX', 'EX');
135 opt = setCavityBasis(opt, 'IY', 'EY');
136
137 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.
