40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 135 of 341  Not logged in ELOG logo
ID Date Author Type Category Subjectup
  4707   Thu May 12 23:41:47 2011 ranaUpdateCDSMEDM Snapshots not working

Looks like 2 different MEDM Snapshot functiions (at least) are broken.

The regular update of the screens here as well as the usual "Update Snapshot" and view "previous snapshot" button on all of the auto-generated screens.

Also, how do we add the snapshot button to the custom made screens?

  12277   Fri Jul 8 19:33:16 2016 PrafulUpdateComputer Scripts / ProgramsMEDM Tab on Summary Pages

A new MEDM tab has been added to the summary pages (https://nodus.ligo.caltech.edu:30889/detcharsummary/day/20160708/medm/), although some of the screens are not updated when /cvs/cds/projects/statScreen/cronjob.sh is run. In /cvs/cds/projects/statScreen/log.txt, the following error is given for those files: import: unable to read X window image `0x20011f': Resource temporarily unavailable @ error/xwindow.c/XImportImage/5027. If anyone has seen this error before or knows how to fix it, please let me know.

In the meantime, I'll be working on creating an archive of MEDM screens for every hour to be displayed on the summary pages.

  12279   Fri Jul 8 21:02:09 2016 KojiUpdateComputer Scripts / ProgramsMEDM Tab on Summary Pages

Very nice!

Some of the screens are up-to-date, and some are not. Are the errors associated with the screens that failed to get updated?

  12280   Fri Jul 8 21:15:03 2016 PrafulUpdateComputer Scripts / ProgramsMEDM Tab on Summary Pages

Thanks! Yes, only the screens that are not updated when the script is executed show this error. I'll try to keep debugging over the weekend.


Very nice!

Some of the screens are up-to-date, and some are not. Are the errors associated with the screens that failed to get updated?


  723   Wed Jul 23 13:52:26 2008 SharonUpdate MEDM changes
There is a new MEDM screen now when you go from c1ass>top>pem.
Instead of having 12 "mini filters" screens go to 8 outputs (with the wrong correlation impression from the table), we have a 24X8 matrix.
This matrix is there so you could choose which noise signals you want to send to the adaptive code. When you indicate the number of noise channels you are going to use
on the nAUX option on the screen top, you are choosing the channels 1 to nAUX. Channels 15-22 are the seismic and accelerometers we are now using. (you can see the order in Jenne's post 673).
Hope this will make things clearer.
Attachment 1: matrix
  10197   Mon Jul 14 17:51:34 2014 NichinUpdateComputer Scripts / ProgramsMEDM for PDFR system


 Successfully completed the rudimentary GUI for PDFR system. (users/nichin/PDFR)

Pressing any of the buttons above runs the script that does the following:

1) Change RF mux channel to the required one.

2) Frequency sweep on the network analyzer. The common sweep parameters are in a file named param_NWAG4395A.yml . PD specific parameters are in param_[PD name].yml in their respective folders

3) The transimpedance is calculated and the plot is saved as PDF in the respective folder for the PD. Each set of measurement data and plot is in a timestamped subfolder.

Further work:

To take transimpedance readings for each PD and create a canonical set of data that can be used to compare with data obtained for every measurement run.

  1177   Fri Dec 5 01:41:33 2008 YoichiConfigurationComputersMEDM screen snapshot now works on linux machines
As a part of my "make everything work on linux" project, I modified 'updatesnap' script so that linux machines can update MEDM screen snapshots.
Now, all 'updatesnap' in the subsystem directories (like medm/c1/lsc/cmd/updatesnap) are sym-link to /cvs/cds/caltech/medm/c1/cmd/updatesnap.
This script will take a window snapshot to a PNG file, and move the old snapshot to archive folders with date information added to the filename.
For compatibility, it also saves JPEG snapshot. Right now, most of 'view snapshot' menus in MEDM screens are calling 'sdtimage' command, which cannot display PNG files. I installed Imagemagick to op440m. We should change MEDM files to use 'display' command instead of 'sdtimage' so that it can show PNG files.
I've already changed some MEDM screens, but there are so many remaining to be modified.

PNG is better than JPEG for crisp images like screen shots. JPEG performs a sort of spacial Fourier transformations and low-pass filtering to compress the information. If it is used with sharp edges like boundaries of buttons on an MEDM screen, it naturally produces spacial aliasing (ghost images).

I also created several sym-links on the apps/linux/bin directory to mimic the Solaris-only commands, such as 'sdtimage', 'nedit' and 'dtterm'.
For example, nedit is symbolic linked to gedit. Many MEDM buttons/menus, which used to be incompatible with linux, now work fine on the linux machines.
  4543   Tue Apr 19 15:48:43 2011 josephbUpdateCDSMEDM screens and Front Ends updated to new Matrices


The original matrix naming conventions for the front ends was broken.  It used _11, _12,...,_1e, _1f, _110, _111 and so forth.  The code was changes to use _1_1, _1_2,...,_1_16,_1_17, and so on.

In addition the matrix of filter banks was modified to use the same naming convetion (instead of starting at zero, it now start with one).

Work Done:

I rebuilt all the models, and restarted them all.

I wrote a simple script to modify the burt restore files to have the correct names for all the stored matrix values.

I also modified all the suspension screens, by modifying the default screens in /opt/rtcds/caltech/c1/medm/master/

The C1SUS, C1SCX, C1SPX, C1SCY, C1SPY, and C1MCS models had their foton filter files modified to put filters into the newly changed named filters

  4544   Tue Apr 19 17:34:02 2011 KojiUpdateCDSMEDM screens and Front Ends updated to new Matrices

Just a curiosity:

I just wonder how you have distingushed the difference between _111 and _111.

They are equivalent alone themselves. Have you looked at the contexts of the lines?
Or you just did not have the larger matrix than 16x16, did you?

  4545   Wed Apr 20 11:02:18 2011 josephbUpdateCDSMEDM screens and Front Ends updated to new Matrices
We simply didn't any matrices larger than 16x16. If we had, than that matrix would not have worked properly since the beginning.


Just a curiosity:

I just wonder how you have distingushed the difference between _111 and _111.

They are equivalent alone themselves. Have you looked at the contexts of the lines?
Or you just did not have the larger matrix than 16x16, did you?


  13740   Mon Apr 9 16:30:21 2018 KiraUpdatePEMMEDM setup

I created an MEDM screen for the PID control. In addition, I added a new EPICS channel for the setpoint so that it could be adjusted using the MEDM screen.

Edit: forgot to mention the channel name is C1:PEM-SEIS_EX_TEMP_SETPOINT

Edit #2: the path for the MEDM is /opt/rtcds/caltech/c1/medm/c1pem/C1PEM_SEIS_EX_TCTRL.adl

Attachment 1: MEDM_screen.png
  13745   Tue Apr 10 15:42:08 2018 KiraUpdatePEMMEDM setup

An update to the screen. I changed the min/max values for some of the parameters, as well as changing the script so that I could specify the integral gain in terms of 1e-5. I've also added this screen to the PEM tab in the sitemap.

Attachment 1: MEDM_2.png
  13748   Thu Apr 12 10:15:33 2018 KiraUpdatePEMMEDM setup

Another update. I've changed the on/off button so that it's visible which state it's in. I did that by changing the type of C1:PEM-SEIS-EX_TEMP_SLOWLOOP from ai to bi (I checked the FSS script and copied the entry for the slowloop). Previously, MEDM was giving me an error that it wasn't an ENUM value when I wanted to use a choice button to indicate the value of slowloop, and this solved the issue. I've also added a StripTool button.

Attachment 1: MEDM_3.png
  13750   Fri Apr 13 00:20:46 2018 ranaUpdatePEMMEDM setup

changed the setpoint of the EX Seismomter T ctrl servo from 35 to 39 C to see if this helps the stability by decreasing the cooldown time constant.

  3914   Sun Nov 14 02:59:31 2010 ranaConfigurationGeneralMEDM snapshots web page

Since Nodus is a Solaris machine it can barely handle doing the ImageMagick commands (such as convert and import). I removed the auto MEDM snapshot routine from it

awhile ago and I think the rate of ELOGD crashes has decreased, although its not definitive.

The snapshots have now been re-actived to run on MAFALDA, after I fixed the absolute pathnames in the scripts and installed (via yum) the packages that mafalda

needed to run this (Xvfb, openmotif, compat, etc.). The snapshots web page is now refreshing by itself and the statScreen/cronjob.sh is running on mafalda 5x per hour.


  6654   Mon May 21 21:27:39 2012 yutaUpdateCDSMEDM suspension screens using macro

 We need more organized MEDM screens. Let's use macro.

What I did:
1. Edited /opt/rtcds/userapps/trunk/sus/c1/medm/templates/SUS_SINGLE.adl using replacements below;

sed -i s/#IFO#SUS_#PART_NAME#/'$(IFO)$(SYS)_$(OPTIC)'/g SUS_SINGLE.adl
sed -i s/#IFO#SUS#_#PART_NAME#/'$(IFO)$(SYS)_$(OPTIC)'/g SUS_SINGLE.adl
sed -i s/#IFO#:FEC-#DCU_ID#/'$(IFO):FEC-$(DCU_ID)'/g SUS_SINGLE.adl
sed -i s/#CHANNEL#/'$(IFO):$(SYS)-$(OPTIC)'/g SUS_SINGLE.adl
sed -i s/#PART_NAME#/'$(OPTIC)'/g SUS_SINGLE.adl

2. Edited sitemap.adl so that they open SUS_SINGLE.adl with arguments like
instead of opening ./c1mcs/C1SUS_MC1.adl.

3. I also fixed white blocks in the LOCKIN part.

  Now you don't have to generate every suspension screens. Just edit SUS_SIGNLE.adl.

Things to do:
 - fix every other MEDM screens which open suspension screens, so that they open SUS_SINGLE.adl
 - make SUS_SINGLE.adl more cool

  6657   Tue May 22 11:32:02 2012 JamieUpdateCDSMEDM suspension screens using macro

Very nice, Yuta!  Don't forget to commit your changes to the SVN.  I took the liberty of doing that for you.  I also tweaked the file a bit, so we don't have to specify IFO and SYS, since those aren't going to ever change.  So the arguments are now only: OPTIC=MC1,DCU_ID=36.  I updated the sitemap accordingly.

Yuta, if you could go ahead and modify the calls to these screens in other places that would be great.  The WATCHDOG, LSC_OVERVIEW, MC_ALIGN screens are ones that immediately come to mind.

And also feel free to make cool new ones.  We could try to make simplified version of the suspension screens now being used at the sites, which are quite nice.

  6659   Tue May 22 11:47:43 2012 JamieUpdateCDSMEDM suspension screens using macro

Actually, it looks like we're not quite done here.  All the paths in the SUS_SINGLE screen need to be updated to reflect the move.  We should probably make a macro that points to /opt/rtcds/caltech/c1/screens, and update all the paths accordingly.

  6663   Tue May 22 20:46:38 2012 yutaUpdateCDSMEDM suspension screens using macro

I fixed the problem Jamie pointed out in elog #6657 and #6659.

What I did:
1. Created the following template files in /opt/rtcds/userapps/trunk/sus/c1/medm/templates/ directry.


To open these files, you have to define $(OPTIC) and $(DCU_ID).
For SUS_SINGLE_TO_COIL_X_X.adl, you also have to define $(FILTER_NUMBER), too. See SUS_SINGLE_TO_COIL_MASTER.adl.

2. Fixed the following screens so that they open SUS_SINGLE.adl.


  6621   Tue May 8 03:38:28 2012 JenneUpdateGeneralMEDM svn emergency!!!

We officially are *failures* at svn-ing our scripts and screens.  This is NOT OKAY.  I checked in a few things, since there were already folders on the svn, but many things don't have folders created.  It's a hot mess.  We need to get our shit together, and become as disciplined about MEDM and scripts as we have been (under Jamie's watchful eye) of the simulink models.

I'm not going to start fixing it all right now.  It might not even happen at this point until after GWADW, but it needs to happen.

  9450   Sat Dec 7 19:29:14 2013 KojiUpdateCDSMEDM/ADL: replace rectangle with specified objects

In order to unify the theme for MEDM screens, I'll have to make many combinations of rectangles, polygons, and invisible related-screen buttons.
Everytime I change the size of the block, I have to modify the size of this combination. It is impossile for me.

So, I made a script to replace a certain type of rectangles with a combination of the objects with the same (or related) size.

The script is here (so far)



cat C1LSC_OVERVIEW_ADC.adl | ./rect_replace.py > tmp.adl


The script takes stdin and spits the result to stdout. It parses a given ADL file. When a "rectangle" object
with Channel A with a string "REPLACE_XXXX", it replaces it with the objects predefined as "XXXX".

So far, there is only "TYPE1" for the predefinition. It actually takes another argument to specify the
path of the related screen to open when the block is clicked. The path should be filled in "Channel B"
slot of the original rectangle. (See Attachment 1)

The "TYPE1" style has the function calls as indicated below. place_rect is to place a rectangle object. You can
specify the filling method and color. place_rel_disp is to place an invisible button with the link to the specified
path by strOpt. place_polygon places a polygon. The cordinate array for the polygon is described with
the relative positions from the specified position.

        place_rect(rect_x-4,         rect_y-4,        rect_w+7, rect_h+7, "outline",  0) # outline white box
        place_rel_disp(rect_x, rect_y, rect_w, rect_h, strOpt, 0, 14)                    # invisible button
        place_rect(rect_x,           rect_y,          rect_w,   rect_h,   "fill",     3) # main gray box
        place_rect(rect_x+3,         rect_y,          rect_w-6, 3,        "fill",     0) # top white rim
        place_rect(rect_x,           rect_y,          3,        rect_h-3, "fill",     0) # left white rim
        place_rect(rect_x+rect_w-3 , rect_y,          3,        rect_h,   "fill",    10) # right gray rim
        place_rect(rect_x,           rect_y+rect_h-3, rect_w-3, 3,        "fill",    10) # bottom gray rim
        place_polygon(rect_x+rect_w-3,rect_y,3,3, "fill",  0, [[0,0],[2,0],[0,2],[0,0]]) # top-right white triangle
        place_polygon(rect_x,rect_y+rect_h-3,3,3, "fill",  0, [[0,0],[2,0],[0,2],[0,0]]) # bottom-left white triangle

Attachment 1: rectangle_config.png
Attachment 2: rect_replace_result.png
  9466   Fri Dec 13 13:45:50 2013 KojiUpdateCDSMEDM/ADL: replace rectangle with specified objects

rect_replace.py script was updated.
This sounds crazy but it was actually quite easy as I could use a free font data.



cat C1LSC_OVERVIEW_ADC.adl | ./rect_replace.py > tmp.adl


The script takes stdin and spits the result to stdout. It parses a given ADL file. When a "rectangle" object
with Channel A with a string "REPLACE_XXXX", it replaces it with the objects predefined as "XXXX".

Now new type "CHAR" (i.e. REPLACE_CHAR) was added. This replaces the string in Channel B slot
into 5x7 dot matrix representation of the string with the specified color. The dot size is derived from the
height of the original rectangular object.


Attachment 1: screen_shot.png
  6925   Fri Jul 6 01:39:56 2012 yutaUpdateLockingMI + Y arm ALS succeed, but not both

MI with X arm length stabilized off resonance and Y arm length stabilized at resonance using ALS succeed, but I couldn't bring X arm to IR resonance. This maybe because of too much phase fluctuation. I will calculate it later.

What I did:
  1. Brought X arm to IR resonance.
  2. Brought Y arm to IR resonance.
  3. Brought X arm to off-resonance.
  4. Brought Y arm to off-resonance. (1-4 are to play with arms)
  5. Locked MI in dark fringe using AS55_Q as error signal and BS as actuator.
  6. Brought Y arm to IR resonance. This flips sign, so MI lock will be bright fringe.
  7. Brought X arm to IR resonance. This destroys MI lock.

  Below is the plot showing what I did

  I also tried to lock MI after both arms are stabilized at resonance, but it failed, too.
  MI + X arm ALS fails. I think this is from too much BS motion to compensate phase fluctuation of arm reflected beam.
  MI + Y arm ALS fails when I want to lock in dark fringe. Only bright fringe works.

New compact MEDM screen for ALS:

  It has (almost) everything you need for ALS. It lives in /opt/rtcds/caltech/c1/medm/c1gcv/master/C1ALS_COMPACT.adl.

  - Button for turning on/off ALS. It even does "clear history"!
      (light brown button "ON plus", "ON minus", "OFF"; runs /opt/rtcds/caltech/c1/scripts/ALS/easyALS.py; Currently, you have to guess the sign of gain. Ctrl-C if the sign was wrong. It will be nice if script can handle this. Use lockin to detemrine the sign?)

  - Button for finding IR resonance.
      (pink button "IRres"; runs /opt/rtcds/caltech/c1/scripts/ALS/findIRresonance.py)

  - Button for bringing arm length to off-resonance.
      (pink button "-10", "+10"; steps +/- 10 deg offset)

  - Button for toggling green shutters.
      (green button "shutter"; runs /opt/rtcds/caltech/c1/medm/c1gcv/cmd/toggle(X|Y)Shutter.py)

  - Button for switching monitors.
      (grey button "Video (X|Y)arm"; runs /opt/rtcds/caltech/c1/scripts/general/Video_(X|Y)arm.csh)

  - Slider for changing temperature of end lasers. You can also open temperature servo screens from orange "(X|Y)SLOW" button.


  4638   Thu May 5 13:55:08 2011 kiwamuUpdateLSCMI locking : calibration of BS and ITMs actuators

EDIT by KI on 15/5/2011:

The calibration of MICH error signal was wrong by a factor of 2.


The open loop transfer functions of the Michelson locking have been measured.

The purpose of this excise is to calibrate the coil-magnet actuators on BS and ITMs.

The estimated actuation coefficients are :

 BS = 3.69e-08 [m/counts]
 ITMX = 8.89e-09 [m/counts]
 ITMY = 9.22e-09 [m/counts] 

I guess the accuracy is something like 5 % because the calibration of the MI optical gain relies on a peak-to-peak measurement.

A next step is to calibrate the PRM actuator and the PRC optical gain.



The Michelson was locked with different actuators in every measurement. I locked the Michelson to the dark fringe with BS, ITMX and ITMY in each time.

The measured peak-to-peak value in the error signal was 20.2 counts, corresponding to a sensor gain of 5.96e+07 [counts/m]. Note that I used AS55_Q for the locking.

After locking the MI I took the open loop transfer function by injecting broadband noise from DTT.

Then the data were fitted coarsely.  In the fitting I used the resonant frequencies that Leo reported recently (http://blue.ligo-wa.caltech.edu:8000/40m/Mechanical_Resonances).

The Q-values are assumed to be 5 because of the local dampings. As a result the fitting gives us the actuator coefficients.

Here is a plot showing the measured open loop transfer functions. The solid lines represent the fittings.



(by the way)

- The delay time including ADC/DAC and RFM looks quite big. According to the fitting the delay is something like 600 usec.

This is about two times larger than the one reported before (see this entry). I will re-measure it with empty filters.

  4639   Thu May 5 14:40:14 2011 KojiUpdateLSCMI locking : calibration of BS and ITMs actuators

I've got confused

1) Are these the DC responses of the coils? If that is true, we need to specify the resonant frequency of each suspension to get the AC response.

2) Are these the AC responses well above the resonant freqs? In that case, The responses should be x.xxx / f^2 [m/counts]


The open loop transfer functions of the Michelson locking have been measured.

The purpose of this excise is to calibrate the coil-magnet actuators on BS and ITMs.

The estimated actuation coefficients are :

 BS = 3.69e-08 [m/counts]
 ITMX = 8.89e-09 [m/counts]
 ITMY = 9.22e-09 [m/counts]

  6916   Thu Jul 5 01:34:11 2012 yutaUpdateLockingMI with X arm ALS

I tried to lock FPMI using ALS, but I could not take care of ALS for both arms + MI. So, I decided to try one arm + MI.
I don't know why, but I couldn't make it. We need investigation.

Procedure I took:

  1. Align FPMI.

  2. Misalign ETMY.

  3. Press CLEAR HISTORY for C1:ALS-BEATY_FINE_PHASE filter module.
    Are there any command to do this?

  4. Stabilize X arm length.
    I made a script for turning on ALS servo nicely. It currently lives in /users/yuta/scripts/easyALS.py. You have to specify the arm(X or Y) and sign of the gain. It needs to be refined.

  5. Sweep the offset and stabilize X arm lenth to IR resonance.
   (Ran /opt/rtcds/caltech/c1/scripts/ALS/findIRresonance.py Xarm)

  6. Tried to lock MI. I tried to do this by feeding back the signal to BS or ITMs. Both worked fine when ALS holds X arm to IR off-resonance, but I couldn't lock MI when ALS holds X arm to IR resonance. This may come from too much phase fluctuation from X arm reflection. We should investigate this.

Handing off the servo from ALS to LSC:

  I made a script to do this. It just decreases ALS gain and increases LSC gain with 30 sec ramp time. It needs to be refined, so it currently lives in /users/yuta/scripts/handofftoLSC.py. It worked fine without loosing IR transmission.

ALS stability:
  Current stabiliy of the ALS servo is not enough. It doesn't stay for more than ~ 10min. I suspect this is from frequency servo of end lasers losing lock, or beat signals being too small for the beat box because of intensity fluctuation of green transmission. We definitely need to align end greens, but it is painful.

  16984   Mon Jul 11 11:56:40 2022 he YehonathanUpdateBHDMICH AS55 noise budget

I calculated a noise budget for the MICH using AS55 as a sensor. The calculation includes closed-loop TF calculations.

The notebook and associated files can be found on https://git.ligo.org/40m/bhd/-/blob/master/controls/compute_MICH_noisebudget.ipynb.

Attachment 1 shows the loop diagram I was using. The equation describing the steady-state of the loop is

\left[\mathbb{I}-G \right]\begin{pmatrix} \gamma \\ \delta \\ \Delta\end{pmatrix} = \begin{pmatrix} \alpha \\ \beta \\ \epsilon\end{pmatrix}

, where G is the adjacency matrix given by

G=\begin{pmatrix} 0 & 0 & AE_2\\ 0 & 0 & BE_2 \\ E_1C & E_1D & 0 \end{pmatrix}

First, the adjacency matrix G is constructed by stitching the small ABCDE matrices together. Once the inverse of (I-G) is calculated we can simply propagate any noise source to \delta and then calculate \left[\mathbb{I}-E(CA+DB)\right]B^{-1}\delta to estimate the displacement of the optics. 

Attachment 2 shows the calculated noise budget together with Yuta's measurement.

All the input and output electronics are clumped together for now. Laser noise is irrelevant as this is a heterodyne measurement at 55MHz.

It seems like there is some mismatch in the calibration of the optical gain between the measurement and model. The missing noise at 3-30Hz could be due to angle-to-length coupling which I haven't included in the model.

Attachment 1: Control_Diagram.pdf
Attachment 2: MICH_AS55_Noise_Budget.pdf
  16989   Tue Jul 12 09:14:50 2022 ranaUpdateBHDMICH AS55 noise budget

Looking good:

  • I think the notches you see in he measured noise are a clue as to the excess noise source. You can try turning some notches on/off.
  • Laser noise does matter a bit more subtley: the low freq noise couples to AS55 through the RMS deviation of the MICH loop from the zero crossing, and the noise of the 55 MHz modulation.
  • Jitter in the IMC couples to MICH through the misalignment of the Michelson.
  • As you rightly note, the optical lever feedback on the ITMs and BS also make length noise through the suspension actuator imbalance and the spot mis-centering.
  16996   Wed Jul 13 10:54:39 2022 YehonathanUpdateBHDMICH AS55 noise budget

I fixed some mistakes in the budget:

1. The BS pendulum resonance was corrected from 0.8Hz to 1Hz

2. Added missing X3 filter in the coil filters

3. Optical gain is now computed from MICH to AS55 instead of BS to AS55 and is calculated to be: 9.95e8 cts/m.

4. Coil driver gain is still unmeasured but it is found to be 1.333 to make the actuation calibration from BS to MICH match the measurement (see attachment 1).

Attachment 2 shows the resulting MICH OLTF.

Laser noise was added to the budget in a slightly ad-hoc fashion (will fix later): Yuta and I measured MC_F and computed MC_F*(Schnupp asymmetry)/(Laser frequency). Attachment 3 shows the updated noise budget.

Attachment 1: BS_MICH_ACtuation_Calibration.pdf
Attachment 2: MICH_AS55_Model_Measurement_Comparison.pdf
Attachment 3: MICH_AS55_Noise_Budget.pdf
  10503   Fri Sep 12 15:10:09 2014 JenneUpdateASCMICH ASS

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. 

  12979   Wed May 10 01:56:06 2017 gautamUpdateGeneralMICH NB - OL coupling

Last night, I tried to estimate the contribution of OL feedback signal to the MICH length error signal.

In order to do so, I took a swept sine measurement with a few points between 50 Hz and 500 Hz. The transfer function between C1:LSC-MICH_OUT_DQ and the Oplev Servo Output point (e.g. C1:SUS-BS_OL_PIT_OUT etc) was measured. I played around with the excitation amplitude till I got coherence > 0.9 for the TF measurement, while making sure I wasn't driving the Oplev error point too hard that side-lobes began to show up in the MICH control signal spectrum.

The Oplev control signal is not DQ-ed. So I locked the DRMI again and downloaded the 16k data "live" for ~5min stretch using cdsutils.getdata on the workstation. The Oplev error point is DQ-ed at 2k, but I found that the excitation amplitude needed for good SNR at the error point drove the servo to the limiter value of 2000cts - so I decided to use the control signal instead. Knowing the transfer function from the Oplev *_OUT* channel to C1:LSC-MICH_IN1_DQ, I backed out the coupling - the transfer function was only measured between 50 Hz and 500 Hz, and no extrapolation is done, so the estimation is only really valid in this range, which looks like where it is important anyways (see Attachment #2, contributions from ITMX, ITMY and BS PIT and YAW servos added in quadrature).

I was also looking at the Oplev servo shapes and noticed that they are different for the ITMs and the BS (Attachment #1). Specifically, for the ITM Oplevs, an "ELP15" is used to do the roll-off while an "ELP35" is employed in the BS servo (though an ELP35 also exists in the ITM Oplev filter banks). I got lost in an elog search for when these were tuned, but I guess the principles outlined in this elog still hold and can serve as a guideline for Oplev loop tweaking.

Coil driver noise estimation to follow


I think the most important next two items to budget are the optical lever noise, and the coil driver noise. The coil driver noise is dominated at the moment by the DAC noise since we're operating with the dewhitening filters turned off.

GV 10 May 12:30pm: I've uploaded another copy of the NB (Attachment #3) with the contributions from the ITMs and BS separated. Looks like below 100Hz, the BS coupling dominates, while the hump/plateau around 350Hz is coming from ITMX.

Attachment 1: OL_BS_ITM_comp.pdf
Attachment 2: C1NB_disp_40m_MICH_NB_8_May_2017.pdf
Attachment 3: C1NB_disp_40m_MICH_NB_10_May_2017.pdf
  12981   Wed May 10 16:53:38 2017 ranaUpdateGeneralMICH NB - OL coupling

That's a good find.

  1. The OL control signal can be gotten from the DQ error signal. You just need to multiply it by the digital filters and the gain. The state of the filters and the gain can be gotten using matlab tools like getFotonFilt.m. For python ChrisW wrote a tool called foton.py which is in the GDS SVN. You should ask him for it. It requires access to some ROOT libraries to run.
  2. We should have sub budgets for everything like OL and thermal, etc. They should be automatically produced each time you run the main budget and should be separate pages in the same PDF file. Jamie / Chris may have something going along these lines so check to see if they are already on it.
  12974   Fri May 5 10:13:02 2017 ericqUpdateGeneralMICH NB questions
Is suspension thermal noise missing? I take it "Thermal" refers just to thermal things going on in the optic, since I don't see any peaks at the bounce/roll modes as I would expect from suspension thermal noise.

What goes into the GWINC calculation of seismic noise? Does it include real 40m ground motion data and our seismic stacks?

I'm surprised to see such a sharp corner in the "Dark Noise" trace, did you apply the OLG correction to a measured dark noise ASD? (The OLG correction only needs to be applied to the in-lock error signals to recover open loop behavior, there is no closed loop when you're measuring the dark noise so nothing to correct for.)
  12975   Fri May 5 12:10:53 2017 gautamUpdateGeneralMICH NB questions

Is suspension thermal noise missing? I take it "Thermal" refers just to thermal things going on in the optic, since I don't see any peaks at the bounce/roll modes as I would expect from suspension thermal noise. What goes into the GWINC calculation of seismic noise? Does it include real 40m ground motion data and our seismic stacks? I'm surprised to see such a sharp corner in the "Dark Noise" trace, did you apply the OLG correction to a measured dark noise ASD? (The OLG correction only needs to be applied to the in-lock error signals to recover open loop behavior, there is no closed loop when you're measuring the dark noise so nothing to correct for.)

I've included the suspension thermal noise in the "Thermal" trace, but I guess the GWINC file I've been using to generate this trace only computes the thermal noise for the displacement DoF. I think this paper has the formulas to account for them, I will look into including these.

For the seismic noise, I've just been using the seis40.mat file from the 40m SVN. I think it includes a model of our stacks, but I did not re-calculate anything with current seismometer spectra. In the NB I updated yesterday, however, I think I was off by a factor of sqrt(3) as I had only included the seismic noise from 1 suspended optic. I've corrected this in the attached plot.

For the dark noise, you are right, I had it grouped in the wrong dictionary in the code so it was applying the OLG inversion. I've fixed this in the attached plot.
Attachment 1: C1NB_disp_40m_MICH_NB_30_April_2017.pdf
  12976   Sat May 6 21:52:11 2017 ranaUpdateGeneralMICH NB questions

I think the most important next two items to budget are the optical lever noise, and the coil driver noise. The coil driver noise is dominated at the moment by the DAC noise since we're operating with the dewhitening filters turned off.

  13984   Mon Jun 18 19:47:02 2018 gautamUpdateGeneralMICH actuator calibration


The actuator (pendulum) gains for the Beam Splitter and the two ITMs were measured to be:

BS: 9.54 +/- 0.05 nm/ct [100 ohm series resistor in coil driver board]

ITMX: 2.44 +/- 0.01 nm/ct [400 ohm series resistor in coil driver board]

ITMY: 2.44 +/- 0.02 nm/ct [400 ohm series resistor in coil driver board]

Counts here refers to DAC counts at the output of the coil filter banks (as opposed to counts at the LSC servo output). The dominant (systematic) uncertainty (which isn't quoted here) in this measurement is the determination of the peak-to-peak swing of the dark port sensor, AS55_Q. I estimate this error to be ~1ct/33cts = 3%. These values are surprisingly consistent with one another once we take into account the series resistance.


The last time this was done, we used ASDC to do the measurement. But I don't know what signal conditioning ASDC undergoes (in PD or in readout electronics). In any case, in my early trials yesterday, ASDC was behaving unpredictably. So I decided to do redo the measurement.

[Attachment #1]- Flowchart describing the calibration procedure.

[Attachment #2] - AS55_Q output while the Michelson was freeswinging. I had first aligned the ITMs using ASS. The peak-to-peak value of this corresponds to \lambda/4. So we know AS55_Q in terms of cts/m of MICH displacement.

[Attachment #3] - Magnitudes of transfer function from moving one of the MICH optics, to the now calibrated AS55_Q. Fits are to a shape a/f^2, with a being the fitted parameter. Coherence during the measurement is also plotted.

  • Note that the excitation is applied to the channels C1:SUS-<optic>_LSC_EXC, for <optic> in [BS, ITMX, ITMY]. But since my de-whitening board re-work to remove the analog x3 gain, there is a digital x3 gain in the coil driver filter banks. So while the calibration numbers given above are accurate, be aware that when using them for sensing matrix measurements etc, you have to multiply these by x3.
  • Furthermore, moving the BS by x results in a Michelson length change of \sqrt{2}x, and this has been factored into the above number.

Next Steps:

  1. Now that I have a calibration I trust more, re-analyze my DRMI sensing matrix data. Actually the sensing response numbers aren't significantly different from what I have been assuming. It's just that in terms of counts applied at the LSC input of a suspension, there is a digital x3 gain that has to be explicitly factored in.
  2. Calibrate POX and POY by locking the arms and driving the now calibrated ITMs by a known number of counts.
  3. Calibrate the ETMs, and MC1/MC2/MC3 by looking at calibrated POX/POY.
  4. Lock DRMI, and calibrate SRM and PRM.


[1] - http://www.phys.ufl.edu/~bernard/papers/CQG20_S903.pdf

Attachment 1: AS55cal_process.pdf
Attachment 2: AS55cal.pdf
Attachment 3: MICH_act_calib.pdf
  9317   Wed Oct 30 03:36:51 2013 JenneUpdateLSCMICH and PRCL UGFs change with ALS enabled

Masayuki was able to hold both arms off-resonance with ALS long enough for me to lock the PRMI (arms still held off resonance), and take a set of transfer functions.

MICH gain is still -2.0, PRCL gain is still 0.070, which, with the ETMs misaligned, gave me UGFs of 70 for MICH and 180 for PRCL.

Now, however, with the ETMs aligned, but arms held off resonance with ALS, the UGFs have been lowered by a factor of 2 in frequency!  What is doing this??  MICH is now 40 Hz, and PRCL is now 80 Hz.

We measured the MICH and PRCL loops for several arm powers, and there was no change, at least until the arms were both resonating with powers of ~4 . 

After misaligning the ETMs, I remeasured the loops, and the UGFs went back up to where they started.

  9314   Wed Oct 30 01:44:13 2013 JenneUpdateLSCMICH and PRCL gains adjusted (Config file saved)


I am now taking transfer functions of the MICH and PRCL loops to make sure that we have the gains about right.

 I have set the PRCL UGF to be about 180Hz, and the MICH UGF to be about 70 Hz. 

This is with locking on REFL165 I&Q, with MICH gain of -2.0 and PRCL gain of 0.70 . 

The PRCL loop only has about 30 degrees of phase margin, and is not near the top of its phase bubble.  During the day, I need to look at why we don't have more phase near 200 Hz.

  6334   Tue Feb 28 16:39:25 2012 kiwamuUpdateLSCMICH and PRCL signals in a simulation

I briefly ran a Optickle code to see how the PRC macroscopic length screws up the sensing matrix in the PRMI configuration.

Especially I focused on the optimum demodulation phases for the MICH and PRCL signals to see how well they are separated in different PRC length configuration.

It seems that the demod phases for MICH and PRCL are always nicely separated by approximately 90 degree regardless of how long the PRC macroscopic length is.

If this is true, how can we have such a strange sensing matrix ??


(Simulation results)

 The plots below show the simulation results. The x-axis is the macroscopic length of PRC in a range from 6.3 meter to 7.3 meter.
The y-axis is the optimum demodulation phases for MICH (blue) and PRCL (black).
The red line is the difference between the MICH and PRCL demodulation phases.
The left plot is for the REFL11 signals and the right plot is for the REFL55 signals.
When the difference is 90 degree, it means we can nicely separate the signals (i.e. REFL11I for PRCL and REFL11Q for MICH).
Obviously they are always nicely separated by ~ 90 deg.



Quote from #6330
The lock of the PRMI doesn't look healthy, especially the sensing matrix doesn't make sense at all (#6283).
A very staring thing in the sensing matrix is that the REFL11 and REFL55 didn't show the 90 degree separation between MICH and PRCL.


  6335   Tue Feb 28 16:44:56 2012 ranaUpdateLSCMICH and PRCL signals in a simulation


 Like I said, this is possible if you fail to set up the OSA to look at the sidebands at BOTH the AS and REFL ports at all times. Don't waste your time - set up an OSA permanently!

  9118   Mon Sep 9 20:46:28 2013 MasayukiUpdateLSCMICH calbration

[Manasa, Masayuki]

We took a bunch of measurements. Transfer function and power spectrum using DTT. They will be used to obtain calibrated MICH in-loop and free-running noise. Detail Elog with plots will follow very soon.

  9121   Tue Sep 10 17:35:50 2013 Masayuki, ManasaUpdateLSCMICH calbration


[Manasa, Masayuki]

We took a bunch of measurements. Transfer function and power spectrum using DTT. They will be used to obtain calibrated MICH in-loop and free-running noise. Detail Elog with plots will follow very soon.

 [Masayuki, Manasa]

Estimation of free-running MICH displacement noise:

Method 1. Assuming AS55_Q_err to be a linear sensor, as shown in (1) of figure below, free-running MICH noise (V_d) can be estimated by measuring V_err and the OLTF G. H can be estimated by using method explained in elog

 Method 2. Considering that the AS55_Q signal might be distorted or saturated, method 1 may not be precise. In method 2, we will use the ASDC as the sensor (S' in (3)) instead and lock MICH using ASDC in mid-fringe to calibrate the ITM actuators.




What we did:

1. Estimate H' from free-running ASDC signal (bright to dark fringe).
2. With MICH locked on ASDC, give an excitation signal to C1:LSC-SUS_XXXX_EXC (XXXX could be ITMX or ITMY) and measure R'. [(3) of schematic]
3. Measure OLTF of MICH locked on ASDC (hence estimate L). [(3) of schematic]
4. With MICH locked on AS55_Q, give an excitation signal to C1:LSC-SUS_XXXX_EXC (XXXX could be ITMX or ITMY) and measure R1. [(2) of the schematic] 



OLTF of MICH locked on ASDC




Actuator excitation to MICH transfer function (MICH locked using ASDC) 


* y axis (no units)

Figure 3:
Actuator excitation to MICH transfer function (MICH locked using AS55Q)


* y axis (no units)

Figure 4:
Free-running MICH noise



1. By using the second sensor, we also eliminate the effect of the MICH servo loop locked on AS55_Q (Estimated V_d does not depend on G but only on G').

2. The free-running MICH noise is still suppressed at 1Hz. This should be coming from the effect of the UGF of the loop at ~10Hz and the vicinity to the pendulum frequency at 1Hz.


Edit/Masayuki// This noise curve is not collect, especially in low frequency region. We used the measured OLTF for compensating the free running noise, but that is not collect in low frequency region. So we should model the OLTF and fit that into the measured OLTF. We will fix this soon.



  9127   Thu Sep 12 23:36:25 2013 MasayukiUpdateLSCMICH calbration

For Modelling of the OLTF, I measured the response of the BS suspension. I used the OSEM sensor for measurement. The attatchment1 is the measured TF from C1:SUS-BS_LSC_EXC to C1:SUS-BS_SUSPOS_IN1 with exciting with random force. The measured data was fitted and the resonant frequency is 1.029(±0.005) Hz and quality factor is 12.25 (± 0.2).  Additionally I did same measurement for ITMX and ITMY. The attachment 2 and 3 are the results for ITMX and ITMY. Each eigenfrequency and Q are 1.063 (±0.008) Hz and 7.33 (±0.13) (ITMX), 1.022 (±0.005) Hz and 9.41 (±0.09) (ITMY).

 After that, I locked the MICH with AS55, and measured the PSD of error signal. I compensated the that PSD by the modelled OLTF with this suspension TF and the servo TF. The result is in attachment 4. Above 1 Hz it is quite close to the previous data by Keiko (elog#6385) But below 1 Hz there is a large dip. The error signal has also this dip. I looked for a integral filter between 0.2 Hz and 1 Hz, but I connot find a such filter. And when I locked MICH with using ASDC, there was same dip at same frequency. I don't think it's true free running noise, and I will try to fix it.

I completely forgot to mention that I fitted the modelled OLTF into the measured OLTF. I used the fitted OLTF for compensation. 



Attachment 1: BSsus.PNG
Attachment 2: ITMXsus.PNG
Attachment 3: ITMY.PNG
Attachment 4: free_running.PNG
  9128   Fri Sep 13 19:22:01 2013 MasayukiUpdateLSCMICH calbration


 I made sure the yesterday's result was collect. I measured not only the error signal but also the feedback signal. And I compared those signals and measured the TF in order to confirm my servo filter model is not wrong.

The reason of dip at low frequency region is maybe the coherence of the ground motion. The ITMX and ITMY suspensions are put close. If ground motion has coherence, the mirrors move in common mode. That will suppress the free running noise. The attachment is the free running noise of Sep 13rd and Sep 12nd.

Attachment 1: noise.PNG
  9131   Mon Sep 16 14:11:47 2013 ranaUpdateLSCMICH calbration

  There doesn't seem to be any coherence among the different directions of ground motion (as expected from seismic theory), so I am suspicious of such a low MICH noise.

Attachment 1: Screen_Shot_2013-09-16_at_2.10.31_PM.png
Attachment 2: Screen_Shot_2013-09-16_at_2.18.47_PM.png
  9134   Tue Sep 17 00:50:42 2013 MasayukiUpdateLSCMICH calbration

I found the bug in my calibration code, and I fixed it.

And I put the white Gaussian noise on the BS actuator, and calibrated to the differential length with my new code. We already know the efficiency of the actuator(elog#8242), so I could estimate how much I put the disturbance and compare the two values. The result is in attachment 1.  x_exc means the value of the disturbance. 

You can see the PSD of the differential motion decrease factor of 3 by decreasing the disturbance by factor of 3 (except for the region from 1 Hz to 5 Hz), and the value at lower frequency than resonant frequency of the suspension is comparable to the value estimated with the actuator efficiency. Also there is no dip when I put the larger disturbance than free running noise.

Between 1 Hz and 5 Hz there seems to be a resonance of something (seismic stack?). And also on resonance of the suspension there seems to be some other noise source. One possibility is the active damping of each suspension.

Actually still there seems to be a dip between 0.1 Hz and 1 Hz. But if you consider about those effect, I think this result doesn't seems to be so strange. But according to the documentation of LIGO document-T000058, which I found the seismic motion in 40 m Lab is written in, the seismic motion at 0.1 Hz is 10^-7. I'm not sure about this factor of 10 difference. One possibility is the geophone doesn't have good sensitivity at low frequency. I'm still not sure this result is really collect.



Attachment 1: noise.PNG
  6362   Tue Mar 6 01:35:03 2012 kiwamuUpdateLSCMICH characterization

[Keiko / Kiwamu]

 Update on the MICH characterization:

  • The OSAs weren't so great because the 11 MHz sidebands were covered by the carrier's tail
    • It seemed that the frequency resolution depended on the mode matching. We will try improving the mode matching tomorrow.
  • The noise budget looked very bad
    • There were huge peaks at 1 Hz, 3 Hz, 16.5 Hz and 23 Hz. Something is crazy in the vertex suspensions.
    • Keiko will post the calibrated noise budget.
  • The MICH response at AS55Q was measured and we will calibrate it into watts / meter.


  10803   Tue Dec 16 01:50:27 2014 rana, diegoFrogsLSCMICH filter is nuts

 This is ridiculous.

How many RGs can I fit into one button???

Attachment 1: badMICHrg.pdf
  9293   Fri Oct 25 20:11:08 2013 JenneUpdateLSCMICH gain in PRMI lowered by factor of 2

We were locking the PRMI, but it is very rumbly today.  I reduced the MICH servo gain from -0.8 to -0.4 , and things seem to be better.  Now my MICH UGF is about 60Hz.

  9809   Mon Apr 14 19:02:09 2014 JenneUpdateLSCMICH gets noisy as CARM or DARM offset reduced

This afternoon, I was toying around with reducing either the CARM or DARM offsets (so, put in a CARM offset, leave DARM zero, lock the PRMI, then reduce CARM offset to zero.  Or, put in a DARM offset, leaving CARM offset zero, lock the PRMI, then reduce the DARM offset to zero).

When looking at the data, I see that the MICH error signal gets fuzzier when the arms get close to resonance. (Note here that because I forgot to zero the carm offset before finding the resonances, -3 is my zero point for this plot and the next.)


Here is a zoom of the last piece of this time series, but with both TRX and TRY plotted (along with POPDC, CARM_ERR and DARM_ERR), where you can see that I had a momentary power buildup of > 100 transmission counts, which is about 20% of our final expected power.


Here is a different time series, showing a reduction of the DARM offset, and you can see that as the offset approaches zero, the MICH error signal gets noticeably more fuzzy.  Somewhere near the 240 second mark, I lose PRMI lock.


ELOG V3.1.3-