Not logged in
Fri Aug 12 16:42:51 2011
LSC Feed Forward Compensator
I've been working on adding feed forward (FF) paths to our LSC code.
So far, I've made a basic feed forward functionality connected
to the feedback path of the LSC model.
As is shown in the MEDM screen, this feed forward compensator (FFC)
takes feedback signals from several DOFs (MICH, PRCL, SRCL, CARM, XARM and YARM)
and put those signals through some filters. Then the filtered signals are
summed into the feedback signals.
There are input and output matrices to select which signal goes to which signal.
Usually, we just want to feed forward MICH to DARM. We may also want to do PRCL
to DARM and SRCL to DARM if necessary.
It is more unlikely that we use CARM for FF. But I put it there just in case.
XARM and YARM will not going to be used as is. These are place holders for future
experiments, like low frequency FF from seismic channels or something like that.
Feed forward is almost always done to DARM. But just in case we want to do some
fancier FF, like FF from PRCL to MICH, the output matrix is there to chose where
the signals will go.
I haven't really tested it because we don't have the interferometer working.
But I checked the signal flow, and it seems the model is working correctly.
=== Implementation ===
FFC is running in a separate realtime code, called c1ffc.
This is to offload c1lsc from the possible intense calculations, like adaptive stuff,
performed in the FFC in the future.
The LSC signal is passed to c1ffc via shared memory. The calculated FF signals
are passed back to c1lsc via shared memory too.
Even though FFC is in a separate realtime model, it is still conceptually a part of LSC.
So, I used top_names tag to change the names of the channels to C1:LSC-FFC_* instead of
In MEDM, there is an "ENABLE" button in the FF screen. Even though it is shown in the FFC
overview screen, the button itself is in the c1lsc code, so that we can disable the FFC
even when c1ffc is dead or going crazy.
=== Background ideas ===
For those of you wondering what is this feed forward thing for, I will put a brief explanation here.
Taking MICH as an example, we get the error signal for MICH from probably REFL_55Q (or AS_55Q ?).
At low frequencies, this signal properly reflects the motion of the mirrors (mostly seismic).
However, it has much worse shot noise than DARM. At higher frequencies, like above a few tens of Hz,
the error signal is dominated by the shot noise. Feeding back this signal to, say BS, means
we are shaking the BS by the shot noise, which was otherwise quiet at high frequencies.
Now, if the BS is shaken, it has some intrinsic coupling to the DARM signal.
The mechanism is that the BS motion creates some audio frequency sidebands
and this SBs reach the AS port and beat against the local oscillator to create
fake GW signals. This is called "Loop Noise Coupling".
A well known way to mitigate this problem is feed forward.
Since we know how much we are shaking the BS (because we are doing it), and
we can measure the amount of BS to DARM coupling, we can subtract out the
loop noise by feeding forward the MICH feedback signal to the DARM actuators.
In other words, the noise SBs created at the BS is canceled on the PD by the
extra SBs created at the ETMs by the feed forward.
This is what FFC is trying to do.