Correction routine doesn't appear to handle coupling between X and Y

Moderators: cyao, michael_borland

Post Reply
foshea
Posts: 34
Joined: 23 Jun 2009, 21:00

Correction routine doesn't appear to handle coupling between X and Y

Post by foshea » 13 Jan 2020, 19:26

I am running a correction routine on a strongly coupled transport line using solenoids and when it is done it does an excellent job on the y-direction and appears to ignore the x-direction. Here is my call to the &correct command:

Code: Select all

&correct
	disable = 0,
	n_iterations = 50,
	n_xy_cycles = 50,
	force_alternation = 0,
	do_correction[0] = 1, 1,
	corrector_limit[0] = 200e-3, 200e-3,
	mode = "trajectory",
	method = "global",
	trajectory_output = %s.traj,
	corrector_output = %s.cor,
	statistics = %s.scor,
	verbose = 2
&end

&correction_matrix_output
	response[0] = %s.hrm, %s.vrm, %s.vhrm, %s.hvrm
&end
Typically, the corrected trajectory at the monitor points is worse than the the uncorrected lattice for the x-direction. When I switch do_correction = 1,0 (ignore the y-direction) the correction of the x-direction is excellent. Increasing the number of n_xy_cycles and n_iterations doesn't appear to do much, if anything the result in the x-direction is worse.

When I look at the correction matrices, they look like the following:

vertical correction matrix

Code: Select all

! page number 1
Response
2
"input lattice response"
unknown
			2
HALMON  1.700000000000000e+00  5.918773310753178e-01  0.000000000000000e+00 
ENDMON  2.300000000000001e+00  4.206876006636991e-01  1.544176975041108e-01
horizontal correction matrix

Code: Select all

! page number 1
Response
2
2
"input lattice response"
unknown
			2
HALMON  1.700000000000000e+00  5.460346101780636e-02  0.000000000000000e+00  
ENDMON  2.300000000000001e+00  3.212535043707229e-04  2.305462903851332e-02
vertical to horizontal correction matrix / horizontal to vertical correction matrix

Code: Select all

! page number 1
Response
0
0
"input lattice response"
unknown
			0

My lattice consists only of EMATRIX, DRIF, KICKER and MONI elements, and there are a number of off-diagonal elements due to the solenoids. By the end of the beam line all of the R1X, R2X, R3X and R4X elements are non-zero for X = 1,2,3,4 and all elements with a 5 or 6 are zero because I'm only looking at transverse dynamics. Am I missing a command somewhere to turn on coupling?

michael_borland
Posts: 1927
Joined: 19 May 2008, 09:33
Location: Argonne National Laboratory
Contact:

Re: Correction routine doesn't appear to handle coupling between X and Y

Post by michael_borland » 20 Jan 2020, 16:26

Unfortunately, the correction routine doesn't handle coupling. I'll add that to the list of needed improvements.

As a workaround, you could put something together using the cross-plane matrices and SDDS tools.

--Michael

foshea
Posts: 34
Joined: 23 Jun 2009, 21:00

Re: Correction routine doesn't appear to handle coupling between X and Y

Post by foshea » 21 Jan 2020, 16:03

Good to know, thank you.

li.chao
Posts: 45
Joined: 18 Aug 2021, 08:59

Re: Correction routine doesn't appear to handle coupling between X and Y

Post by li.chao » 14 Jul 2022, 09:02

Hi

Can the &correct &end command handle the coupling correction at this moment?

yours Chao

li.chao
Posts: 45
Joined: 18 Aug 2021, 08:59

Re: Correction routine doesn't appear to handle coupling between X and Y

Post by li.chao » 19 Jul 2022, 09:53

Dear all,

Would like to learn more about the algorithm used currently in the &correct &end command.

&correct
mode = orbit, method = global,
keep_largest_SVs[0] = 2*100,
&end

In the command list, I noticed there is a parameter keep_largest_SVs.
Then I think this command specify the correcting scheme plane by plane, there coupling is not included, right?
I would like to know what elegant did once the orbit response matrix is obtained with the truncate singular values?

Take the x plane for example.
Assume the response matrix is noted as A, did the corrector strength is directly obtained by \theta = -1 * (A^{T} A)^{-1} A^{T} B?
Here B is the position offset reading in BPM at x direction.

Or the corrector command use some other scheme to get the optimization method to get the corrector strength.

looking forward to you discussion.
yours Chao

michael_borland
Posts: 1927
Joined: 19 May 2008, 09:33
Location: Argonne National Laboratory
Contact:

Re: Correction routine doesn't appear to handle coupling between X and Y

Post by michael_borland » 27 Jul 2022, 19:51

Coupled trajectory correction was added about a year ago. I've attached an example of using this feature.

--Michael
Attachments
coupledTransportLineSteering.zip
(2.12 KiB) Downloaded 133 times

Post Reply