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)

Bending mode class to compute actuator forces and mirror stresses from bending modes and retrieve bending modes from actuator 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[, 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