Locked the LO phase with a MICH offset=+91. The LO is midfringe (locked using the A-B zero crossing), so it's far from being "useful" for any readout but we can at least look at residual noise spectra.
I spent some time playing with the loop gains, filters, and overall lock acquisition, and established a quick TF template at Git/40m/measurements/BHD/HPC_LO_PHASE_TF.xml
So far, it seems that actuating on the LO phase through LO2 POS requires 1.9 times more strength (with the same "A-B" dc sensing). After closing the loop by FM4, and FM5, actuating on LO2 with a filter gain of 0.4 closes the loop robustly. Then, FM3 and FM6 can be enabled and the gain stepped up to 0.5 without problem. The measured UGF (Attachment #1) here was ~ 20 Hz. It can be increased to 55 Hz but then it quickly becomes unstable. I added FM1 (boost) to the HPC_LO_PHASE bank but didn't get to try it.
The noise spectra (Attachment #2) is still uncalibrated... but has been saved under Git/40m/measurements/BHD/HPC_residual_noise_spectra.xml
Today we locked LO phase with BH55 + Audio dithering
We worked with MICH locked using AS55_Q with an offset = 50. Our BH55_Q_ERR is the same as in the previous elog (in this thread). We enabled audio dithering of AS1 to produce 280.54 Hz sidebands (exc gain = 15000). We used ELP80 (elliptic, 4th order lowpass with the second resonant notch at 280.54 Hz) at the BH55_Q_AS1_DEMOD_I output. This allowed us to generate an error signal to feedback into AS1 POS. Attachment #1 shows a screen capture of this configuration.
We close a loop with the above configuration to lock the LO phase using only filters FM5, FM8 and then optionally boost with FM2. The compromise we had to make because of our phase margin was to achieve UGF ~ 20 Hz (in contrast with ~ 70 Hz used in single bounce). Attachment #2 shows the measured OLTFs for LO_PHASE control using this scheme; the red was the final measured loop, while the blue was our initial reference before increasing the servo gain.
Today we again locked the LO phase with BH55 + Audio dithering under a zero-offset MICH
We worked with MICH locked using AS55_Q with an offset = 0. Our BH55_Q_ERR is the same as in the previous elog (in this thread).We reduced the MICH offset from 50 to 0 slowly and kept an eye on the BH55 error signals. We realized that at zero offset, most of the error signal was in BH55_I_ERR (why?) so we rotated it back to BH55_Q_ERR (146 deg --> 56 deg). We then looked at the audio demod angle, and optimized it to allocated the error signal in the I quadrature (-15 deg --> 40 deg).
We close a loop with the above configuration to lock the LO phase using only filters FM5, FM8 and then optionally boost with FM2. The measured UGF ~ 20 Hz similar to the configuration with an offset present; and it seems there is some residual noise at ~ 20 Hz (observed in the residual error signal time trace with ndscope).
We are still struggling with locking LO phase in MICH or ITM single bounce with BH55 with audio dither.
Without audio dither, BH55 can be used to lock.
- LO phase locking with ITMX single bounce, using BH55_Q
- BH55_Q configuration: 45 dB whitening gain, with whitening filter on.
- C1:LSC-BH55_PHASE_R=147.621 deg gives most signal in BH55_Q.
- LO phase can be locked using BH55_Q, C1:HPC-LO_PHASE_GAIN=-0.5 (bright fringe for A, dark for B), feeding back to LO1 gives UGF of ~80Hz (funny structure in ~20 Hz region; see Attachment #1)
- LO phase locking with ITMX single bounce, using BHDC_DIFF
- BHDC B/A = 1.57 (gain balanced with C1:HPC-IN_MTRX)
- LO phase can be locked using BHDC_DIFF, C1:HPC-LO_PHASE_GAIN=-0.4 (mid-fringe lock), feeding back to LO1 gives UGF of ~50 Hz (see Attachment #2).
- LO phase locking with MICH locked with AS55_Q, using BH55_Q
- AS55_Q configuration: 24 dB whitening gain, with whitening filter off
- C1:LSC-AS55_PHASE_R=-150 deg gives most signal in AS55_Q
- MICH can be locked using AS55_Q, C1:LSC-MICH_GAIN=-10, C1:LSC-MICH_OFFSET=30 (slightly off from AS dark fringe), feeding back to 0.5*BS gives UGF of ~100Hz (see Attachment #3)
- LO phase can be locked using BH55_Q, C1:HPC-LO_PHASE_GAIN=-0.8 (bright fringe for A, dark for B), feeding back to LO1 gives UGF of ~45Hz (see Attachment #4)
- LO phase locking with MICH locked with AS55_Q, using BHDC_DIFF
- LO phase can be locked using BHDC_DIFF, C1:HPC-LO_PHASE_GAIN=1 (mid-fringe lock), feeding back to LO1. Not a very stable lock.
What does not work:
- LO phase locking using BH55_Q demodulated at LO1 (or AS1) dither frequency, neither in ITMX sigle bounce or MICH locked with/without offset using AS55_Q
- C1:HPC-AS1_POS_OSC_FREQ=142.7 Hz, C1:HPC-AS1_POS_OSC_CLKGAIN=3000, C1:HPC-BH55_Q_AS1_DEMOD_PHASE=-15 deg, BLP30 is used.
- Attachment #5 shows error signals when LO phase is locked with BH55_Q. BHDC_DIFF and BH55_Q_AS1_DEMOD_I having some coherence is a good indication, but we cannot lock LO phase with BH55_Q_AS1_DEMOD_I yet.
- Also, injection at 13.14 Hz with an amplitude of 300 for AS1 can be seen in both BH55_Q and BH55_Q_AS1_DEMOD_I (26 Hz peak for BHDC_DIFF, as it is quadratic, as expected), which means that BH55_Q_AS1_DEMOD_I is seeing something.
- Check actuation TFs for LO1, LO2, AS1 too see if there are any funny structures at ~ 20 Hz.
- LO phase locking might require at least ~50 Hz of UGF. Use higher audio dither frequency so that we can increase the control bandwidth.
- Check analog filtering situation for BHDC_A and BHDC_B signals (they go minus when fringes are moving fast)
We started the day by taking a spectrum of C1:HPC-LO_PHASE_IN1, the BHD error point, and confirming the absence of 268 Hz peaks believed to be violin modes on LO1. We then locked the LO phase by actuating on LO2, and AS1. We couldn't get a stable loop with AS4 this morning. In all of these trials, we looked to see if the noise increased at 268 Hz or its harmonics but luckily it didn't. We then decided to add the necessary output filters to avoid exciting these violin modes. The added filters are in the C1:SUS-LO1_LSC bank, slots FM1-3 and comprise bandstop filters at first, second and third harmonics observed previously (268, 536, and 1072 Hz); bode plots for the foton transfer functions are shown in Attachment #1. We made sure we weren't adding too much phase lag near the UGF (~ 1 degree @ 30 Hz).
We repeated the LO phase noise measurement by actuating on LO1, LO2 and AS1, and observe no noise peaks related to 268 Hz this time. The calibrated spectra are in Attachment #2. Now the spectra look very similar to one another, which is nice. The rms is still better when actuating with AS1.
After the above work ended, I tried enabling FM1-3 on the C1:HPC_LO_PHASE control filters. These filters boost the gain to suppress noise at low frequencies. I carefully enabled them when actuating on LO1, and managed to suppress the noise by another factor of 20 below the UGF of ~ 30 Hz. Attachment #3 shows the screenshot of the uncalibrated noise spectra for (1) unsupressed (black, dashed), (2) suppressed with FM4-5 (blue, solid), and (3) boosted FM1-5 suppression (red).
We took lo phase noise spectra actuating on the for different optics-- LO1, LO2, AS1, and AS4. The servo was not changed during this time with a gain of 0.2, and we also took a noise spectrum without any light on the DCPDs. The plot is shown in Attachment #1, calibrated in rad/rtHz, and shown along with the rms values for the different suspension actuation points. The best one appears to be AS1 from this measurement, and all the optics seem to show the same 270 Hz (actually 268 Hz) resonant peak.
Koji suspected the observed noise peak belongs to some servo oscillation, perhaps of mechanical origin so we first monitored the amplitude in an exponentially averaging spectrum. The noise didn't really seem to change too much, so we decided to try adding a bandstop filter around 268 Hz. After the filter was added in FM6, we turned it on and monitored the peak height as it began to fall slowly. We measured the half-decay time to be 264 seconds, which implies an oscillation with Q = 4.53 * f0 * tau ~ 3.2e5. This may or may not be mechanical, further investigation might be needed, but if it is mechanical it might explain why the peak persisted in Attachment #1 even when we change the actuation point; anyways we saw the peak drop ~ 20 dB after more than half an hour... After a while, we noticed the 536 Hz peak, its second harmonic, was persisting, even the third harmonic was visible.
So this may be LO1 violin mode & friends -
We should try and repeat this measurement after the oscillation has stopped, maybe looking at the spectra before we close the LO_PHASE control loop, then closing it carefully with our violin output filter on, and move on to other optics to see if they also show this noise.
The frree swinging test was successful. I ran the input matrix diagonalization code (scripts/SUS/InMAtCalc/sus_diagonalization.py) on the LO1 free swinging data collected last night. The logfile and results are stroed in scripts/SUS/InMatCalc/LO1 directory. Attachment 1 shows the power spectral density of the DOF bassis data (POS, PIT, YAW, SIDE) before and after the diagonalization. Attachment 2 shows the fitted peaks.
The new matrix was loaded on LO1 input matrix and this resulted in no control loop oscillations at least. I'll compare the performance of the loops in future soon.
We tracked the issue of LO1 LLCOIL not actuating LO1, and found that the DB9 cable from the coil driver to the sat amp was loose.
I tightened the screws and now it is working.
Never ever connect cables without screwing the connectors tightly!
What I did:
- Measured the resistance and the inductance of each coil with BK PRECISION LCR meter, as I did for ITMY (Attachment #1, 40m/16896). The result is the following and it shows that LLCOIL is there.
Feedthru connector: LO1 1
Pin 3-15 / R = 16.0Ω / L = 3.27 mH (UL)
Pin 7-19 / R = 15.8Ω / L = 3.27 mH (UR)
Pin11-23 / R = 15.7Ω / L = 3.27 mH (LL)
Feedthru connector: LO1 2
Pin 3-15 / N/A
Pin 7-19 / R = 15.6Ω / L = 3.22 mH (SD)
Pin11-23 / R = 15.9Ω / L = 3.30 mH (LR)
- Swapped the DB25 cable which goes to the feedthru LO1 1 and feedthru LO1 2. LLCOIL could be drived from LR coil driver and LRCOIL could not be drived from LL coil driver. SD and UR worked fine with the swap. This means that there is something wrong with the LL driving.
- Went to see the rack which have coil drivers and sat amp for LO1, and immediately found that the DB9 cable was loose (Attachment #2). Tightened them and the issue was fixed.
- C1:SUS-LO1_TO_COIL matrix gains were reverted to default values (Attachment #3).
I tuned the local damping gains for LO1, LO2, AS1, and AS4 by looking at step responses in the DOF basis (i.e. POS, PIT, YAW, and SIDE). The procedure was:
Note that during this test, FM5 has been populated for all these optics with a BounceRoll (notches at 16.6, 23.7 Hz) filter, apart from the Cheby (HF rolloff) and the 0.0:30 filters.
I used the open light level output of 908 for ITMX side OSEM from 40m/16549 to roughly calibrate cts2um filter module in LO1 OSEM input filters. All values were close to 0.033. As the calibration reduces the signal value by about 30 times, I increased all damping gains by a factor of 30. None of loops went into any unstable oscillations and I witnessed damping of kicks to the optic.
I also compared in-loop power spectrum of ETMX and LO1 while damping. ETMX was chosen because it is one of the unaffected optics by the upgrade work. ITMX is held by earthquake stops to avoid unnecessary hits to it while doing chamber work.
Attachment 1 and 2 show the power spectrum of in-loop OSEM values (calibrated in um). At high frequencies, we see about 6 times less noise in LO1 OSEM channel noise floor in comparison to ETMX. Some peaks at 660 Hz and 880 Hz are also missing. At low frequencies, the performance of LO1 is mostly similar to EMTX except for a peak (might be loop instability oscillation) at 1.9 Hz and another one at 5.6 Hz. I'll not get into noise hunting or loop optimization at this stage for the suspension. For now, I believe the new electronics are damping the suspensions as good as the old electronics.
LO1 is set to go through a free swinging test at 1 am tonight. We have used this script (scripts/SUS/InMatCalc/freeSwing.py) reliably in the past so we expect no issues, it has a error catching block to restore all changes at the end of the test or if something goes wrong.
To access the test, on rossa, type:
Then you can kill the script if required by Ctrl-C, it will restore all changes while exiting.
Yehonathan and I attempted to align the LO2 beam today through the BS chamber and ITMX Chamber. We found the LO2 beam was blocked by the POKM1 Mirror. During this attempt, I tapped TT2 with the Laser Card. This caused the mirror to shake and dampen into a new postion. Afterwards, when putting the door back on ITMX, one of the older cables were pulled and the insulation was torn. This caused some major issues and we have been able to regain either of the arms to their original standings.
I checked the state of the LO2 suspension. I found that the coil driver Enable Mon was all red. Meaning, the actuation signals were not delivered to the coil driver. I wasn't sure if this was intentional or not.
Enabled the coils with "WD Master" Shutdown -> Normal.
Immediately I saw the OSEMS flipped the sign because there was an (non-intentional) alignment offset in pitch. I've adjusted the pitch offset so that all the OSEM PDs have the voltages 4~5V.
In the weekend, I ran a free swing test on all optics. During this test, LO2 magnets got stuck to the coil because LO2 PIT alignment was very high, making its lower OSEMs almost fully dark and upper OSEMs almost fully bright. Today we realized that LO2 is actually stuck and is not coming off even when we dither PIT alignment. We tried several ways but could not get this off.
Do we have any other method to get magnets off in vaccum?
It will be pretty bad if we try anything related to BHD with LO beam reflecting off a stuck mirror. Does anyone have any suggestions other than venting and fixing the issue?
[Jenne, Kiwamu, Koji]
We got the IFO back up and running! After all of our aligning, we even managed to get both arms locked simultaneously.
I'm going to do it right now.
It is a 4th order filter with cut of frequency of 120 kHz.
My ls plant compiled!! The RCG code can now be found in /opt/rtcds/rtscore/tags/advLigoRTS-2.5. I uploaded a copy of c1lsp.mdl onto the svn.
The weird "failed to connect" error was due to the fact that I named my inputs the same thing as my goto/from tags, so the RCG got confused. Once I renamed my inputs, it worked! I'm not sure what happened to the original "not enough parts" error; it didn't appear a single time during the rebuilding process. Anyway, I made the PDH block much neater, though the lines between PDH and ADC are looking wonky (this is purely an aesthetic problem, not a "oh god my simulation will DIE right now if I don't fix it" problem). I'll fix it in the morning; screenshot attached!
The original c1lsp was kind of sad. I updated it extensively and brought it into the modern era with color. The original c1lsp.mdl should also be on the svn. Tommorow, I'll get started on figuring out how to get LIGO specific noises from white noise.
Aux- rack _1Y2 is just behind 1Y3 It contains Kepco Analoge DC power supplies for +- 5, 15 and 24V
Placing these power supplies away from the LSC rack was an effort to minimize pick up from them.
Target: To lock the Michelson with the new RF/LSC
RF generation box: READY - already ready to go to the IOO rack. (Suresh)
RF distribution box: In Progress - the internal components are to be connected. (13th evening - Suresh)
Placing PD and CCD: Done - PD and CCD on the AP table (13th Afternoon - Aidan, Larisa with supervision of Kiwamu)
Cabling1: Done - PD signal AP table to the demodulator (13th Afternoon - Jamie with supervision of Suresh)
Cabling2: Done - RF generation box (IOO Rack) to the demodulator
Demodulator: In Progress - Test and install (13th night - Kiwamu with supervision of Suresh)
LSC model: Done - Run the new LSC model. (It is named as "C1LST" so far) (13th evening - Jamie)
LSC medm: Done on 14th - Modify the current LSC medm screens Update the EPICS database Adjust the matrices (- Jenne with supervision of Koji)
As happened with the RF distribution box in the IOO rack a while back, the shiny blue power button in the LSC LO distribution box failed today. I replaced it with a simple switch, but since the original was a double throw, the replacement was way too big to fit without major panel surgery. So, instead, I installed it in the grille on the roof of the chassis. It a tight press/snap fit, though; I don't think it is at risk of easily coming loose.
After reinstalling the box, I confirmed that POX POY and AS55 could all lock arms, so I deem the operation a success.
I have made some cleaning up of the LSC-related MEDM screens.
- LSC overview screen: ADC OVFL and WFAA indicators are now correctly matched to it associated PD signals.
- Whitening screens now have the correct indication of the associated PD signals.
- LSC Ctrl screen, which is invoked from the overview screen by clicking the servo filters, now has the switches of the servo filters.
- LSC tab of the sitemap was cleaned up by removing the broken links.
Based on the game plan, I have created a slew of updated pretty plots about our signals and loops.
First: With measured arm losses, when do we start to see REFL DC dip? At what arm buildup powers?
I updated my MIST model with the arm losses I've measured (Y:130ppm, X:530ppm), and some measured transmissions from the wiki, vs. the design parameters, as I used to have. Here is the DC sweep plot which is now hanging up in the control room.
In this plot, I also calculated what MIST thinks the full arm power buildup will be as compared to our single arm locking, and I get something of order 200, rather than the 600 we've tossed around in discussions. Nothing else is very different in this plot from the old version; though the REFLDC dip is a little bit wider.
Now, here are some radiation-pressure inclusive sensing transfer functions, for the anti-spring case (which in Rob's day was easier to lock for unknown reasons):
Next: Include new AO path TFs into CM model Look at possibilities for engaging AO path
There's too much tromping around, so I'm not going to actually measure PRC length right now, but I did set some channels to be acquired (POPDC, POXDC, POYDC) in addition to ASDC which was already acquired, so that I can look at the resonance fringes when I sweep the ABSL laser (hopefully later tonight....)
I have fit all of the LSC whitening filters using vectfit4.m
All the data is in my folder ..../users/jenne/LSC_WhiteningTest_29June2011/
The zpk info is saved with each plot of the fit. The pdfs are kind of huge to stitch together (or rather my computer doesn't want to do it), so I'll just post a representative one for now.
During the daytime either tomorrow or Friday I'll adjust the actual dewhitening filters to match the measured zpk values.
I made a handy-dandy table showing the zpk values for each whitening filter in the wiki: New whitening filter page
Next on the whitening filter to-do list: actually put these values into the dewhitening filters in foton.
I added the 0.1 uF and 47 nF caps that I mentioned so that we can now bypass the AA filters for these channels. (mistakenly installed 47 instead of 0.47 nF on the first round and we got 350 Hz poles instead of 35 kHz)
Gautam and I checked out the AA sit and it seems that the XYCOM-220 cable which ought to allow switching of the AA filter is not connected on the XYCOM side, so the LSC AA filters are always ON. In order to bypass them, we'll need to just short the bypass control pins or just set the +5V on the board to GND, by lifting the EMI3 filter and shorting C6.
I have so far only made the changes on s/n 115 (used for AS55, REFL55, and REFL165), other 2 boards to follow soon.
Before making the AA change, we want to measure the HF spectrum the ADC for each of our main signals in the PRFPMI state. In lieu of that, we'll measure the spectrum at the I/Q mon ports of the demod boards via SR785 and then use matlab to propagate the signals to the ADC to make our estimate of how much anti-aliasing we need.
Changes relative to D990694-B:
I also looked at the noise in a few different configurations to see what we ought to do next.
BLACK: AS55I_IN1 with 0 dB whitening gain and whitening filter OFF, so its all just ADC noise
RED: same but with +45 dB whitening gain and WF ON, so above 10 Hz this is now the noise of the PD / demod chain
BLUE: RED w/ the anti-WF applied
PURPLE: in-loop POX11_I spectrum with x-arm locked
The conversion from counts to volts 0.0006, so the black trace is ~5 uV/rHz as expected. Its clear that we would be sort of OK for most of our channels if we just had 1 stage of whitening. I think we ought to convert the input stage into a 100:20 stage and also change the other whitenings into a 100:20 instead of 150:15. Then we'll have less gain at 15 Hz, but more at 100 Hz.
The previous LSC whitening filters for the DCPDs were in an unknown state (although the transfer functions were actually measured and fit a while ago)
They had no DC gain control and some of the channels had modifications.
To make the setup clear, the filter module was replaced with the spare module without any modification.
The channels are now respoding to the whitening gain switches. So far there is no screen for the new whitening gains yet.
Also I found that POX11 DC cable has not been connected. Now it is connected.
I update the LSC calibration screen. This screen is for real time calibration of each DOF with using error signal and control signal. The formula of the calibration is
x_dis = V_err/H + A V_fb
,where x_dis is the disturbance without surpression, V_err and V_fb are error signal and control signal, H is the transfer function from the displacement to output and A is the efficiency of the actuator.
I will put the filter of 1/H into the CINV filter bank and actuator efficiency into the A filter bank.
I update the LSC calibration screen. This screen is for real time calibration of each DOF with using error signal and control signal. The formula of the calibration is
I fixed the filter of the MICH real-time calibration. You can find C1CAL screen from the LSC menu 'calibration' of sitemap.
C1CAL_MICH_CINV : the servo to convert the error signal to displacement.
the inverse of the transfer function from the distance to the error signal, which has the unit of count/m. In the formula this filter is represented by 1/H.
I assume this H is independent of frequency and time, and I calculated by the amplitude of the fringe of error signal. But it may change every day by drift of laser intensity and so on. So we should follow the actual H somehow. The temporary value of H is 3.76*10^7 count/m .
C1CAL_MICH_A : the servo to convert the feedback signal to displacement. In formula This transfer function is represented by A
the transfer function of the suspension of the BS. This is modeled from the measurement in elog#9127. The resonant frequency is 1.029 Hz and Q is 12.25.
the response of the actuator on BS_SUS, which has the unit of m/count. The value is 1.99*10^-8 m/count. This value is measured in the measurement in elog#9121.
C1CAL_MICH_W : the servo to handle the calibrated signal.
the filter to convert the unit of signal from m to um. When this filter is on, the output is written in unit of um.
I measured the power spectrum of the calibrated free running noise. The measured port was C!CAL_MICH_W_OUT. The result is in attachment 1. Also in this figure there are the plots of the Verr/H and Vfb*A.
In low frequency region, where control loop suppresses the disturbance, you can see that the displacement is equal to the displacement of actuation (I'm not sure what happens at the point of 0.03Hz), and in high frequency region, where control loop doesn't work, the displacement is equal to the value of the Verr divided by MICH sensitivity. Also this result is similar to the my calibration result.elog#9131
The real time calibration system is not correct in high frequency.
The attachment are the plot of two free running noise. Blue curve is the plot of noise calibrated with OLTF. Green one is the just fft analysed signal of the real time calibration system output. You can see the ripple in high frequency region in green curve. That is because the anti-aliasing filter and digital anti-aliasing filter. I assume the sensitivity of MI as constant but Rana mentioned that we should take these filters into account.
modeled OLTF and sensitivity H
I put the AA filter and DAA filter effects into matlab calibration script. The attachment 2 is the modeled sensitivity of the MICH. You can find each filter properties in elog#8555 (analog AA filter) and in elog#3961. I estimate the H gain by measuring the fringe. The attachment 3 is the plot of fringe and I averaged with green points. The actual number is 3.48e7 count/m.
attachment 2: the sensitivitiy of MICH
attachment 3: fringe of the MICH
I modeled OLTF with this H and the fitted into the measurement data. That is in attachment 4. In this OLTF I also included the DAI filter and AI filter, and ' sample and hold circuit' of DAC TF . These are mentioned in two references. Additionally I added the time delay 309.6 us. Yuta mentioned that in C1SUS has 125us time delay. In MICH control we have also C1LSC , so I think this time delay is reasonable. I compensated the error signal with these OLTF and MICH sensitivity.
attachment 4: OLTF of the MICH control
You can see that the ripple is gone in blue curve and after 5 kHz the curve is flat.
I'm trying to put the inverted AA filter and DAA filter in C1CAL_INCV servo. But the ploblem is the difference of sampling frequency, so I couldn't fix yet. One possibility is putting approximated filter. I hope I will find some good way to design these filters.
I esitimated the FPMI noise propagated from the residual noise of IR PDH control of both ARMS. I will summarize and write these staff in this afternoon.
I added the DAQ channel to all output of calibration servo. The name of channels are C1CAL_(plant name)_W_OUT_DQ.
I recompiled and restarted the model. Also I committed the changes to the svn of the calibration model.
I fixed the XARM and YARM real time calibration servo.
I also change the C1CAL_MICH_A servo. Now the actuator response and the suspension TF are combined together and that filter name is BS_act. C1CAL_XARM_A and C1CAL_YARM_A have same kind of filters, ETMX_act and ETMY_act.
There are AI filter in each A servo and inv_AA, inv_DAA filters in CINV servo, but it's doesn't work correctly yet.
I fixed the XARM and YARM real time calibration servo.
These aren't servos. What he means is that he's changed some filters in the real time calibration screens so as to make the actuation and sensing parts more accurate, but the inversion of the AA filters is not accurate yet.
We seemed to have a broken fiber link for use between the LSC and its IO chassis. It is unclear to mean when this damage occurred. The cable had been sitting in a box with styrofoam padding, and the kink is in the middle of the fiber, with no other obvious damage near by. The cable however may have previously been used by the people in Downs for testing and possibly then. Or when we were stringing it, we caused a kink to happen.
I talked to Alex yesterday, and he suggested unplugging the power on both the computer and the IO chassis completely, then plugging in the new fiber connector, as he had to do that once with a fiber connection at Hanford. We tried this this morning, however, still no joy. At this point I plan to toss the fiber as I don't know of any way to rehabilitate kinked fibers.
Note this means that I rebooted c1sus and then did a burt restore from the Nov/30/07:07 directory for c1suspeics, c1rmsepics, c1mcsepics. It looks like all the filters switched on.
We do, however, have the a Dolphin fiber which originally was intended to go between the LSC and its IO chassis, before Rolf was told it doesn't work well that way. However, we were going to connect the LSC machine to the rest of the network via Dolphin.
We can put the LSC machine next to its chassis in the LSC rack, and connect the chassis to the rest of the front ends by the Dolphin fiber. In that case we just need the usual copper style cable going between the chassis and the computer.
As we are meditating on things to look at for PRMI + 2 arms, Rana brought up the question of the demod board situation.
We then found this table on the wiki (LSC demod boards) that indicates that all of the demod boards were originally given lowpass filters, no matter the demodulation frequency. Back in September, I switched out the low pass filter for a bandpass filter in POP110, and put in the same bandpass when putting together AS110 (elog 9100). So, the 11MHz diodes are probably okay with lowpasses, and the 110 diodes are okay, but we need to think about all the other ones.
We should probably do a first guess by putting in a bandpass filter, but then simulate and measure to figure out what our requirements are for attenuation at the non-demodulation frequencies for each board.
The SXBPs from Minicircuits look pretty good, but there are lots of options on their website.
For tonight, Rana has put a coax 100 MHz highpass filter on the input to the REFL165 demod board.
I worked on the script SPAG4395A.py tonight with Masayuki's help. This sets up the parameters on the Agilent 4395A and then acquires the spectrum data. It had a couple of bugs before: no matter what channel you requested, you always got channel R. It also would disobey any requests to reduce the attenuation and left the Auto Atten ON. The version now in the SVN allows you to choose the channel and the attenuation.
It then makes this plot using matplotlib. The attached image is from the REFL165 pickoff at a time tonight when the arm powers were ~5-10. I have converted the spectrum from RF electrical Watts into Volts (V = 50*sqrt(W)). To go from the analyzer input to the demod board input we should scale this spectrum by a factor of ~15 (to account for the 20 dB from the coupler and the 3 dB of the splitter and a little more for losses). On the oscilloscope we see Vpp ~5 mV, so that's ~75 mVpp at the output of the BBPD which we're using for REFL165. Perhaps we can handle another factor of ~2-3 ? I'm not sure what we have in terms of linearity measurements on this thing.
EDIT: Evan is right, its V = sqrt(50*W), not V = 50*sqrt(W). ignore y-axis above
Attachment #1 is a block diagram depicting the pathway by which the vertex DOF control signals can couple into DARM (adapted from a similar diagram in Gabriele's Virgo note on the subject). I've also indicated some points where noise can couple into either loop. In general, there are sensing noises that couple in at the error point of the loop, and actuation noises that couple in at the control point. In this linear picture, each block represents a (possibly time varying) transfer function. So we can write out the node-to-node transfer functions and evaluate the various couplings.
The motivation is to see if we can first simulate with some realistic noise and time-varying couplings (and then possibly test on the realtime system) the effectiveness of the filter denoted by "FF" in canceling out the shot noise from the auxiliary loop being re-injected into the DARM loop via the DARM sensor. Does this look correct?
I wanted to set up an RTCDS model to understand this problem better. Attachment #1 is the simulink diagram of the signal flow. The idea will be to put in the appropriate filter shapes into the various filter blocks denoting the DARM and auxiliary DoF plants, controllers and actuators, and then use awggui / diaggui to inject some noises and see if in this idealized model I can achieve good subtraction. Then we can build up to applying a time varying cross coupling between DARM and the vertex DoF, and see how good the adaptive FF works. Still need to setup some MEDM screens to make working with the test system easier.
I figured c1omc would be the least invasive model to set this upon without risking losing any of our IR/green alignment references. Compile and install went smooth, see Attachment #2. The c1omc model was clocking 4us before, now it's using 7us.
Attachment #3 shows the top level of the OMC model, while Attachment #4 shows the MEDM screen.
* Note to self: when closing a loop inside the realtime model, there has to be a delay block somewhere in the loop, else a compilation error is thrown.
To avoid exciting at the PRM violin mode frequency, I have changed all of the filters relevant to the sensing matrix measurement from 628Hz to 580.1Hz. This includes notches in the LSC control loops, as well as the band pass filters in the lockins. I have not yet loaded the new filters, since arm locking is in progress.
I have loaded these new filters in. Manasa is still using the IFO for green stuff, so I can try out the PRMI measurement in a day or so. (Right now I have to make sure I understand my data, anyway.)
Note: The TRY PD isn't installed and normalized properly yet, so the IFO OVERVIEW screen indicates lock for the Yarm constantly, which is not true. Hopefully in the next day or so the screen will be back to telling the truth.
Also, the LSC Locking was left ENABLED (presumably over the weekend). This is not so good. It can kick optics around, so we should all take a look when we walk through the control room, and if no one is locking, please disable the LSC master switch.
I created 3 kinds of LSC matrices, PRMI condition with carrier resonant in PRC, PRMI condition with SB resonant in PRC, and DRMI with SB resonant in PRC. The matrices are with AS55 and REFL11 which are used for locking right now. The signal numbers are written in log10, and the dem phases are shown in degrees.
From CR reso PRMI to SB reso PRMI, demodulation phases change ----
PRMI - Carrier resonant in PRC
PRCL MICH SRCL
PRMI - SB resonant in PRC
SB reso PRMI
DRMI - SB resonant in PRC
Something that kind of drives me crazy with our current LSC model setup is that I can't make "finished" error signals before blending them. The blending happens before the normalization matrix, and there is no place to put an offset to help match a new error signal to the current offset. So. While I'm sure this is not going to be immediately popular, here's a cartoon of a proposed model change to the LSC.
The most important difference between this and the ramping matrix that is used at the sites is that you can put in offsets before the blend. Also useful is the fact that the normalization can happen before the blend. This proposal would make the LSC input matrix and the normalization matrix have twice as many rows, and add an extra "selector matrix" just before the triggering at the error point of the loops.
I've only drawn one degree of freedom in my cartoon, but assume that they all have the same capability (maybe we don't have to do XARM, YARM and MC this way). One row is currently being used for the error signal, while the other row is just used to prep a new singal. For a first transition (say, ALS to DC transmission), maybe the ALS signals are on row 1, and the DC trans is on row 2. Once the transition is complete, row 1 is available to prep for the next transition (such as AS55Q).
Thoughts? Is there a better way to achieve what I'm going for here?
Okay, it has taken me almost exactly 12 hours (with a dinner break), but I have implemented this change.
Everything was svn-ed before I did things, and then again afterward.
Here is the "before" screenshot of the LSC model:
And here is afterward:
If you look extra carefully, you will see that it matches my proposal from http://nodus.ligo.caltech.edu:8080/40m/10904 . I have made the change for DARM, MICH, PRCL, SRCL and CARM. I did not alter XARM, YARM or MC. Also, the CESAR stuff was taken out of the CARM area, since this is now a more generalized version of the same thing.
I have also checked and modified all of the scripts that I could think of, as well as all of the ifoconfig burt .req and .snap files that I could think of. I also ran the carm_cm_up.sh script once, and it seems to work fine. All of the transition scripts that are listed below (which are the only ones used currently in the sequence) now use the new error signal blending scheme.
Burts (listed are the .req files, but I also checked the .snap files, hand-editing the matrix element numbers where needed if I wasn't in the right config to do a save):
I also modified the screens for the input matrix and for the normalization matrix. I created a new screen for the final blending matrices (which are all 2x1's), and I also modified the LSC_OVERVIEW screen.
The input matrix and normalization matrix screens have colored bars that tell you whether a row is in use or not. If the background to the row is the blue of the whole screen, that row is not being used.
The LSC screen has new hand-modified Kissel Buttons. I wanted to show the total PD error signal that is being used, regardless of what row (A or B) it is on at that time. So, I have collapsed the rows so that DARM_A and DARM_B are overlapped, even though they are actually rows 1 and 2 of the matrix. The PD should only show up green on the LSC screen if that row is in use (so, if you are prepping a row, but aren't using it yet, you won't see those elements in the matrix). Anyhow, the point is that the LSC overview part of things shouldn't look any different than before.
Brain not working anymore now that it's ~4am, but I need to rethink and recheck to make sure that the PD whitening triggering is still okay and working. Or maybe we can remove it, and just include that in the scripts, as Rana has been suggesting for ages. Thoughts for tomorrow.
Was the screen modified directly on LSC_OVERVIEW.adl?
Even if so, that's OK. I'll incorporate the change to the screen making script once I'm back.