Often our code uses pytest and Lee's version wield.pytest. If given a file with these tests and they don't run, add the attached files to the folder. They tell pytest what to do and how it handle it correctly.
to make a test make a function with a name that states with "T_". Then run the command:
or replace the period with the file name and it will run all the tests in that file. Us the code in post about the GQuEST Spectrum models to see an example.
[Ian, Lee]
NOTE: this should have been posted on June 21 2023 as this is the date that it was writen, but it was in my drafts for some reason. I have added latex since then
In the H2 system the gain for the flat FOM (F2) is 1/F1_gain, where F1_gain is the gain of the BNS FOM (F1). This works fine for the H2 norm because that is made up of the composite RMS from both FOMs so as one FOM's gain increases and the others decreases they cancel out. However, this is not the case in the H_infinity case. The H_infinity norm is the maximum value for the frequency response from the Zinf input to the Flat FOM output this value must be less than or equal to the gamma that we are using. Currently we are searching for a gamma around 1. The equation for the frequency response along the Zinf input to the Flat FOM output is:
\[ \left | \frac{K(\omega)P(\omega)}{1-K(\omega)P(\omega)} F_{\text{flat}}(\omega)\right |\leq \gamma \]
where \( K(\omega)\) is the controller response, \(P(\omega)\) is the plant response and \(F_{\text{flat}}(\omega)\) is the Flat FOM's response. If the environmental noise is large like at low frequencies then \( K(\omega)P(\omega) \) must be large to control it. Thus at low frequencies the above equation becomes,
\[ \lim_{KP \to \infty }\left | \frac{K(\omega)P(\omega)}{1-K(\omega)P(\omega)} F_{\text{flat}}(\omega)\right | \approx\left |F_{\text{flat}}\right | \leq \gamma \]
Thus if we use the F2_gain=1/F1_gain then as F1_gain gets very small F2_gain gets very large. When F2_gain is very large, the gamma we are searching for (around 1) is much less than the actual H_infinty norm which is on the order of the F2_gain and the solver fails. This is what was causing the problems with the RMS plot.
We switched the F2 gain to be all ones and acquired attached plot.
Note: when this PDF is printed the second color bar has the same colors as the first color bar.
Improvements for code and plots for paper:
Infinite tweaks made.
Seeking control perfection.
Efficiency thrives.
Here is python code as a wield.pytest that generates the Geontropic noise model from arXiv:2209.07543 [gr-qc, physics:hep-ph, physics:hep-th].
You'll need to install wield.utilities and wield.pytest to run. You can just drop T_GQuEST_concept.py and GQuEST_models.py in a folder and call pytest. The output is
Total power displacement 2.3306928419630585e-18
Effective_BW: 57.28 MHz by c/L 0.954696717877494
Effective_BWsq: 14.68 MHz by c/L 0.24468351704291535
Frequency of Max: 11.29MHz
3db_bandwidth: 12.70MHz
Total power displacement2 2.3306928419630585e-18
3db points: [[ 5.49516136]
[18.19782777]]
Effective_BW: 57.28 MHz by c/L 0.954696717877494
Effective_BWsq: 14.68 MHz by c/L 0.2446835170429154
GQuEST_model.pdf Shows the model with and without the IR cutoff. It also includes the integrated RMS. Note that the power spectrum falls off only as 1/F, so has a logarithmic divergence. We presume this logarithmic divergence gets cut of a c/w, for c the speed of light and w the beam radius. That's at about 100GHz for GQuEST's beam. That divergence is physically important, but not practically measurable.
GQuEST_model.pdf shows the same plot, but with overlayed axes to allow easy comparisons with the units of the Geontropic noise model paper. The code shows how to set up the plots for such fancy axes.
there are also plots showing the model in the Holometer.
Both of the plots also show that there is a reasonably close analytic formula for the noise. In python it is
Omega = 2*np.pi * F
Omega_SPEC = c_m_s/(2**0.5*L)
Canalytic = 2 * Cmax * Omega**2 * Omega_SPEC / (4 * Omega_SPEC**4 + Omega**4 - Omega**2 * Omega_SPEC**2)**0.5 / (Omega**2 + Omega_SPEC**2)**0.5
Which can be updated to be
\(\Omega = 2 \pi f\)
\(\newcommand{\obar}{\overline{\Omega}}\)\(\obar = \frac{c}{L}\)
\(S_L(f) \approx \frac{2 \Omega^2 \obar}{\sqrt{\Omega^4 - \frac{1}{2}\Omega^2 \obar^2 + \obar^4} \sqrt{2\Omega^2 + \obar^2}} S_L(f_{\text{pk}})\)
and Cmax is the maximum of the power spectrum. The above are in power, not amplitude, units.
I'll edit or add a comment with the Latex form once I have it.
Also use matplotlib version 3.5.2. code does not graph on some of the most recent versions
The problem with matplotlib is in the wield utilities package. In wield.utilities mplfigb line 420 and 421
The parameter "b" is deprecated in ax.grid (See Deprecations). It needs to be changed to "visible"
I requested the operating manual for our old-style Boostik HP amplifier. When we update the SOP's to include the amplifier, this should probably go with them.
Rough draft for our swing space's SOP. We moved the fire extinguisher in the hall into the room. Just need the actual laser hazard sign out front now I believe and we can go laser hazard (no amplifier) in the swing space. Although we probably want to do some sort of cleaning before we expose optics to the dirty room.
In the Buzz code we move the plant to shape the seismic noise without shifting the controls noise is:
\[ S_c = \left |\frac{EP}{1-KP}\right |^2 S_\mathrm{env} + \left |\frac{MKP}{1-KP}\right |^2 S_\mathrm{meas} \]
where \(K\) is the controller, \(P\) is the plant, \(E\) is the environmental noise shaping filter, \(M\) is the measurement noise shaping filter, \(S_c\) is the controls noise PSD, and \(S_\mathrm{meas} \) and \(S_\mathrm{env} \) are the unshaped PSDs of the respective noise. If we move the plant to the env noise shaping filter such that \(E'=PE\), \(P=1\), and \(K'\) is a new controller calculated for this system then the controlls noise becomes
\[ S_c' = \left |\frac{EP}{1-K'}\right |^2 S_\mathrm{env} + \left |\frac{MK'}{1-K'}\right |^2 S_\mathrm{meas} \]
In order for these two ststments to be equlivilant
\[ K'=KP \]
I think this means there needs to be some sort of elimination of the \(P\) from the \(K'\) since what we are looking for is \(K\) and not \(K'\).
Assuming that \(P' \neq1 \) . i.e. the plant has some shape left in it, then to find the controller to use in the system use:
\[ K=\frac{K'P'}{P} ,\]
where \(K\) is the controller to use in the system, \(P \) is the origional unmodified plant, \(P' \) is the modified plant, and \(K' \) is the controller found by buzz.
I moved the beam profiler to in reflection of the cavity to see if there was a discernable difference between the REFL beam when the cavity is locked and unlocked. There was not (see attached, should also more into this new beam profiler software and better ways to record data). I have not recovered alignment of the TRANS beam on the beam profiler. Aaron lent me a camera to use in transmission but we suspect the power incident on them is most likely too low for the poor QE camera. It seems like the TRANS beam should be much easier to find than this as the beam profile and camera diode are quite large. The cavity still appears to be locking on the mode we want.
To combat this I increased the power from the laser to 2.2mW coming from the source (allthough this puts you close to the maximum range on the TEC controller). This corresponds to ~1.3mW incident on the cavity. The 1811 PD saturates at far lower than this so I have a .5 ND filter in front of the PD.
Aaron thinks (from the elog I believe) that they were able to get up to 7mW out of the laser in the past. May be worth looking into this, but currently the range on the TEC controller doesn't allow this.
[Lee, Sander, Torrey]
We are able to lock on the cavity mode from my previous post. This is a dump of the moku/loop gain settings for future reference.
[Ian, Torrey]
We found the beam in transmission of the cavity when it flashes. Alignment of the beam into the cavity has so far been unsuccessful. This screenshot is an example of the beam we see. So far the alignment process has been:
1) Scan the cavity at large amplitude with the current to locate the REFL dip.
2) Lower the scan amplitude and adjust the temperature according such that the REFL dip stays in the scan.
3) Repeat until a scan is no longer needed and manual park the cavity on resonance using the temperature.
4) Attempt to adjust the input mirrors while parked on resonance.
There a few problems with this. First, the smallest step size we can take on the temperature is too large. Makes it difficult to park on resonance. Second the stability of the laser's frequency isn't the best for this process. When attempted to manually park on resonance it will often drift out of range in a few seconds. The next logical step would be to lock the cavity on this mode, but we have been unsuccessful in doing so. Either the loop shape isn't quite right or the mode resonant in the cavity is just too garbage to lock on.
Few more examples of things we saw: Aliasing effects, some garbage but was fixed due to aliasing effects of our scan frequency and the scanning slit frequency. Unsure what this is, we've seen it a couple of times but I'm not sure it is significant. Would be good to find out what kind of lenses are in the cavity chamber.
Rougher:
IDP-3 (3.6 m^3/h, 0.25 Torr, $3610, 5.5 x 7 x 14 in) ($3,286 on Pro Vac)
IDP-7 (9.1 m^3/h, 0.02 Torr, $6,074 10 x 10 x 17 in)
IDP-10 (10.2 m^3/h, 0.02 Torr, $6,883, 10 x 12 x 17 in)
IDP-15 (15.4 m^3/h, 0.01 Torr, $8,705 , 13 x 14 x 19 in)
TriScroll 400 (15 m^3/h, 0.013 Torr, $8064, 11 in x ? x 14 in)
Turbo:
TwisTorr 74 (70 L/s, 4*10^-10 Torr, $5832, 2 kg)
TwisTorr 84 (80 L/s, 4*10^-10 Torr, $6252, 2 kg)
TwisTorr 305 (300 L/s, 8*10^-11 Torr, $11301, 5.8 kg)
TwisTorr 404 (400 L/s, 8*10^-11 Torr, $12727, 22.6 kg)
Integrated (seems like a bad deal unless they include a lot more than the individual pumps):
TPS-mini: TwisTorr 74 + 0.6 m^3/h diaphragm)
TPS-conpact with TwisTor 74 (3 m^3/h, $13944)
TPS-conpact with TwisTor 305 (3 m^3/h, $17,636)
TPS-flexy IDP-3 + TwisTorr 74: ($11937)
TPS-flexy IDP-3 + TwisTorr 305: ($17486)
TPS-flexy IDP-7 + TwisTorr 74: ($14423)
TPS-flexy IDP-7 + TwisTorr 84: ($15441)
TPS-flexy IDP-7 + TwisTorr 305: ($19594)
TPS-flexy IDP-10 + TwisTorr 305: ($19490)
Rougher:
HiScroll 6: (6.1 m^3/h, 0.01 Torr, ?, 19 kg) ($5,888 from high vac depot)
HiScroll 12: (12.1 m^3/h, 0.004 Torr, ? 24 kg) ($7,709 from high vac depot)
HiScroll 18: (18.1 m^3/h, 0.004 Torr, ? 23 kg) ($9,144 from high vac depot)
MVP 030-3 (1.8 m^3/h, 1.5 Torr, ? 4.3 kg) (diaphragm)
MVP 070-3 (4.3 m^3/h, 0.75 Torr, ? 16.4 kg) (diaphragm) (Website doesn’t list under compatible with Turbos)
Turbo:
HiPace 10 (final pressure 4*10^-5 Torr)
HiPace 30 (32 L/s N2, 4*10^-10 Torr, ?, 3.2 kg)
HiPace 60 P (64 L/s N2, 7.5*10^-7 Torr, ?, 2.2 kg) *note bad pressure*
HiPace 80 (67 L/s N2, 4*10^-10 Torr, ?, 3.8 kg) ($6,555 from high vac depot)
HiPace 80 Neo (67 L/s N2, 8*10^-8 Torr, ?, 1.7 kg)
HiPace 300 (260 L/s N2, 4*10^-10 Torr, ?, 19.2 kg) ($13,110 from high vac depot)
ATH 500 (350 L/s N2, 8*10^-9 Torr, ?, 37.5 kg)
Integrated:
HiCube Eco backing pumps MVP 30 or smaller
HiCube 80 Classic
HiCube 80 Pro
Rougher:
mXDS (3 m^3/h, 0.075 Torr, $4945, 8 kg)
nXDS (6-20 m^3/h, 0.005-0.022 Torr, $7,800-$14,000, 25kg) ($6000-$10,300 from high vac depot)
4 sizes
XDS (40 m^3/h, 0.02-0.06, $16,500-$18000, 48) ($11,692 from high vac depot)
Turbo:
nEXT55 (55 L/s N2, 1*10^-7 Torr, $8,174, ?)
nEXT85 (47-85 L/s N2, 4*10^-10 - 4*10^-9 Torr, $8,582, 2.9-4.4 kg) ($6,763 from high vac depot)
nEXT 240 (240 L/s, 4.5*10^-8 Torr, $13,195, 5.7 kg) ($11,000 from high vac depot)
nEXT 300 (300 L/s, 4.5*10^-8 Torr, $13,858, 5.7 kg)
nEXT730 (680 L/s N2, 1-6*10^-10 Torr, $20,742, 19.6 kg)
Integrated (don’t come with scroll)
T-Station 85
T-Station 300
Rougher:
Screw Pump:
Ecodry 25 plus (25 m^3/h, 0.01 Torr, ?, ?) (I reached out for pricing)
Scroll Pumps:
ScrollVac 3 plus (3.5 m^3/h, 0.08 Torr, $4744, ?)
ScrollVac 3S plus (3.5 m^3/h, 0.08 Torr, $5219, ?)
ScrollVac 7 plus (36.1 m^3/h, 0.02 Torr, $7586, 26 kg)
Also have larger pumps
Rougher
Scroll Meister
ISP-50 (3.6 m^3/h, 0.11 Torr, ?, 12 kg) ($4,835 from high vac depot)
ISP-90 (6.5 m^3/h, 0.037Torr, ?, 13 kg)
TMP-B70 (70 L/s N2, 10^-8 Torr, ?, 5.2 kg)
I reached out for pricing
I also checkedtequipment.net but nothing was cheaper than high vac depot
Attached are
1. The laser lock box settings via screenshot in multi-instrument mode using the PLL as the modulation setting.
2. Diagram of multi-instrument mode for reference.
3. Ariel photo of the set up.
4. Inkscape drawing of the set up.
Also should note when scanning the cavity using the current it should be safe to use the full range (2V). The TEC controller should be set to ~10.5kOhms, but double check the range on the integrator is roughly centered.
https://imgur.com/a/udiuJuG
The log isn't letting me upload the photo of the lab. Uploaded to imgur instead.
I was able to upload the file here
I had an impromptu meeting/tour with Maty Lesovsky. The following are the notes I took
Good needle valves for bringing things up to pressure
All metal angle valves
Avoid rubber oring
10^-10 l mbar/s cm^2 is LIGO’s desorption
Have metal bake out site
All metal bake out valves
KJL has rubber o ring which sucks in contaminants
Varian is a good brand
VAT makes large ones
Use research grade N2 if you want to backfil
Can hook up to needle valve
Clean air cheaper
They have an SRS RGA 200
Realistically only gets to 100 amu
Hanford uses 1000, but this SRS should be plenty
Have custom controllers for bake out
8 W/ft
Takes 110-220 V
PID controller from computer, can tell ramp time and other parameters
They have prints of the circuits
They have thermistors on the outside
Get surface temperature, not in air
Tac weld for surface temperature
Omega or McMaster
They also have insulation we can use
200°C is standard for small stainless
This is 150°C because it’s so large
They think they’ll keep the turbo on during the bake out
Biggest concern is machining oils
Fiberglass tape (from McMaster)
Goes up to 300°C
Great for holding thermocouples
Has gone through hundreds of bake outs over years, been fine
Avoid fiberglass insulation
Iwata Scroll Meister pumps, equivalent to the IDP-7
Tri scroll
Have mufflers to trap chemicals out of them
Smart to have a safety shutoff in case you lose power
Cut power to turbo
Choke turbo if it comes back on with pressure
Do a rate of rise test on partial volumes and the whole system
Good to test if something is degrading
Have a battery backup for a couple hours to run the turbo so the turbo breaks don’t wear out
For controllers, have Terranova Model 934 wide range which are good
MKS PDR 2000 also nice and easy
Invest in a case to display everything
They have a lab view program to monitor the pressure and the RGA
Using https://vacuum-calculator.pfeiffer-vacuum.com and the previous post's volume and surface area data, I have some inital impressions of our pump requirements for the 8 m long interferometer.
Other assumptions:
Desoprtion: 1e-9 mbar*l/(s*cm²)
Leak rate: 3e-9 mbar*l/s
1. Our final pressure limitation will be a function of desorption, not leak rate, because our surface area is so huge
2. The time to reach 6 Torr, where Pfeiffer starts the turbos, is given approximately by 1 hr * (4.3 m^3/h rougher pumping speed / pump roughing speed)
3.
A. 3 HiPace 80 DN 63 get to a pressure of 10^-7 Torr in 12 hours, 10^-8 Torr in a week
B. 1 HiPace 80 DN 63 gets to a pressure of 10^-7 Torr in 36 hours, 5*10^-8 Torr in a week
4. A 1 m, 6.45 mm tube between the roughers and the turbos doesn't greatly affect the pump down time or the final pressure