Math help: calibrating adxl375

Discussion in 'Embedded Systems and Microcontrollers' started by Vindhyachal Takniki, Dec 30, 2014.

  1. Vindhyachal Takniki

    Thread Starter Member

    Nov 3, 2014
    349
    6
    I have read the two calibration app note as I have attached. I am using adxl375.

    1. I have been able to do 6 point calibration correctly as in AN4399.

    2. Now I want to do 12 point calibration as in DM00119044 or AN4399.
    Page 8 of DM00119044 shows the matrix for calculation.

    This matrix will yield to 18 equations right? As below. Now I have 18 equations & 12 variables.
    Is there any software which can solve these for me:

    Code (Text):
    1.  
    2. /* 18 equations */
    3.  
    4. /* +z axis */
    5. a11*30 + a12*50 + a13*2548 + o1 = 0
    6. a21*30 + a22*50 + a23*2548 + o2 = 0
    7. a31*30 + a32*50 + a33*2548 + o3 = 1
    8.  
    9. /* -z axis */
    10. a11*20 + a12*10 + a13*980+ o1 = 0
    11. a21*20 + a22*10 + a23*980 + o2 = 0
    12. a31*20 + a32*10 + a33*980 + o3 = -1
    13.  
    14. /* +y axis */
    15. a11*30 + a12*1911 + a13*50 + o1 = 0
    16. a21*30 + a22*1911 + a23*50 + o2 = 1
    17. a31*30 + a32*1911 + a33*50 + o3 = 0
    18.  
    19. /* -y axis */
    20. a11*20 + a12*49 + a13*10+ o1 = 0
    21. a21*20 + a22*49 + a23*10 + o2 = -1
    22. a31*20 + a32*49 + a33*10 + o3 = 0
    23.  
    24. /* +x axis */
    25. a11*2303 + a12*30 + a13*50 + o1 = 1
    26. a21*2303 + a22*30 + a23*50 + o2 = 0
    27. a3/* +z axis */1*2303 + a32*30 + a33*50 + o3 = 0
    28.  
    29. /* -x axis */
    30. a11*392 + a12*20 + a13*10+ o1 = -1
    31. a21*392 + a22*20 + a23*10 + o2 = 0
    32. a31*392 + a32*20 + a33*10 + o3 = 0
    33.  
    3. Now for 15 point calibration as in AN4399. page 33. They had added a cubic nonlinearity.
    What is its purpose?
    Why to add cubic factor here?
     
  2. Thimor Bohn

    New Member

    Jan 7, 2015
    2
    0
    Hi,

    I guess your eqns. follow eq. 36 from AN4399 (p. 25) with i=6 (i.e. measurements for x-, y-, z-axes in both orientations) and the numbers on lhs relate to vector G_f (i.e. given factory calibrated measurements) and the numbers on rhs relate to vector G_12 (i.e. the 12 parameter calibrated output). Then you want to know the 9 coefficients of the matrix W (i.e. a in your eqns.) and the 3 for vector V (i.e. o in your eqns.). So you want to calculate 12 parameters and have 18 equations. That means you have an over-determined linear equation system which can be easily calculated using matlab or octave (a free matlab clone). Just use eqns. 45-48. As an addition remark: the more measurements you make the better the results are. (i.e. take more measurements at same position so leaving G_12 constant while G_f varies assuming G_f is a probabilistic variable with Gaussian noise.)

    To the other question: the term Gamma*G_f.^3 with matrix Gamma and vector G_f looks like the sensor is non-linear at higher acceleration rates which is now considered. Solving the new eqn. array is straight forward using eqn. 72.
     
Loading...