- Load in lock-in processing filters (copied from ITMX) - H1:SUS-MC2_LKIN_P_DEMOD_SIG: BP4.0Hz - H1:SUS-MC2_LKIN_Y_DEMOD_SIG: BP4.0Hz - H1:SUS-MC2_LKIN_P_DEMOD_I: CLP50mHz - H1:SUS-MC2_LKIN_P_DEMOD_Q: CLP50mHz - H1:SUS-MC2_LKIN_Y_DEMOD_I: CLP50mHz - H1:SUS-MC2_LKIN_Y_DEMOD_Q: CLP50mHz (Turn them all on) H1:SUS-MC2_LKIN_P_DEMOD_PHASE- Open StripTool of lock-in output channels H1:SUS-MC2_LKIN_P_DEMOD_I_OUTPUT H1:SUS-MC2_LKIN_P_DEMOD_Q_OUTPUT H1:SUS-MC2_LKIN_Y_DEMOD_I_OUTPUT H1:SUS-MC2_LKIN_Y_DEMOD_Q_OUTPUT Make sure they're on the same range - Set coil drivers to maximum range - Set COIL BIO switch to -2 (for "ACQ ON, LP OFF," in manual mode) - Turn off all compensation filters in COILOUTF filterbank - Turn on *both* oscillators for demodulation purposes (even though only one will actually drive the DAC) OSC Frequency [Hz] Amplitude [ct] Sin [ct] Cos [ct] P 4.0 120000 (1.2e5) 1000 1000 Y 4.0 120000 (1.2e5) 1000 1000 - Turn on LKIN EXC switch at given stage to be balanced (say M3) - Fill in LKIN2OSEM matrix to drive pringle mode P Y UL +1 0 LL -1 0 UR -1 0 LR +1 0 (drive should now be going out to the DAC) - By hand/eye, tune demod phases in LKIN by minimizing Q phase (bring abs(Q) = 0) in P and Y oscillators H1:SUS-MC2_LKIN_P_DEMOD_PHASE = 165 H1:SUS-MC2_LKIN_Y_DEMOD_PHASE = 165 - Quantitatively fine-tune demod phase - Measure average demod output after 50 mHz impulse response has settled cdsutils avg -s 100 H1:SUS-MC2_LKIN_P_DEMOD_I_OUT H1:SUS-MC2_LKIN_P_DEMOD_Q_OUT H1:SUS-MC2_LKIN_Y_DEMOD_I_OUT H1:SUS-MC2_LKIN_Y_DEMOD_Q_OUT Channel Mean Std H1:SUS-MC2_LKIN_P_DEMOD_I_OUT -124.252959766 3.47566023724 H1:SUS-MC2_LKIN_P_DEMOD_Q_OUT 0.182053735098 4.3213555242 H1:SUS-MC2_LKIN_Y_DEMOD_I_OUT 110.640444142 3.82030193474 H1:SUS-MC2_LKIN_Y_DEMOD_Q_OUT 3.13136692001 3.12337420835 - Perturb coil balance by 5% in P, measure demod outputs. Make sure DAC is not saturating. /ligo/svncommon/SusSVN/sus/trunk/Common/PythonTools/perturbcoilbalance_fourosem.py H1 MC2 M3 PIT 0.05 BIG PITCH: (note for future balance fine tuning: +P is the right direction, but smaller than 5%) Channel Mean Std H1:SUS-MC2_LKIN_P_DEMOD_I_OUT -133.289409622 5.02779000345 H1:SUS-MC2_LKIN_P_DEMOD_Q_OUT 3.02927094214 3.0371960446 H1:SUS-MC2_LKIN_Y_DEMOD_I_OUT -231.265323803 247.264486375 H1:SUS-MC2_LKIN_Y_DEMOD_Q_OUT 20.2445801548 10.102279685 - Calulate new YAW phase with big pitch using YAW demod outputs dPhi = 180/pi * atan( (Q_DC^{before} - Q_DC^{after}) / (I_DC^{before} - I_DC^{after}) = 180/pi * atan((3.13136692001-20.2445801548)/(110.640444142- -231.265323803)) = -2.8654 New Yaw Phase: 162.1 What actually worked: 164.5 - Restore COILOUTF gains to +/-1 - perturb coil balance by 5% in Y, measure demod outputs. Make sure DAC is not saturating. /ligo/svncommon/SusSVN/sus/trunk/Common/PythonTools/perturbcoilbalance_fourosem.py H1 MC2 M3 YAW 0.05 BIG YAW: (note for future balance fine tuning: +Y is the right direction) Channel Mean Std H1:SUS-MC2_LKIN_P_DEMOD_I_OUT 320.034642583 327.211416081 H1:SUS-MC2_LKIN_P_DEMOD_Q_OUT -22.3401625007 20.4865540316 H1:SUS-MC2_LKIN_Y_DEMOD_I_OUT 100.796222343 240.545082697 H1:SUS-MC2_LKIN_Y_DEMOD_Q_OUT 0.965406286916 14.7693496743 - Calulate new PITCH phase with big yaw using PITCH demod outputs Delta Pitch phase: dPhi = 180/pi * atan( (Q_DC^{before} - Q_DC^{after}) / (I_DC^{before} - I_DC^{after}) 180/pi * atan((0.182053735098 - -22.3401625007 )/(-124.252959766 -320.034642583 )) = -2.9020 New Pitch Phase: 163.1 What actually worked: 166.5 - Restore COILOUTF gains to +/-1 - Capture final numbers after demod phase tuning: Channel Mean Std H1:SUS-MC2_LKIN_P_DEMOD_I_OUT -121.535660969 3.24268854656 H1:SUS-MC2_LKIN_P_DEMOD_Q_OUT -0.106326447945 3.26200787423 H1:SUS-MC2_LKIN_Y_DEMOD_I_OUT 109.297148934 3.57408872906 H1:SUS-MC2_LKIN_Y_DEMOD_Q_OUT -0.482457500599 3.93995112922 - With tuned demod phases, I phases of P and Y should be measuring P and Y perturbations independently, and Q phase should do nothing with a perturbation. Now perturb coil balance in small increments to bring I's to zero, and that's your balance. caget H1:SUS-MC2_M3_COILOUTF_UL_GAIN; caget H1:SUS-MC2_M3_COILOUTF_LL_GAIN; caget H1:SUS-MC2_M3_COILOUTF_UR_GAIN; caget H1:SUS-MC2_M3_COILOUTF_LR_GAIN H1:SUS-MC2_M3_COILOUTF_UL_GAIN 1.02985 H1:SUS-MC2_M3_COILOUTF_LL_GAIN -0.998212 H1:SUS-MC2_M3_COILOUTF_UR_GAIN -1.00141 H1:SUS-MC2_M3_COILOUTF_LR_GAIN 0.970649 - Quantify the goodness of the balance Started with - /ligo/svncommon/SusSVN/sus/trunk/HSTS/H1/PR2/Common/Data/2014-01-22_H1SUSPR2_M3_CoilBalancing.xml Changed channel names to MC2 - Measure with above balanced gains in place - Collect reference - Restore gains to +/-1, measure again - Compare the reduction in 4.0 [Hz] signal. (just use cursor to determine amplitude) P Y Not Balanced 0.319 0.284 With Balance 0.015 0.021 ratio 21.267 13.524 - .xml saved to /ligo/svncommon/SusSVN/sus/trunk/HSTS/H1/MC2/Common/Data2014-08-04_H1SUSMC2_M3_CoilBalancing.xml - Restore COILOUTF gains to precision of 0.001: H1:SUS-MC2_M3_COILOUTF_UL_GAIN 1.03 H1:SUS-MC2_M3_COILOUTF_LL_GAIN -0.998 H1:SUS-MC2_M3_COILOUTF_UR_GAIN -1.001 H1:SUS-MC2_M3_COILOUTF_LR_GAIN 0.971 - Turn OFF LKIN excitation, zet LKIN2OSEM matrix back to zero, restore COILOUTFs to low-noise value (BIO state to +2) - Capture a new safe.snap (if you're done with the suspension and don't have other stages).