Size: 6363
Comment:
|
Size: 14024
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
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. | 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 entry is about Type B Guardian The Guardian manual is [[https://dcc.ligo.org/public/0111/G1400016/007/guardian-introduction.pdf|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 1. From herer cd to vis/k1/guardian 1. ipython 1. from vistoolstest import * 1. SR2=Vis('SR2') # This creates an instance of VisObj called SR2. 1. dir(SR2) # This provides the list of functions in vistools. 1. help(SR2.witRead) # Help for a particular python function. 1. SR2.levels() # Provides a list of levels defined in SR2 instance. 1. SR2.testPvs() # Provides a list of TEST channels. 1. SR2.testPvs(['TM']) # Names of test channels in the 'TM' level; note the square brackets. 1. SR2.testPvs(['TM','IP']) # Similar to the previous command. 1. SR2.witPvs() # Names of witness channels, aka monitor channels. 1. SR2.witPvs(['IP','IM']) # Similar to the previous command. 1. SR2.dcctrlPvs() # Names of DC control channels in the tower part. 1. SR2.dcctrlPvs(['BF']) # Similar to the previous command. 1. SR2.setPvs() # Names of setpoints channels in the tower. 1. SR2.olSetPvs() # Names of setpoints channels for the payload. 1. 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 [[http://klog.icrr.u-tokyo.ac.jp/osl/?r=906|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 After finishing the work it's convenient to destroy the fake Guardian by typing: * controls@k1ctr0:/opt/rtcds/userapps/release/vis/k1/guardian$ guardmedm guardian_fake Highlights: * Guardian uses snapshots for each states; see this [[http://gwwiki.icrr.u-tokyo.ac.jp/JGWwiki/KAGRA/Subgroups/VIS/OpsManual/Guardian|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 [[http://klog.icrr.u-tokyo.ac.jp/osl/?r=10014|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/'''. |
Line 19: | Line 174: |
* The seismic environment seems noisier today. See klog entry [[http://klog.icrr.u-tokyo.ac.jp/osl/?r=9702|9702]] for reference. See . The integrated RMS values are |
* The seismic environment seems noisier today. See klog entry [[http://klog.icrr.u-tokyo.ac.jp/osl/?r=9702|9702]] for reference. See [[attachment:SR3_ALIGNED_TM_displacement.png]]. The integrated RMS values are |
Line 42: | Line 196: |
* 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. The highlights for the FLOAT state are |
* 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 [[attachment:SR3_FLOAT_TM_displacement2.png]]. |
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 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
- controls@k1ctr0:~$ userapps
- From herer cd to vis/k1/guardian
- ipython
- from vistoolstest import *
SR2=Vis('SR2') # This creates an instance of VisObj called SR2.
- dir(SR2) # This provides the list of functions in vistools.
- help(SR2.witRead) # Help for a particular python function.
- SR2.levels() # Provides a list of levels defined in SR2 instance.
- SR2.testPvs() # Provides a list of TEST channels.
- SR2.testPvs(['TM']) # Names of test channels in the 'TM' level; note the square brackets.
- SR2.testPvs(['TM','IP']) # Similar to the previous command.
- SR2.witPvs() # Names of witness channels, aka monitor channels.
- SR2.witPvs(['IP','IM']) # Similar to the previous command.
- SR2.dcctrlPvs() # Names of DC control channels in the tower part.
- SR2.dcctrlPvs(['BF']) # Similar to the previous command.
- SR2.setPvs() # Names of setpoints channels in the tower.
- SR2.olSetPvs() # Names of setpoints channels for the payload.
- 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
After finishing the work it's convenient to destroy the fake Guardian by typing:
- controls@k1ctr0:/opt/rtcds/userapps/release/vis/k1/guardian$ guardmedm 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:
TM-L and TM-P, 0.150 Hz and 0.9 Hz. This is the reason I suspect of IM-L to TM-P coupling. See SR3_ALIGNED_coherence_TM.png.
IM-L and TM-L and IM-L and TM-P, 0.35 Hz to 0.8 Hz. See SR3_ALIGNED_coherence_TM-IM.png.
IM-P and TM-P, 0.15 Hz and 1 Hz. See SR3_ALIGNED_coherence_TM-IM.png.
IM-P and TM-L, 0.15 Hz and 0.8 Hz. See SR3_ALIGNED_coherence_TM-IM.png.
IP-L and each of IM-P, TM-L and TM-P, 0.135 Hz and 0.4 HZ. See SR3_ALIGNED_coherence_TM-IM-IP.png.
IP-L and each of IM-L, IM-P, TM-L and TM-P, above 0.4 Hz has many peaks of coherence up to above 1 Hz. See SR3_ALIGNED_coherence_TM-IM-IP.png.
- 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.