Relieving the arm VCO signals doesn’t work once the COMM and DIFF loops are engaged. (The DIFF loop will fight against the HEPI feedback for example.) Therefore I made a similar HEPI offload servo for the COMM loop.
I use MC_F as the error signal and feed back to the common end station HEPIs.
guardian code:
class HEPI_RELIEF(GuardState):
@fault_checker
def main(self):
servo_gain = -.3
offset_ramp_time = 2
offset_chan_1 = 'HPI-ETMX_ISCINF_LONG'
offset_chan_2 = 'HPI-ETMY_ISCINF_LONG'
readback_chan = 'IMC-F_OUTPUT'
ezca.write(offset_chan_1+'_TRAMP',offset_ramp_time)
ezca.write(offset_chan_2+'_TRAMP',offset_ramp_time)
self.hepi_servo = cdu.Servo(ezca,offset_chan_1+'_OFFSET',readback=readback_chan,gain=servo_gain,control2=offset_chan_2+'_OFFSET',gain2=1);
@fault_checker
def run(self):
self.hepi_servo.step()
return True
attached file shows servo with wrong sign, then sign flipped. Then an unrelated lockloss.
So right now when just the arms are locked on ALS, they each feed to their own hepi. At some point the ALS_COMM guardian turns on the HEPI feedback and the arms turn off their feedback.
One last thing to mention: These offsets will walk away over time and should be zeroed periodically. It should probably be written into the DOWN state of one of the guardians.
Jeff, Dan, Alexa, Evan, Matt
To illustrate the need-for / effect-of the feedback to HEPI from ALS_COMM, I attach two plots.
The first shows the start of an IR lock in the arms. The ALS_DIFF path is turned on about 1/3rd of the way through. Once the differential degree of freedom is out of the arms, the tidal drift begins to dominate the ALS green control signals, and the VCOs run away. The rail at 7V in end-X is where we lose the lock.
The IMC control signals
In the second image, I plot a series of locks around the time when Nic implemented his ezca servo code. After some missteps for gain tuning the offloading of the COMM signal to HEPIkeeps the VCO in range.
Nic's code uses MC_F, but for a permanent digital implementation we think that MC_L is a better choice. The current plan is to add a PCIE channel to the LSC front-end module to send MC_L (the input of the LSC-MC filter) bank to the endstation HEPIs.