LaPDXYDroopCorrect

class bapsf_motion.transform.lapd_droop.LaPDXYDroopCorrect(drive: Drive, *, pivot_to_feedthru: float, droop_scale: int | float = 1.0)

Bases: DroopCorrectABC

Class 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 of Drive the 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) – (DEFAULT 1.0) A float >= 0.0 indicating how much to scale the droop calculation by. A value of 0 would indicate no droop. A value between 0 and 1 indicates a droop less than the default model. A value of 1 indicates the default model droop. A value > 1 indicates 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 ds was 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

axes

A list of axis identifiers.

coefficients

Coefficients for the droop correction polynomial.

dimensionality

The designed dimensionality of the droop correction.

drive

The Drive the droop / non-droop correction will be working on.

droop_scale

Scale value for how much to adjust the droop from the default model.

naxes

The number of axes of the probe drive.

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 Summary

__call__(points,Β to_points)

Adjust points from 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 associated Drive.

drive

The Drive the droop / non-droop correction will be working on.

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 points from a non-droop position to a droop position, and vice versa. points need 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 adjust points from a non-droop position to a droop position. If "non-droop", then adjust points from a droop position to a non-droop.

Returns:

adjusted_points – Droop / non-droop adjusted points. Will have the same dimensionality as points.

Return type:

array_like