M1M3 Support System
Loading...
Searching...
No Matches
LSST::M1M3::SS::BalanceForceComponent Class Reference

Distributes balance forces. More...

#include <BalanceForceComponent.h>

Inheritance diagram for LSST::M1M3::SS::BalanceForceComponent:
Collaboration diagram for LSST::M1M3::SS::BalanceForceComponent:

Public Member Functions

 BalanceForceComponent (ForceActuatorApplicationSettings *forceActuatorApplicationSettings)
 
void applyBalanceForces (float *x, float *y, float *z, bool check=true)
 
void applyBalanceForcesByMirrorForces (float xForce, float yForce, float zForce, float xMoment, float yMoment, float zMoment)
 Called from ForceController::updateAppliedForces.
 
bool applyFreezedForces ()
 
void updatePID (int id, PIDParameters parameters)
 
void resetPID (int id)
 
void resetPIDs ()
 
void freezePIDs ()
 
void thawPIDs ()
 
void postEnableDisableActions () override
 Called after enable/disable changes.
 
- Public Member Functions inherited from LSST::M1M3::SS::ForceComponent
 ForceComponent (const char *name, ForceComponentSettings *forceComponentSettings)
 Construct ForceComponent.
 
const char * getName ()
 Returns force component name.
 
bool isInitialising ()
 Returns true if the force component is being initialised.
 
bool isEnabled ()
 Returns true if the force component is enabled.
 
bool isDisabling ()
 Returns true if the force component is being disabled.
 
bool isActive ()
 Returns true if the force compoment is active - shall be calculated.
 
void enable ()
 Enable the force component.
 
void disable ()
 Disable the force component.
 
void update ()
 
void reset ()
 

Protected Member Functions

void postUpdateActions () override
 Called after update to forces.
 

Additional Inherited Members

- Protected Attributes inherited from LSST::M1M3::SS::ForceComponent
float xCurrent [FA_X_COUNT]
 measured actuator current X force
 
float yCurrent [FA_Y_COUNT]
 measured actuator current Y force
 
float zCurrent [FA_Z_COUNT]
 measured actuator current Z force
 
float xTarget [FA_X_COUNT]
 target actuator X force
 
float yTarget [FA_Y_COUNT]
 target actuator Y force
 
float zTarget [FA_Z_COUNT]
 target actuator Z force
 
float xOffset [FA_X_COUNT]
 difference (error) between current and target X force
 
float yOffset [FA_Y_COUNT]
 difference (error) between current and target Y force
 
float zOffset [FA_Z_COUNT]
 difference (error) between current and target Z force
 

Detailed Description

Distributes balance forces.

Only active when enabledHardpointChase command was called. Takes forces and moments measured on hardpoints (transformed to XYZ space from hardpoints load cells measurements), feed them through PIDs, and calculates force offsets (12*X, 100*Y, 156*Z). Applied balance forces are published in appliedBalanceForces SAL/DDS event.

The purpose of this is to see almost 0 forces acting on hardpoints. Hardpoints task is not to actively steer the mirror, their purpose is to hold mirror in position. Mirror is being steered by applying offsets (moving) hardpoints, which are immediately (as hardpoints moves and forces are being measured on hardpoints load cells) offloaded to 156 mirror force actuators (assuming hardpoints chase is enabled).

See also
LSST::M1M3::SS::PID

Member Function Documentation

◆ applyBalanceForcesByMirrorForces()

void LSST::M1M3::SS::BalanceForceComponent::applyBalanceForcesByMirrorForces ( float xForce,
float yForce,
float zForce,
float xMoment,
float yMoment,
float zMoment )

Called from ForceController::updateAppliedForces.

Feeds in hardpoint force and moments measured from the hardpoint load cells and transformed into xyz forces and moments.

Parameters
xForceX projection of force acting on hardpoints
yForceY projection of force acting on hardpoints
zForceZ projection of force acting on hardpoints
xMomentX projection of moment acting on hardpoints
yMomentY projection of moment acting on hardpoints
zMomentZ projection of moment acting on hardpoints
Here is the call graph for this function:
Here is the caller graph for this function:

◆ postEnableDisableActions()

void LSST::M1M3::SS::BalanceForceComponent::postEnableDisableActions ( )
overridevirtual

Called after enable/disable changes.

Publish a state change for the component Pure virtual, needs to be overriden in children.

Implements LSST::M1M3::SS::ForceComponent.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ postUpdateActions()

void LSST::M1M3::SS::BalanceForceComponent::postUpdateActions ( )
overrideprotectedvirtual

Called after update to forces.

Check for forces that need to be clipped. Update SAL. Pure virtual, needs to be overriden in children.

Implements LSST::M1M3::SS::ForceComponent.

Here is the call graph for this function:
Here is the caller graph for this function:

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