BPM model simplification ? #54
|
Hello, Today we have a BPM model which is not used (it is an identiy model). At ESRF, we implemented a more accurate model than DoS mainly for machine commissioning purpose but we don't need this to be implemented in PyAML. Actual config: - type: pyaml.bpm.bpm
name: BPM_C21-08
model:
type: pyaml.bpm.bpm_simple_model # Identity model
x_pos: srdiag/bpm/c21-08/SA_HPosition
y_pos: srdiag/bpm/c21-08/SA_VPositionwhich could allow: - type: pyaml.bpm.bpm
name: BPM_C21-08
model:
type: pyaml.bpm.dos # Or any other model
va: srdiag/bpm/c21-08/SA_Va
vb: srdiag/bpm/c21-08/SA_Vb
vc: srdiag/bpm/c21-08/SA_Va
vd: srdiag/bpm/c21-08/SA_VbSimplified config (no model): - type: pyaml.bpm.bpm
name: BPM_C21-08
x_pos: srdiag/bpm/c21-08/SA_HPosition
y_pos: srdiag/bpm/c21-08/SA_VPosition |
Replies: 3 comments 9 replies
|
I think it is important to have a way to define bpm models. It will also help for simulated commissioning where BPM errors cannot be handled at the level of the tracking code. At some point we also have to think about turn-by-turn data. I would find the following more natural: |
|
It is not really the purpose of the BPM model. The purpose of the BPM model is rather to handle a conversion from hardware (electrode voltage) to position. For errors, we will add methods (similar to offset or tilt) that will be independent of underlying models. Rougly speaking, we can imagine: sr.design.get_bpm("BPM_C01-01").offset.set(1e-3)
sr.error[0].get_bpm("BPM_C01-01").position_error.set(sigma=100e-6,cut_off=2.0) # Add an offset error using seed defined for simulator #0TbT is no yet implemented but other methods will be added from them, similarly to instant popsitions. |
|
Resolved in python-accelerator-middle-layer/pyaml#297 |
Resolved in python-accelerator-middle-layer/pyaml#297