Summary:
A new, better inverse actuation filter has been made for the x-arm Pcal, but it has not yet replaced the old filter. This was constructed using knowledge of the Pcal OFS-AOM gain coefficient (see LHO alog 27155), the suspension model, and models of the digital/analog AI components. The AI components had to be approximated since the injection model runs at 16k. Also, the actuation function delays couldn't be included in the filter, so all waveforms using the attached actuation function or using the inverse actuation filter should assume a timing advance of 225 us. Another aLOG will be posted once the new filter is in place.
When including this timing shift, the new actuation function/inverse actuation filter match the real values to within 5% in magnitude and 5 degrees in phase up to 2 kHz. Above 2 kHz, the deviations from the true actuation function are significant due to the approximations chosen for the analog/digital AI filters and a rolloff filter being applied.
Details:
The continuous wave hardware injections would like to use the Pcal actuation function instead of an inverse actuation filter for O2. Meanwhile, the transient injections will continue to use an inverse actuation filter. The actuation function is nominally modeled as follows:
PCALX_EXC --> IOP-15 --> 16k-64k AI(D) --> DAC (V/ct) --> ZOH 7.5 --> AI(A) --> OFS --> AOM --> N/W --> Norm. SUS --> 1/f^2 --> DC SUS (m/N) --> 1/L (h/m) --> strain
Legend:
IOP-15 = 15 us delay from the IOP
16k-64k AI(D) = digital anti-imaging filter (using the new RCGv3.0.2 filter, see LHO alog 27173)
DAC = digital-to-analog converter
ZOH 7.5 = zero-order-hold, 7.5 us delay
AI(A) = analog anti-imaging filter
OFS = optical follower servo
AOM = acousto-optic modulator
N/W = power-to-force coefficient = 2*cos(theta)/c (Note that this does not include rotation-induced errors, with 1-sigma uncertainty of 0.4%, see LIGO-L1600018)
Norm. SUS = normalized suspension transfer function model which has been multiplied by zpk filter with 2 zeros at 1 Hz
1/f^2 = zpk filter with 2 poles at 1 Hz
DC SUS (m/N) = suspension force-to-length "DC" coefficient
1/L (h/m) = inverse of the mean arm length
The OFS-AOM system has a wide-bandwidth (UGF ~50 kHz) and a gain of 0.0923 W/V for H1 ETMX Pcal (this is watts impinging on the ETM per volt of drive sent to the OFS, LHO alog 27155). The SUS file used is in the SUS repository:
/ligo/svncommon/SusSVN/sus/trunk/Common/SusModelTags/Matlab/quadmodelproduction-rev7652_ssmake4pv2eMB5f_fiber-rev3601_h1etmx-rev7641_released-2015-08-07.mat
However, in order to construct an *inverse* actuation filter, some of these components cannot be included because a delay would turn into an advance (breaking causality). In addition, the model runs at 16k, so the inverse AI digital filter must be approximated. The high frequency components of the inverse actuation filter need to be rolled off using additional filtering. Thus, the *inverse* actuation filter model is constructed as follows:
strain --> L (m/h) --> 1/DC SUS (N/m) --> f^2 --> 1/Norm. SUS --> W/N --> 1/[OFS * AOM] --> 1/AI(A) approx --> DAC (ct/V) --> 1/AI(D) approx --> Ellip. rolloff --> 3 7kHz poles --> PCALX_EXC
Here, there are two approximations made: the analog/digital AI filters are modeled to roughly match the magnitude (see comparisons in figures 1 and 2), as well as removing the IOP and ZOH delays. Note that two rolloff filters are used to suppress high-frequency content, a 3rd-order elliptic filter and 3 7kHz poles. The phase error in the approximations is accounted for with the expectation that waveforms using this inverse actuation filter will need a timing advance of 225 us.
The analog AI approximation is one zero at 5160 Hz and 2 poles at 7100 Hz (e.g., [5160:7100,7100])--see figure 1. The digital AI approximation is 4 zeros at 7000 Hz, and 2 complex pole pairs (e.g., [7k,7k,7k,7k:pair(4300,30),pair(7000,50)])--see figure 2. The elliptic rolloff filter is given by the Matlab function myellip_z2(6900,3,.4,10,10)--6900 Hz knee frequency, 3rd-order, 0.4 dB ripple, 10 dB stopband, and zQ of 10.
The final Pcal actuation function and comparison to the real value is shown in figure 3 with the delay included, and figure 4 is the inverse actuation function with the advance included. Figure 5 shows the impulse response of the inverse actuation filter (no delay included).
The attached H1PCALXactuation.dat file is the actuation function sampled every 0.125 Hz.
Code that produced these results is located in
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/DARMmodel/Scripts/pcal_actuation_function_quack.m
Next steps: replace the old inverse actuation filter, move the inverse actuation filters from the PINJ_HARDWARE bank into the PINJ_TRANSIENT bank so that the CW injections (which will use the Pcal actuation function manually) will not pass through the inverse actuation filter.