...
- 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, matrices etc see softIOC tasks)
- 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
...
- 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
- add tolerances and dispersion value PVs
- add F and G matrices? (what about changing dimensions? Look into waveform record,....maybe keep this in matlab config file...)
- 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
- Bunch Charge
...