2021-03-19 05:29 AM
Hi, I am working on high precision position control with BLDC motors on my master thesis.
I am trying to control the position with an encoder on the TI-C200 processors and It's ok for now. The control accuracy is 0.1 degree on the encoder but for my thesis, I need more precise control. I have decided to do this with high precision gyros but I am a little bit confused about this issue.
I need the control the position at least 200 micro radian accuracy, hence I need to get feedback at least 200 micro radians from the sensor but I am not sure that how can I choose the proper gyro for my application?
In the gyro datasheets, there is nothing about the accuracy values. How can I choose the proper gyro for my application?
Thank you for your help!
2021-03-19 06:57 AM
Hi @KDoga.1 ,
please note that the gyroscope sensor measures the angular rate (in dps or rad/s), and not the angle itself (in degree or radiants), and these are the parameter -with related accuracy- reported the datasheet of ST gyros (for example, the L3GD20H if you are searching for a stand-alone gyro, or the LSM6DSO if you are looking for an high precision IMU).
For this reason, to get the angle value / position you have to integrate in time gyro's output signal.
But in this integration procedure also the ZRL (the offset) and noise are summed, with the risk of a high deviation from the true value.
So, for your application you have to first choose the gyro (and I suggest you the LSM6DSO), then you have to compensate the residual no-signal offset (both from the dedicated registers or in general at software level), and then you can start the position calculation algorithm (angle integration)
I suggest you to periodically calibrate the sensor, to minimize the error during operation: you can refer to the MotionGC library of the X-CUBE-MEMS1 for more info on this topic.
-Eleon
2021-03-19 08:30 AM
Hi,
Thank you for your help. I know that gyro gives angular velocity and for my position control algorithm, I need both angular velocity and angle itself. For this reason, I need to get accurate angular velocity data from the gyro.
My problem is how can I determine the proper gyro for my application? For the encoders, I know the accuracy and resolution and I get the angle data from the encoder. After that, I am calculating the angular velocity from the position.
In my application, I need to get the position data from the gyro(I mean after the angle calculation algorithm) better than 200 micro radians. I know It's related to my calculation algorithm but I need to know that If my algorithm is correct, I can get the position better than 200 micro radians.
So, My question is how can I calculate or determine the "exact" accuracy of some gyros? For example, you offered L3GD20H, but why? If you can explain that why you offered this product(according to which parameters), It would be great for me.
Thanks!
2021-03-19 09:16 AM
Hi @KDoga.1 ,
I suggested you the L3GD20H since this is one of the few stand-alone gyroscope in ST portfolio.
Its sensitivity is 8.75 mdps/digit at low full scale, calibrated. If you run the device at ODR max = 800Hz (cut-off frequency at 100Hz), you'll have a temporal base of dt = 1/ODR = 1.25 ms.
Integrating 8.75 mdps/digit in 1.25 ms you get 11 micro degree per dt, meaning less than 1 micro radiant.
But this is the very best case, little time integration and perfect calibration / offset compensation.
If you need for more accuracy, you can use the LSM6DSO, that is better-in-class on the market.
-Eleon
2021-03-19 10:05 AM
Hi,
Thank you for your great answer. It's now much more clear for me. As far as I understand, I can calculate the gyro accuracy with these formulas, isn't it?
2021-03-19 10:39 AM
Hi @KDoga.1 ,
this is the best case, but please note that the not-compensated ZRL can be of some dps, and the cut-off frequency is 100Hz in the ODRmax = 800Hzcase, so it is easy to worse the accuracy of 1 order of magnitude, if not properly treated in term of compensation.
-Eleon