Optical Feedback Control (OFC) Developer Guide

https://img.shields.io/badge/GitHub-ts_ofc-green.svg https://img.shields.io/badge/Jenkins-ts_ofc-green.svg https://img.shields.io/badge/Jira-ts_ofc-green.svg

Important classes:

  • BaseOFCData a python data class that contains the static data for the ofc operation.

  • OFCData a data container class that inherits BaseOFCData and handles the dynamic data for ofc operations. This includes reading and storing data from files and higher level data manipulation.

  • SensitivityMatrix calculates the sensitivity matrix at the given sensors and camera rotation angle.

  • StateEstimator contains facilities to estimate the state of the system.

  • OICController Optimal Integral Controller that calculates the degrees of freedom (DoF) offset by minimizing the cost function.

  • PIDController Proportional-Integral-Derivative Controller that calculates the degrees of freedom (DoF) offset with gains.

  • OFC is the main class of the system, responsible for managing the conversion of wavefront errors into corrections.

classDiagram namespace ofc_data { class OFCData class BaseOFCData } class OFC StateEstimator *-- OFCData BaseController *-- OFCData OICController "1" *-- "2" BendModeToForce BendModeToForce *-- OFCData OFC *-- OFCData OFC *-- SensitivityMatrix OFC *-- StateEstimator OFC *-- OICController OFC *-- PIDController OFC ..> Correction BaseOFCData <|-- OFCData BaseController <|-- OICController BaseController <|-- PIDController

Figure 1 OFC Class diagram.

Control Algorithm

For more additional details about the algorithm see [Angeli2014], [Angeli2016a], [Angeli2016b], [MegiasHomar2024] and [Xin2021].

Python API reference

lsst.ts.ofc Package

Classes

BaseController(ofc_data[, log])

Base Controller.

BendModeToForce(component, ofc_data)

Transform Bend mode to forces.

Correction(*args)

Container for corrections.

OFC(ofc_data[, log])

Optical Feedback Control.

OFCData([name, config_dir, log])

Optical Feedback Control Data.

OICController(ofc_data[, log])

Optimal Integral Controller (OIC)

PIDController(ofc_data[, log])

PID controller.

SensitivityMatrix(ofc_data)

Class to handle the sensitivity matrix.

StateEstimator(ofc_data[, rcond, log])

(Optical) State Estimator.

lsst.ts.ofc.ofc_data Package

Functions

default_eff_wavelenght()

Default effective wavelenght.

Classes

BaseOFCData(y2_filename_root, ...)

Base Optical Feedback Control Data.

OFCData([name, config_dir, log])

Optical Feedback Control Data.

lsst.ts.ofc.utils Package

Functions

get_config_dir()

Return the path to the policy dir within this package.

get_filter_name(filter_name)

Return the filter name in the format used by the OFC.

get_pkg_root()

Return the root directory of this package.

rot_1d_array(array, rot_mat)

Rotate 1D array from one basis to another.

Classes

CorrectionType(value[, names, module, ...])

Contributing

lsst.ts.ofc is developed at https://github.com/lsst-ts/ts_ofc.

References

[Angeli2014]

Angeli, George Z. et al., Real time wavefront control system for the Large Synoptic Survey Telescope (LSST). Proc. SPIE 9150, Modeling, Systems Engineering, and Project Management for Astronomy VI, 91500H (2014).

[Angeli2016a]

Angeli, George Z. et al., An integrated modeling framework for the Large Synoptic Survey Telescope (LSST). Proc. SPIE 9911, Modeling, Systems Engineering, and Project Management for Astronomy VI, 991118 (2016).

[Angeli2016b]

Angeli, George Z. and Xin, Bo, Normalized Point Source Sensitivity for LSST. document-17242.

[MegiasHomar2024]

Megias Homar, G., et al., The Active Optics System on the Vera C. Rubin Observatory: Optimal Control of Degeneracy Among the Large Number of Degrees of Freedom arXiv (2024)

[Xin2021]

Xin, Bo, SITCOMTN-003: Coordinate Transformations within the Rubin Active Optics System. sticomtn-003