M1M3 Support System
Loading...
Searching...
No Matches
Public Member Functions | List of all members
LSST::M1M3::SS::BumpTestController Class Reference

Performs bump test on single force actuator (FA). More...

#include <BumpTestController.h>

Public Member Functions

int setBumpTestActuator (int actuatorId, bool testPrimary, bool testSecondary)
 Set current bump tests parameters.
 
void runLoop ()
 Run single loop.
 
void stopAll (bool forced)
 Stops all running bump tests.
 
void stopCylinder (char axis)
 Stops bump test on given cylinder.
 

Detailed Description

Performs bump test on single force actuator (FA).

Bump tests of an actuator is performed by applying a small positive and negative force offsets on stationary (parked) mirror. The tests is evaluated by comparing value reported by the force actuator load cell with the target (offset) value.

Settings stored under ForceActuatorSettings/BumpTest specify timeouts, allowable ranges and number of measurements performed. The configuration values are enclosed in the following text with : - for example :TestedTolerances/Warning:

Bump test is performed in the following stages (per actuator axis, so if both primary and secondary shall be tested, this is repeated twice per dual axis actuator):

  1. check that average of :TestMeasurements: measured forces roughly equal to 0 (within :TestedTolerances/Error: for the FA being tested, and within :NonTestedTolerances/Error: for FAs not tested)
  2. apply a small positive force (222 N, _testForce member variable)
  3. sleep for :SettleTime: seconds
  4. check that the average of :TestMeasurements: force actuator values following the settle time equals (within :TestedTolerances/Error: for tested FA and :NonTestedTolerances/Error: for not tested FAs) equals to the applied (target offset) force
  5. null applied offset
  6. sleep for :SettleTime: seconds
  7. check that the average of :TestMeasurements: force actuator values following the settle time equals (within :TestedTolerances/Error: for tested FA and :NonTestedTolerances/Error: for not tested FAs) equals to the 0
  8. apply a small negative force (-222 N, - _testForce member variable)
  9. sleep for :SettleTime: seconds
  10. check that the average of :TestMeasurements: force actuator values following the settle time equals (within :TestedTolerances/Error: for tested FA and :NonTestedTolerances/Error: for not tested FAs) equals to the 0
  11. null applied offset
  12. sleep for :SettleTime: seconds
  13. check that the average of :TestMeasurements: force actuator values following the settle time equals (within :TestedTolerances/Error: for tested FA and :NonTestedTolerances/Error: for not tested FAs) equals to the 0

If any of the steps fails, transition to failed stage, reset to zero all applied offsets and exit the bump test for the given FA.

:TestedTolerances/Warning: and :NonTestedTolerances/Warning: are used as warning levels. If the error surpassed those, but doesn't trigger an error (is not above error value), a warning message is send to the system log.

Member Function Documentation

◆ runLoop()

void LSST::M1M3::SS::BumpTestController::runLoop ( )

Run single loop.

Shall be called from update command after telemetry data are queried and send.

◆ setBumpTestActuator()

int LSST::M1M3::SS::BumpTestController::setBumpTestActuator ( int actuatorId,
bool testPrimary,
bool testSecondary )

Set current bump tests parameters.

Parameters
actuatorIdactuator ID (101-443)
testPrimarytrue if test primary (Z) actuator
testSecondarytrue if test secondary (X or Y) actuator
Returns
0 on success, 1 if another force actuator is being tested

◆ stopAll()

void LSST::M1M3::SS::BumpTestController::stopAll ( bool forced)

Stops all running bump tests.

Parameters
forcedif true, make sure Far Neighbor checks bypass is disabled

◆ stopCylinder()

void LSST::M1M3::SS::BumpTestController::stopCylinder ( char axis)

Stops bump test on given cylinder.

Parameters
axiscylinder axis (X,Y or Z)

The documentation for this class was generated from the following files: