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
© Copyright 2024 ExpyDoc