We looked at the DRMI noise spectrum and chose new excitation frequencies such that the lines are lower in frequency than before (~300 Hz instead of 800 Hz) and also not in some noisy region.
New filters is saved and loaded for all LSC DOFs.
Our online subtraction filters for PRC angle and MC length were trained on the raw ADC signals, so I've inverted the filters that Rana installed in the PEM filter banks in the OAF signal conditioning filter banks (C1:OAF-WIT_STS1X, etc.)
It's not perfect, since the inversion would be unstable, and thus needs a low pass. I used an ELP at 800Hz. The error in the inversion is then something like half a degree at 5Hz, which is the highest frequency we really ever subtract at. It should be ok.
On Thursday night (sorry for the late elog) I decided to give the MCL FF one more try.
I first remeasured the actuator transfer function because previous measurements had poor coherence ~0.5 - 0.7 at 3 Hz. I did a sine swept to measure the TF.
Raw transfer function:
The data is attached here: TF.zip
Then I made Wiener filters by fitting the transfer function data with coherence > 0.95 (on the left). Fitting all the data (on the right). Here are the filters:
The offline subtractions (high coh fit on left, all data fit on right). Notice the better IIR performance when all the TF data was fitted.
The online results: (these were aquired by taking five DTT measurements with 15 averages each and then taking the mean of these measurements)
And the subtraction performance:
I converted our MC WFS relief from CSH to BASH today. I also added 'wait' commands and 'echo' commands so that all DoFs run in parallel nicely. It can be accessed from the MC WFS screen.
I increased the overall MC WFS gain input slider from 0.02 to 0.1 (its in the mcwfson script). The MC Trans loops now have a time constant of ~30 seconds. The relief script relieves ~90% of the MC WFS control signals in the 2 minutes that its allowed to run.
On the next upgrade, we should make it python and have it kill the relief process if the MC loses lock before relief is applied via the alignment sliders.
As it turned out, the "STS" BLRMS filters were all a mess, so I fixed them up today:
The "C1:PEM-SEIS_STS_1" filter banks are currently empty, so the signal is just in ADC counts. However, by amazing luck, this seems to be the right gain (within a factor of 2) to put the signal into units of microns / second. According the the schematic (D1000749), the default gain of 110 can be switched to make the whole box just have a gain of 2 (differential in, differential out). I wonder if anyone, like Jenne, knows if this is what we have? There's no elog I found about setting the gain switch.
According to the manual, the gain is ~1175 V/(m/s). Our ADC gain should be (2^16)/(40). So:
cal_gain = 1175 * 2 * 65536 / 40 ==>> 0.26 (m/s)/counts
I have put this into the STS_1_X,Y,Z filter modules in c1pem so that these channels are now calibrated. I also put the first few s-domain poles/zeros into the filter based on the manual so that the magnitude in the 10-30 Hz band is correct-ish now.
* Does anyone know how to center the masses on this thing?
The new stage missed the right height by ~2 mm.
Even if I completely bottom out the (New Focus 9071) 4-axis stage, its not short enough. So I removed the AOM from the beam and re-aligned into the PMC.
Steve, please get the aluminum piece remachined to go down by 2.5 mm so we can have some height adjustment room.
New stage can hold the correct polarization.
Also, the turning mirror mount just after the EOM and before the AOM is a U-100 and we want it to be a Suprema for stability - let's not forget to swap that after Steve gets the mount fixed.
Frustrated by the single pixel width of the windows and how hard that makes it to drag things around, I explored StackExchange:
which showed how there is a .xml file which can be edited to increase this. I've changed the border size to 4 pixels on Rossa - its nice.
Some years ago I bought some dividers from Wenzel. For each arm, we have x256 and a x64 divider. Wired in series, that means we can divide each IR beat by 2^14.
The highest frequency we can read in our digital system is ~8100 Hz. This corresponds to an RF frequency of ~132 MHz which as much as the BBPD could go, but less than the fiber PDs.
Today we checked them out:
Since this seems promising, we're going to make a box on Monday to package both of these. There will one SMA input and output per channel.
Each channel will have a an amplifier since this need not be a low noise channel. The ZKL-1R5 seems like a good choice to me. G=40 dB and +15 dBm output.
Then Gautam will make a frequency counter module in the RCG which can do counting with square waves and not care about the wiggles in the waveform.
I think this ought to do the trick for our Coarse frequency discriminator. Then our Delay Box ought to be able to have a few MHz range and do all of the Fast ALS Carm that we need.
Nice going. I think the LLO / LHO scheme is to acquire on 1F and then cdsutils avg to get the 3F offsets. The thinking is that that 1F signals have less intrinsic offset than the 3F signals, so we want to be use digital offsets for the 3F locks.
I've now made a collection of sensing matrix measurements.
In all of the plots below, the radial scale is logarithmic, each grid line is a factor of 10. The units of the radial direction are calibrated into demod board output Volts per meter. The same radial scale is used on all plots and subplots.
I did two PRMI measurements: with MICH locked and excited with either the ITMS or the BS + PRM compensation. This tells us if our PRM compensation is working; I think it is indeed ok. I though I remembered that we came up with a number for the SRM compensation, but I haven't been able to find it yet.
The CARM sensing int he PRFPMI measurement has the loop gain at the excitation frequency undone. All excitations were simultaneously notched out of all control filters, via the NotchSensMat filters.
The angular scale is set to the analog I and Q signals; the dotted lines show the digitial phase rotation angle used at the time of measurement.
New stage can hold the correct polarization.
DRAWING CORRECTION: Post block height was lowered to be 1.88" from 2.0"
I was thinking that the "FOSC" product line (which is called a "coupler" instead of a "splitter/combiner") was what we wanted.
Koji brought to my attention that the 90/10 splitters we already have are of this line. So, I rigged a few up to shine a hopefully beating pair of fields on the fiber coupled thorlabs PD.
I was able to get ~80uW each of PSL and AUX X light on the PD, which produced a -10dBm beatnote! Thus, I think these FOSC splitters are indeed what we want.
I then threw this IR beatnote at our ALS signal chain. The beatnote was too big to throw through our ~+27dB RF amps, so I just sent the -10dBm over to the LSC rack.
The IR beat spectrum is somwhat noisier from 10-100Hz, but, more interesting, is that the sub-4Hz noise is identical in the two beats, and very coherent. This excludes ALS noise arising from anything happening in the green beat optics on the PSL table.
Obviously, the high frequency noise is largely the same and coherent too, but also coherent with the AUX X PDH control signal, so it is understood.
Single mode coupler, 2x2, 1064nm +/-20nm, 50/50 ratio, 900micron loose tube jacket, Hi1060flex fiber, 1m fiber length, FC/APC connectors
Four of these items ordered yesterday from http://afwtechnologies.com.au/sm_coupler.html
Attached is the modifed Pentek whitening board schematic. It includes the yet to be installed 1nF capacitors and comments.
Here is the transfer function and cutoff frequency (pole) of the first stage low pass circuit of the Pentek whitening board.
R1 = R2 = 49.9 Ohm, R3 = 50 kOhm, C = 0.01uF. Given a differential voltage of 30 volts, the voltage across the 50k resistor should be 29.93 volts.
So low pass RC filter with one pole at 1 MHz.
I have updated the schematic, up to the changes mentioned by Rana plus some notes, see the DCC link here: [PLACEHOLDER]
I should have done this by hand...
There seems to be something funny going on with MATLAB's license authentication on the control room workstations. Earlier today, I was able to start MATLAB on pianosa, but now attempting to run /cvs/cds/caltech/apps/linux64/matlab/bin/matlab -desktop results in the message:
License checkout failed.
License Manager Error -15
MATLAB is unable to connect to the license server.
Check that the license manager has been started, and that the MATLAB client machine can communicate
with the license server.
Troubleshoot this issue by visiting:
License path: /home/controls/.matlab/R2013a_licenses:/cvs/cds/caltech/apps/linux64/matlab/licenses/license.dat:/cv
Licensing error: -15,570. System Error: 115
Thanks to some expertly timed coffee from Ignacio, I have been able to achieve indefnite locks of the DRMI, first on a 1F/3F mix (P:REFL11, S: REFL165, M:AS55), and then purely on 3F (P:REFL33, S:REFL165, S:REFL165). MICH is currently actuated on the ITMs.
I saved a snapshot of the current settings so I don't lose my settings. I think one thing that prevented earlier recipies from working is that whitening gains may have changed, which we don't typically note down when reporting input matrix settings
My current settings for 3F locking:
+30dB whitening gain, +136 demod phase
PRCL = 9 x I - 200 counts
+24dB whitening gain, +3 demod phase
SRCL = 1 x I, MICH = 5 x Q - 1000counts
MICH: G=-0.03; Acq FM4/5; Trig 2/3/6/9
PRCL: G=-0.003; Acq FM4/5; Trig 1/2/6/9
SRCL: G=0.2; Acq FM4/5; Trig 2/3/6/9
I've injected excitations into the control filter outputs via the LSC-FFC FMS (and notched the frequencies in the control filters themselves), and noted GPS times for offline sensing analysis. (Namely the 10 minutes following 1125398900)
Handing off to pure 3F was a little finicky at first, I needed to use some pretty large offsets in the MICH_B and PRCL_B FMs. (-1000 and -200 counts respectively). Once these offsets were found, the DRMI can acquire on 3F. Alignment is pretty important, too. Acquiring is much faster when the loop gains are "too high." i.e. I see a fair amount of gain peaking at ~300Hz. Nevertheless, things are stable enough as is that I didn't feel like digging into reducing the gains to quieter values.
Q and Ignacio were taking a second look at the Pentek interface board which we're using to acquire the POP QPD, ALS trans, and MCF/MCL channels. It has a differential intput, two jumper able whitening stages inside and some low pass filtering.
I noticed that each channel has a 1.5 kHz pole associate with each 150:15 whitening stage. It also has 2 2nd order Butterworth low pass at 800 Hz. Also there's a RF filter on the front end. We don't need all that low passing, so I started modifying the filters. Tonight I moved the 800 Hz poles to 8000 Hz. Tomorrow we'll move the others if Steve can find us enough (> 16) 1 nF SMD caps (1206 NPO).
After this those signals ought to have less phase lag and more signal above 1 kHz. Since the ADC is running at 64 kHz, we don't need any analog filtering below 8 kHz.
Since Andrey's SUS Drift mon screen back in 2007, we've had several versions which used different schemes and programming languages. Diego made an update back in January.
Today I added his stuff to the SVN since it was lost in the NFS disks somewhere. Its in SUS/DRIFT_MON/.
Since we've been updating our userapps directory recently to pull in the screens and scripts from the sites, we also got a copy of the Thomas Abbott drift mon stuff which is better (Diego actually removed the yellow/red functionality as part of the 'upgrade'), but more complicated. For now we have the old one. I updated the good values with all optics roughly aligned just a few minutes ago.
added the cron script for this to megatron to run at 8:44 AM each morning. Here's the new MegaCron attached :-()-
** it takes ~13 minutes to complete on megatron
# m h dom mon dow command
#0 */1 * * * bash /home/controls/public_html/summary/bin/c1_summary_page.sh > /dev/null 2>&1
#15 5 * * * /ligo/apps/nds2/nds2-megatron/test-restart
# MEDM Screen caps for the webpage
2,13,25,37,49 * * * * /cvs/cds/project/statScreen/bin/cronjob.sh
# op340m transplants -ericq
We investigated the ETMY oplev table set up and did not find a red herring.
Two 2 years vs one day plot below.
ps: thanks Q for fixing DTT, the auto scaling is not working at sampling rate 10 min and 1 hr period??
I experimented with removing somethings here and there to reduce the c1cal runtime. Eventually I deleted the LSC Sensing Matrix from it.
After removing sensing matrix, the run time is now down to 6 usec.
Back in 2011, JoeB wrote some entries on how to automatically update the Simulink webview stuff.
Somehow, the cron broke down over the years. I reran the matlab file by hand today and it worked fine, so now you can see the up to date models using the internet.
Today, I remeasured the transfer function for MC2 to MCL in order to improve the subtraction performance for MCL and to quantify just how precisely it needs to be.
Here is the fit, and the measured coherence. Data is also attached here: TF.zip
OMG, I forgot to post the data and any residuals. LOL!
The transfer function was fitted using vectfit with a weighting based on coherence being greater than 0.95.
I then used the following filters to do FF on MCL online:
Here are the results:
Performance has definelty increased when compared to previous filters. The reason why I think we still have poor performance at 3 Hz, is 1) When I remeasured the transfer function, Eric and I were expecting to see a difference on its shape due to the whitening filters that were loaded a couple days ago. 2) Assuming the transfer function is correct, there is poor coherence at 3 Hz 3) The predicted IIR subtraction is worst at this frequency.
ran the ON script several times and it kept pulling it away from good alignment, even when TRX was > 0.9.
Also, for what reason was this model run at 16 kHz?? Makes no sense to me to have a low frequency servo system run so high. Only makes for more digital precision noise, more CPU time, etc. Of course, running it at 2k would mean having to think about all of the AA filtering needed to go up/down from 2k to 16k.
The IMC often was making that scratchy noise when first catching lock and sometimes breaking. Thinking of the crappy crossover sit that EQ showed in his latest plots, I decided that it didn't make sense to acquire lock with an unstable PZT/EOM crossover, so I have changed mcdown to acquire with +13 dB Fast Gain and its much fast now and no longer makes that sound.
I also changed the caput command from 'caput -l' to 'caput -c -l' to see if the async 'wait for callback' feature will insure that the commands get sent. I witnessed the mcdown not actually writing all of its commands once or twice tonight. With the MC Boost left on its never going to lock.
mcdown has been committed to SVN. Please, if you have recently edit mcup and Autolock, commit them to the SVN or else I will delete them and do an svn up.
Let's order a pair of 35.5 MHz Wenzel for this guy and package like Rich has done for the WB low noise oscillators.
WE're only sending 6 dBm into it now and its using a 13 dBm mixer. Bad for PMC stability.
Also, if anyone has pix of the servo card, please add them to the DCC page for the PMC.
From the AFW website about our product, the POBC-64-C-1-7-2-25dB:
port1 slow axis -> port3 slow axis
port2 slow axis -> port3 fast axis
The promised historical comparisons follow. The crossover looks mostly the same as before. There is a new feature in the OLG at 50-60kHz; what could've changed about the EOM path in that time?
Maybe we just don't understand the splitter/combiners.
After an email from Eric G, I think this is the case.
If you read the text at Thorlabs about Fiber-Based Polarization Beam Combiners/Splitters, it suggests that these things take input beams both aligned to their slow axes, and outputs one field along the slow, and one orthogonal to it on the fast axis. Which is exactly what we don't want for a beat.
There has been some discussion here and there of using fiber coupled IR beats for ALS. A few weeks ago, and again today with Eric G, I poked around a bit with the fiber box Manasa set up for the FOL scheme.
Somehow, the IR beatnote is ~1000 times smaller than expected, both with the Thorlabs fiber coupled PD and a fiber coupled NF 1611.
In essence, after the fiber combiner, there is on the order of hundreds of uW each of PSL and AUX X IR light. The output of the fiber from each source looks nice and gaussian. The DC output of the 1611 indicates that it is seeing the right level of light. The green beatnote exists with good SNR at twice the IR beat frequency, so we know that the IR beat isn't some junky modes beating.
For the 1611, we would expect an RF signal of ~1mW*0.9A/W*700V/A -> .6V / +8dBm. Instead we see ~2mV / -40dBm.
Incidentally, there is some 20mV / -20dBm signal at ~400kHz, presumably from the green PDH modulation at ~200k.
(The level out of the thorlabs PD is similarly tiny; it doesn't have a DC output though, so we don't know the DC power that the active surface really sees. Not that I expect it to be much different, but the NF just makes it easier to estimate.)
The only things that should be able to cause the beat to be smaller than expected from the power levels are mode matching and polarization matching. All the fibers are single mode, so mode matching should be effectively 100%. Maybe somthing fishy is happening with the polarizations, but they'd have to be really maliciously close to orthogonal to cause this level of mismatch.
Maybe we just don't understand the splitter/combiners. Mysterious.
I took some transfer functions of the IMC loop and crossover, being careful that the PC drive never exceeding 1V during the measurements.
I then did some algebra to try and back out the individual loop paths, without having to make assumptions/approximations about the loop gain being high enough. This only really works in the region where both the open loop and crossover measurements have coherence.
It seems to me that the PZT path has pretty low phase margin on its own, but maybe this is ok, since its never really meant to run solo. The EOM path shape is harder to understand.
The data I took, and code that made the above plot is attached. This afternoon, I'll post an update comparing the measured OLG and crossover to earlier measurements.
To help find out if Steve really melted the inside of our precious seismometer, lets hook it up using the handheld seismo wand and see if it produces volts when we shake the ground.
Also, please stop using names like GurA or Gur1 or GurSuzy. We have GurX and GurY because they are at those ends. Anything else is confusing.
I moved Gur A from ETMX to ETMY . Gur B at ETMY was disconnected and its cable connected to Gur A
It seems that Gur A is alive. I will stop using A and B names after we stop swapping components.
Using the training data that was collected during the MISO MCL FF. I decided to look at more MCL subtractions but this time using the accelerometers as Rana suggested.
I first plotted the coherence between MCL and all six accelerometers and the T240-Z seismometer.
For 1 - 5 Hz, based on coherence, I decided to do SISO Wiener filtering with ACC2X and MISO Wiener filtering with ACC2X and ACC1Y. The offline subtractions were as follows (RMS plotted from 0.1 to 10 Hz):
The subtractions above look very much like what you would get offline when using the T240(X,Y) seismometeres during MISO Wiener filtering. But this data was taken with the MISO filters on. This sort of shows the performance deterioration when one does the online subtractions. This is not surprising since the online subtraction performance for the MISO filters, was not too great at 3 Hz. I showed this in some other ELOG but I show it again here for reference:
Anyways, foor 10 - 20 Hz, again based on coherence, I decided to do SISO Wiener filtering with ACC2Z and MISO Wiener filtering with ACC2Z and ACC1Z (RMS plotted from 10 to 20 Hz):
I will try out these subtractions online by today. I'm still debating wether the MISO subtractions shown here are worth the Vectfit shananigans. The SISO subtractions look good enough.
I took some training data during Sunday night/Monday morning while the MCL MISO FF was turned on. We wanted to see how much residual noise was left in the WFS1/WFS2 YAW and PITCH signals.
The offline subtractions that can be achieved are:
I need to download data for these signals while the MCL FF is off in order to measure how much subtraction was achived indirectly with the MCL FF. In a previous elog:11472, I showed some offline subtractions for the WFS1 YAW and PITCH before any online FF was implemented either by me or Jessica. From the plots of that eLOG, one can clearly see that the YAW1 signal is clearly unchanged in the sense of how much seismic noise was mitigated indirectly torugh MCL.
Koji has implemented the FF paths (thank you based Koji) necessary for these subtractions to be implemented. The thing to figure out now is where we want to actually actuate and to measure the corresponding transfer functions. I will try to have either Koji or Eric help me measure some of these transfer functions.
Finally, I looked at the ARMS and see what residual seismic noise can be subtracted
I'm not too concerned about noise in the arms as if the WFS subtractions turn out to be promising then I expect for some of the arms seismic noise to go down a bit further. We also don't need to measure an actuator transfer function for arm subtractions, give that its essentially flat at low frequencies, (less than 50 Hz).
In order to allow us to work on the IMC angular FF, we made the signal paths from PEM to MC SUSs.
In fact, there already were the paths from c1pem to c1oaf. So, the new paths were made from c1oaf to c1mcs. (Attachment 1~3)
After some debugging those two models started running. The additional cost of the processing time is insignificant.
FB was restarted to accomodate the change.
Once the modification of the models was completed, the OAF screens were modified. It seemed that the Kissel button
for the output matrix haven't been updated for the PRM ASC implementation. This was fixed as the button was updated this time.
In addition, the button for the FM matrix was also made and pasted.
I measured the 15 Hz zero and the 150 Hz pole for the whitening filter channels of the Generic Pentek board in the IOO rack. The table below gives these zero/pole pairs for each of the 8 channels of the board.
Here is a plot of one of the measured transfer functions,
and the measured data is attached here: Data.zip
EQ: I've added the current channels going through this board.
More importantly, I found that the jumpers on channel one (QPD X) were set to no whitening, in contrast to all other channels. Thus, the POP QPD YAW signals we've been using for who knows how long have been distorted by dewhitening. This has now been fixed.
Hence, the current state of this board is that the first whitening stage is disabled for all channels and the second stage is engaged, with the above parameters.
MISO Wiener filters for MCL kept the mode cleaner locked for a good 8+ hours.
I think what happened here is you forgot to undo the MC_F whitening filter which is the Generic Pentek Interface board next to the MC servo board. I suggest you guys measure this on Monday so you can correctly estimate the MC length noise. And then perhaps undo the whitening in the anti-whitening filter of this filter bank so that the signal which is recorded is in units of kHz.
This should allow your online subtraction filter to be more correct: roughly speaking, the phase shift below a pole or zero is going to be 45*(f/fp) deg. Since we expect there to be 2 zeros at 15 Hz, it would be 9 deg phase shift at 1.5 Hz and limit the subtraction to ~80%.
While it is true that the whitening filter was incorrectly handled, I don't think this should change the subtraction performance since the MC_L data used for the Wiener filter training was also taken without undoing the whitening filter.
I decided to give MISO Wiener filtering a try again. This time around I managed to get working filters. The overall performance of these MISO filters is much better than the SISO I constructed on elog:11541 .
The procedure I used to develope the SISO filters did not work well for the construction of these MISO filters. I found a way, even more systematic than what I had before to work around Vectfit's annoyances and get the filters in working condition. I'll explain it in another eLOG post.
Anyways, here are the MISO filters for MCL using the T240-X and T240-Y as witnesses:
Now the theoretical offline prediction:
The online subtractions for MCL, YARM and XARM. I show the SISO subtraction for reference.
And the subtraction performance:
The summary pages show the effect of the MCL FF on MCF (left Aug 26, right Aug 30):
I'm not too sure what you meant by plotting the X & Y arm control signals with only the MCL filter ON/OFF. Do you mean plotting the control signals with ONLY the T-240Y MCL FF filter on/off? The one that reduced noise at 1Hz?
I'm not totally sure, but by eyeball, this seems like the best online MCL reduction we've ever had. Nice work.
The 3 Hz performance is the same as usual, but we've never had such good 1 Hz reduction in the online subtraction.
I would like to see a plot of the X & Y arm control signals with only the MCL filter ON/OFF. This would tell us how much of the arm signals were truly frequency noise.
Big thumbnails? Could it have been this? elog:11498.
Ignacio is correct; I forgot to shrink the value back down after testing the PDF thumbnails. Default thumbnail size is now back to 600px.
Anyways, I fixed the plots and plotted an RMS that can actaully be read in my original eLOG. I'll see what can be done with the MC1 and MC2 Wilcoxon (z-channel) for online subtractions.
Somehow it seems like the ELOG makes all of the thumbnails way too big by default. Did we get some sneaky upgrade recently?
I would only plot your results below 50 Hz. We don't care about the RMS at high frequencies and it can make the RMS misleading.
We definitely need to include one vertical Wilconox at each MC chamber so that it can subtract all of that junk at 10-20 Hz.
After fighting relentlessly with the mode cleaner, I believe I have achieved final results.
I have mostly been focusing on Wiener filtering MCL with a SISO Wiener filter for a reason, simplicity. This simplicity allowed me to understand the dificulties of getting a filter to work on the online system properly and to develope a systematic way of making this online Wiener filters. The next logical step after achieving my final SISO Wiener filter using the T240-X seismometer as witness for MCL (see elog:11535) and learning how to produce good conditioned Wiener filters was to give MISO Wiener filtering of MCL a try.
I tried performing some MISO filtering on MCL using the T240-X and T240-Y as witnesses but the procedure that I used to develope the Wiener filters did not work as well here. I made the decision to ditch it and use some of the training data I saved when the SISO (T240-X) filter was runing overnight to develope another SISO Wiener filter for MCL but this time using T240-Y as witness. I will compare how much more we gain when doing MISO Wiener filtering compared to just a bunch of SISO filtering in series, maybe a lot, or little.
I left both filters running overnight in order to get trainining data for arm and WFS yaw and pitch subtractions.
The SISO filters for MCL are shown below:
The theoretical FIR and IIR subtractions using the above filters:
Running the filters on the online system gave the following subtractions for MCL and YARM:
Comparing the subtractions using only the T240-X filter versus the T240-X and T240-Y:
I made a measurement of the MC2 actuator transfer function by injecting noise from 1-100Hz into LSC_MC2_EXC for about 15 minutes, then estimating the TF from MC2_OUT to IOO_MC_L with CSD/PSD. The inverse of this TF will be applied to their Wiener target data to give us the direct subtration filter we want.
Well, green looks better than blue, but it makes the PCDRIVE go high, which means its starting to saturate the EOM drive. So we can't just maximize the phase margin in the PZT/EOM crossover. We have to take into account the EOM drive spectrum and its RMS.
Also, your gain bump seems suspicious. See my TF measurements of the crossover in December. Maybe you were saturating the EOM in your TF ?
Lets find out what's happening with FSS servos over in Bridge and then modify ours to be less unstable.