M1M3 Support System
|
Distributes balance forces. More...
#include <BalanceForceComponent.h>
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. | |
![]() | |
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 | |
![]() | |
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 | |
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).
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.
xForce | X projection of force acting on hardpoints |
yForce | Y projection of force acting on hardpoints |
zForce | Z projection of force acting on hardpoints |
xMoment | X projection of moment acting on hardpoints |
yMoment | Y projection of moment acting on hardpoints |
zMoment | Z projection of moment acting on hardpoints |
|
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.
|
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.