LaPDXYDroopCorrectο
- class bapsf_motion.transform.lapd_droop.LaPDXYDroopCorrect(drive: Drive, *, pivot_to_feedthru: float, droop_scale: int | float = 1.0)ο
Bases:
DroopCorrectABCClass that defines functionality for droop / non-droop correction in the LaPD XY plane of a stainless steel 304 probe shaft of 0.375β OD x 0.035β wall.
- Parameters:
drive (
Drive) β The instance ofDrivethe droop correction will be working with.pivot_to_feedthru (
float) β Distance from the center βpivotβ point of the ball valve to the nearest face of the probe drive feed-through.droop_scale (
float) β (DEFAULT1.0) A float>= 0.0indicating how much to scale the droop calculation by. A value of0would indicate no droop. A value between0and1indicates a droop less than the default model. A value of1indicates the default model droop. A value> 1indicates more droop.
Notes
The fit for the droop correction was generated by running Finite- Element-Analysis (FEA) in Solidworks, and fitting to the results.
Setup for the FEA:
Assumed a probe shaft of stainless steel 304, 0.375β OD, and 0.035β wall.
Probe shaft it held fixed at several lengths to simulate how far a probe shaft is inserted into the LaPD.
For each fix position above, gravity was applied at various angles \(\theta\) to simulated insertion into the LaPD at an angle.
The droop
dswas then taken from the simulation results and fitted to.Illustration of the simulation setup:
gravity / / \/ fixed |<-- insertion r -->| -------|--------------------- <- -------|----____ | ---___ ds --__ | -_ | - <-
The fitted polynomial for the droop correction is
\[ds = ( a_3 r^3 + a_2 r^2 + a_1 r + a_0 ) r cos(\theta)\]
Attributes Summary
A list of axis identifiers.
Coefficients for the droop correction polynomial.
The designed dimensionality of the droop correction.
The
Drivethe droop / non-droop correction will be working on.Scale value for how much to adjust the droop from the default model.
The number of axes of the probe drive.
Distance from the ball valve pivot to the probe drive vacuum feed-through.
Material of the probe shaft associated with the droop correction.
Outer diameter (OD) of the probe shaft associated with the droop correction.
Wall thickness of the probe shaft associated with the droop correction.
Methods Summary
__call__(points,Β to_points)Adjust
pointsfrom a non-droop position to a droop position, and vice versa.Attributes Documentation
- axesο
A list of axis identifiers.
- coefficientsο
Coefficients for the droop correction polynomial.
\[ds = ( a_3 r^3 + a_2 r^2 + a_1 r + a_0 ) r cos(\theta)\]coefficients = [a0, a1, a2, a3]
- dimensionalityο
The designed dimensionality of the droop correction. If
-1, then the transform does not have a fixed dimensionality, and it can morph to the associatedDrive.
- droop_scaleο
Scale value for how much to adjust the droop from the default model.
- naxesο
The number of axes of the probe drive.
This is the same as the motion space dimensionality.
- pivot_to_feedthruο
Distance from the ball valve pivot to the probe drive vacuum feed-through.
- probe_shaft_materialο
Material of the probe shaft associated with the droop correction.
- probe_shaft_odο
Outer diameter (OD) of the probe shaft associated with the droop correction.
- probe_shaft_wallο
Wall thickness of the probe shaft associated with the droop correction.
Methods Documentation
- __call__(points: ndarray, to_points: str) ndarrayο
Adjust
pointsfrom a non-droop position to a droop position, and vice versa.pointsneed to be giving in coordinates with respect to the ball valve pivot, and NOT the LaPD coordinate system.- Parameters:
points (array_like) β A single point or array of points for which the droop / non-droop correction will be applied. These points must be given in a coordinate system with respect to the ball valve pivot, and NOT the LaPD coordinate system. The array of points needs to be of size \(M\) or \(N imes M\) where \(M\) is the dimensionality of the motion space and \(N\) is the number of points to be transformed.
to_points (str) β If
"droop", then adjustpointsfrom a non-droop position to a droop position. If"non-droop", then adjustpointsfrom a droop position to a non-droop.
- Returns:
adjusted_points β Droop / non-droop adjusted points. Will have the same dimensionality as
points.- Return type: