I've been working on the Guardian script for locking the CO2 lasers. It now has the following states programmed:
DOWN : Resets the laser pzt position to center. Resets the chiller temperature to 20C. Turns off all servos
FIND_LOCK_POINT : Scans the internal pzt of the laser while measuring the power output using the thermopile. The thermopile is a little slow, so this takes a few seconds to do. It then looks at the slope of the resulting curve to work out if there is a suitable place to lock. It can lock to a positive or negative slope. If there is no good slope then it steps the chiller temperature by 0.03C (we may want to increase this) waits for 4minutes because there is a significant time lag (this may be too short to reach equilibrium temperture) and then retries to find a good point to lock the laser. It finishes by setting a setpoint value for the desired laser power and leaves the PZT at the voltage corresponding to this power.
LOCK_LASER: Engages an integrator between the thermopile readout and the PZT.
RESET_PZT_VOLTAGE : Slowly hands off the DC offset in the PZT voltage from the offset box to the integrator. The offset ends up at 37.5V, which is the centre of the PZT range. This offset plus the integrator output will now correspond to the PZT voltage for the desired laser power.
ENGAGE_CHILLER_SERVO: The voltage from the PZT integrator is used as the error signal to drive the servo for the chiller. The servo is engaged and gains are set.
ISS_ENGAGE : We don't yet need the intensity stabilization system so this state is just bypassed
LASER_UP : This state will be used to monitor the system while in use, looking to see if the power output of the laser exceeds certain boundaries, or whether the laser PZT reaches the limits of its range, which would indicate that the servo has lost lock on the laser.
We still need to setup the gains on the integrator stages for the laser pzt and the chiller. The chiller one is particularly awkward to monitor because the unit gain frequency is so low. The guardian script is currently located in the TCS folder /opt/rtcds/userapps/trunk/tcs/common/guardian/TCS_CO2.py
Alastair, Evan
We drove a line at 24.1 Hz in the TCS X AOM to see if it would show up in DARM.
A 0.003 ct excitation into TCS-ITMX_CO2_AOM_OUT_GAIN is enough to create a line in DARM with an SNR of ~5 for a 10-second FFT.
2015-01-30 22:52:15 to 22:57:15 Z.
After resetting all ISI and suspensions to a working state, aligning the IFO and spending two hours to gte DRMI to lock despite a good alignment, I could retuned the P2L of all test masses. I first tried to inject some DHARD_P noise and tune all four gains, but this didn't work out very well.
So I injected noise on the L2_LOCK_P channel of each test mass indipendently, and tuned the P2L gain. The one that got changed most is ETMY (it was compeltely wrong, sign included).
The table below show the old and new values
Old | New | |
---|---|---|
ITMX | 1.848 | 1.850 |
ITMY | 0.945 | 1.050 |
ETMX | 1.269 | 1.200 |
ETMY | 0.433 | -0.090 |
The attached plot shows the transfer function from DHARD_P (measured with noise) before and after. The coupling is reduced by aboput 15 dB above 14 Hz. A bit less below, as usual due to the phase rotation created by the roll mode band stops. In the plot, the two DARM spectra are both with noise injection, same amplitude.
7.0 EQ on Alaskan side of Russia. IFO closed early for the night.
The last day LHO has been suffering from high microseism, so we've had lots of time to ponder ground motion. JeffK noticed a seeming inconsistency on the DetChar summary pages, that maybe someone can clear up for us. The ASD for H1 ground motion last night seems has a microseism peak in Z at about 5 microns, but the BLRMS for that period indicates that the motion is about a micron, a factor of 5 disagreement. Attached pictures are screenshots of the Detchar page for last night, first is the ASD, second is the BLRMS. This could be partly because the two measures are calculated for different measures of amplitude, peak vs peak-to-peak vs RMS. But I think that at best explains a factor of 2 difference, not 5.
The ASD has units of m/rt(Hz), so to get RMS value, you have to multiply by square root of the frequency of interest. So 5 micron/rt(Hz at 0.1 Hz gives an RMS of ~1.5 micron.
There is also the problem of velocity versus displacement measurement, but since f is nearly 0.16 Hz, it doesn't make much difference.
This is just a quick listing of the tests that each IFO has in their DIAG_MAIN Guardians and their docstrings.
LHO
ALS: ALS checks, This can be seen when the beatnote drops down to 0-2 MHz and when (in dBm) it gets above 5. Checks to see if the ALS SHG Temperature Control Servo is on Nominal is 'ON'
BEAM_DIVERTERS: The Beam divereters should be closed after the ISC_LOCK state of CLOSE_BEAM_DIVERTERS #550. 1 == closed, 0 == open.
BECKHOFF: Beckhoff status check
Check some random Beckhoff channels to see if the system in running.
COIL_DRIVERS: Coil drivers functioning, If they stay at 0, it will bring up a notification
ESD_DRIVER: ESD driver status
HWS_SLEDS: HWS SLEDS are on
HW_INJ: Hardware injections running
ISI_RINGUP: ISI ring up motion as seen in alog24245, Only looking at the ETMs and non rotational dofs for now.
MC_WFS: MC WFS are engaged
OMC_PZT: The OMC PZT2 high voltage should be on, otherwise the OMC_LOCK Guardian will fail at the FIND_CARRIER step
OPLEV_SUMS: Optical lever sums nominal, Check only when the suspension is aligned.
PEM_CHANGE: Major environmental changes
PMV_HV: PMC high voltage is nominally around 4V, power glitches and other various issues can shut it off.
PSL_FSS: PSL FSS not oscillating
PSL_ISS: ISS diffracted power
PSL_NOISE_EATER: PSL noise eater engaged
RING_HEATERS: End station ring heaters on
SEI_STATE: SEI systems nominal, Also checks if the WD saturation counts are are greater than somepercent of the limit.
SEI_WD: SEI watchdog not tripped
SERVO_BOARDS: These are Beckhoff controlled channels and cannot be monitored by SDF yet.
SHUTTERS: Monitor the Beckhoff controlled shutters
SUS_PUM_WD: RMS watchdogs
SUS_WD: SUS watchdogs and OSEM input filter inmon on the quads
TCS_LASER: TCS laser OK, Switched ON, Power above 50W, No Flow Alarm, No IR alarm, Only for TCS X for now.
TIDAL_LIMITS: Tidal limits within range
LLO
ALS_LASER: ALS laser power above threshold
ALS_PLL: None
ALS_SERVO_POLARITY: ALS servo polarity monitors
BECKHOFF: BECKHOFF system monitor
BSOPLEV: Beamsplitter OpLev Monitor
IOP_DACKILL_MON: Monitors IOP DACKILL status and reporting faults
ISS_DIFFRACTED_POWER: ISS Diffracted Power monitor
OMC_PZT_HV: OMC PZT HV monitor
PARAMETRIC_INSTABILITY: PI not rung up
PRC_GAIN: PRC gain above threshold
SEI_ISI_T240_SATMON: SEI ISI T240 saturation monitors
SUS_QUAD_ESD_BMON: QUAD BIO ESD driver digital monitors
SUS_QUAD_ESD_DMON: QUAD ESD driver digital monitors
SUS_QUAD_L3_BIO_CHECK: QUAD L3 BIO switch consistency check
SUS_QUAD_PUM_WD: QUAD PUM RMS watchdog
static_vars: None
To get these I opened a python shell and imported inspect and the desired module, then...
for name, obj in inspect.gemembers(module_name):
if inspect.isfunction(obj):
print '{}: {}'.format(name, inspect.getdoc(obj))
Hey, TJ, here's a simpler way, that just prints registered tests and not other functions, for future reference:
servo:~ 0$ guardian -i DIAG_MAIN
--------------------
aLIGO Guardian Shell
--------------------
ezca prefix: H1:
system: DIAG_MAIN (/opt/rtcds/userapps/release/sys/h1/guardian/DIAG_MAIN.py)
In [1]: SYSDIAG.print_tests()
Registered tests:
SEI_STATE: SEI systems nominal
SUS_WD: SUS watchdogs and OSEM input filter inmon on the quads
SEI_WD: SEI watchdog not tripped
HWS_SLEDS: HWS SLEDS are on
PSL_ISS: ISS diffracted power
SHUTTERS: Monitor the Beckhoff controlled shutters
PSL_NOISE_EATER: PSL noise eater engaged
BECKHOFF: Beckhoff status check
SERVO_BOARDS: These are Beckhoff controlled channels and cannot be monitored by SDF yet.
HW_INJ: Hardware injections running
ESD_DRIVER: ESD driver status
RING_HEATERS: End station ring heaters on
ISI_RINGUP: ISI ring up motion as seen in alog24245,
BEAM_DIVERTERS: The Beam divereters should be closed after the ISC_LOCK state of
PEM_CHANGE: Major environmental changes
MC_WFS: MC WFS are engaged
COIL_DRIVERS: Coil drivers functioning
TIDAL_LIMITS: Tidal limits within range
PMV_HV: PMC high voltage is nominally around 4V, power glitches and other
PSL_FSS: PSL FSS not oscillating
TCS_LASER: TCS laser OK
SUS_PUM_WD: RMS watchdogs
OMC_PZT: The OMC PZT2 high voltage should be on, otherwise the OMC_LOCK Guardian will fail
ALS: ALS checks
OPLEV_SUMS: Optical lever sums nominal
In [2]:
1535 -1555 hrs. local -> To and from Y-mid Next manual over fill to be Sunday, Jan. 29th before 4:00 pm
The ASC model has been modified, and is ready for the 2f AS "WFS" centering.
The ADC inputs were made to be consistent with T1100472-v16. The spare AS_D (also called AS_X in the model) channels were used, as well as 8 more that had previously been unused. This means that any channels previously called AS_D no longer exist, as they have been replaced with the AS_A_RF90 channels.
So, the model now has 2 WFS demodulator blocks, AS_A_RF90 and AS_B_RF90. The I outputs (pitch and yaw) are sent to the ASC input matrices. Since these are 2f sensors, we can rotate all the signal into the I-phase, so the Q outputs are terminated in the model. These have been put at the end of the matrix so that no channel numbers / names will have changed.
It looks like the DC5 centering loop has always existed, and we just weren't using it, so I didn't add any filter banks for the control loops, nor did the output matrix change in the model. Daniel has already added the DC5 control filters and the DC5 matrix column to the medm screens.
The model compiles, and has been checked in to the svn. While I still have other ASC model modifications, this version should be ready for install during Tuesday maintenence if I don't get the other modifications done in time.
Medm screens have also been modified. They have white boxes for now that will be populated when we restart the model on Tues. I think we're ready to roll software-wise for the 2f centering.
State of H1: trying to lock, but has only made it to DRMI 1f one time in the last 90 minutes, useism and wind are high
Summary:
It looks like somehow Gabriele's DHARD Pitch injections (alog 25218) didn't get stopped properly on Wednesday night, and they've been going ever since. Ooops.
Gabriele thought that he stopped everything, and the workstation he was on has been logged out of and re-logged into by someone else, so I would think that awggui would have definitely stopped, but somehow it was still going. Anyhow, I cleared the test points for ASC and the excitation has actually stopped now.
Attached screenshot shows the excmon for the last 5 days. I don't know that this has prevented locking (Cheryl + commissioners had a 10+ minute lock earlier today), but it probably hasn't been helping.
Ed Merilh, Nick Anderson (TJ's cousin)
The final 17, spare, AOSEMs that we have in inventory are soldered and measurements have been taken to populate the spreadsheet in the DCC (pending). Betsy will complete assembly and Joe will follow with cleaning. The final count is approximately 78.
Re WP 7505
Making these gains unity greens the hardcoded medm making the state of the ISI look better by reducing the reds seen on the Overview screens. There are still other reds seen in Sensor Correction and Blend sections of the Overview but greening or graying these out will be more of an medm programming pain. I'm not sure I'll be able to 'fix' these...
The foton files have been committed. I've acceptted the changes in the SDF OBSERVE.snaps (down.snap for the BS.) I still need to accept these for the safe.snaps & the BS OBSERVE.snap. I'll complete that after the meeting currently attending.
Meanwhile--Let's not restart any ISI FEs.
Here are conlog reported differences to record the gains. If it is deemed a good idea to change the gain back just be sure to turn off the Match_G filter under the appropriate bank doing so in a reasonable order. Gains changed to zero are on banks not being used so there is no reason to mess with them--Jim and I like to turn paths off as much as possible.
The foton files are committed. JeffK grepped to extract the gains in the files and they are attached here too. I just looked at them again and I very sure I did not make any typos in generating the fotons. That is, the old gains (conlog) match the new gains in the fotons.
I've captured all the ISI SDFs for safe, observe, & down.snaps. These are committed to the svn except for the down (BS) as I don't know where that one is at the moment.
I've moved the ISI BS down.snap from the target area to the userapps area as h1isibs_down.snap and symbolic linked it back to the target area down.snap; it has been committed to the svn.
I spent some time looking at how we can reduce the DARM residual.
In the attached plot (template lives in evan.hall/Public/Templates/LSC/DarmResReduce_2015-01-23.xml), yellow shows the nominal DARM residual and estimated freerunning displacement.
Blue shows the residual after the addition of a 3 Hz resonant gain. I put this in LSC-DARM FM10, so the freerunning estimate should still be correct. [However, since the DARM filter bank is full, I had to overwrite some other filter. After this test was over, I reverted my changes and placed this RG filter in the LSC-OMC_DC filter bank for safekeeping.]
Red shows the residual after the addition of the 3 Hz resonant gain, as well as a microseism boost, which I put in LSC-OMC_DC. This affects the freerunning estimate, but the amplitude and phase changes at and above 10 Hz are minimal (less than 2 ° of phase change at 10 Hz).
Here is a plot similar to the one in 25053.
It shows the DCPD spectra from last saturday when I had a 6 Hz line injected, with the predicted upconversion from the DC readout quadratic term explaining the line at 12 Hz as well as the noise in the DCPDs at around 10 Hz. The red trace is the spectrum evan calls nominal above, where there were no changes to the DARM loop but the feed forward was retuned, as you can see the predicted upconversion is reduced by nearly 2 orders of magnitude at 10 Hz, and the upconversion around the calibration lines is reduced.
The black trace is once Evan had added both a boost and a resonant gain to the DARM loop, so we expect the DCPD specrtum to be reduced at low frqeuency simply because of the change in the DARM loop shape. You can see that there is also a reduction in the predicted upconversion around the calibration lines as well as at 10 Hz.
Incidentally I was looking at the residual spectra of LLO and LHO (from Jan 1 2016 00:00:00 UTC) for some other reason. I post the plot for the record.
Tagging GRD