Download - SAD を用いた KEKB コミッショニング/オペレーション・ソフトウエアの概要
1
SAD を用いた KEKB コミッショニング/オペレーション・ソフトウエアの概要
Y. Ohnishi / KEKSeptember/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/
2
セミナーに対する要望
• KEKB のコミッショニング、オペレーション一般について。
– 何を見て、何を最適化するか。苦労する点。
• 上記を実現する具体的方法として、 SAD をどのように使っているか。
– 例題があればそのいくつか。
• SAD スクリプトの書き方。
– 要点だけ。いまはなくても、あったらよいと思われる機能など。
3
電子/陽電子ビーム入射 衝突実験
チューンの電流依存パターン設定パネル
入射制御セプタムでのビーム位置セプタムでのビーム角度キッカーハイトキッカージャンプBT 最後の垂直方向ステアリング
BT 終端部軌道フィードバック
軌道表示と連続 COD 軌道補正/ステアリング パネル
パイロット・バンチ・チューン測定パネル
プログラマブル・チューンチェンジャー/チューン・フィードバック
衝突点軌道フィードバック (iBump)
光干渉計によるビームサイズ測定
ビームサイズ・フィードバック (iSize)
バンチ電流モニター
KEKB オペレーションの概要
LINAC/BT 軌道表示
LINAC オペレーション
KEKB Optics パネル
Adiabatic tuning knobs IP dispersion/tilt/waist
Sextupole tuning
4
KEKB コミッショニング/オペレーション
1. オプティクスの計算と設定、保存と呼び出し。2. ビーム軌道の測定と軌道補正、ステアリングの保存と
呼び出し。3. チューンの測定とチューン設定。4. ビーム入射、入射条件の保存と呼び出し。5. ビームの状態と環境の表示及びロギング。
– ビーム電流、ライフ、真空度、機器の温度等– アラーム– 膨大なデータの保存、読み出し、表示(ログ・ブラウザー)
6. オプティクス測定、補正。7. アプリケーションの起動(ランチャー)
• 1ー4は磁石の設定が必須。• データ読み出しと制御は EPICS に頼っている。• インタラクティブ(オンライン解析・制御)
5
KEKB コミッショニング/オペレーション
• SAD– Mathematica-like language
•基本的にインタープリター( SAD スクリプト)• 演算、リスト操作、ベクトルと行列、数学関数• グラフ表示(強力なツール類)• オブジェクト指向プログラミングも可能。
– Optics 計算• matching / tracking
– EPICS チャンネル・アクセス• CaMonitor / CaRead / CaWrite 等の関数
– GUI (Tk / KBFrame)• Canvas によるグラフィックス表示 / 多彩な部品
6
具体例 その1
KEKB Task Launcher
•アプリケーションの登録、削除。
•アプリケーションの起動に関してはホストコンピュータを適当に選んでくれる。またユーザーが明示的に指定することもできる。
ソフトウエアーを開発した人やユーザーがコードの在り処を容易に知ることができる。
configure で editを選択すると
オプティクス計算を要しないアプリケーションでも SAD を用いた例
ダブルクリックで起動。
7
具体例 その2KEKB Optics Panel
Matching を取って Tune を設定する。
オプティクス管理の元締
タブ・フレームの活用
8
具体例 その3
HER Orbit Correction
ゴールド軌道からの差を表示
軌道補正のための各種パラメータ設定
連続 COD 補正
9
具体例 その4Tune measurement
tune の絶対値、相対値による設定ができる。
ダンピングを含むベータトロン振動のスペクトラム(複雑な関数)でフィッティング
KEKB Optics panel へチューンの設定命令を送っている。
カーソル・エントリー 矢印キーで数値を変えることができる。 スキャンをする時に便利。
10
Optimization of betatron tunes
線、玉ころをマウスで掴んで動かせる。
ダブルクリックすると変更専用パネルが出現する。
バインド機能の利用
優れたヴィジュアル操作!
11
Optics measurement and correction
Interactive procedure ofmeasurement + analysis + correction
Knobs:■ Local bumps at sextupoles■ Fudge factors for quads/skews
dispersion
XY-coupling
beta function
Works very well !
12
Best luminosity run of the day
13
≈60m
データ・ログを見る。(ログ・ブラウザー)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.
Typhoon #21 (970 hPa)(9 p.m. October 1, 2002)
Atmospheric pressure
RF frequency
Extension about 300m (-50 Hz).
Extension of the circumference
€
ΔCC= −Δf
f
€
ΔCC=α
Δp
p=α
x
ηBending angle of the chicane(LER circumference adjustment w/o RF frequency)
measurementknob
This behavior is consistent with tidal effect. We observe tidal effect by ground motion ??
Shrink
ログ・ブラウザーの使用例
14
SAD/KBFrame
FFS;w=KBMainFrame["Ex1",f,Title->"Example 1"];TkWait[];
あらかじめ必要なものは用意されている。
スクリーンの印刷、イメージとして保存*をするボタン。( KEKB コントロール棟用に設定している。)
アプリケーション間の切り替え等の共通機能共通の look & feel部品の配列の簡単化
progress bar(タスクの進行状況を表現できる)status line
(コメントを表示できる)
menu ボタンの追加が可能
*イメージはウエブ・ブラウザーで閲覧。 イメージはシフトレポート等へ貼付ける。 レポートには PowerPoint を使用。
例題は KBFrame マニュアルにあります。
Help メニュー ( または KEKB ロゴ)の中に"About Example 1" というメニューボタンに制作者氏名、連絡先等を記述しておくと便利かも。w[AboutMessage]="Example 1 ver. 1.0\n Y. Ohnishi";
15
スクリーン・ショットの閲覧K. Furukawa / N. Yamamoto
16
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[];
部品の配置の例
17
SAD/KBFrame (cont'd)
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[] )を発行する。
ListPlotの例
その他に ColumnPlot 、 FitPlot 等
18
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[];
> bpm1@X> 1.8> bpm1@Xlist> {1.8,2.3,1.5}> bpm1@FFT[]> {{….},{….}}コンストラクター:
パラメータの初期化、 EPICS の接続等
クラス変数
アクション(作用)の定義
オブジェクトの作成 コンストラクターが 1 度だけ呼ばれる。
クラスの定義
実行させると。。。
オブジェクト指向プログラムの例
19
まとめ(個人的意見含む)
• KEKB では MEDM 、 Python 、 SAD 、 Tcl 等が使用されているが、 SAD を使った KEKB のコミッショニング/オペレーション・ソフトウエアを紹介。あくまでも KEKB に対応するものであることに注意。ただし、環境変数を変更すれば流用できるものがあると思う。
• J-PARC の運転形態/ビームの特性に適したソフトウエアを構築する必要がある。 SAD を使うにしてもカスタマイズ(かなりの努力)はある程度必要。
• SAD について OS は unix 系に限られている。パフォーマンスはチューニングの余地がまだある。マニュアルの整備が不十分。– マニュアルが不十分な点については「 Author が近くにいる」と
いうことでカバーされてきた。