T1300534-v1 (6/13/13) - Exploration of the best way of applying longitudinal force at the quad test mass using the top mass actuators

To run the calculations in this notebook, it needs to be installed in a calculation directory of a case of the Mathematica QuadLite2Lateral model. The DCC version was run as “^/trunk/Common/MathematicaModels/QuadLite2Lateral/mark.barton/20120601TMproductionTM/mark.barton/T1300534-v1 ASUS4XLLateralModelCalcLP.nb” in the SUS SVN.

Setup

Switches to enable loading of previously saved results instead of recalculating from scratch

useprecomputed = True; (* set to True to use saved results from precomputed subdirectory *)
If[useprecomputed,
	exceptdamping = False, (* False by default, True to recalculate just damping-dependent stuff*)
	exceptdamping = True (* DON"T CHANGE *)
];

loadcasefromuser["ASUS4XLLateralCaseDefn.m"];

modelcase

modelcasecomment

Theory

Trying to get an L=longitudinal=x displacement of the optic (x3) by actuating in L at the top mass (x0) causes significant displacement in P=pitch as well due to L/P cross-coupling. This is especially true near the fundamental L mode at 0.434 Hz (see Mode Summary section below). We consider two approaches to mitigating this.
The “minimal” approach is just to add some P actuation at the top mass to take away the P displacement injected by the L-only approach.
The “maximal” approach looks at the exact combination of L and P required to get pure frequency-independent L actuation with no P. It turns out this is simpler and more robust to implement.

We start with the expected displacements L3=x3 and P3=pitch3 at the mass in terms of a matrix of transfer functions and the force/torque at the top mass, FL0 and FP0.

(({{L3}, {P3}}))=(({{L2L, P2L}, {L2P, P2P}}))(({{FL0}, {FP0}}))

The minimal approach is to take FL0 as given and solve for FP0 with P3=0. This gives

FP0=-(P2P/P2L)FL0

The maximal approach is to invert the full equation with P3=0 to get the optimum force/torque:

(({{FL0}, {FP0}}))=(((({{L2L, P2L}, {L2P, P2P}})))^(-1))(({{L3}, {0}}))

See Conclusions section at end for take-away message.

Mode Summary

Join[	
	{{"N","f","type"}},
	Table[
		Join[
			{i},
			{Hz2[[-i]]},
			important[e2ni.eigenvectors2[[-i]],0.7]
		],
		{i,noofLF}
	]
]//TableForm

Illustration of cross-coupling at DC for pure L force at top mass

unitx0force = {
pitch0->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch0],0]],
pitch1->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch1],0]],
pitch2->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch2],0]],
pitch3->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch3],0]],
x0->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[x0],0]],
x1->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[x1],0]],
x2->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[x2],0]],
x3->Re[calcTFf[eom2,makefinputvector[x0],makeoutputvector[x3],0]]
}

eigenplot[allvars/.unitx0force/.x_:>0/;MemberQ[allvars,x],500,{0,-3,0}, floatmatrix2]

Elements of the LP coupling matrix

L2L

LogLogPlot[Abs[calcTFf[eom2,makefinputvector[x0],makeoutputvector[x3],f]],{f,0.09,10}]

L2P

LogLogPlot[Abs[calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch3],f]],{f,0.09,10}]

P2L

LogLogPlot[Abs[calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[x3],f]],{f,0.09,10}]

P2P

LogLogPlot[Abs[calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[pitch3],f]],{f,0.1,10}]

Minimal Approach

Optimum P-cancelling filter (run L drive signal through this)

LogLogPlot[
Abs[
-calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[pitch3],f]
/calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[x3],f]
],
{f,0.1,10},AxesLabel->{"f (Hz)","N.m/N"}
]

Maximal Approach

Optimum L filter for flat L output and no P (used in conjunction with P filter below)

LogLogPlot[
Abs[
(Inverse[
{{calcTFf[eom2,makefinputvector[x0],makeoutputvector[x3],f],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[x3],f]},
{calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch3],f],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[pitch3],f]}
}
].{{1},{0}}
)[[1,1]]
],
{f,0.1,10},AxesLabel->{"f (Hz)","N/m"}
]

Optimum P filter for flat L output and no P (used in conjunction with L filter above)

LogLogPlot[
Abs[
(Inverse[
{{calcTFf[eom2,makefinputvector[x0],makeoutputvector[x3],f],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[x3],f]},
{calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch3],f],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[pitch3],f]}
}
].{{1},{0}}
)[[2,1]]
],
{f,0.1,10},AxesLabel->{"f (Hz)","N.m/m"}
]

Conclusions

The minimalist approach gives a messy filter that would be hard to implement and probably wouldn’t do a great job. The maximalist filters turn out to be much simpler and could probably be approximated satisfactorily in the all-important low frequency region (below 1 Hz) with just a simple notch in L at 0.434 Hz, and a slight ramp up in P.

Appendix - Filters in table form

L

Table[{10^logf,Re[(Inverse[
{{calcTFf[eom2,makefinputvector[x0],makeoutputvector[x3],10^logf],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[x3],10^logf]},
{calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch3],10^logf],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[pitch3],10^logf]}
}
].{{1},{0}}
)[[1,1]]]
}
,
{logf,Log[10,0.1],Log[10,1],0.01}
]//(TableForm[#,TableHeadings->{None,{"f (Hz)","L (N/m)"}}]&)

P

Table[{10^logf,Re[(Inverse[
{{calcTFf[eom2,makefinputvector[x0],makeoutputvector[x3],10^logf],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[x3],10^logf]},
{calcTFf[eom2,makefinputvector[x0],makeoutputvector[pitch3],10^logf],calcTFf[eom2,makefinputvector[pitch0],makeoutputvector[pitch3],10^logf]}
}
].{{1},{0}}
)[[2,1]]]
}
,
{logf,Log[10,0.01],Log[10,1],0.1}
]//(TableForm[#,TableHeadings->{None,{"f (Hz)","P (N.m/m)"}}]&)