...
- 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
- 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 (or even just one) for validity? see notes on disc. w/Paul
- add readback of actuators and compare to desired value
- DONE: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 -
- DONE: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 - 2 days effortmay need to use the edefReserve and edefAcq matlab functions, slows down the feedback but gaurantees synchronous acquisition
- test all feedbacks individually on Kiosks, sunrays determine where best to run in control room. - 2 days for these three tasks below
- 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
- DONE: EDM screens to monitor feedbacks - at least a week effort
- use EGU to display units; DESC or MAD name to display device name?
- re-do screen and update to LCLS display colors, formats etc
- integrate into LCLSHOME screens DONE for now:soft IOC for stored Feedback data and dynamic setpoints - called FB00 in prod, FB0D on development network
- DONE:configure as a simple IOC
- 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
- DONE:Channel Watcher:set up for development only, will need to re-do cwConfig file for production, later when production PV names are finalizedre-organize cwConfig file to support 'gold' setups. divide file into two-per-feedback. keep config params in one file, all others in second file.
- Channel Archiver: set this up when production softIOC is working; they do not want development PVs in archive
- soft IOC simulator to generate data for feedback testing (this will never be a production softIOC)
- DONE: add simulation of user controls for LLRF
- DONE: add calc of real BPM x-position values, replace virtual energy device for Energy feedbacks- DONE
- debug the errors introduced with new eDef databases - in progress
- add LLRF, Toroid, BLEN edm screens for simulator
- add calc of real toroid reading
- 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
- The simulator is now defunct (dmf 6/21/07)
- Individual Feedbacks
- Bunch Charge - NO PROGRESS HERE AT ALL - what's sheng doing on it???
- gotta get going on this soon!
- need ICD for toroid
- need ICD and additional info on inner laser energy loop
- Longitudinal - Energy at DL1 / Spectrometer Dump
- DONE:add control records on LLRF Amp and Phase to lock out users during automated feedback, dayle will add to production, done in simulator
- need BPM ICD
- DONE: need dispersion values for each BPM
- DONE:get dispersion from Juhao's Dispersion Application, will be typed manually into Feedback Framework Application
- DONE:dispersion value is stored on FB00 soft IOC
- DONE: read amp and phase actual values before starting loop
- DONE: change DL1 actuator to LOB phase, not amplitude, will also use phase as main actuator for BC1 energy
- 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
- DONE: make phase the main actuator for DL1 and BC1 energy when no BL is in use
- Injector Launch
- test Paul's latest optimization algorithm with latest simulator BPM values and noise levels
- need BPM ICD
- DONE:read magnet actual values before starting loop
- test further with reference orbit data - work out details with reference orbit, error(dX, dY - resPV), and chisq values in fit function
- use Juhao's latest matrix and algorithm
- Bunch Charge - NO PROGRESS HERE AT ALL - what's sheng doing on it???