10.107 TFBDRIVER—Driver for a turn-by-turn feedback loop

Driver for a turn-by-turn feedback loop
Parallel capable? : yes
GPU capable? : no
Back-tracking capable? : no






Parameter Name UnitsType Default

Description






ID STRINGNULL

System identifier






STRENGTH double 0.0

Strength factor






KICK_LIMIT double 0.0

Limit on applied kick, nominally in radians.






FREQUENCY Hz double 0.0

Resonant frequency of the unloaded kicker cavity.






DRIVE_FREQUENCY Hz double 0.0

Drive frequency. If zero, defaults to resonant frequency of the loaded cavity.






CLOCK_FREQUENCY Hz double 0.0

Clock frequency used for timing of the changes to generator current. Typically the rf or bunch frequency is used.






CLOCK_OFFSET s double 0.0

Offset of the generator current change relative to clock tick. Clock tick is nominally aligned to the bunch center.






PHASE Deg double 0.0

Phase of the applied voltage relative to the bunch center, with 0 being on-crest.






RAOVERQ Ohmdouble 0.0

Shunt impedance, Ra/Q=Vˆ2
/(P*Q).






QLOADED double 0.0

Loaded Q of the cavity.






OUTPUT_FILE STRINGNULL

File for logging filter output and driver output






GAIN_FACTOR_FILE STRINGNULL

File providing gain factors for individual bunches.






GAIN_FACTOR_COLUMN STRINGNULL

Column from GAIN_FACTOR_FILE containing gain factors.






DELAY long 0

Delay (in turns)






A0 double 1

Filter coefficient






A1 double 0.0

Filter coefficient






A2 double 0.0

Filter coefficient






A3 double 0.0

Filter coefficient






TFBDRIVER continued

Driver for a turn-by-turn feedback loop






Parameter Name UnitsType Default

Description






A4 double0.0

Filter coefficient






A5 double0.0

Filter coefficient






A6 double0.0

Filter coefficient






A7 double0.0

Filter coefficient






A8 double0.0

Filter coefficient






A9 double0.0

Filter coefficient






A10 double0.0

Filter coefficient






A11 double0.0

Filter coefficient






A12 double0.0

Filter coefficient






A13 double0.0

Filter coefficient






A14 double0.0

Filter coefficient






A15 double0.0

Filter coefficient






A16 double0.0

Filter coefficient






A17 double0.0

Filter coefficient






A18 double0.0

Filter coefficient






A19 double0.0

Filter coefficient






A20 double0.0

Filter coefficient






A21 double0.0

Filter coefficient






A22 double0.0

Filter coefficient






A23 double0.0

Filter coefficient






A24 double0.0

Filter coefficient






A25 double0.0

Filter coefficient






A26 double0.0

Filter coefficient






A27 double0.0

Filter coefficient






A28 double0.0

Filter coefficient






A29 double0.0

Filter coefficient






UPDATE_INTERVAL long 0

Interval in units of pickup update interval for sampling pickup data and updating filter output.






OUTPUT_INTERVAL long 1024

Number of samples to buffer between writing output file updates.






START_PASS long -1

If positive, first pass on which to drive beam.






END_PASS long -1

If positive, last pass on which to drive beam.






TFBDRIVER continued

Driver for a turn-by-turn feedback loop






Parameter Name UnitsType Default

Description






LONGITUDINAL short 0

If non-zero, kick is in the longituidinal plane. KICK_LIMIT is in fractional momentum deviation.






BUNCHED_BEAM_MODE short 1

If non-zero, run in bunched beam mode.






GROUP stringNULL

Optionally used to assign an element to a group, with a user-defined name. Group names will appear in the parameter output file in the column ElementGroup






This element is used together with the TFBPICKUP element to simulate a digital turn-by-turn feedback system. Each TFBDRIVER element must have a unique identification string assigned to it using the ID parameter. The same identifier must be used on a TFBPICKUP element. This is the pickup from which the driver gets its signal. Each pickup may feed more than one driver, but a driver can use only one pickup.

A 30-term FIR filter can be defined using the A0 through A29 parameters. The output of the filter is simply i=029aiPi, where Pi is the pickup filter output from i * U turns ago, where U is the UPDATE_INTERVAL value specified for the pickup. The output of the filter is optionally delayed by the number of update intervals given by the DELAY parameter.

To some extent, the DELAY is redundant. For example, the filter a0 = 0,a1 = 1 with a delay of 0 is equivalent to a0 = 1,a1 = 0 with a delay of 1. However, for long delays or delays combined with many-term filters, the DELAY feature must be used.

The output of the filter is multiplied by the STRENGTH parameter to get the kick to apply to the beam. The KICK_LIMIT parameter provides a very basic way to simulate saturation of the kicker output.

The plane that the TFBDRIVER kicks is determined by the PLANE parameter on the corresponding TFBPICKUP element, and additionally by the LONGITUDINAL parameter, as described in Table 3






TFBPICKUPTFBDRIVER coordinatenote
PLANE LONGITUDINALkicked




x 0 x
x 1 δ pickup should have η x0
y 0 y
y 1 δ pickup should have ηy0
delta 0 - invalid
delta 1 δ





Table 3: Correspondence between PLANE parameter of TFBPICKUP, LONGITUDINAL parameter of TFBDRIVER, and action of feedback loop.

Note: The OUTPUT_FILE will produce a file with missing data at the end of the buffer if the OUTPUT_INTERVAL parameter is not a divisor of the number of passes.

The FREQUENCY and PHASE parameters may be used to specify the resonant frequency of the driving cavity and its phase relative to the center of the bunch. If the frequency is not specified, the kicker is assumed to kick all particles in a bunch by the same amount.

For longitudinal feedback only, a more sophicated approach is available using a circuit model developed by T. Berenc (APS) may be employed to simulate driving the cavity resonance. To invoke this, the user must provide the loaded Q of the cavity using the QLOADED parameter, the (Ra∕Q) using RAOVERQ, and the resonant frequency of the unloaded cavity using FREQUENCY. Optionally, the drive frequency may be specified using DRIVE_FREQUENCY; it defaults to the unloaded resonant frequency.

Typically one should choose the resonant frequency to be (n1
4)fb, where fb is the bunch frequency and n is an integer. This will ensure that the kick to one bunch from the residual voltage from the previous bunch (both beam-loading and generator terms), is approximately minimized. Checking the ResidualVoltage column in the output file to confirm this is advised.

In addition to the resonant and drive frequencies, one must specify a clock frequency with CLOCK_FREQUENCY and a clock offset with CLOCK_OFFSET. The clock used used to determine when the drive current changes, which happens at regular intervals. The clock offset is used to ensure that the change does not occur during passage of the bunch. If the clock offset is too small and the bunch length too long, this will happen and results in an error. The phase shift that results from the clock offset is automatically compensated.

Beam loading is not included in the model, but can be superimposed by inserting an RFMODE element with matching parameters.

See Section 7.2.14 of Handbook of Accelerator Physics and Engineering (Chao and Tigner, eds.) for a discussion of feedback systems.

TFBPICKUP