1 | |
---|
2 | num = 12; |
---|
3 | |
---|
4 | X = AM.Data.X(:,num:num+5)'; |
---|
5 | Z = AM.Data.Z(:,num:num+5)'; |
---|
6 | |
---|
7 | |
---|
8 | [X1 X2 X3 X4] = deal(X(1,:),X(2,:),X(3,:),X(4,:)); |
---|
9 | [Z1 Z2 Z3 Z4] = deal(Z(1,:),Z(2,:),Z(3,:),Z(4,:)); |
---|
10 | |
---|
11 | %% Algo 4 turns |
---|
12 | nux = acos((X2-X1+X4-X3)/2./(X3-X2))/2/pi; |
---|
13 | nuz = acos((Z2-Z1+Z4-Z3)/2./(Z3-Z2))/2/pi; |
---|
14 | |
---|
15 | Xcod = (X3.*(X1+X3)-X2.*(X2+X4))./((X1-X4) + 3*(X3-X2)); |
---|
16 | Zcod = (Z3.*(Z1+Z3)-Z2.*(Z2+Z4))./((Z1-Z4) + 3*(Z3-Z2)); |
---|
17 | |
---|
18 | spos = getspos('BPMx'); |
---|
19 | |
---|
20 | figure |
---|
21 | plot(spos,Xcod,'b.-',spos,Zcod,'r.-'); |
---|
22 | xlabel('s-position [m]'); |
---|
23 | ylabel('Close orbit [mm]'); |
---|
24 | legend('Xcod','Zcod'); |
---|
25 | grid on |
---|
26 | yaxis([-7 7]) |
---|
27 | |
---|
28 | % disregard cplx results |
---|
29 | nux(imag(nux) ~= 0) = NaN; |
---|
30 | nuz(imag(nuz) ~= 0) = NaN; |
---|
31 | |
---|
32 | figure |
---|
33 | subplot(2,2,[1 2]) |
---|
34 | plot(spos,nux,'b.',spos,nuz,'r.') |
---|
35 | xlabel('s-position [m]') |
---|
36 | ylabel('tune fractionnal part') |
---|
37 | title('4-turn Algorithm') |
---|
38 | legend(sprintf('nux %f',mean(nux(~isnan(nux)))),sprintf('nuz %f',mean(nuz(~isnan(nuz))))); |
---|
39 | grid on |
---|
40 | yaxis([0 0.5]) |
---|
41 | |
---|
42 | subplot(2,2,3) |
---|
43 | hist(nux(~isnan(nux))) |
---|
44 | xlabel('Fractional tune nux') |
---|
45 | grid on |
---|
46 | |
---|
47 | subplot(2,2,4) |
---|
48 | hist(nuz(~isnan(nuz))) |
---|
49 | xlabel('Fractional tune nuz') |
---|
50 | grid on |
---|
51 | |
---|