Differences between revisions 57 and 58
Revision 57 as of 2019-12-02 10:14:09
Size: 17526
Comment:
Revision 58 as of 2019-12-02 10:21:31
Size: 18151
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 1. The same approach is used to to calculate theta_t. Excite '''TM-P''' with white noise and calculate the transfer function from y_tilt to x_tilt. Calculate the angle '''theta_t = arctan( - x_tilt / y_tilt )''' at the '''resonance frequency of 0.85 Hz'''.  1. The same approach is used to to calculate theta_t. Excite '''TM-P''' with white noise and calculate the '''transfer function from y_tilt to x_tilt'''. Calculate the angle '''theta_t = arctan( - x_tilt / y_tilt )''' at the '''resonance frequency of 0.85 Hz'''.The naming convention is still bad so keep minding the names:
  * y_tilt = K1:VIS-SRM_TM_OPLEV_TILT_PIT_OUTMON
  * x_tilt = K1:VIS-SRM_TM_OPLEV_TILT_YAW_OUTMON
  * The sign of the ratio '''x_tilt / y_tilt '''can be read from the phase of the transfer function.
 1. Alternatively, the same angle can be calculated by actuating in yaw. Both estimated should be similar. Excite '''TM-Y''' with white noise and calculate the''' transfer function from x_tilt to y_tilt (inverse of the one in item 2!)'''. Calculate the angle '''theta_t = arctan( y_tilt / x_tilt )''' at the '''resonance frequency of 1 Hz or 1.38 Hz'''.

This page is for writing explanations or plans which we are not confident about and may be subject to change. For instance, a possibe course of action to carry out a particular type of measurement or the plan to follow to identify a noise source.It's also for temporary random notes.


This is Type B oplev diagonalization procedure

  1. Excite TM-L with white noise and caculate the transfer function from y_len to x_len . Calculate the angle theta_l = arctan( - x_len / y_len ) at the resonance frequency of 0.65 Hz. The naming convention is very bad, so mind the names

    • y_len=K1:VIS-SRM_TM_OPLEV_LEN_PIT_OUTMON
    • x_len=K1:VIS-SRM_TM_OPLEV_LEN_YAW_OUTMON
    • The sign of the ratio x_len / y_len can be read from the phase of the transfer function.

  2. The same approach is used to to calculate theta_t. Excite TM-P with white noise and calculate the transfer function from y_tilt to x_tilt. Calculate the angle theta_t = arctan( - x_tilt / y_tilt ) at the resonance frequency of 0.85 Hz.The naming convention is still bad so keep minding the names:

    • y_tilt = K1:VIS-SRM_TM_OPLEV_TILT_PIT_OUTMON
    • x_tilt = K1:VIS-SRM_TM_OPLEV_TILT_YAW_OUTMON
    • The sign of the ratio x_tilt / y_tilt can be read from the phase of the transfer function.

  3. Alternatively, the same angle can be calculated by actuating in yaw. Both estimated should be similar. Excite TM-Y with white noise and calculate the transfer function from x_tilt to y_tilt (inverse of the one in item 2!). Calculate the angle theta_t = arctan( y_tilt / x_tilt ) at the resonance frequency of 1 Hz or 1.38 Hz.


This is a notes about Guardian TODO list

  1. Modify real-time model. Add
    1. OBSERVATION filter bank for IM.
    2. Switch to transition from ALIGNED to OBSERVATION state.
  2. Add threshold definition channels for rms monitors.(This is for the criteria to go into CALM-DOWN state.)
  3. Add new filter names to vistools, wgich will generate whole set of useful functions to manipulate the filter block.
  4. Make the already function "engageControlSequence" turn the new filter banks on.
  5. Is there a "disengageControlSequence" function?
  6. Write a "gooToo" function to turn matrix switches on and off. It would work something like gooToo('OBSERVTION'), gooToo('ALIGNED'), etc.

The channel names for the new block are something like: K1:VIS-BS_OBSDAMP_P01_*

Here is an updated version of the TODO list:

  1. Define the following states: OBSERVATION, ENGAGING_OBSERVATION, DISENGAGING_OBSERVATION, ENGAGING_PAYLOAD_TRIPPED_FROM_OBS_STATE (choose a better name, maybe OBS2PAY_TRIPPED).
  2. Move vistools_fake with the modifications into vistools or vistools_test.
  3. Define gootoo function. Do we need this?
  4. Put null filters in all new filter banks. What's the motivation?
  5. Modify beginControlSequence in order to allow selective disengagement of filters in payload and tower when going from ALIGNED to OBSERVATION state. (Used in OBS2PAY_TRIPPED also.)
  6. Modify disengageControlSequence in order to allow selective engagement of filters in payload and tower when going from OBSERVATION state to ALIGNED. (Used in OBS2PAY_TRIPPED also.)
  7. It will use default ramp values, we don't have to do anything extra (within enableControl --> visObj.dampRamp).

  8. Write function to switch martrix on or off using regular Guardian.
  9. Set the variable state='OBSERVATION'.
  10. When the system trips in OBSERVATION state it will go to
    1. an intermediate state (OBS2PAY_TRIPPED) and from there to PAYLOAD_TRIPPED if the payload is the one tripping.
    2. to TOWER_TRIPPED if if the tower is the one tripping.


Inertial damping switch in Type B memd screen: see klog 8825.

This is just a note about the switch that changes


Type A DARM transfer function measurements

Directories:

/users/VISsvn/TFNoisebudget/

/users/VISsvn/TFNoisebudget/ETMY/

/users/VISsvn/TFNoisebudget/templates/

See example in klog entry: 11595: /users/VISsvn/TFNoisebudget/ETMY/ETMY_MNYvsDARM20191117.xml

  • Swetp sine
  • Excitation sine
  • Amplitude set in measurement tab Format: Envelope, edit.


This entry is about Type B Guardian

The Guardian manual is here.

controls@k1ctr0:~$ userapps

From herer cd to vis/k1/guardian/

  • For each Type B suspension there is one Guardian node.

  • Each Type B node is a device node that talks directly to hardware.
  • Each node is a daemon. They load system modules (according to the manual).

How to check the vistools functions

  1. controls@k1ctr0:~$ userapps
  2. From herer cd to vis/k1/guardian
  3. ipython
  4. from vistoolstest import *
  5. SR2=Vis('SR2') # This creates an instance of VisObj called SR2.

  6. dir(SR2) # This provides the list of functions in vistools.
  7. help(SR2.witRead) # Help for a particular python function.
  8. SR2.levels() # Provides a list of levels defined in SR2 instance.
  9. SR2.testPvs() # Provides a list of TEST channels.
  10. SR2.testPvs(['TM']) # Names of test channels in the 'TM' level; note the square brackets.
  11. SR2.testPvs(['TM','IP']) # Similar to the previous command.
  12. SR2.witPvs() # Names of witness channels, aka monitor channels.
  13. SR2.witPvs(['IP','IM']) # Similar to the previous command.
  14. SR2.dcctrlPvs() # Names of DC control channels in the tower part.
  15. SR2.dcctrlPvs(['BF']) # Similar to the previous command.
  16. SR2.setPvs() # Names of setpoints channels in the tower.
  17. SR2.olSetPvs() # Names of setpoints channels for the payload.
  18. SR2.olSetPvs(['IM']) # Similar to the command above.

The following lines are to create a guardian from a file. See Kokeyama-san's klog entry 906.

The name of the Guardian file is:

/opt/rtcds/userapps/release/vis/k1/guardian/guardian_fake.py

Creation and start medm Guardianscreen

  • controls@k1ctr0:/opt/rtcds/userapps/release/vis/k1/guardian$ guardctrl create guardian_fake
  • controls@k1ctr0:/opt/rtcds/userapps/release/vis/k1/guardian$ guardctrl start guardian_fake
  • controls@k1ctr0:/opt/rtcds/userapps/release/vis/k1/guardian$ guardctrl medm guardian_fake
  • or alternatively guardian$ guardmedm guardian_fake

After finishing the work it's convenient to destroy the fake Guardian by typing:

  • controls@k1ctr0:/opt/rtcds/userapps/release/vis/k1/guardian$ guardctrl destroy guardian_fake

Highlights:

  • Guardian uses snapshots for each states; see this link for the location of the files.

  • The snapshot related variables are defined in section "# Tool for taking safe snapshot" from line 86 to 103 of TYPEB.py
  • Time constants for ramps are defined in class timeConsts() in lines from 47 to 56; additionally, typeBtime=timeConsts() and a ramp dictionary are defined from line 67 to 75.
  • Edges: defines paths between states.
  • beginControlSequence(stateObj,level): changes the configuration of the filter banks in ordert to reach each state. It calls enableControl(level):

Questions:

  • Where is the visObj created in the nodes for each suspension?
  • Where is the 'TOWER' state defined?
  • What are the witness channels? See witRead vistools function.
  • How does Guardian know what are the SET blocks? See setRampWrite vistools function.
  • How does Guardian know what are the DCCTRL blocks? See dcctrlPressButton vistools function.


This entry is about IP LVDT correction with the seimometer signal

ther people have been working in the correction of the IL LVDT using the seismometer signal

Concept

Aim

In order to properly damp the motion of the IP we would like to estimate the motion of the IP table w.r.t. an inertial reference frame. However, we currently don't have an appropriate inertial sensor for this task. The aim of sensor correction is to use the readout of a seismometer on the ground in order to remove the contribution of the ground motion from the IP LVDT readout, which provides the relative displacement of the IP table with respecto to the ground.

Method

Sensor correction requires an estimate of the ground motion in order to remove it from the IP LVDT signal. In reality, what is required is an estimate of the motion of the platform which supports IP at the top of the frame. An infinitely rigid frame the transfer function will be one.

Notes about the seismometer:

  • Its signals are proportional to the velocity. Therefore, it requires an integrator.
  • The signals have an offset, which apparently is not compatible with the integrator.
  • In End X suspension the DC offset was removed with a 4th order Butterworth high-pass filter with a XXXXX frequency of 0.5 mHz. In such suspension the filter is called "butt".

  • The seismometers we use are good above 40 mHz. Miyo-kun placed two seismometers of the same kind next to each other and there was no coherence below 40 mHz.

Notes about the filters


How to find whaty are DQ channels available

controls@k1ctr3|20190828> ssh k1sum0

controls@k1sum0:~$ conda activate ligo-summary-3.7

(ligo-summary-3.7) controls@k1sum0:~$ FrChannels /frame0/science/12510/K-K1_R-1251005728-32.gwf | grep DQ | more


SR2 GAS filter control

Date: 28-08-2019

Author: Fabian

Context: There's high coherence of the GAS LVDT with the vertical ground motion.

Directory: /kagra/Dropbox/Subsystems/VIS/TypeBData/SR2/Noise/Measurements/20190828/

File: SR2_ALIGNED_TM_OPLEV_ASD_190828.xml

The F0 transfer function measured on the 27th of July were not successful, therefore, I measured again for the sake of health. It tuned to be alright.

Resonant frequencies of the GAS filter transfer functions are:

  • F0:

Oplev control in SR3

Date: 19-08-2019

Author: Fabian

Context: On Friday Enomoto-kun implemented new filters for the SR3 optic local control. See klog entry 10014. The aim is to control lower frequency motion. What frequency?

  • The change applies to yaw and pitch.
  • What did we have before?
    • We have two TFs for the suspension: susmodel and susmodel2. The one called susmodel2 is more detailed.

    • The TF shows two resonances at 1 Hz and 1.379 Hz.

    • The damping is achived with two fiters:
      • gain_: simple overall gain of 50.

      • damp_: one zero at the origin and three poles at 10 Hz. This filter provides velocity damping at the resonances.

    • Unity gain frequency band: from 0.88 Hz to 1.55 Hz.

  • Enomoto-kun implemented two filters:
    • He used susmodel2.

    • The damping is achived with two filters:
      • HBW (high bandwidth) replaces damp_. This filter has an effect at higher frequencies.

      • LFboost has an effect at lower frequencies.

    • The filter HBW has a zero at 0.3 Hz, two poles at 30 Hz and an elliptic low pass filter. The elliptic type was selected because of its phase properties at low frequencies.

    • What are the parameters of the elliptic filter?
      • 1st frequency:
      • Passband ripple:
      • Order:
      • 2nd frequency:
      • Attenuation:
    • The filter LFboost has a pole at the origin and a zero 0.5 Hz. At high frequencies has a gain of about 6 dB, but it should be 0 dB. How to fix this?
    • The unity gain frequency band goes from DC to 4.3 Hz.

  • What I changed: I changed the gain of the LFboost; I multiplied by 0.5 (-6 dB).
  • I found the real-time models at /opt/rtcds/userapps/trunk/vis/k1/models/.

Noise hunting in SR3 optics' residual motion

Date: 05-08-2019.

Author: Fabian.

Context: entry from 03-08-2019 and klog entries 9702 and 9755.

Following the plan for noise source identification I measured the coherence between the following degrees of freedom:

  • TM-L, TM-P ⇔IM-L, IM-P.
  • TM-L, TM-P ⇔ IP-L.
  • IM-L, IM-P ⇔ IP-L.

The highlights for the ALIGNED state are

  • Directory: /kagra/Dropbox/Subsystems/VIS/TypeBData/SR3/Noise/Measurements/20190805/
  • File: SR3_ALIGNED_TM_OPLEV_ASD.xml
  • The seismic environment seems noisier today. See klog entry 9702 for reference. See SR3_ALIGNED_TM_displacement.png. The integrated RMS values are

    • TM longitudinal: 0.55 µm,

    • TM longitudinal speed: 0.62 µm/s,

    • TM pitch: 0.21 µrad.

    • TM yaw: 0.28 µrad.

    • Additionally there is a large peak in TM-L, TM-P and TM-Y at 0.158 Hz.

  • There is high coherence between the following degrees of freedom and frequency bands:
  • The conclusions of these measurements are:
    • The motion of the IP in the longitudinal direction induces motion in the optic in pitch and longitudinal in the frequency band from 0.135 Hz to 0.4 Hz. This should be fixed at the IP.
    • The motion of the IM in the longitudinal direction induces motion in the optic pitch and length in the frequency band from 0.3 Hz to 0.8 Hz. This should be fixed with L2P and L2L control loop.
    • The motion of the IM in pitch introduces motion in the optic in pitch and logitudinal in the frequency band from 0.135 Hz to 1 Hz. The motion in the band from 0.135 to 0.4 Hz is likely ground motion coming from the IP, however, the motion from 0.4 Hz to 1 Hz should be fixed with P2L and P2P filters.
    • Motion in optic yaw still has to be investigated. There are outstanding features between 1 Hz and 2 Hz. Comparison with the motion in FLOAT state this seems to be control noise. See SR3_FLOAT_TM_displacement2.png.

Date: 03-08-2019.

Author: Fabian.

Context: klog entries 9702 and 9755.

On Friday afternoon I found high coherence between SR3 L and P degrees of freedom in at least two frequency bands, as measured by the oplev. High coherence is observed in both states ALIGNED and FLOAT.

  • Directory: /kagra/Dropbox/Subsystems/VIS/TypeBData/SR3/Noise/Measurements/20190802

  • Files: SR3_ALIGNED_TM_OPLEV_ASD.xml, SR3_FLOAT_TM_OPLEV_ASD.xml

Possible reasons for the high coherence are:

  • The oplev was not successfully diagonalized in those frequency bands. In this case the high coherence would be a consequence of measurement coupling between L and P and not to a real motion of the optic. In this case we would have to identify which one of the two degrees of freedom exhibits real motion. I have the impression thisis unlikely.

  • Lack of balance in optic coil-magnet actuators. Although the actuators have not been balanced yet, it's unlikely this is the main cause becasue the high coherence is also observed in FLOAT state, in which the control system is off.

  • Pitch motion happens as a consequence of the longitudinal motion in upper stages. I tend to think this is the most likely cause of high coherence.

  • There is an external environmental excitation. This may be acoustic noise or ground motion leaking through the suspension into the optic. It may be something affecting the oplev optics directly, but it's unikely because the effect is seen at low frequencies.

Plan for noise source identification.

  • {*} Find out the frequencies in which the oplev was diagonalized. Review the diagonalization procedure.

  • Balance the coils. Excite the optic using the saddle configuration and change actuator gains until the motion of the optic dissapears. Use the same frequency as in the oplev diagonalization.

  • {*} Look for coherence between the motion of the optic and upper stages:

    • TM-L, TM-P ⇔IM-L, IM-P.
    • TM-L, TM-P ⇔ IP-L.
    • IM-L, IM-P ⇔ IP-L.
  • Change and monitor enviromental conditions:

    • {*} Ask Yokozawa-san whether he has an ASD of the acpustic noise inside the clean rooms and compare.

    • Turn off the filter fan units (FFUs) inside the clean room and repeat the measurements.
    • Place a microphone close to the oplev optics and another one close to the IP, measure the amplitude spectral density of the acoustic excitation with the fans off and on and search for coherence with the TM/IM/IP motion.
    • Place an accelerometer on each oplev plaforms and repeat previous item.

Plan for reducing control noise

  • {*} Reduce gain of control signal. This is in principle something quick and easy to do.

  • Check the values of the unity gain frequencies (UGF) in SR2 optics control loops.
    • In case the control noise is higher than the UGF roll-off the filter.
    • In case the control noise is within the control frequency band check whether reducing the gain worked. If not continue with the noise hunting.

KAGRA/Subgroups/VIS/TypeB/NotesProvisional (last edited 2021-01-25 15:36:40 by fabian.arellano)