source: MML/trunk/machine/SOLEIL/Booster/applications/tuneAC.m @ 4

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

Initial import--MML version from SOLEIL@2013

File size: 2.4 KB
Line 
1%function tune(istart)
2
3%  reglage delta tune à 110 MeV
4
5dtune_inj = [-0.00     -0.1];                               % dnu H  et dnu V
6dtune_ext = [+0.00   -0.0];                               % dnu H  et dnu V
7
8m1   =[ 0.88 0.125 ; 0.2  0.716 ] ;
9m2  =inv([ 1   1 ; 110/2750  1 ]) ;
10k_inj  = m1*dtune_inj'    ;                    % DI QPF et QPD en A 
11k_ext = m1*dtune_ext' *2750/110 ;              % DI QPF et QPD en A 
12kqp_qf  = m2*[k_ext(1) ; k_inj(1)]                             % DI offset et cur QPF
13kqp_qd = m2*[k_ext(2) ; k_inj(2)]                              % DI offset et cur QPD
14sprintf(' Delta courant qf   :  offset  %g A    et      current:  %g A',   kqp_qf(2) , kqp_qf(1))
15sprintf('Delta courant qd   :  offset  %g A     et      current:  %g A ', kqp_qd(2) , kqp_qd(2))
16
17return
18
19 temp=tango_read_attribute2('BOO/AE/QD', 'current');
20 qpd_ext = temp.value(2) + kqp_qd(1);
21 tango_write_attribute('BOO/AE/QD', 'current', qpd_ext);
22  if (tango_error == -1)
23    %- handle error
24    tango_print_error_stack;
25    return
26 end
27 temp=tango_read_attribute2('BOO/AE/QD', 'waveformOffset');
28 qpd_inj = temp.value(2) + kqp_qd(2);
29 if (tango_error == -1)
30    %- handle error
31    tango_print_error_stack;
32    return
33 end
34 
35 
36 
37 temp=tango_read_attribute2('BOO/AE/QF', 'current');
38 qpf_ext = temp.value(2) + kqp_qf(1);
39 tango_write_attribute('BOO/AE/QF', 'current', qpf_ext);
40 if (tango_error == -1)
41    %- handle error
42    tango_print_error_stack;
43    return
44 end
45
46 temp = tango_read_attribute2('BOO/AE/QF', 'waveformOffset');
47 qpf_inj = temp.value(2) + kqp_qf(2);
48 tango_write_attribute('BOO/AE/QF', 'waveformOffset', qpf_inj);
49 if (tango_error == -1)
50    %- handle error
51    tango_print_error_stack;
52    return
53end
54 
55% stepsp('QF', kqp(1));
56% stepsp('QD', kqp(2));
57
58% istart=100000;
59% iend=istart+1*512+1;
60% clear a xt zt
61% a=getbpmrawdata( [1 2] ,'nodisplay','struct');
62%
63% xt=a.Data.X(1,istart:iend); % +10*cos(2*3.14156*0.35*i);
64% zt=a.Data.Z(2,istart:iend) ;
65%
66% nf=iend-istart+1;
67% fx=fft(xt); px=fx.*conj(fx)/nf; xf=(1:nf)/nf;
68% fz=fft(zt); pz=fz.*conj(fz)/nf; zf=(1:nf)/nf;
69% % fx=fft(xt,nf); px=fx.*conj(fx)/nf; xf=(1:nf/2)/nf;
70% % fz=fft(zt,nf); pz=fz.*conj(fz)/nf; zf=(1:nf/2)/nf;
71% clear max
72% tunex=find(px==max(px))/nf
73% clear max
74% tunez=find(pz==max(pz))/nf
75%
76% figure(1001)
77% subplot(1,2,1)
78% plot(xf(2:nf/2),px(2:nf/2)); ylim([0 1]);
79% grid on
80% subplot(1,2,2)
81% plot(zf(2:nf/2),pz(2:nf/2))
82% suptitle(['TuneX= ' num2str(tunex) '            TuneZ= ' num2str(tunez)]);
83% grid on
84
Note: See TracBrowser for help on using the repository browser.