source: MML/trunk/machine/SOLEIL/StorageRing/bba_mml/quadgetstepPS.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 1.3 KB
Line 
1function quadgetstepPS
2% Computes  for 1 A shift a quadrupole offset by 100 µm
3
4% load lattice
5solamor2linb
6
7getquadefficiency('Q1', [1 1]);
8getquadefficiency('Q2', [1 1]);
9getquadefficiency('Q3', [1 1]);
10getquadefficiency('Q4', [1 1]);
11getquadefficiency('Q4', [1 2]);
12getquadefficiency('Q5', [1 1]);
13getquadefficiency('Q5', [1 2]);
14getquadefficiency('Q6', [1 1]);
15getquadefficiency('Q6', [2 1]);
16getquadefficiency('Q7', [1 1]);
17getquadefficiency('Q7', [2 1]);
18getquadefficiency('Q8', [1 1]);
19getquadefficiency('Q8', [2 1]);
20getquadefficiency('Q9', [2 1]);
21getquadefficiency('Q10', [2 1]);
22
23function [xmax zmax] = getquadefficiency(Family, DeviceList)
24
25DIQ = 1; %A
26xshift = 100e-6; % um
27zshift = 100e-6; % um
28
29% offset by 100µm in both planes
30atIdx = family2atindex(Family, DeviceList);
31setshift(atIdx, xshift,zshift)
32
33fprintf('Offset dx = %.0f um dz = %.0f um\n', xshift*1e6, zshift*1e6);
34
35% Orbit correction
36for k =1:3,
37    setorbitH;
38    setorbitV;
39end
40
41% get orbit before quadrupole step point
42x0 = getx;
43z0 = getz;
44
45stepsp(Family, DIQ, DeviceList);
46
47% get orbit after quadrupole step point
48x1 = getx;
49z1 = getz;
50
51dx = x1-x0;
52dz = z1-z0;
53
54xmax = max(abs(dx));
55zmax = max(abs(dz));
56fprintf('quadrupole %s(%d, %d) (+%d A) xmax = %.4f mm zmax =%.4f mm\n', Family, DeviceList, DIQ, xmax, zmax)
57
58%
59stepsp(Family, -DIQ, DeviceList);
60
61%reset align
62setsp('HCOR',0);
63setsp('VCOR',0);
64
65
Note: See TracBrowser for help on using the repository browser.