You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 42 Next »

Introduction

Beam-based Feedback systems are to be prototyped in Matlab for the first commissioning of the LCLS system in early 2007.   There are six beam-based feedback systems to be tested in the first commissioning run.  A description of each feedback follows.

Bunch Charge

The Bunch Charge feedback stablizes the bunch charge of each pulse at the RF gun.  This feedback is a accomplished with a set of two nested feedback loops.  An inner loop, local to the laser system, adjusts the wave-pate angle, and therefore the laser pulse energy, by measuring the laser energy with a Joule meter near the cathode.  An outer loop controls the energy setpoint of the inner loop, based  on the total bunch charge measurement of the toroid IM01, near the RF gun.  the inner loop is implemented in EPICS on the associated laser IOCs.  The outer loop is a beam-based feedback implemented in Matlab.

DL1 Energy

The DL1 Energy feedback maintains a constant beam energy at DL1.  the x-position reading of BPM13, a measure of relative energy, is used to calculate adjustments to the phase (or amplitude?) of the klystron L0B.

Energy at the Spec. Dump

The Spectrometer Dump Energy feedback loop is identical to the DL1 Energy loop, except it is used when the beam is directed to the spectrometer dump rather than into Sector 21.   In this case, BMPS2 or BPMS3 x-position is used to measure the relative energy. 

DL1 Energy + BC1 Energy + Bunch Length

The BC1 location along the linac requires both energy and bunch length stabilization.   This feedback loop will include the energy at DL1 as well, so that the energy feedback from RF gun through and beyond BC1 work together as a single loop.  BPM13 and BPMS11 are used to measure the relative energy, BL11 is used to measure the relative bunch length.  These measurements are used to adjust the phase (or amplitude?) at L0B and the amplitude and phase of L1-S.  In the case where BL11 is not used, the DL1 + BC1 energies alone may be stablized with this loop.

Injector Launch

The Injector Launch feedback is required to stabilize the trajectory of the beam as it enters the linac at Sector 21.  The x-position and y-position measurements of BPM9 through BPM15 will be used to calculate adjustments to the desired B-field of the XCO4 / YCO4 and XCO7 /YC07 corrector magnets.  This feedback attempts to stabilize the states: x-position, x-angle, y-position, y-angle of the beam. 

RF phase of Transverse Deflecting Cavity

This feedback is used to stabilize the phase of the beam with respect to the RF field of the cavity.  This feedback is used only during a Bunch Length Measurement and is integrated into the Bunch Length Measurement application. 

References

Magnet Interface: see the Magnet Application Programmer Interface document at Sharepoint Power Supplies and Control Hardware page

Magnet max B-field values: see Requirements for LCLS Dipole Steering Corrector Magnets 

LLRF Inteface: see RF Actuator Information

Event System Interface:

BPM Interface:

Bunch Length Monitor Interface:

Toroid Interface:

Laser Energy Loop:  

Beamline Optics: See LCLS Linac Current Beamline Design Optics Files. For the full machine see LCLS Optics/Element List, for Injector to Spectrometer Dump see 135-MeV Spect. Optics/Element List

Feedback Support Soft IOC Device and PV names: see Feedback Support Soft IOC 

Also, see requirements documents below. 

Requirements and Design

The matlab feedbacks are prototypes, and as such are not subject to the rigorous documentation requirements of production-level software for LCLS.  These prototypes will be used as learning tools for the final design of an EPICS-based fast feedback to be developed for the LCLS second commissioning run in early 2008. 

Controls Requirements for LCLS Feedback Systemsdocuments the final requirements for the fast feedback EPICS implementation.  This document is used to guide development of the prototypes.

Bunch Charge Feedback Loop

User Guide

Task Lists and Schedules

The Feedback Prototyping project includes several sub-projects. A task list and schedule is (will be...) included for each:

  • Matlab Framework for Feedback Applications
    • DONE:read EGU from PVs and display units wherever possible - DONE except matrix params and PID values (??? ask juhao)
    • DONE:use new event API - see matlab prog. man. - DONE cant use one-shot, will stick with F1,F2 1Hz 5Hz 10Hz setup
    • DONE:use lcaUtil_NewMonitorValue - DONE
    • add code to read config PVs instead of xml file whereever possible (tolerances, dispersion)
    • add limits checking on actuators, states, measurements - inlcuding checking TMIT on all measurements for validity? see notes on disc. w/Paul
    • add readback of actuators and compare to desired value
    • before starting loop, read current actuator value as initial value
    • add error checking on devices  - DONE upon init: reports severity of all act, states, meas PVs
    • add error checking on communications, calculations -
    • rename source files for flat file system (prefix=fb)
    • DONE:add a Stop() function : DONE first cut- if anything goes wrong, STOP the feedback (if we try to take any corrective action our single-minded (threaded) matlab stops looping anyway)
    • may need to check pulse-ids on all measurements and compare to be sure they are from same pulse - try this later when we have a 'real' pulse-id
    • test all feedbacks individually on Kiosks, sunrays determine where best to run in control room.
    • investigate long-term run (must be able to run well for at least a full shift 8 hours)
    • investigate memory and processor usage, determine if they run well enough with more than one matlab/feedback instance at a time on a processor
  • application to collect reference orbit data - TBD
  • (application to experimentally determine matrix???) - TBD
  • EDM screens to monitor feedbacks
    • use EGU to display units
    • re-do screen and update to LCLS display colors, formats etc
  • soft IOC for stored Feedback data and dynamic setpoints
    • DONE:configure as a simple IOC (right now these databases are just added to the simulator)
    • DONE:test on lcls-prod01 - fbcksim & fbSupport on lcls-prod01, matlab feedback app on lcls-prod02 works fine
    • DONE:add ON/OFF or USED/NOT USED state PVs per actuator, measurement, feedback
    • DONE:add tolerances and dispersion value PVs
    • Channel Watcher,
    • Channel Archiver?
  • soft IOC simulator to generate data for feedback testing (this will  never be a production softIOC)
    • add simulation of user controls for LLRF
    • DONE: add calc of real BPM x-position values, replace virtual energy device for Energy feedbacks- DONE
    • add calc of real BL11 reading, replace virtual current device for Energy / Bunch length feedback
    • as ICDs become available add limits, resolutions, EGU etc  to simulator - in progress
  • Individual Feedbacks
    • Bunch Charge
      • gotta get going on this soon!
      • need ICD for toroid
      • need ICD and additional info on inner laser energy loop
    • Energy at DL1 / Spectrometer Dump
      • add control records on LLRF Amp and Phase to lock out users during automated feedback
      • need BPM ICD
      • DONE:need dispersion values for each BPM - DONE:hard-coded in initLongLoop.m
        • they are not in SLC Database, store in config file? Need that oracle database here...
      • read amp and phase actual values before starting loop
      • change DL1 actuator to LOB phase, not amplitude, will also use phase as main actuator for BC1 energy
    • DL1 Energy + BC1 Energy + Bunch Length
      •  need to use IM01 to calc Bunch Length values (along with BL11 reading)
      • where to get calibration constant C for BL11/ IM01 calcs? See doc  from Paul
      • We need the BL11, BL12 to calculate the Ipk vs. energy curve and store as part of it's calibration. It can then report Ipk, TBD in EPICS Db (like magnet polynomials?)
      • Ipk vs. energy needs toroid and TCAV LI29 values - can be done ahead of time?
      • need ICDs for toroids and BLEN
        • change actuator for DL1 and BC1 to phase, not amplitude
    • Injector Launch
      • test Paul's latest optimization algorithm with latest simulator BPM values and noise levels
      • need BPM ICD
      • read magnet actual values before starting loop
      • test further with reference orbit data
  • No labels