Größe: 8216
Kommentar:
|
Größe: 12366
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
[[TableOfContents]] | [[TableOfContents(2)]] |
Zeile 4: | Zeile 4: |
The tool measures the vibration generated by the motors using the MK build-in sensors. This allows to balance motor/prop assemblies and to experiment with different motor-mounts. | The tool evaluates the vibration generated by the motors which allows balancing motor/prop assemblies and experimenting with different motor-mounts. The test uses the MK build-in sensors, so no extra hardware is required. = Why is it important to reduce vibrations? = The FlightControl sensors pickup the vibrations and this deteriorates performance; the new FC ME comes with vibration dampers in order to reduce the vibrations transferred to the FC. Reducing vibration is very important, especially for Aerial Photography or Video. Vibrations result in blurry footage. Some claim that high frequency vibrations can be picked up by the Optical Image Stabilization lens assembly which is incorporated in almost all recent cameras. The OIS is not designed for these vibrations and makes thing worse, even when you switch the OIS feature off in the camera menu. Propellers can be balanced the traditional way. However it was discovered that also the motors need balancing. One way to accomplish this is let a small unbalance in the prop compensate the motor unbalance, so the orientation of the prop is important (see [http://www.rcgroups.com/forums/showpost.php?p=12832508&postcount=228 this post]). Looking at the vibraions of a running motor allows balancing the prop/motor assembly as a whole. = How does it work? = The standard FlightControl program samples all sensors periodically and provides a command to read the latest sample from all sensors. The MKTool uses this command to generate graphs of the analog values. In a first approach the VibrationTest used this standard command to monitor vibrations. The problem is that this mechanism only allows to sample the values 30 times a second. The actual shape of the signals cannot be determined and one can only hope to catch the peak values. In order to get reliable results the values need to be monitored for a long time (a minute for example). This new approach is based on dedicated FlightControl software providing a new command. The new command instructs the FC to sample one of the sensors as fast as possible and store the info in its internal memory. Afterwards the recorded data can be read to analysis. This allows to grab a reliable signal in a very short time. This approach can capture about 11000 samples a second, 500 times more than the MKTool can. |
Zeile 7: | Zeile 19: |
[[BR]] [[Anchor(SampleSignalJpg)]] |
|
Zeile 10: | Zeile 23: |
= Current status = The current implementation is very basic, it is a "command-line" tool without any graphical user-interface. I am still experimenting and working on the first version of the tool. = How do I install the tool? = == Option 1: Install Python == The tool is written in Python. In case you have heard of python, have look in [http://en.wikipedia.org/wiki/Python_(programming_language) Wikipedia]. In order to run the tool, you need to install support for Python on your PC. I propose you install: [http://www.activestate.com/activepython/ ActivePython for Windows] and [http://sourceforge.net/projects/pyserial/files/ PySerial (support for serial port access)] |
[[BR]][[BR]][[BR]] = Current Project status = /!\ ~+'''The version available now (version 0.9 RC3) is an beta version; it was only tested by a limited amount of people. [[BR]]More testers/evaluators are very welcome!'''+~ [[BR]][[BR]] At the time of writing, the tool was tested in combination with: * PC/Windows XP and Vista * FC 1.2 and FC 1.3 Theoretically the tool should also run on MAC and Linux. [[BR]][[BR]] Features/fixes in the pipeline * Integrated backup and restore of flight settings * Integrated installing and restore of FC code [[BR]][[BR]] {i} [http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions] [[BR]] {i} [[MailTo(frederic AT rc-flight DOT be)]] |
Zeile 25: | Zeile 42: |
== Option 2: Get compiled version == | [[BR]][[BR]][[BR]] [[Anchor(Install)]] = How do I install the tool? = The tool is written in programming language called [http://en.wikipedia.org/wiki/Python_(programming_language) Python]. |
Zeile 27: | Zeile 47: |
It should be possible to compile python applications to a windows executable. I did not investigate this approach yet. | The most logic way to run the tool is to install support for Python on your PC (if you do not have it already) and the Python libraries the tool depends on. Python is also available for Linux and MAC; the tool should also run on these platforms, but I have never tried it. |
Zeile 29: | Zeile 50: |
= Installing the FlightControl software = The VibrationTest tool works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and you need to reinstall your regular software version afterwards. This just takes a few minutes. Switching the software is done the usual way, using the MKTool. |
If you do not feel like installing Python, a version that is compiled to a windows executable is provided. |
Zeile 32: | Zeile 52: |
You can grab the latest version of the VibrationTest-FC.hex file from [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2Ftrunk%2FExecutables%2FFlightCtrl%2F#_VibrationTest_trunk_Executables_FlightCtrl_ SVN] | So, you have two options. |
Zeile 34: | Zeile 54: |
= How do I use the tool? = | [[Anchor(InstallPython)]] == Option 1: Install Python and required libraries == For a Windows machine I propose you install: |
Zeile 36: | Zeile 58: |
== The command line parameters == {{{ VibrationTest.py COMPORT MOTORS SPEEDS CHANNELS [-m MINSPEED] [-s NBSAMPLES] [-n NAME] [-d FILENAME] [-v] COMPORT Serial port to use. e.g. COM4 MOTORS Motors to activate during test. Multiple motors can be used at the same time. e.g. 1,2,3,4 SPEEDS Indicates at what speeds the motors need to be tested. Format 1: e.g. 50,110,140 Tests at speeds 50, 110 and 140 Format 2: e.g. 100-200:50 Tests at speeds 100, 150 and 200 CHANNELS Channels to monitor. e.g. 5,6,7 Channel 0 = GyroYaw Channel 1 = GyroRoll Channel 2 = GyroNick Channel 3 = Pressure Channel 4 = Batt Channel 5 = AccTop Channel 6 = AccRoll Channel 7 = AccNick -m MINSPEED Minimum speed of the motor(s) -s NBSAMPLES Number of samples -n NAME Name of the test -d FILENAME File to which the measured values will be logged in -v Verbose }}} |
* [http://www.activestate.com/activepython/ ActivePython for Windows] Press the big "ActivePython Download Now" button. * [http://sourceforge.net/projects/pyserial/files/ PySerial (support for serial port access)] Select "pyserial-2.5-rc1.win32.exe" on that page. * [http://www.wxpython.org/download.php wxPython wxWidgets for Python] Select the the win32-unicode version for Python 2.6 * [http://sourceforge.net/projects/numpy/ NumPy, the fundamental package needed for scientific computing with Python] Once you have Python support on your PC, unzip [http://www.rc-flight.be/VibrationTest/VibrationTest_0_9.zip VibrationTest_0_9.zip] to a directory on your PC. == Option 2: Get the compiled version == unzip [http://www.rc-flight.be/VibrationTest/VibrationTestExe_0_9.zip VibrationTestExe_0_9.zip] to a directory on your PC |
Zeile 61: | Zeile 68: |
[[BR]][[BR]][[BR]] = How do I use the tool? = == Prepare your MK == |
|
Zeile 62: | Zeile 72: |
== General procudure == | === Secure your MK === I use luggage straps to secure my MK to the table while it is still able to vibrate: |
Zeile 64: | Zeile 75: |
== Example 1 == | attachment:mk1InTest.jpg |
Zeile 66: | Zeile 77: |
Finding what sensor provides best information at what speed: {{{ VibrationTest.py COM5 3 100-200:20 6,7 |
/!\ '''For MKs with bigger motors I have found that it is very important to make sure that the straps do not vibrate too much and stay out of the propwach as much as possible''' |
Zeile 70: | Zeile 79: |
Speed=100 U=11.3V Channel=AccRoll Min=492 Max=505 pp= 13 ** Speed=100 U=11.3V Channel=AccNick Min=498 Max=507 pp= 9 * |
=== Installing the FlightControl software === The VibrationTest tool only works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and '''you need to reinstall your regular software version afterwards'''. This just takes a few minutes. Switching the software is done the usual way, using the MKTool. |
Zeile 73: | Zeile 82: |
Speed=120 U=11.3V Channel=AccRoll Min=489 Max=503 pp= 14 ** Speed=120 U=11.3V Channel=AccNick Min=497 Max=507 pp= 10 ** |
You will find the required hex file in the same directory with the VibrationTest tool. |
Zeile 76: | Zeile 84: |
Speed=140 U=11.2V Channel=AccRoll Min=469 Max=519 pp= 50 ********** Speed=140 U=11.2V Channel=AccNick Min=495 Max=508 pp= 13 ** |
/!\ '''The FC code for the VibrationTest is based 0.74d but is not fit for flying! Before flying, you will need to reinstall your initial FC code. When the version you use for flying is 0.74d, your settings should be preserved. In combination with other versions, it might not be the case. It is a good idea to backup yout settings to PC (via the MKTool) before installing the VibrationTest FC code. ''' |
Zeile 79: | Zeile 86: |
Speed=160 U=11.1V Channel=AccRoll Min=478 Max=517 pp= 39 ******* Speed=160 U=11.1V Channel=AccNick Min=493 Max=511 pp= 18 *** |
After insatlling the FC code for the VibrationTest, the LC-Display in the MKTool will look like this: |
Zeile 82: | Zeile 88: |
Speed=180 U=10.9V Channel=AccRoll Min=479 Max=511 pp= 32 ****** Speed=180 U=10.9V Channel=AccNick Min=493 Max=514 pp= 21 **** |
attachment:LCDisplay.jpg |
Zeile 85: | Zeile 90: |
Speed=200 U=10.7V Channel=AccRoll Min=479 Max=515 pp= 36 ******* Speed=200 U=10.7V Channel=AccNick Min=493 Max=513 pp= 20 **** |
== Starting the VibrationTest tool == In the directory where you unzipped the tool, dubbleclick VibrationTestGui.py (in case of the Python version) or VibrationTestGui.exe |
Zeile 88: | Zeile 93: |
== Using the VibrationTest tool == [[BR]] [[Vimeo(6948282)]] [[BR]] |
|
Zeile 89: | Zeile 98: |
VibrationTest.py COM5 3 130-160:10 6 Speed=130 U=11.1V Channel=AccRoll Min=484 Max=511 pp= 27 ***** Speed=140 U=11.1V Channel=AccRoll Min=469 Max=524 pp= 55 *********** Speed=150 U=11.1V Channel=AccRoll Min=475 Max=520 pp= 45 ********* Speed=160 U=11.1V Channel=AccRoll Min=479 Max=518 pp= 39 ******* }}} So, lets concentrate on channel 6 at speed 140. |
== Checking the reliability/accuracy of the results == Before you start, it is good to check the reliability of the test and setup. |
Zeile 97: | Zeile 101: |
Now, the preliminary balancing of the prop: {{{ VibrationTest.py COM5 3 140 6 -d motor3.txt -n 0s0 0s0 Speed=140 U=11.0V Channel=AccRoll Min=470 Max=521 pp= 51 ********** |
You should alway start with a sweep and look at different sensors. If the vibrations is rather constant over motor-speed, the combination might be well balanced or you might not be measuring what you are hoping to measure. In this case, sticking some tape to the prop should should unbalance it and you should see a difference. |
Zeile 102: | Zeile 103: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s0 1s0 Speed=140 U=11.0V Channel=AccRoll Min=482 Max=513 pp= 31 ****** |
You can have a look at the recorded signals, the filtered signals and perhaps the spectrum. If this seems ok, you can repeat the sweep multiple times, using one of the sensors. Each time you should get similar results. Results will never be 100% the same. |
Zeile 105: | Zeile 105: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s0 2s0 Speed=140 U=11.0V Channel=AccRoll Min=475 Max=520 pp= 45 ********* }}} For now, 1 sticker seems best. |
Another test you should do, is let the tool measure multiple times at the same speed; for example "10*100,10*200". The measurement at the same speed should report the about the same amount of vibrations. |
Zeile 110: | Zeile 107: |
Now, lets rotate the prop: {{{ VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s0 |
The figure below shows the result of such test with a "Roxxy 2824-34 / EPP1045 / 3s / Standard ESC" combination. All but the green line are from the Nick sensor. The black line are vibrations measured at speeds 130 and 185. The other lines are sweeps. This does not look too bad. |
Zeile 114: | Zeile 109: |
1s0 Speed=140 U=10.9V Channel=AccRoll Min=481 Max=513 pp= 32 ****** | attachment:acuracy1.jpg |
Zeile 116: | Zeile 111: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s60 | [[BR]] (!) When the results are disappointing, one should experiment with the way the MK is attached. One could fix the MK more firmly to the desk or on the contrary allow more movement. One should also and make sure nothing else but the MK can vibrate. |
Zeile 118: | Zeile 114: |
1s60 Speed=140 U=10.9V Channel=AccRoll Min=480 Max=512 pp= 32 ****** | It is also possible that the filter parameters might not be optimal for your setup. In the figure below I have almost disabled the filter and switched to "pp" measurement: |
Zeile 120: | Zeile 116: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s120 | attachment:acuracy2.jpg |
Zeile 122: | Zeile 118: |
1s120 Speed=140 U=10.9V Channel=AccRoll Min=477 Max=514 pp= 37 ******* | [[BR]] This is another example of such a test (Turnigy 2836-750 / APC 12x3.8 / 4s / TowerPro ESC): |
Zeile 124: | Zeile 121: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180 | attachment:acuracy3.jpg |
Zeile 126: | Zeile 123: |
1s180 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=509 pp= 27 ***** | [[BR]][[BR]] = Examples = |
Zeile 128: | Zeile 126: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s240 | == Balancing example: Roxxy 2824-34 / EPP1045 / 3s / Standard ESC == [[Vimeo(7011506)]] |
Zeile 130: | Zeile 129: |
1s240 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=510 pp= 28 ***** | [[BR]] == Effect of prop position, Roxxy 2824-34 / EPP1045 3s / Standard ESC == The importance of the position of the propeller relative to the motor was first reported by RCGroups member "Old Man Mike", see [http://www.rcgroups.com/forums/showpost.php?p=12832508&postcount=228 this post]. My tool also shows this effect. However, I observed that sometimes rotating the prop did not produce significant variations... |
Zeile 132: | Zeile 133: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s300 | I discovered that when I first balance the prop as good as I can using the VibrationTest, rotating the prop produced very little difference. |
Zeile 134: | Zeile 135: |
1s300 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=514 pp= 32 ****** | I come to the conclusion that I need to deliberately unbalance the prop a bit in order to find the "sweet spot". I also observed that when I unbalance the prop by sticking some tape on one side of the prop the vibrations peak while they go trough a minimum when I stick some tape to the other side. I think this supports the theory that the slightly unbalanced prop can compensate for unbalances in the motor. [[BR]][[BR]] attachment:StudyRotation.jpg [[BR]][[BR]] On the X-asis the rotation of the prop in steps of 60 degrees. The red line is with a prop that I balanced before (needs some tape opposite to the prop size-markers). The green line shows vibrations when I attach an additional strip of tape (so unbalancing it). The blue line shows what happens when I attach tape to the other side (where the markers are). |
Zeile 136: | Zeile 142: |
VibrationTest.py COM5 3 140 6,6,6 -d motor3.txt -n 1s360 | == Balancing example: Turnigy 2836-750 / APC 12x3.8 / 4s / TowerPro ESC == [[BR]] attachment:Mk2BalancingExample1.jpg [[BR]] The red line is the initial balancing. The prop seemed best balanced with no additional tape.[[BR]] The green line are the measurement while rotating the prop (steps of 45 degrees)[[BR]] The blue line is the re-balancing, due to the repositioning of the prop the results are better. The first 3 measurements showed that no tape produced the best results. In the last 3 measurements of the blue line, I experimented with smaller strips and this produced the best result. |
Zeile 138: | Zeile 150: |
1s360 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=515 pp= 33 ****** }}} |
[[BR]][[BR]] [[Anchor(Changelog)]] = Changelog = ||'''Version'''||'''Date'''||'''Changes'''|| ||0.9 RC3||17/10/2009||- Fixed limitation of 4 motors (not tested)[[BR]]- More parameter checking and clear error reporting[[BR]]- Support to connect to NC[[BR]]- Fixed exception at start of measurement|| |
Zeile 141: | Zeile 156: |
Rotating the prop by 180 degrees produces best results, now lets try to balance the prop again: {{{ VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180 |
[[BR]][[BR]] = Links = |
Zeile 145: | Zeile 159: |
1s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=509 pp= 26 ***** | === VibrationTest related === * [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=/VibrationTest/#_VibrationTest_ VibrationTest Project in Subversion] * [http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions] * Mail FredericG: [[MailTo(frederic AT rc-flight DOT be)]] |
Zeile 147: | Zeile 164: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 0s180 | === Related Threads === * [http://forum.mikrokopter.de/topic-7794-1.html Thread: Vibrationsdämpfung der Antriebsmotoren] * [http://forum.mikrokopter.de/topic-post106888.html Thread: Tilt servo play => Vibrations] * [http://www.mk-fr.info/forum/index.php/topic,812.msg12038.html Thread: Equilibrage des Hélices RC (French)] * [http://www.vimeo.com/4257366 Video: Is the Optical Image Stabilization of the FX35 causing problems?] * [http://www.rcgroups.com/forums/showthread.php?t=807347 Thread: Multikopter (mikrokopter, UAVP, x-ufo-3rd, etc) AP pictures] |
Zeile 149: | Zeile 171: |
0s180 Speed=140 U=10.9V Channel=AccRoll Min=472 Max=519 pp= 47 ********* | === Related Projects === * [http://www.rcgroups.com/forums/showthread.php?t=1006721 Old Man Mike "Test Fixture Evaluates Motors/Props/ESCs for Quadcopter Performance"] |
Zeile 151: | Zeile 174: |
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180 | === Used Libraries and Tools === * [http://www.python.org/ Python] * [http://www.wxpython.org/ wxPython] * [http://wxglade.sourceforge.net/ wxGlade] * [http://numpy.scipy.org/ NumPy] * [http://www.py2exe.org/ py2exe] |
Zeile 153: | Zeile 181: |
1s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=510 pp= 27 ***** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s180 2s180 Speed=140 U=10.9V Channel=AccRoll Min=489 Max=508 pp= 19 *** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 3s180 3s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=512 pp= 29 ***** }}} So, 2 stickers is best {{{ VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s180 2s180 Speed=140 U=10.9V Channel=AccRoll Min=488 Max=508 pp= 20 **** VibrationTest.py COM5 3 140 6,6,6 -d motor3.txt -n end end Speed=140 U=10.8V Channel=AccRoll Min=487 Max=510 pp= 23 **** }}} Now, we can perform a sweep in order to compare with the starting-point: {{{ VibrationTest.py COM5 3 100-200:20 6,7 Speed=100 U=11.1V Channel=AccRoll Min=493 Max=501 pp= 8 * Speed=100 U=11.1V Channel=AccNick Min=499 Max=507 pp= 8 * Speed=120 U=11.1V Channel=AccRoll Min=489 Max=507 pp= 18 *** Speed=120 U=11.1V Channel=AccNick Min=497 Max=508 pp= 11 ** Speed=140 U=11.0V Channel=AccRoll Min=489 Max=507 pp= 18 *** Speed=140 U=11.0V Channel=AccNick Min=498 Max=509 pp= 11 ** Speed=160 U=10.9V Channel=AccRoll Min=482 Max=508 pp= 26 ***** Speed=160 U=10.9V Channel=AccNick Min=496 Max=510 pp= 14 ** Speed=180 U=10.7V Channel=AccRoll Min=489 Max=505 pp= 16 *** Speed=180 U=10.7V Channel=AccNick Min=495 Max=508 pp= 13 ** Speed=200 U=10.6V Channel=AccRoll Min=482 Max=508 pp= 26 ***** Speed=200 U=10.6V Channel=AccNick Min=491 Max=509 pp= 18 *** }}} = Links = [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2F#_VibrationTest_ VibrationTest Project in Subversion] /!\ ToDo: * Explain the parameters * The general procedure * Make a hex-file available |
=== Technical references === * [http://en.wikipedia.org/wiki/Sampling_(signal_processing) Sampling] * [http://en.wikipedia.org/wiki/Fourier_analysis Fourier Analysis] |
Zeile 211: | Zeile 187: |
[[AttachList]] | ## [[AttachList]] |
Zeile 214: | Zeile 190: |
. KategorieTools KategorieProjekte KategorieEnglish KategorieAnleitung |
What is the VibrationTest Tool?
The tool evaluates the vibration generated by the motors which allows balancing motor/prop assemblies and experimenting with different motor-mounts. The test uses the MK build-in sensors, so no extra hardware is required.
Why is it important to reduce vibrations?
The FlightControl sensors pickup the vibrations and this deteriorates performance; the new FC ME comes with vibration dampers in order to reduce the vibrations transferred to the FC.
Reducing vibration is very important, especially for Aerial Photography or Video. Vibrations result in blurry footage. Some claim that high frequency vibrations can be picked up by the Optical Image Stabilization lens assembly which is incorporated in almost all recent cameras. The OIS is not designed for these vibrations and makes thing worse, even when you switch the OIS feature off in the camera menu.
Propellers can be balanced the traditional way. However it was discovered that also the motors need balancing. One way to accomplish this is let a small unbalance in the prop compensate the motor unbalance, so the orientation of the prop is important (see [http://www.rcgroups.com/forums/showpost.php?p=12832508&postcount=228 this post]). Looking at the vibraions of a running motor allows balancing the prop/motor assembly as a whole.
How does it work?
The standard FlightControl program samples all sensors periodically and provides a command to read the latest sample from all sensors. The MKTool uses this command to generate graphs of the analog values. In a first approach the VibrationTest used this standard command to monitor vibrations. The problem is that this mechanism only allows to sample the values 30 times a second. The actual shape of the signals cannot be determined and one can only hope to catch the peak values. In order to get reliable results the values need to be monitored for a long time (a minute for example).
This new approach is based on dedicated FlightControl software providing a new command. The new command instructs the FC to sample one of the sensors as fast as possible and store the info in its internal memory. Afterwards the recorded data can be read to analysis. This allows to grab a reliable signal in a very short time. This approach can capture about 11000 samples a second, 500 times more than the MKTool can.
This is an example of the signal measured by the Roll-ACC sensor: BR Anchor(SampleSignalJpg) attachment:test.jpg
Current Project status
The version available now (version 0.9 RC3) is an beta version; it was only tested by a limited amount of people. BRMore testers/evaluators are very welcome! BRBR At the time of writing, the tool was tested in combination with:
- PC/Windows XP and Vista
- FC 1.2 and FC 1.3
Theoretically the tool should also run on MAC and Linux. BRBR Features/fixes in the pipeline
- Integrated backup and restore of flight settings
- Integrated installing and restore of FC code
BRBR [http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions] BR
MailTo(frederic AT rc-flight DOT be)
How do I install the tool?
The tool is written in programming language called [http://en.wikipedia.org/wiki/Python_(programming_language) Python].
The most logic way to run the tool is to install support for Python on your PC (if you do not have it already) and the Python libraries the tool depends on. Python is also available for Linux and MAC; the tool should also run on these platforms, but I have never tried it.
If you do not feel like installing Python, a version that is compiled to a windows executable is provided.
So, you have two options.
Option 1: Install Python and required libraries
For a Windows machine I propose you install:
[http://www.activestate.com/activepython/ ActivePython for Windows] Press the big "ActivePython Download Now" button.
[http://sourceforge.net/projects/pyserial/files/ PySerial (support for serial port access)] Select "pyserial-2.5-rc1.win32.exe" on that page.
[http://www.wxpython.org/download.php wxPython wxWidgets for Python] Select the the win32-unicode version for Python 2.6
[http://sourceforge.net/projects/numpy/ NumPy, the fundamental package needed for scientific computing with Python]
Once you have Python support on your PC, unzip [http://www.rc-flight.be/VibrationTest/VibrationTest_0_9.zip VibrationTest_0_9.zip] to a directory on your PC.
Option 2: Get the compiled version
unzip [http://www.rc-flight.be/VibrationTest/VibrationTestExe_0_9.zip VibrationTestExe_0_9.zip] to a directory on your PC
How do I use the tool?
Prepare your MK
Secure your MK
I use luggage straps to secure my MK to the table while it is still able to vibrate:
attachment:mk1InTest.jpg
For MKs with bigger motors I have found that it is very important to make sure that the straps do not vibrate too much and stay out of the propwach as much as possible
Installing the FlightControl software
The VibrationTest tool only works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and you need to reinstall your regular software version afterwards. This just takes a few minutes. Switching the software is done the usual way, using the MKTool.
You will find the required hex file in the same directory with the VibrationTest tool.
The FC code for the VibrationTest is based 0.74d but is not fit for flying! Before flying, you will need to reinstall your initial FC code. When the version you use for flying is 0.74d, your settings should be preserved. In combination with other versions, it might not be the case. It is a good idea to backup yout settings to PC (via the MKTool) before installing the VibrationTest FC code.
After insatlling the FC code for the VibrationTest, the LC-Display in the MKTool will look like this:
attachment:LCDisplay.jpg
Starting the VibrationTest tool
In the directory where you unzipped the tool, dubbleclick VibrationTestGui.py (in case of the Python version) or VibrationTestGui.exe
Using the VibrationTest tool
Checking the reliability/accuracy of the results
Before you start, it is good to check the reliability of the test and setup.
You should alway start with a sweep and look at different sensors. If the vibrations is rather constant over motor-speed, the combination might be well balanced or you might not be measuring what you are hoping to measure. In this case, sticking some tape to the prop should should unbalance it and you should see a difference.
You can have a look at the recorded signals, the filtered signals and perhaps the spectrum. If this seems ok, you can repeat the sweep multiple times, using one of the sensors. Each time you should get similar results. Results will never be 100% the same.
Another test you should do, is let the tool measure multiple times at the same speed; for example "10*100,10*200". The measurement at the same speed should report the about the same amount of vibrations.
The figure below shows the result of such test with a "Roxxy 2824-34 / EPP1045 / 3s / Standard ESC" combination. All but the green line are from the Nick sensor. The black line are vibrations measured at speeds 130 and 185. The other lines are sweeps. This does not look too bad.
attachment:acuracy1.jpg
BR When the results are disappointing, one should experiment with the way the MK is attached. One could fix the MK more firmly to the desk or on the contrary allow more movement. One should also and make sure nothing else but the MK can vibrate.
It is also possible that the filter parameters might not be optimal for your setup. In the figure below I have almost disabled the filter and switched to "pp" measurement:
attachment:acuracy2.jpg
BR This is another example of such a test (Turnigy 2836-750 / APC 12x3.8 / 4s / TowerPro ESC):
attachment:acuracy3.jpg
Examples
Balancing example: Roxxy 2824-34 / EPP1045 / 3s / Standard ESC
Effect of prop position, Roxxy 2824-34 / EPP1045 3s / Standard ESC
The importance of the position of the propeller relative to the motor was first reported by RCGroups member "Old Man Mike", see [http://www.rcgroups.com/forums/showpost.php?p=12832508&postcount=228 this post]. My tool also shows this effect. However, I observed that sometimes rotating the prop did not produce significant variations...
I discovered that when I first balance the prop as good as I can using the VibrationTest, rotating the prop produced very little difference.
I come to the conclusion that I need to deliberately unbalance the prop a bit in order to find the "sweet spot". I also observed that when I unbalance the prop by sticking some tape on one side of the prop the vibrations peak while they go trough a minimum when I stick some tape to the other side. I think this supports the theory that the slightly unbalanced prop can compensate for unbalances in the motor. BRBR attachment:StudyRotation.jpg BRBR On the X-asis the rotation of the prop in steps of 60 degrees. The red line is with a prop that I balanced before (needs some tape opposite to the prop size-markers). The green line shows vibrations when I attach an additional strip of tape (so unbalancing it). The blue line shows what happens when I attach tape to the other side (where the markers are).
Balancing example: Turnigy 2836-750 / APC 12x3.8 / 4s / TowerPro ESC
BR attachment:Mk2BalancingExample1.jpg BR The red line is the initial balancing. The prop seemed best balanced with no additional tape.BR The green line are the measurement while rotating the prop (steps of 45 degrees)BR The blue line is the re-balancing, due to the repositioning of the prop the results are better. The first 3 measurements showed that no tape produced the best results. In the last 3 measurements of the blue line, I experimented with smaller strips and this produced the best result.
Changelog
Version |
Date |
Changes |
0.9 RC3 |
17/10/2009 |
- Fixed limitation of 4 motors (not tested)BR- More parameter checking and clear error reportingBR- Support to connect to NCBR- Fixed exception at start of measurement |
Links
VibrationTest related
[http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=/VibrationTest/#_VibrationTest_ VibrationTest Project in Subversion]
[http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions]
Mail FredericG: MailTo(frederic AT rc-flight DOT be)
Related Threads
[http://forum.mikrokopter.de/topic-7794-1.html Thread: Vibrationsdämpfung der Antriebsmotoren]
[http://forum.mikrokopter.de/topic-post106888.html Thread: Tilt servo play => Vibrations]
[http://www.mk-fr.info/forum/index.php/topic,812.msg12038.html Thread: Equilibrage des Hélices RC (French)]
[http://www.vimeo.com/4257366 Video: Is the Optical Image Stabilization of the FX35 causing problems?]
[http://www.rcgroups.com/forums/showthread.php?t=807347 Thread: Multikopter (mikrokopter, UAVP, x-ufo-3rd, etc) AP pictures]
Related Projects
[http://www.rcgroups.com/forums/showthread.php?t=1006721 Old Man Mike "Test Fixture Evaluates Motors/Props/ESCs for Quadcopter Performance"]
Used Libraries and Tools
[http://www.python.org/ Python]
[http://www.wxpython.org/ wxPython]
[http://wxglade.sourceforge.net/ wxGlade]
[http://www.py2exe.org/ py2exe]
Technical references
[http://en.wikipedia.org/wiki/Sampling_(signal_processing) Sampling]
[http://en.wikipedia.org/wiki/Fourier_analysis Fourier Analysis]