A series of measurements / calculations for the PRM ASC characterization and servo design
1) Actuator characterization
The actuator responses of the PRM in pitch and yaw were measured (attachment figure 1). I believed the calibration of the oplev QPD to be
1 count/urad. The oplev servo loops were turned off at the FM inputs, and the filter banks were turned off so that the response has the open
loop transfer function except for the servo filter.
The measured transfer functions were fitted with LISO. The LISO results (c.f. the source codes) were shown in the figure. The responses also
include the 60Hz comb filter present in the input filters. The responses are well approximated by the single pendulum with f0 of 0.6-0.8 and q of 3.5 and 6.3.
From this measurement, the actuator responses of the PRM at DC are estimated to be 2.2 urad/cnt and 1.8 urad/cnt in pitch and yaw, respectively.
2) Sensor response of the POP QPD
As we already know how the actuators respond, the QPD optical gain can be characterized by measuring the actuator response of the QPD
(attachment figure 2). The QPD signals are such noisy that the response above 1Hz can't be measured with sufficient coherence. Below 1Hz,
the response is well represented by the actuator response measured with the oplev. From this measurement, the optical gains of the QPD
with respect to the PRM motion are 650 cnt/urad and 350 cnt/urad.
3) Open loop transfer function of the current ASC servo
By combining the above information with the servo setting of the servo filters, the open loop transfer functions of the PRM QPD ASC loops
were estimated (attachment figure 3). Actually the expected suppression of the fluctuation is poor. The yaw loop seems to have
too low gain, but in fact increasing gain is not so beneficial as there is no reasonable phase margin at higher frequency.
With the estimated openloop transfer functions and the measured free-running angular fluctuation, the suppressed angular spectra can be
estimated (attachment figure 4). This tells us that the suppression of the angular noise at around 3Hz is not sufficient in both pitch and yaw.
As there is no mechanical resonance in the actuator response at the frequency, intentional placement of poles and zeros in the servo filter is necessary.
4) Newly designed ASC filter
Here is the new design of the QPD ASC servo (attachment figure 5). The target upper UGF is 10Hz with the phase margin of 50 to 60deg.
The servo is AC coupled so that we still can tweak the alignment of the mirror.
As this servo is conditionally stable, at first we should close the loops with stable filter and then some boosts should be turned on.
Estimated suppressed fluctuation is shown in the attachment figure 6. We can see that the fluctuation was made well white between 0.5Hz to 10Hz.
The filter design is shown as follows:
FM1: zero at 0Hz, pole at 2000Hz, gain at 2000Hz = 2000
zero: f: 0.5Hz q: 1 / 4.5Hz, q: 1 / f: 1Hz, q: 3
pole: f: 2Hz q: 3 / f: 2.7Hz, q: 2 / f: 1Hz, q: 15
FM9: (HF Roll-off)
pole: f: 40Hz q: 1.7
Servo gain: -0.028
FM1: zero at 0Hz, pole at 2000Hz, gain at 2000Hz = 2000
zero: f: 0.7Hz q: 2 / 3Hz, q: 7 / f: 2Hz, q: 6
pole: f: 1.02Hz q: 10 / f: 4.5Hz, q: 0.8 / f: 1.5Hz, q: 10
FM9: (HF Roll-off)
pole: f: 40Hz q: 1.7
Servo gain: -0.0132
New PRM ASC was implemented. [to be cnt'd]
As the designed ASC filters in this entry had too little phase margins (~10deg), I had to compromise the servo design.
The design was modified and tested again. This will be reported by a following entry.
Incidentally, I have adjusted the demodulation phases of REFL33/55/165 for PRMIsb so that the PRCL is eliminated from the Q signals.
REFL33 125.5 deg -> +136.5 deg
REFL55 45.0 deg -> + 25.0 deg
REFL165 -79.5 deg -> + 44.5 deg
This change of the demod phase for REFL165 was a bit surprising.
I did not check the sign, so it could be -135.5 deg. But still this is a bit change.
The new PRM ASC design
FM1: zero at 0Hz, pole at 2000Hz, gain at 2000Hz = 2000
zero: f: 0.5Hz q: 1 / 4Hz, q: 2 / f: 1Hz, q: 3
pole: f: 2Hz q: 3 / f: 2.7Hz, q: 2 / f: 1Hz, q: 15
FM9: (HF Roll-off)
pole: f: 40Hz q: 1/Sqrt(2) (2nd order butterworth)
Servo gain: -0.023
FM1: zero at 0Hz, pole at 2000Hz, gain at 2000Hz = 2000
zero: f: 0.5Hz q: 1 / 4Hz, q: 2 / f: 1.5Hz, q: 10
pole: f: 1.02Hz q: 10 / f: 3Hz, q: 5 / f: 2Hz, q: 6
FM9: (HF Roll-off)
pole: f: 40Hz q: 1/sqrt(2)
Servo gain: -0.027
The loop gains were adjusted to have the UGFs of 10Hz. The measured openloop transfer functions were compared with the model.
The transfer functions for yaw are well matched. However, the pitch ones don't. It seems that the pitch loop has extra low pass
which I can't locate. The possibility is the analog electronics of the pitch loop.
The effect of the control between 0.3Hz to 3Hz are well represented by the model. The attachment 2 shows the free running
angle fluctuation, the ones with the control engaged, and the estimated spectra. Indeed, the estimated spectra well represent
the measured angular spectra.
I was thinking about POP today, and wanted to know if there was something to be done to allow us to use the PRCL ASC for at least a little bit farther into arm power buildup.
Anyhow, I checked, and while PRMI is locked on sidebands (ETMs misaligned), POP DC is about 80 counts, and the power measured by the Ophir power meter is 24 microWatts.
We were on the 3rd gain setting for the QPD's power amplifier. I turned it down to the "2" option. (When at 4, the front panel light indicates saturation).
It's not clear to me what the gain settings mean exactly. I think that "1" means 4*10^3 V/A, and "6" means 4*10^6 V/A (On-Trak OT301 info site), but I don't know for sure how the gain changes for the settings 2-5. Anyhow, I have changed the digital gain for the ASC to be -0.063 from -0.023 for both pitch and yaw.
The Yarm ASS is now working (as is the Xarm ASS). Both of the TT's pitch servos had a sign flip. We don't know why.
To start, we lowered the matrix elements that push on the TTs by a factor of 3, to compensate for the new factor of 3 in the slider gains: ezcastep C1:ASS-YARM_OUT_MTRX_5_5 /3 C1:ASS-YARM_OUT_MTRX_5_7 /3 C1:ASS-YARM_OUT_MTRX_6_6 /3 C1:ASS-YARM_OUT_MTRX_6_8 /3 C1:ASS-YARM_OUT_MTRX_7_5 /3 C1:ASS-YARM_OUT_MTRX_7_7 /3 C1:ASS-YARM_OUT_MTRX_8_6 /3 C1:ASS-YARM_OUT_MTRX_8_8 /3
ezcastep C1:ASS-YARM_OUT_MTRX_5_5 /3 C1:ASS-YARM_OUT_MTRX_5_7 /3 C1:ASS-YARM_OUT_MTRX_6_6 /3 C1:ASS-YARM_OUT_MTRX_6_8 /3 C1:ASS-YARM_OUT_MTRX_7_5 /3 C1:ASS-YARM_OUT_MTRX_7_7 /3 C1:ASS-YARM_OUT_MTRX_8_6 /3 C1:ASS-YARM_OUT_MTRX_8_8 /3
We turned off all 4 tip tilt ASS servos (in the Yarm ASS servo screen), and turned them on one at a time. By doing this, we discovered that the pitch servos for both TT1 and TT2 needed to have the opposite sign from what they used to have. However, the yaw servos kept the original signs. It really doesn't make sense to me why this should be, but this is the way the ASS servo works. We left both Xarm and Yarm ASSs on for several minutes, and saw that they didn't push any mirrors out of alignment.
The ASS_DOTHER_ON burt snapshot has been resaved with the new values.
Also, earlier this evening, I aligned the Yarm green beam to the cavity, although the cavity was not optimally aligned, so this needs to be re-done.
On our to-do list should be to add the tip tilt slider values to the DAQ channels list.
After the meeting, I aligned the IFO to the IR, and then I aligned the Ygreen to the Yarm. I then found the beatnotes and used ALS to hold the arms with CARM/DARM, locked the PRMI, and reduced the CARM offset until I had arm powers of about 3. Given that this was at 3pm, and people were tromping all over inside the IFO room, I feel positive about tonight.
So, IFO seems ready, carm_cm_up script was successful, and got me to arm powers of 1, and then I further reduced the offset by a bit to go a little higher.
Koji asked me to perform a simulation of the response of POP QPD DC signal to mirror motions, as a function of the CARM offset. Later than promised, here are the first round of results.
I simulated a double cavity, and the PRC is folded with parameters close to the 40m configuration. POP is extracted in transmission of PR2 (1ppm, forward beam). For the moment I just placed the QPD one meter from PR2, if needed we can adjust the Gouy phase. There are two QPDs in the simulation: one senses all the field coming out in POP, the other one is filtered to sense only the contribution from the carrier field. The difference can be used to compute what a POP_2F_QPD would sense. All mirrors are moved at 1 Hz and the QPD signals are simulated:
This shows the signal on the POP QPD when all fields (carrier and 55 MHz sidebands) are sensed. This is what a real DC QPD will see. As expected at low offset ETM is dominant, while at large offset the PRC mirrors are dominant. It's interesting to note that for any mirror, there is one offset where the signal disappears.
This is the contribution coming only from the carrier. This is what an ideal QPD with an optical low pass will sense. The contribution from the carrier increases with decreasing offset, as expected since there is more power.
Finally, this is what a 2F QPD will sense. The contribution is always dominated by the PRC mirrors, and the ETM is negligible.
The zeros in the real QPD signal is clearly coming from a cancellation of the contributions from carrier and sidebands.
The code is attached.
In addition to the simulation described in my previous elog, I simulated the signal on a quadrant photodetector demodulated at 2F. The input laser beam is modulated at 11MHz up to the fifth order. There is no additional 55 MHz modulation.
The QPD demodulated at 2F shows good signals for PRC control for all CARM offsets, as expected from the previous simulation.
This is nice. Can we test this idea with POP22 + a razor blade?
Just to take transfer functions in PRMIsb between the PRM angle to POP QPD/POP22+razor blade
as well as the noise spectrum measurement are already useful.
We want to figure out the requirement for the 2f QPD.
(Transimpedance / Noise level / Beam size / etc)
Depending on the requirement we'll see if we need demodulation or just a power detector.
I have added a few things to the ASS model, and the ASC sub-block, so that we can send POP QPD information down to the ETMs for CARM angular control after we've reduced the CARM offset and gotten some carrier buildup. I did not remove our ability to actuate on PRM, so that we can still play with it in PRMIsb cases.
The input matrix has been expanded so that it can send signals to new CARM_YAW and CARM_PIT filter banks. The corresponding filter banks have been created. The output matrix was also expanded to take in the 2 new servo outputs, and so it can send signals to both ETMs, pitch and yaw. I did not include any triggering logic for this new CARM situation, since I assume we'll just turn it on and off with our scripts. (We haven't really been using the triggering capability of the PRM ASC either lately, although it's all still there). I added the inputs and outputs of the CARM servos to the list of acquired channels.
The ASC sub-block:
I also modified the top level of the ASS model. This was just a simple addition of summing nodes for the ETMs, similar to what was already in place for the PRM, so that we can send both the ASS dither alignment signals and the ASC servo control signals to the optics.
The ASS top level:
I also quickly modified the ASC screen to expose all of the new options:
The ASS model was compiled, and restarted. As usual, this temporarily removes the biases on the input pointing tip tilts, but the pointing seems to have come back without any trouble.
Jenne asked me to simulate the signals on POP QPD when moving different mirrors, as a function of the Gouy phase where the QPD is placed.
I used the opportunity to create a MIST simulation file of the entire 40m interferometer, essentially based on my aLIGO configuration file. I used the recycling cavity lengths obtained from our survey, and other parameters from the wiki page. The configuration file is attached (fortymeters.mist).
Coming back to the main simulation, here is the result, both for the "regular" POP QPD and for a 22MHz demodulated one. The Gouy phase is measured starting from PR2. Cavity mirrors are easily decoupled from PRM in the "regular" QPD. As already demonstrated in a previous simulation, ETMs signals are very small in the 22 MHz QPD. Moreover, it is possible to zero the contribution from ITMs by choosing the right Gouy phase, at the price of a reduction of the PRM signal by a factor of 3-4. Simulation files are attached.
During the Sim meeting today, I added parts to the ASS model so that we can also dither the BS and minimize the power at AS.
ASS screen has been updated.
Model changes required a new sender from LSC for ASDC, so both LSC and ASS were compiled, installed and restarted. Also on LSC, I added AS110 I&Q to DQ channels, since we haven't been recording them in the past.
I have done a quick trial in MICH-only lock, and it seems to work. Gain of 10 for both Pit and Yaw servos.
Something to note, as we have the IMC angular controls under consideration:
Jenne has the DRMI locked right now. I took a look at the coherence between the POP QPD and MC2 transmission QPDs. (Since she's using ASC, I also included those control signals. The coherences are about the same, unsurprisingly)
Based on the observed coherences, from about 1 to 6Hz, IMC motion is responsible for a fair amount of the DRMI angular motion. Also, PIT and YAW couple differently.
I wonder if this is the coherence caused by the beam itself, or caused by the same ground motion.
Jenne should be able to tell us...
X arm has been restored, after modifying the two parameters mentioned in http://nodus.ligo.caltech.edu:8080/40m/10676 (C1SUS_ITMX: LSC/DAMP and LSC/BIAS); after that, a manual re-alignment of ETMX was necessary due to heavy PIT misalignment. I will check the ALS lock once work on the Y arm is done.
I updated the medm C1ASS page for the Arm scripts:
ON : same as before
FREEZE OUTPUTS: calls new FREEZE_DITHER.py script, which sets Common Gain and LO Amplitudes to 0, therefore freezing the current output values
START FROM FROZEN OUTPUTS: calls new UNFREEZE_DITHER.py script, which sets Commong Gain and LO Amplitudes as in the DITHER_ASS_ON.py script, but no burt restore is performed
OFFLOAD OFFSETS: it's the old "SAVE OFFSETS", calls the WRITE_ASS_OFFSET.py script
OFF: same as before
StripTool: same as before
We would like the option of feeding back the POP beam position fluctuations to the PRM to help stabilize the PRC since we don't have oplevs for PR2 and PR3. However, we cannot just use the DC QPD because that beam spot will be dominated by carrier light as we start to get power recycling.
The solution that we are trying as of today is to look at yaw information of just the RF sidebands. (Yaw is worse than pitch, although it would be nice to also control pitch). I have placed a razor blade occluding about half of the POP beam in front of the POP PD (which serves POPDC, POP22 and POP110). I also changed the ASS model so that I could use this signal to feed back to the PRM. Loop has been measured, and in-loop spectra shows some improvement versus uncontrolled.
Optical table work:
The POP beam comes out of the vacuum system and is steered around a little bit, then about 50% goes to the DC QPD. Of the remaining, some goes to the Thorlabs PD (10CF I think) and the rest goes to the POP camera. For the bit that goes to the Thorlabs PD, there is a lens to get the beam to fit on the tiny diode.
There was very little space between the steering mirror that picks off the light for this PD, and the lens - not enough to put the razor blade in. The beam after the lens is so small that it's much easier to occlude only half of the beam in the area before the lens. (Since we don't know what gouy phase we're at, so we don't know where the ideal spot for the razor is, I claim that this is a reasonable place to start.)
I swapped out the old 50mm lens and put in a 35mm lens a little closer to the PD, which gave me just enough room to squeeze in the razor blade. This change meant that I had to realign the beam onto the PD, and also that the demod phase angles for POP22 and POP110 needed to be checked. To align the beam, before placing the razor blade, I got the beam close enough that I was seeing flashes in POPDC large enough to use for a PRMI carrier trigger. The PRMI carrier was a little annoying to lock. After some effort, I could only get it to hold for several seconds at a time. Rather than going down a deep hole, I just used that to roughly set the POP22 demod phase (I -phase maximally negative when locked on carrier, Q-phase close to zero). Then I was able to lock the PRMI sideband by drastically reducing the trigger threshold levels. With the nice stable sideband-locked PRMI I was able to center the beam on the PD.
After that, I introduced the razor blade until both POPDC and POP22 power levels decreased by about half.
Now, the POP22 threshold levels are set to up=10, down=1 for both MICH and PRCL, DoF triggers and FM triggers.
ASS model work:
POP22 I and POP110 I were already going to the ASS model (where ASC lives) for the PRCL ASS dither readbacks. So, I just had to include them in the ASC block, and increased the size of the ASC input matrix. Now you can select either POP QPD pit, POP QPD yaw, POP221 or POP110I to go to either PRCL yaw, PRCL pit, CARM yaw or CARM pit.
Compiled, installed and restarted the ASS model.
Engaging the servo:
I took reference spectra of POP QPD yaw and POP 22, before any control was applied. The shapes looked quite similar, but the overall level of POP22 was smaller by a factor of ~200. I also took a reference spectra of the POP QPD in-loop signal using the old ASC loop situation.
Q looked at Foton for me, and said that with the boost on, the UGF needed to be around 9 or 10 Hz, which ended up meaning a servo gain of +2.5 (the old POP QPD yaw gain was -0.063). We determined that we didn't know why there was a high-Q 50Hz notch in the servo, and why there is not a high frequency rolloff, so right now the servo only uses FM1 (0:2000), FM6 (boost at 1Hz and 3Hz) and FM7 (BLP40).
The in-loop residual isn't quite as good with POP22 as for the QPD, but it's not bad.
Here's the loop:
And here's the error spectra. Pink solid and light blue solid are the reference traces without control. Pink dashed is the QPD in-loop. Red and blue solid are the QPD and POP22 when POP22 is used as the error signal. You can definitely see that the boosts in FM6 have a region of low gain around 1.5Hz. I'm not so sure why that wasn't a problem with the QPD, but we should consider making it a total 1-3Hz bandpass rather than a series of low-Q bumps. Also, even though the POP22 UGF was set to 9 Hz, we're not seeing any suppression above about 4Hz, and in fact we're injecting a bit of noise between 4-20Hz, which needs to be fixed still.
With the re-do of the IFO alignment last week, I think that the beam was no longer about halfway on the POP22 razor blade. To fix this, I locked the PRMI on sideband, removed the razor blade, and then put it back in such that it occluded about half of the light.
I'm not entirely sure why, but when I put the razor in, POP22 went from 104(ish) to 45(ish) but POPDC went from 5200(ish) to 1600(ish). [The 'ish'es are because the PRC wasn't angularly stabilized, so there was some motion changing the power levels that leaked out to the POP port]. The ETMs were misaligned, so this should not be a carrier vs. sideband effect, since they'll both share the cavity axis defined by the ITMs and the PRM. It is possible, although I didn't check, that there is some oplev light scattered into the POP photodiode that is now blocked by the razor blade. This light would only be at DC and not the 2f frequencies. Since the signal levels for POP22 vs. POPDC didn't change with and without the table top on (and with and without room lights on), I don't think that it is an effect of ambient light getting into the diode. To check if it is oplev light I should (a) just look, and (b) try to lock the PRMI without the ITMX oplev laser being on to see if there is a difference in the POPDC signal.
Anyhow, under the assumption that the POP22 signal level is correct, I tuned up the PRCL ASC a little bit. These changes are now in the carm_cm_up script, and the carm_cm_down script resets things. Before the PRC is locked, I have FM1 and FM7 (the basic servo shape and a 40Hz lowpass) on, the gain set to zero, and the input off. After lock is acquired, the input is turned on, and the gain ramps from 0 -> 10 in 3 seconds. Then FM2 and FM6 (boosts at 1 and 3Hz) are engaged.
In the plot below, the dark blue and red curves were taken when there was no angular control on the PRC. Pink was taken last week with the old QPD yaw ASC on. Light blue is today's version of the in-loop performance of the POP22 yaw ASC loop. I didn't save the trace unfortunately, but the DC QPD saw out-of-loop improvement between about 0.8Hz - 4 Hz.
Also, has anything happened with the LSC rack in the last few weeks that might be causing lots of 60Hz noise? I saw these large lines last week, but I don't think I remember them from the past.
After I got the PRCL ASC working, I tried several iterations of locking. ETMX is still being annoying, although the last hour or so have been okay. CARM keeps getting rung up right around the transition to the sqrtInv error signal. Since CARM and DARM are kind of entangled, it took me a few iterations to figure out that it was CARM that is ringing up, and not DARM. I'm a little worried about the phase loss from the 1kHz lowpass that we turn on just before the transition to sqrtInv. I want to keep the lowpass off until after we have transitioned DARM also over to DC transmission. I tried once, but I lost lock before starting the CARM transition. Anyhow, the ETM alignment issue is annoying.
Also, Jamie, Q, Diego and I were discussing last Friday, but none of us elogged, that we think there might be something wrong with one of the Martian network switches. I'll start a separate thread about that right now, but it slows things down when you can't trust EPICS channels to be current, and I (without evidence) am a little worried that this might also affect the fast signals.
We decided that tonight was the night for ASS tuning.
We started from choosing new frequencies, by looking at the transmission and the servo control signals spectra to find areas that weren't too full of peaks. We chose to be above the OpLev UGF by at least a factor of ~2, so our lowest frequency is about 18Hz. This way, even if the oplevs are retuned, or the gains are increased, the ASS should still function.
We set the peak heights for the lowest frequency of each arm to have good SNR, and then calculated what the amplitude of the higher frequencies ought to be, such that the mirrors are moving about the same amount in all directions.
We re-did the low pass filters, and eliminated the band pass filters in the demodulation part of the servo. The band passes aren't strictly necessary, as long as you have adequate lowpassing, so we have turned them off, which gives us the freedom to change excitation frequencies at will. We modified the lowpass filter so that we had more attenuation at 2Hz, since we spaced our excitation frequencies at least ~2.5 Hz apart.
The same lowpass filter is in every single demodulator filter bank (I's and Q's, for both length and transmission demodulation). We are getting the gain hierarchy just by setting the servo gains appropriately.
We ran ezcaservos to set the demodulation phase of each lockin, to minimize the Q-phase signal.
We then tuned up the gains of the servos. Rana did the Y arm, but for the X arm I tried to find the gains where the servos went unstable, and then reduced the gain by a factor of 2. The Xarm is having trouble getting good alignment if you start with something less than about 0.7, so there is room for improvement.
Rana wrote a little shell script that will save the burt snapshot, if the gains need adjusting and they should be re-saved.
The scripts have been modified (just with the new oscillator amplitudes - everything else is in the burt snapshots), so you should be able to run the start from nothing and the start from frozen scripts for both arms. However, please watch them just in case, to make sure they don't run away.
Did a big reconfig to make the Y-arm work again since it was bad again.
With the arm aligned and the A2L signals all zeroed, we centered the beam on QPDY (after freezing the ASS outputs). I saw the beam going to the QPD on an IR card, along with a host of green spots. Seems bad to have green beams hitting the QPD alogn with the IR, so we are asking Steve to buy a bunch of the broad, dielectric, bandpass filters from Thorlabs (FL1064-10), so that we can also be immune to the EXIT sign. I wonder if its legal to make a baffle to block it on the bottom side?
P.S. Why is the Transmon QPD software different from the OL stuff? We should take the Kissel OL package and put it in place of our old OL junk as well as the Transmons.
I have completed all of the model modifications and medm screen updates to allow for feedback from the transmon QPD pitch and yaw signals to the ITMs. Now, we can design and test actual loops...
The signals come from c1sc[x/y] to c1rfm via RFM, and then go to c1ass via dolphin.
Out of curiosity about the RFM+dolphin delay, I took a TF of an excitation at the end SUS model (C1:SUS-ETM[X/Y]_QPD_[PIT/YAW]_EXC) to the input FM in the ASC model (C1:ASC-ETM[X/Y]_QPD_[PIT/YAW]_IN1). All four signals exhibit the same delay of 122usec. I saved the dtt file in Templates/ASC/transmonQPDdelay.xml
This is less than a degree under 20Hz, so we don't have to worry about it.
I made the Xarm follow the new (old) topology of Length -> test masses, and Trans -> input pointing.
It takes a really long time to converge (2+ min), since the input pointing loops actuate on the BS, which has an optical lever, which is slow. So, everything has to be super duper slow for the input pointing to be fast relative to the test mass motion.
Also, between last night and this afternoon, I moved the green ASX stuff from a long list of ezca commands to a burt file, so turning it on is much faster now. Also, I chose new frequencies to avoid intermodulation issues, set the lockin demodulation phases, and tuned all 4 loops. So, now the green ASX should work for all 4 mirrors, no hand tuning required. While I was working on it, I also removed the band pass filters, and made the low pass filters the same as we are using for the IR ASS. The servos converge in about 30 seconds.
I wonder what to do with the X arm.
The primary purpose of the ASS is to align the arm (=transmission), and the secondary purpose is to adjust the input pointing.
As the BS is the only steering actuator, we can't adjust two dof out of 8 dof.
In the old (my) topology, the spot position on ITMX was left unadjusted.
If my understanding of the latest configuration, the alignment of the cavity (=matching of the input axis with the cavity axis)
is deteriorated in order to move the cavity axis at the center of the two test masses. This is not what we want as this causes
deterioration of the power recycling gain.
We want to have some angular control of the arms during lock acquistion.
In single arm lock, Diego and I shook the TMs and measured how the QPDs responded. (I would've liked to do a swept sine in DTT, but the user envelope function still isnt' working!)
For now, we can close simple loops with QPD sensor and ITM actuator, but, as Rana pointed out to Diego and me today, this will drive some amount of the angular cavity degree of freedom that the QPD doesn't sense. So, ideally, we want to come up with the right combination of ITM and ETM motion that lies entirely within the DoF that the QPD senses.
I created a rudimentary loop for Yarm yaw, was able to get ~20Hz for the upper UGF, a few mHz for the lower, but it was starting to leak into the length error signal. Further tweaking will be neccesary...
I've measured the sensing for each of the arms, by using our calibrated oplevs, in terms of QPD counts per micron. It is:
ETMY: QPD PIT / OPLEV PIT = 22.0 count/urad
QPD YAW / OPLEV YAW = 17.1 count/urad
ITMY: QPD PIT / OPLEV PIT = -6.0 count/urad
QPD YAW / OPLEV YAW = 5.9 count/urad
ETMX: QPD PIT / OPLEV PIT = 16.6 count/urad
QPD YAW / OPLEV YAW = -9.3 count/urad
ITMX: QPD PIT / OPLEV PIT = 4.0 count/urad
QPD YAW / OPLEV YAW = -6.0 count/urad
In the absence of a lens, the QPD would be significantly more sensitive to cavity axis translation than tilt, and thus about equally sensitive to ITM and ETM angle. However, there are lenses on the end tables. I didn't go out and look at them, but found some elogs from Annalisa that mentioned 1m focal length lenses. Back-of-the-envelope calculations convince me that this can plausibly lead to the above sensitivity ratios.
I used these quantities to come up with an actuation matrix for the ASC loops, and measured the effective plant seen by the FM, fitted it to some poles( looks like zpk(,-2*pi*[1.47+3.67i,1.47-3.67i],160); ), and designed a control servo. Here is the designed loop:
The servo works on both arms, both DoFs. A DTT measurement agrees with the designed loop shape, up to a few degrees, which are probably due to the CDS delay. The RMS of the QPD error signals goes down by about 20dB, and are currently dominated by the bounce mode, so maybe we can try to sneak in some resonant gain...?
Once we confirm that they work when locking, we can write up and down lines into the locking scripts...
As mentioned in a previous ELOG, in single arm lock, I measured the QPD response with respect to the calibrated oplev signals. They were:
ETMX: QPD PIT / OPLEV PIT = 16.6 count/urad
QPD YAW / OPLEV YAW = -9.3 count/urad
ITMX: QPD PIT / OPLEV PIT = 4.0 count/urad
QPD YAW / OPLEV YAW = -6.0 count/urad
For reference, one microradian of either ITM or ETM motion produces about 60um of ETM beam spot displacement, compared to the spot size of ~5mm.
However, given the lenses on the end tables that are used for green mode matching, that the IR transmitted beam also passes through, the QPDs are not directly imaging the ETM spot position; if they were, they would have equal sensitivity to ITM and ETM motion due to our flat/curved arm geometry.
From this data, I calculated the actuation coefficients for each DoF as , and similarly for the ITMs, where the d's come from the table above. However, it occurs to me that maybe this isn't the way to go... I'll mention this later.
Up until now, at every turn, I had not properly been thinking about how the oplev loop plays into all of this. I went to the foton filters, and grabbed the loop and plant models for the ETMY oplev, and constructed the closed loop gain, 1/1+G, and the modified plant, P/1+G, which is what the ASC loop sees as its plant.
Here, the purple trace explains all of the features I was confused about earlier.
With this in hand, I set up to design a loop to satisfy our motivations.
To do this, I inverted the oplev closed loop plant pole around 4Hz to smooth the whole thing out. Here's a comparison of the measured OLG with what I modelled.
There's a little bit of phase discrepency around 10Hz, but I think it looks about right overall.
So, here's the part that counts: How does this actually perform? I took spectra of the QPD error signals, the relevant OpLev signals as out of loop sensors, the PDH error signal and transmitted RIN while single arm locked, with this loop off, and on for all 4 DoFs simultaneously.
This is what makes me think I may need to revisit the actuation matrix. If I did it wrong, I am driving the "invisible" quadrant of the cavity angular DoFs, and this could be what is injecting noise into the oplevs.
In the end, I have a better understanding of what is going on, and I don't think we're quite there yet.
Although the QPD loops are less than ideal right now, I made changes to the ASC model to trigger the QPD loops on and off politely, depending on TRX and TRY. The settings are exposed on the ASC screen. However, I have not yet exposed the FM triggering that I also set up to make sure the integrator doesn't misbehave if the arm loses lock. We probably don't want to trigger them on at anything lower than arm powers of about 1.0.
I've tested the triggering by randomly turning LSC mode on and off, and making sure that the optics don't recieve much of a kick as the QPD loops engage a few seconds after the LSC boosts do, or when lock is lost. This works as long as there isn't much of a DC offset befire the loops are engaged. (Under 20 counts or so is fine)
As a side note, I was going to use the TRIG_SIG signals sent via the LSC model via SHMEM blocks for the ASC triggering, but oddly, the data streams that made it over were actually the MICH and SRCL TRIG_SIGs, instead of XARM and YARM as labelled. I double checked the simulink diagrams; everything seemed fine to me. In any case, ASS was already recieving TRX and TRY directly via RFM, so I just piped those over to the ASC block. This way is probably better anyways, because it directly references the arm powers, instead of the less obvious LSC triggering matrix.
I checked the situation of ASS. I wanted to know how much we are away from the maximum transmittion.
ASS makes the X arm shifted from the maximum transmission. This causes the contrast degraded by ~3%.
We need to fix the Xarm ASS so that it can maximize the transmission and ignor the spot centering at ITMX.
Conditioning before the measurement:
- ASDC offset was removed
- X&Y arm was aligned by ASS
Average transmission: 0.86
Pmax = 1045 +/- 9 cnts
Pmin = 22 +/- 4 cnts
==> Contrast = (Pmax - Pmin)/(Pmax+Pmin) = 0.960+/-0.007
After manual alignment of the X arm (ignoring spot centering):
Average transmission: 0.88
Pmax = 1103 +/- 11 cnts
Pmin = 5 +/- 1 cnts
==> Contrast = (Pmax - Pmin)/(Pmax+Pmin) = 0.991+/-0.002
X-Arm ASS was fixed.
ASS_DITHER_ON.snap was updated so that the new setting can be loaded from the ASS screen.
The input and output matrices and the servo gains were adjusted as found in the attached image.
The output matrix was adjusted by looking at the static response of the error signals when a DC offset
was applied to each actuator.
The servo was tested with misalignment of the ITM, ETM, and BS. In fact, the servo restored transmission
from 0.15 to 1.
The resulting contrast after ASSing was ~99% level. (I forgot to record the measurement but the dark fringe level of ASDC was 4~5count.)
After aligning the PRC, I centered the POP QPD.
Please remember that Xarm ASS needs FM6 (Bounce filters) to be ON in order to work properly.
We had persistent frustration by occasional unlock during ASSing.
Today, I added triggers to the servo gains in order to elliminate this annoyance.
Each ASS servo gain slider is multiplied with the corresponding LSC Trigger EPICS channel (i.e. C1:LSC-iARM_TRIG_MON, where i=X or Y).
This has been done by ezcaread modules in RCG.
The model and screen have been commited to svn.
I've remeasured the QPD ASC sensing coefficients, and figured out what I did weird with the actuation coefficients. I've rearranged the controller filters to be able to turn on the boost in a triggered way, and written Up/Down scripts that I've tested numerous times, and Jenne has used as well; they are exposed on the ASC screen.
All four loops (2 arms * pit,yaw), have their gains set for 8Hz UGF, and have 60 degrees of phase margin. The loop shape is the same as the previous ELOG post. Here is the current on/off performance. The PDH signals (not shown, but in attached xml) show no extra noise, and the low frequency RIN goes down a bit, whic is good. The oplevs error signals are a bit noisier, but I suppose that's unavoidable. The Y-arm performs a bit better than the X-arm.
The up/down scripts don't touch the filters' trigger settings at all, just handles switching the input and output and clearing history. FM1 contains the boost which is intended to have a longer trigger delay than the filters themselves.
I have changed all of the oplevs and transmon QPDs to use the common ISC QPD library block, which differs mainly in its divide by zero protection.
c1scx.mdl and c1scy.mdl were directly changed for the transmon QPDs. The oplevs were done by changing the sus_single_control.mdl library part, which is used for all of the SOSs.
Then, because of the underscore introduced (i.e. OLPIT becomes OL_PIT because there is an OL block), I went on a sed safari to find and replace the new channel names into:
I've fixed everything that occured to me, and the usual ways I'm used to interacting with the oplevs all seem to work at this time, but it's entirely possible I've overlooked something.
One important note is: because we are now using an effectively immutable QPD library block, the oplev urad conversion has to take place in the DoF matrix. The EPICS records C1:SUS-[OPTIC]_OL_[DOF]_CALIB still exist, but do not multiply the fast signals. Rather, the OL_MTRX elements are multiples of the CALIB value. I thought about making a new QPD_CALIBRATED part or something, but then we're right back to using custom code, which is what we're trying to avoid.
All of the oplev DoFs are stable, I checked a few loop TFs like ETMY pitch and PRM yaw, and they looked normal.
Might have to also get the OL screens that go with this new code to see, but the calibrations don't go into the matrix, but rather into the OLPIT/OLYAW filter banks which follow the division, but before the servo filter banks.
I've lowered the UGFs for the transmission QPD servos to ~1-2Hz, and made it just an integrator. I left the arms locked with the QPD servos on for a few hours during the daytime today, and they succesfully prevented the Y arm from losing power from alignment drift for ~4 hours. Turning the servo off caused TRY to drop to ~0.6 or so.
The X arm was only held for 2 hours or so, because after some unlock/drift event the power was below the servo trigger threshold. However, after gently nudging ETMX to get the transmission above the threshold, the servo kicked in, and brought it right back to TRX=1.0
Unfortunately, daqd was dead for much of the day, so I don't have much data to show; the trend was inferred from the wall striptool.
It is not proven that there aren't further issues that prevent this from working with higher / more dynamic arm powers, but this is at least a point in favor of it working.
EDIT: Here's a screenshot of the wall StripTool. Brown is TRY, blue is TRX. The downturn at the very end is me deactivating the servos.
There is no scientific justifcation for the 0.9 threshold. Really, I should look at the noise/SNR again, now that there is some ND filtering on the QPDs.
Back on Feb 20th (elog 11056) Q replaced all of our oplev parts with the aLIGO version.
Unfortunately, after this it has seemed like there was something not quite right with the optical lever servos.
Since, when the models were changed which gave us an extra underscore in the oplev names, Q did a find-and-replace in the foton text files, I was worried that this might have broken things. I'm not entirely sure how it would have broken them (I didn't see any difference in a diff), but I've heard enough horror stories about the delicacy of the foton text files.
Anyhow, I opened the last archived foton files from just before Q made the change, and copy-and-pasted the design strings from the old filter banks to the new ones. Hopefully this fixes things.
Alignment is making it tough for locks to last more than 10 minutes. Many (but not all) locklosses correlate with some optic drifting away, and taking all of the light with it. The other locklosses are the quick ones that seem to pop up out of nowhere; we haven't made any headway on these. We wanted to get to a state where we could just let the interferometer sit for some minutes, to explore the data, but got caught up with alignment and PRMI things.
We're finding that both ITMs experience some DC force when entering full PRFPMI lock. I will calculate the torque expected from radiation pressure + offset beam spot, especially for ITMX, where we choose the spot position to be uncontrolled by ASS.
I set up the QPD ASC servos to act in a common/differential way on the ETMs. The C1:ASC-XARM_[PIT/YAW] filter modules act on the common alignment, whereas the C1:ASC-YARM_[PIT/YAW] filter modules act on the differential alignment. This can soon be cleaned up with some model renaming to reduce confusion.
Using DC oplev values as a guide, we are hand tuning ITM alignment once the AO path is engaged and we see the DC drift occurring. Then, we set the QPD servo offsets and engage them.
In this manner, we were able to lock the interferometer at:
We made the PRMI transition to 1f numerous times, but found that the sideband power fluctuations would get significantly worse after the transition.
We found that the gains that were previously used were too small by a factor of a few. There is a DC change visible in REFL165 before and after the transition (Also POP55, aka REFL55, is not DQ'd ). Really, it isn't certain that we've zero'd the offset in the CARM board either, so REFL55's zero crossing isn't necessarily more trustworthy that REFL165's. We can go back in the data and do some 2D histograming to see where in the error signal space the sideband power is maximized.
I ran the "off" script for the Xarm ASS, followed by the "on" script, and now the Xarm ASS doesn't work. Usually we just run the freeze/unfreeze, but I ran the off/on scripts one time.
Koji, if you have some time tomorrow, can you please look at it? I am sorry to ask, but it would be very helpful if I could keep working on other things while the ASS is taken care of.
Steve, can you please find a cable that goes from the LSC rack to the IOO rack (1Y2 to 1X2), or lay a new one? It must be one single long cable, without barrels sticking it together. This will help me actuate on the Marconi using the LSC rack's DAC.
I spent a day to fix the XARM ASS, but no real result. If the input of the 6th DOF servo is turned off, the other error signals are happy
to be squished to around their zeros. So this gives us some sort of alignment control. But obviously a particular combination of the
misalignment is left uncontrolled.
This 6th DOF uses BS to minimize the dither in ITMX yaw. I tired to use the other actuators but failed to have linear coupling between
the actuator and the sensor.
During the investigation, I compared TRX/TRY power spectra. TRX had a bump at 30Hz. Further investigation revealed that the POX/POY
had a big bump in the error signals. The POX/POY error signals between 10-100Hz were coherent. This means that this is coming from
the frequency noise stabilized with the MC. (Is this frequency noise level reasonable?)
The mysterious discovery was that the bump in the transmission exist only in TRX. How did the residual frequency noise cause
the intensity noise of the transmission? One way is the PDH offset.
Anyway, Rana pointed out that IMC WFS QPDs had large spot offsets. Rana went to the AS table and fixed the WFS spot centering.
This actually removed the bump in TRX although we still don't know the mechanism of this coupling.
The bump at 30Hz was removed. However, the ASS issue still remains.
Today I tried some things, but basically, lowering the input gain by 10 made the thing stable. In the attached screenshotstrip, you can see what happens with the gain at 1. After a few cycles of oscillation, I turned the gain back to 0.1.
There still is an uncontrolled DoF, but I that's just the way it is since we only have one mirror (the BS) to steer into the x arm once the yarm pointing is fixed.
Along the way, I also changed the phase for POX, just in case that was an issue. I changed it from +86 to +101 deg. The attached spectra shows how that lowered the POX_Q noise.
I also changed the frequencies for ETM_P/Y dither from ~14/18 Hz to 11.31/14.13 Hz. This seemed to make no difference, but since the TR and PO signals were quieter there I left it like that.
This is probably OK for now and we can tune up the matrix by measuring some sensing matrix stuff again later.
Thank you both.
I have updated the .snap file, so that it'll use these parameters, as Rana left them. Also, so that the "unfreeze" script works without changes (since it wants to make the overall gain 1), I have changed the Xarm input matrix elements from 1 to 0.1, for all of them. This should be equivalent to the overall gain being 0.1.
X arm was far out in yaw, so I reran the ASS for Y and then X. Ran OK; the offload from ASS outputs to SUS bias is still pretty violent - needs smoother ramping.
After this I recentered the ITMX OL- it was off by 50 microradians in pitch. Just like the BS/PRM OLs, this one has a few badly assembled & flimsly mounts. Steve, please prepare for replacing the ITMX OL mirror mounts with the proper base/post/Polaris combo. I think we need ~3 of them. Pit/yaw loop measurements attached.
Based on the PEM-SEIS summary page, it looked like GUR1 was oscillating (and thereby saturating and suppressing the Z channel). So I power cycled both Guralps by turning off the interface box for ~30 seconds and the powering back on. Still not fixed; looks like the oscillations at 110 and 520 Hz have moved but GUR2_X/Y are suppressed above 1 Hz, and GUR1_Z is suppressed below 1 Hz. We need Jenne or Zach to come and use the Gur Paddle on these things to make them OK.
From the SUS-WatchDog summary page, it looked like the PRM tripped during the little 3.8 EQ at 4AM, so I un-tripped it.
Caryn's temperature sensors look like they're still plugged in. Does anyone know where they're connected?
Looking at the summary page trends from today, you can see that the MC transmission is pretty flat after I zeroed the MCWFS offsets. In addition, the transmission from both arms is also flat, indicating that our previous observation of long term drift in the Y arm transmission probably had more to do with bad Y-arm initial alignment than unbalanced ETMY coil-magnets.
Much like checking the N2 pressure, amount of coffee beans, frames backups, etc. we should put MC WFS offset adjustment into our periodic checklist. Would be good to have a reminder system that pings us to check these items and wait for confirmation that we have done so.
Tonight, I've taken a bunch of data where the PRC is carrier locked and the ITM oplevs have the DC coupling FM turned on, as we use during locking. This is to inform new feedforward filters to stabilize the PRC angular motion, by using Wiener filtering with the POP QPD as the target, and local seismometers/accelerometers as witnesses. So far I've looked at the 1800 seconds leading up to GPS time 1122885600, but there has been plenty of locked time tonight if I need to retrieve more.
I've also measured the PRM ASC output torque -> POP QPD spot motion with high (>0.95) coherence from 0.1Hz to 10Hz.
Prefiltering so far consists of a 4th order elliptic LP at 5 Hz, with the target subtraction band being the 1-3Hz range.
With offline FIR filtering, the RMS pitch motion is reduced by a factor of 3 just with the STS1_X data. IIR fitting remains to be done.
The PRC yaw motion, which is marginally noisier, is a little more tangled up across X and Y.
Plots / filters forthcoming pending more analysis.
Short and sweet of it:
ran the ON script several times and it kept pulling it away from good alignment, even when TRX was > 0.9.
Also, for what reason was this model run at 16 kHz?? Makes no sense to me to have a low frequency servo system run so high. Only makes for more digital precision noise, more CPU time, etc. Of course, running it at 2k would mean having to think about all of the AA filtering needed to go up/down from 2k to 16k.
I've installed new filters for the T240 -> PRM static online angular feedforward that were trained after some of the recent changes to the signal chain of the relevant signals (i.e. the counts->velocity calibration that Rana did for the seismometers, and fixing the improper dewhitening of the POP QPD channels used as the Wiener target.)
Quickly trying them out now shows about the same level of performance as the previous ones, but the real performance I care about is during after-hours locking-time, so I'll take more measurements tonight to be posted here.
In preparation for the measurement of loss maps of arm cavities, I measured the relationship between:
the offset just after the demodulation of dithering loop (C1:ASS-YARM_ETM_PIT_L_DEMOD_I_OFFSET and C1:ASS-YARM_ETM_YAW_L_DEMOD_I_OFFSET)
the angle of ETMY measured with oplev (C1:SUS-ETMY_OL_PIT_INMONC1:SUS-ETMY_OL_PIT_INMON and C1:SUS-ETMY_OL_PIT_INMONC1:SUS-ETMY_OL_PIT_INMON)
while the dithering script is running. With the angle of ETMY, we can calculate the beam spot on the ETMY assuming that the beam spot on the ITMY is not changed thanks to the dithering. What we have to do is to check the calbration of oplev with another way to measure the angle, to see if the results are reliable or not.
I will report the results later.