Skip to content

Added hooks for turning on or off the digital compensation

Evan Goetz requested to merge evan-goetz/pydarm:sens-act-corr-hooks into master

This merge request changes and adds to the DARM model configuration file permitting record-keeping of the digital compensation filters normally active and the analog zeros and poles in electronics that they are compensating for. Usually, the DARM front end model would have the modules turned on that perfectly compensate the analog electronics for the in-band zeros and poles for the OMC DCPD transimpedence amplifiers and whitening modes, actuation coil/ESD drivers.

In some instances, we would like to allow for the DARM model to compute the transfer function itself, and we do that by introducing new configuration key-value pairs.

  • For the zeros and poles:"compensated" get zeros and poles that are being compensated for by front end filter modules; "uncompensated" get zeros and poles that are not being compensated by front end filters
  • "compensation_modules" are the filter bank modules being used to compensate the analog zeros and poles listed in "compensated"
  • "noncompensating_modules" are the filter bank modules that do not compensate for zeros and poles of the sensing electronics
  • "compensation" takes values "ON" or "OFF". The default should normally be "ON". If and only if the value is "OFF" will anything different happen: the zeros and poles listed in "compensated" (if any) are appended to the "uncompensated" zeros and poles listed (if any); for sensing the "compensation_modules" listed (if any) will be appended to the "noncompensating_modules" listed (if any); for actuation the "compensation_modules" listed (if any) will be used to compute a transfer function.

Specifics for the parameter name changes and new ones. Sensing:

  • omc_meas_z_trans_amplifier ==> omc_meas_z_trans_amplifier_compensated and omc_meas_z_trans_amplifier_uncompensated
  • omc_meas_p_trans_amplifier ==> omc_meas_p_trans_amplifier_compensated and omc_meas_p_trans_amplifier_uncompensated
  • omc_meas_z_whitening_<mode name> ==> omc_meas_z_whitening_compensated_<mode name> and omc_meas_z_whitening_uncompensated_<mode name>
  • omc_meas_p_whitening_<mode name> ==> omc_meas_p_whitening_compensated_<mode name> and omc_meas_p_whitening_uncompensated_<mode name>
  • omc_compensation_filter_file ==> omc_filter_file
  • omc_compensation_filter_bank ==> omc_filter_bank
  • omc_compensation_filter_modules_in_use ==> omc_filter_noncompensating_modules
  • omc_compensation_filter_gain ==> omc_filter_gain
  • omc_trans_amplifier_compensation_modules (new)
  • omc_whitening_compensation_modules_<mode name> (new)
  • omc_front_end_trans_amplifier_compensation (new)
  • omc_front_end_whitening_compensation_<mode name> (new)

Digital:

  • digital_filter_modules_in_use ==> digital_filter_modules

Actuation:

  • <stage>_drive_meas_z_<quadrant> ==> <stage>_driver_uncompensated_z_<quadrant>
  • <stage>_drive_meas_p_<quadrant> ==> <stage>_driver_uncompensated_p_<quadrant>
  • <stage>_compensation_filter_bank_<quadrant> ==> <stage>_filter_bank_<quadrant>
  • <stage>_compensation_filter_modules_in_use_<quadrant> ==> <stage>_compensation_filter_modules_<quadrant>
  • <stage>_compensation_filter_gain_<quadrant> ==> <stage>_filter_gain_<quadrant>
  • <stage>_driver_compensated_z_<quadrant> (new)
  • <stage>_driver_compensated_p_<quadrant> (new)
  • <stage>_front_end_driver_compensation_<quadrant> (new)

Normally, the compensation is ON for each OMC DCPD path and actuation path, but if it is set to OFF, then any zeros/poles listed in the "compensated" key-value pair and "compensation filter modules" are then appended to the zeros/poles/modules for computing analog/digital transfer functions.

Closes #109 (closed) #135 (closed)

In the process of going through this feature improvement, I had a chance to look a bit more closely at the test/test_FIR.py code and fixed/improved a number of places where there were incorrect test values (because of incorrect inputs) and improved some of the testing code.

Edited by Evan Goetz

Merge request reports