Start this thread to have a place for focused discussion of the new vibration logging function of AC3.3. I'll start by copy-pasting my initial discussion from the AC3.3 beta testing thread.
You need to be a member of diydrones to add comments!
rcboosted > Gerhard LaubscherMay 19, 2016 at 8:13am
It looks almost as if the wires that are right in the middle might be too stiff? Those soldering and shrink tube usually turn the wires solid so they are transferring the vibration from the frame. Rotation along the X isn't limited since the wires are in the middle. But along the Y, it seems limiting. Adding the weight probably helped dampened the vibration. I wonder if switching out to softer wires will help without the weight. Then add the weight to make it even better.
Thanks for the beer proposal! I appreciate that ;-) Never been at Cape Town, and planning to come.
Now the controller seems OK, you can try new autotune for sure - can return existing params anytime. Also can reduce the weight to 20 grams, will be enough.
Buy orange foam from Hobbyking and put it under pixhawk together with your antivibration mount....also i got best results when Pix is in sandwich between two plate with foam on both of them...
Same as Rob I copy-and-paste my results here as well:
What it is all about is that the vibrations seem much higher when looking at the raw 1000Hz IMU data compared to FAST 400Hz and the normal 50Hz logging .
The question is: is the difference in amplitude in AccZ at 1000Hz a result of the ACCEL_FILTER? I.e. the 50Hz and 400Hz values are filtered and the raw is not?
It would be good if someone could repeat this test and if someone with some more in-depth knowledge of the code could clarify.
Thanks and best regards,
Thorsten
tl;dr
Original Post:
I made some tests with the current master (which seems to be very similar to 3.3rc7). By accident I enabled RAW IMU logging and was somehow shocked when I looked at the Acc1:AccZ values. Then I made a series of short flights in stabilize with different IMU logging speeds (and some intended roll movements):
1) IMU
2) IMU_FAST
3) IMU_RAW
What is interesting is that IMU and IMU_FAST show very similar ranges in the vibration data as well as the vibes. IMU_RAW AccX and AccY vales are also similar but the AccZ are a magnitude higher.
The Vibes are the same across all speeds.
I also made an FFT analysis in Mission Planner for the third log and the main frequency is about 25Hz. Hence I assume that a negative influence of these 25Hz should be visible on all three logs. Or?
This leaves me a little confused since the AccZ values of IMU_RAW are out of the desired range. Is IMU_RAW:ACC1:AccZ really logging the same thing as AccZ at 400Hz and 50Hz?
IMU 50Hz:
Acc:
Vibes:
IMU 400Hz:
Acc:
Vibes:
IMU RAW:
Acc:
Vibes:
FFT:
Looking at the screenshots above as well as the code it seems the Vibes are always calculated based on a 5Hz high pass filter. For a better comparison shouldn't they be calculated in relation to the logging frequency, i.e. 5Hz, 40Hz and 100Hz?
Reply from Randy:
The IMU_RAW logging does go through quite a different code path than the lower 50hz and 400hz imu logging but I can't immediately see any problems with the RAW logging. It just seems to write the raw values from the sensor (received as a report from the PX4Firmware) to the dataflash. I also don't see any problems with the formatting of the message which could lead to a change in the output - they're all logged as floats. This leaves me thinking that the vibrations levels on this particular vehicle really are much higher in the Z-axis than on the X, Y axis but it's at a high frequency and it's being averaged out on the lower rate logging.
The 5hz high pass filter on the VIBE message is apparently to try and get rid of the vehicle's actual movements so as far as I understand we shouldn't be changing that based on the logging rate.
Another one from me:
The problem we have with this is that according to Nyquist we can currently - based on the existing hardware - not determine higher frequencies. So my condensed questions is: Do you see any problems regarding flight stability with these (most probably high frequency) vibrations visible at 1000Hz, especially if all seems fine at the main loop which is responsible for vehicle stability?
In detail:
At 50Hz and 400Hz the vehicle movement is clearly visible in the logs and not shadowed by vibrations. In this case I assume, that it should be easy to control the vehicle for the code. For 1000Hz it is another story, because we only get a very basic idea of the vehicle movement due to high vibrations (at least visually). But since the main loop runs at 400Hz, this should not be a problem - or? Or can there be any impact stemming from high frequency vibrations - especially with very low vibes and the fact there is no clipping?
The next thing I am not sure about: Is the output of the 50Hz and 400Hz Acc data filtered or is it just sampled, i.e. only very nth sample is taken from the accelerometer. If it is not filtered then 50Hz and 400Hz logging should show the same characteristics (in terms of the amplitude) as 1000Hz just at a lower rate, because it is just a (random) sub sample. The only difference should be that with 1000Hz you can better analyze the frequencies. Is this correct? If so, then something must be wrong with the logging.
Regarding the vibes I am wondering why such different vibration levels should cause similar vibe pattern. I understand the idea to remove vehicle movement with a high-pass filter (which is related to continuum removal in spectroscopy). Ah ok, if the vibes are always calculated based on the main loop or the 50Hz signal then for sure there should be no change in the values. I’ll make some tests with the raw data.
What I am also confused about is how the high frequencies can be transferred if low frequencies are filtered out. It would make sense for a hard mounted autopilot because it would receive any vibrations. Generally, I assume the harder the damping the more high frequencies can be transferred. Also according to the FFT there is no vibration between 300 and 500Hz. Hence it must be a vibration between 500Hz and 1000Hz . The damping would then with act as a wide band-stop filter (which I do not believe) or the HF vibrations are transmitted via cables or air. (Maybe the antenna cable, I’ll check that.)
I try totry toreadjusttheT-rex500main rotordynamic balance, and then withINS_ACCEL_FILTER and INS_GYRO_FILTERparameteris set to10Hz,to achieve theeffect is very goodvibrationcurve,look,thisisa state of shockshould be verygood.
zhangpengsir > zhangpengsirJuly 8, 2015 at 12:51am
Replies
It looks almost as if the wires that are right in the middle might be too stiff? Those soldering and shrink tube usually turn the wires solid so they are transferring the vibration from the frame. Rotation along the X isn't limited since the wires are in the middle. But along the Y, it seems limiting. Adding the weight probably helped dampened the vibration. I wonder if switching out to softer wires will help without the weight. Then add the weight to make it even better.
Hi RC,
I agree, I am going to re-work those with thinner flexi wires, to get rid of
the heatshrink within the loop.
Further, on investigation, where the ESC's plug-in on the back, those wires
may also have an effect on the dynamics of the FC, as mounted.
In the mean time, I have fitted the weight, as per my feedback here.
Regards,
Gerhard
Thanks for the beer proposal! I appreciate that ;-) Never been at Cape Town, and planning to come.
Now the controller seems OK, you can try new autotune for sure - can return existing params anytime. Also can reduce the weight to 20 grams, will be enough.
Best regards,
Vesco
Buy orange foam from Hobbyking and put it under pixhawk together with your antivibration mount....also i got best results when Pix is in sandwich between two plate with foam on both of them...
Can you send a photo of the samwhiched pix, like you have it?
Can you show us a picture of your build?
Looks like your frame oscillates on the y-axis...
Same as Rob I copy-and-paste my results here as well:
What it is all about is that the vibrations seem much higher when looking at the raw 1000Hz IMU data compared to FAST 400Hz and the normal 50Hz logging .
The question is: is the difference in amplitude in AccZ at 1000Hz a result of the ACCEL_FILTER? I.e. the 50Hz and 400Hz values are filtered and the raw is not?
It would be good if someone could repeat this test and if someone with some more in-depth knowledge of the code could clarify.
Thanks and best regards,
Thorsten
tl;dr
Original Post:
I made some tests with the current master (which seems to be very similar to 3.3rc7). By accident I enabled RAW IMU logging and was somehow shocked when I looked at the Acc1:AccZ values. Then I made a series of short flights in stabilize with different IMU logging speeds (and some intended roll movements):
1) IMU
2) IMU_FAST
3) IMU_RAW
What is interesting is that IMU and IMU_FAST show very similar ranges in the vibration data as well as the vibes. IMU_RAW AccX and AccY vales are also similar but the AccZ are a magnitude higher.
The Vibes are the same across all speeds.
I also made an FFT analysis in Mission Planner for the third log and the main frequency is about 25Hz. Hence I assume that a negative influence of these 25Hz should be visible on all three logs. Or?
This leaves me a little confused since the AccZ values of IMU_RAW are out of the desired range. Is IMU_RAW:ACC1:AccZ really logging the same thing as AccZ at 400Hz and 50Hz?
IMU 50Hz:
Acc:
Vibes:
IMU 400Hz:
Acc:
Vibes:
IMU RAW:
Acc:
Vibes:
FFT:
Looking at the screenshots above as well as the code it seems the Vibes are always calculated based on a 5Hz high pass filter. For a better comparison shouldn't they be calculated in relation to the logging frequency, i.e. 5Hz, 40Hz and 100Hz?
Reply from Randy:
The IMU_RAW logging does go through quite a different code path than the lower 50hz and 400hz imu logging but I can't immediately see any problems with the RAW logging. It just seems to write the raw values from the sensor (received as a report from the PX4Firmware) to the dataflash. I also don't see any problems with the formatting of the message which could lead to a change in the output - they're all logged as floats. This leaves me thinking that the vibrations levels on this particular vehicle really are much higher in the Z-axis than on the X, Y axis but it's at a high frequency and it's being averaged out on the lower rate logging.
The 5hz high pass filter on the VIBE message is apparently to try and get rid of the vehicle's actual movements so as far as I understand we shouldn't be changing that based on the logging rate.
Another one from me:
The problem we have with this is that according to Nyquist we can currently - based on the existing hardware - not determine higher frequencies. So my condensed questions is: Do you see any problems regarding flight stability with these (most probably high frequency) vibrations visible at 1000Hz, especially if all seems fine at the main loop which is responsible for vehicle stability?
In detail:
At 50Hz and 400Hz the vehicle movement is clearly visible in the logs and not shadowed by vibrations. In this case I assume, that it should be easy to control the vehicle for the code. For 1000Hz it is another story, because we only get a very basic idea of the vehicle movement due to high vibrations (at least visually). But since the main loop runs at 400Hz, this should not be a problem - or? Or can there be any impact stemming from high frequency vibrations - especially with very low vibes and the fact there is no clipping?
The next thing I am not sure about: Is the output of the 50Hz and 400Hz Acc data filtered or is it just sampled, i.e. only very nth sample is taken from the accelerometer. If it is not filtered then 50Hz and 400Hz logging should show the same characteristics (in terms of the amplitude) as 1000Hz just at a lower rate, because it is just a (random) sub sample. The only difference should be that with 1000Hz you can better analyze the frequencies. Is this correct? If so, then something must be wrong with the logging.
Regarding the vibes I am wondering why such different vibration levels should cause similar vibe pattern. I understand the idea to remove vehicle movement with a high-pass filter (which is related to continuum removal in spectroscopy). Ah ok, if the vibes are always calculated based on the main loop or the 50Hz signal then for sure there should be no change in the values. I’ll make some tests with the raw data.
What I am also confused about is how the high frequencies can be transferred if low frequencies are filtered out. It would make sense for a hard mounted autopilot because it would receive any vibrations. Generally, I assume the harder the damping the more high frequencies can be transferred. Also according to the FFT there is no vibration between 300 and 500Hz. Hence it must be a vibration between 500Hz and 1000Hz . The damping would then with act as a wide band-stop filter (which I do not believe) or the HF vibrations are transmitted via cables or air. (Maybe the antenna cable, I’ll check that.)
I made some tests comparing IMU, IMU_FAST and IMU_RAW data. I forgot about this thread and I posted it in the AC3.3 beta discussion.
I try to try to readjust the T-rex500 main rotor dynamic balance, and then with INS_ACCEL_FILTER and INS_GYRO_FILTER parameter is set to 10Hz, to achieve the effect is very good vibration curve, look, this is a state of shock should be very good .
This is a shock to another flight log Availability: