東京大学高輝度光源計画
加速器の概要

誤差の大きさと入れ方

 大きさ
 

誤差の内容
英語で
対象
大きさ(分散)
据え付け誤差 alignment error Q、S、B
50μm
強さの誤差 dK (strength error) Q、S、B
0.05%
回転誤差 rotation error Q、S、B
0.2mradian

 入れ方

   乱数で入れる。例えば、分散 50μm の据え付け誤差の場合、誤差の分布は下の図のようになる。横軸は誤差の大きさ(単位はmm)、縦軸は頻度(個)である。

また、隣り合った要素間でのズレは下記の図のようになる。(最大値は、ある要素が+1μmずれて、隣が−1μmずれた場合で、2μmである。図より、そこまでひどいものは頻度0であるが。)

SADスクリプト

USE RING;
  cell calc emit fix;
  optics=CalculateOptics[1,LINE["LENGTH"],Twiss['*',1],0,2];
  options={Solver->Micado, SetSteer->True, Calc->True};
  monitors=Monitor["MON*"];
  steerings=Steer["STR*"];
  correction = {'X','Y'};
  iseed = 1188;
   SeedRandom[iseed];
   GCUT=2;

    DELX   5E-5 Q*;
    DELY   5E-5 Q*;
    DELX   5E-5 SF*;
    DELX   5E-5 SD*;
    DELY   5E-5 SF*;
    DELY   5E-5 SD*;
    DELX   5E-5 B*

    DK     5E-4 B*;
    DK     5E-4 Q*;
    DK     5E-4 S*;

    DTHETA 2E-4 B*;
    DTHETA 2E-4 Q*;
    DTHETA 2E-4 S*;

(注:以下2行は尤もらしい出力が現れるが、全く働いていない様である。誤差に関するスクリプトは難しく、まだ完全には理解できていないのが実状である。モニターとステアリングは誤差無しで計算を行っている。また、補正は全く別のプログラム(自作)でやっている。現実のリングの補正も、それを使用する予定である。)
 MON 0 0 0 0 MON*;
 STE 0 STR*;

 cell;
 calc;
 dump;
 codplot;
 MCOD;
 TCOD;
   disp MARKR;
Repeat 5;
   CorrectOrbit[correction, monitors, steerings, optics, options];
   out 13;
    draw DX & DY  mon*;
    draw DOX & DOY mon*;
   out 13 end;
until
  cell calc codplot;
  TCOD;
  MCOD;
stop;
stop;