Today I've been working on the guardian controlled laser pzt servo. Using the Y-arm laser guardian can now scan the PZT, pick a locking point, calculate the slope at that point and use this to set the gain for the servo. The servo itself has a unity gain frequency of 0.5Hz and 1/f below that. After picking a locking point guardian sets the PZT to that voltage and waits for several seconds to allow the laser thermopile to come into equilibrium before re-measuring the power output which is then fed to the power setpoint. The servo is then engaged. This gets around problems that I was having where using the value taken directly from the power to voltage curve would cause a small but unmanagable offset in the setpoint at the point where the servo was engaged. The servo can cope with positive and negative slopes to the curve which reduces the number of times we will need to step the chiller temperature when trying to lock. We may want to do a little averaging across nearby points when calculating the gradient to get the servo gain, because I did see some instances where this seems a little higher than we might want, which could lead to an unstable value being used.
The first graph attached shows two cycles of using guardian to lock the laser, with graphs for the PZT voltage (effectively the control signal) and the power output (effectively the error signal). The second graph shows the data for power as a function of pzt voltage that was collected by guardian during the locking process.
I also ran a step function on the chiller to look at the time constant for the water to reach the laser (see attached graph). It came in at 110s, which is similar to a measurement made at LLO. We will use this to pick the unit gain frequency for the chiller servo loop. The laser took a significantly long time to come to equilibrium, though this is because the step made was large.
Tagging GRD as well