SADを用いたKEKB コミッショニング/オペレーションソフトウエアの概要

SADを用いたKEKB コミッショニング/オペレー
ション・ソフトウエアの概要
Y. Ohnishi / KEK
September/17/2003
Reference :
 K. Furukawa / KEK
"SAD in Accelerator Operation and Virtual Accelerator"
at J-PARC Commissioning Group Meeting, Oct. 30, 2002.
http://jhfacsv03.kek.jp/doc/report/index.html#linphase-jun03
◆
第1回 SADワークショップ講演記録集 (AccLab-99-15)
1998年7月7日ー9日 at KEK (但し、絶版)
◆
SAD Home Page : http://acc-physics.kek.jp/SAD/sad.html
KBFrame
: http://www-kekb.kek.jp/Documentation/KBFrame/
1
セミナーに対する要望
•
KEKBのコミッショニング、オペレーション一般について。
– 何を見て、何を最適化するか。苦労する点。
•
上記を実現する具体的方法として、SADをどのように使っているか。
– 例題があればそのいくつか。
•
SADスクリプトの書き方。
– 要点だけ。いまはなくても、あったらよいと思われる機能など。
2
KEKBオペレーションの概要
電子/陽電子ビーム入射
衝突実験
入射制御
セプタムでのビーム位置
セプタムでのビーム角度
キッカーハイト
キッカージャンプ
BT最後の垂直方向ステアリング
BT終端部軌道フィードバック
Adiabatic tuning knobs
IP dispersion/tilt/waist
Sextupole tuning
衝突点軌道フィードバック (iBump)
ビームサイズ・フィードバック (iSize)
LINAC/BT軌道表示
光干渉計によるビームサイズ測定
LINAC オペレーション
バンチ電流モニター
軌道表示と連続COD軌道補正/ステアリング パネル
パイロット・バンチ・チューン測定パネル
チューンの電流依存パターン設定パネル
プログラマブル・チューンチェンジャー/チューン・フィードバック
KEKB Optics パネル
3
KEKBコミッショニング/オペレーション
オプティクスの計算と設定、保存と呼び出し。
ビーム軌道の測定と軌道補正、ステアリングの保存と呼
び出し。
チューンの測定とチューン設定。
ビーム入射、入射条件の保存と呼び出し。
ビームの状態と環境の表示及びロギング。
1.
2.
3.
4.
5.
–
–
–
ビーム電流、ライフ、真空度、機器の温度等
アラーム
膨大なデータの保存、読み出し、表示(ログ・ブラウザー)
6.
7.
オプティクス測定、補正。
アプリケーションの起動(ランチャー)
•
•
•
1ー4は磁石の設定が必須。
データ読み出しと制御はEPICSに頼っている。
インタラクティブ(オンライン解析・制御)
4
KEKBコミッショニング/オペレーション
• SAD
– Mathematica-like language
•
•
•
•
基本的にインタープリター(SADスクリプト)
演算、リスト操作、ベクトルと行列、数学関数
グラフ表示(強力なツール類)
オブジェクト指向プログラミングも可能。
– Optics 計算
• matching / tracking
– EPICS チャンネル・アクセス
• CaMonitor / CaRead / CaWrite 等の関数
– GUI (Tk / KBFrame)
• Canvasによるグラフィックス表示 / 多彩な部品
5
具体例 その1
configureでedit
を選択すると
KEKB Task Launcher
•アプリケーションの登録、削除。
ダブルクリック
で起動。
•アプリケーションの起動に関しては
ホストコンピュータを適当に選んでく
れる。またユーザーが明示的に指定
することもできる。
ソフトウエアーを
開発した人や
ユーザーがコードの在り処を
容易に知ることができる。
オプティクス計算を要しないアプリケーションでもSADを用いた例
6
具体例 その2
KEKB Optics Panel
タブ・フレームの活用
Matchingを取ってTuneを設定する。
オプティクス管理の元締
7
具体例 その3
HER Orbit Correction
ゴールド軌道
からの差を表示
連続COD補正
軌道補正
のための各種
パラメータ設定
8
具体例 その4
Tune measurement
ダンピングを含む
ベータトロン振動の
スペクトラム(複雑な関数)
でフィッティング
カーソル・エントリー
矢印キーで数値を変えることができる。
スキャンをする時に便利。
tuneの絶対値、
相対値による
設定ができる。
KEKB Optics panelへ
チューンの設定命令を送っている。
9
Optimization of betatron tunes
ダブルクリック
すると
変更専用パネル
が出現する。
バインド機能
の利用
優れたヴィジュアル操作!
線、玉ころを
マウスで
掴んで
動かせる。
10
Optics measurement and correction
beta function
dispersion
Interactive procedure of
measurement + analysis + correction
Knobs:
■ Local bumps at sextupoles
■ Fudge factors for quads/skews
Works very well !
XY-coupling
11
Best luminosity run of the day
12
データ・ログを見る。(ログ・ブラウザー)
Circumferences are adjusted by RF frequency with looking at HER orbit.
LER has an independent knob to adjust circumference with “Chicane”.
Orbit correction (CCC) applies circumference correction simultaneously.
knob
C
p
x


C
p

C
f

C
f


RF frequency
Atmospheric
pressure
measurement
ログ・ブラウザーの使用例
Bending angle of the chicane
(LER circumference adjustment
w/o RF frequency)
Extension of
the circumference
Extension about
300mm (-50 Hz).
≈60mm
Shrink
This behavior is consistent with tidal effect.
We observe tidal effect by ground motion ??
Typhoon #21 (970 hPa)
(9 p.m. October 1, 2002)
13
SAD/KBFrame
例題はKBFrame マニュアルにあります。
FFS;
w=KBMainFrame["Ex1",f,Title->"Example 1"];
TkWait[];
アプリケーション間の切り替え等の共通機能
共通のlook & feel
部品の配列の簡単化
あらかじめ必要なものは用意されている。
Helpメニュー(またはKEKBロゴ)の中に
"About Example 1"というメニューボタン
に制作者氏名、連絡先等を記述しておくと便利かも。
w[AboutMessage]="Example 1 ver. 1.0\n Y. Ohnishi";
menuボタンの追加
が可能
status line
progress bar
(タスクの進行状況を表現できる)
(コメントを表示できる)
スクリーンの印刷、イメージとして保存*をするボタン。
(KEKBコントロール棟用に設定している。)
*イメージはウエブ・ブラウザーで閲覧。
イメージはシフトレポート等へ貼付ける。
レポートにはPowerPointを使用。
14
スクリーン・ショットの閲覧
K. Furukawa / N. Yamamoto
15
SAD/KBFrame (cont'd)
部品の配置の例
FFS;
w=KBMainFrame["CompArr",f,Title->"Arrange Component Test"];
s="initial string";
n=1;
c=1;
r=1;
o=1;
l=1;
cf=KBFComponentFrame[f,
Add->{
KBFGroup[Text->"Group1"],
KBFText[Text->"Examples of Component Arrangement"],
KBFString[Text->"String Input :",Variable:>s],
KBFNumber[Text->"Number Input :",Variable:>n],
KBFCheckButton[Text->"Check",Variable:>c],
KBFRadioButton[Items->{"Radio 1","Radio 2"},Variable:>r],
KBFOptionMenu[Items->{"Option 1","Option 2","Option 3"},Variable:>o],
KBFListBox[Items->{"List 1","List 2","List 3","List 4"},Variable:>l],
KBFSeparator[],
KBFButton[Text->"File",Command:>(
fileName=KBFOpenDialog["/ldata/KEKB/KCG","*"];
If[fileName<=>Null,Print["Open file is "//fileName]];
)]
}
];
TkWait[];
16
SAD/KBFrame (cont'd)
ListPlotの例
FFS;
main=KBMainFrame["KEKB Temperature",mf,
Title->"KEKB Temperature"];
Canv=Canvas[mf,Height->400,Width->600,BG->"white"];
CaTemp=CaMonitor["CO_KIKAI:ANK331",
ValueCommand:>ReadTemp[]];
data={};
ReadTemp[]:=Module[{g},
Canvas$Widget=Canv;
AppendTo[data,{FromDate[Date[]],CaTemp@Value[]}];
Tnow=data[[-1,1]];
g=ListPlot[data,
FrameLabel->{"","Temp (deg.)"},
Scale->{Date,Linear},
PlotRange->{{Tnow-3600,Tnow},{0,30}},
Plot->1,PlotJoined->1,
PlotColor->"blue",PointColor->"blue",
GridLines->{Automatic,Automatic},
DisplayFunction->Identity];
Show[g];
If[data[[1,1]]<Tnow-3600,data=Drop[data,1]];
];
TkWait[];
EPICSレコードをモニターしている例。
ValueCommandはレコードの値が更新
されるとコマンド(ReadTemp[])を
発行する。
その他にColumnPlot、FitPlot等
17
SAD/KBFrame (cont'd)
FFS;
main=KBMainFrame["Example",mf,Title->"Example"];
Bpm=Class[{},{},{
RecName,CaBpm,X=0.0,Y=0.0,Status=0,
Xlist={},Ylist={},Nmax=100
},
Constructor[]:=Module[{rec},
rec=Map[(RecName//#)&,{":XPOS",":YPOS",":STAT"}];
CaBpm=CaMonitor[rec,ValueCommand:>(
{X,Y,Status}=CaBpm@Value[];
If[Status,
AppendTo[Xlist,X];
AppendTo[Xlist,Y];
];
If[Length[Xlist]>Nmax,
Xlist=Drop[Xlist,1];
Ylist=Drop[Ylist,1];
];
)];
TkSense[1];
];
FFT[]:=Module[{},
fftx=Abs[Fourier[Xlist]];
ffty=Abs[Fourier[Ylist]];
Return[{fftx,ffty}];
];
];
bpm1=Bpm[RecName->"BMLBPM:D01_QCSLP"];
bpm2=Bpm[RecName->"BMLBPM:D01_QC3LP"];
TkWait[];
オブジェクト指向プログラムの例
クラスの定義
クラス変数
コンストラクター:
パラメータの初期化、
EPICSの接続等
実行させると。。。
> bpm1@X
> 1.8
> bpm1@Xlist
> {1.8,2.3,1.5}
> bpm1@FFT[]
> {{….},{….}}
アクション(作用)の定義
オブジェクトの作成
コンストラクターが1度だけ呼ばれる。
18
まとめ(個人的意見含む)
• KEKBではMEDM、Python、SAD、Tcl等が使用されてい
るが、SADを使ったKEKBのコミッショニング/オペレー
ション・ソフトウエアを紹介。あくまでもKEKBに対応す
るものであることに注意。ただし、環境変数を変更すれ
ば流用できるものがあると思う。
• J-PARCの運転形態/ビームの特性に適したソフトウエア
を構築する必要がある。SADを使うにしてもカスタマイ
ズ(かなりの努力)はある程度必要。
• SADについてOSはunix系に限られている。パフォーマン
スはチューニングの余地がまだある。マニュアルの整備
が不十分。
– マニュアルが不十分な点については「Authorが近くにいる」とい
うことでカバーされてきた。
19