Drone test script

Automated Brushless Motor and Propeller Testing - How to Test Your Drone's Propulsion System

By Dominic Robillard and Lauren Nagel, last updated: 02-09-2021

Testing your propulsion system is a key part of the drone optimization process. It can help you improve your efficiency, certify your design, and set up a maintenance schedule.

These are a few of the automated propulsion tests you can run with your system, many of which can be performed using our software:

  1. Step Test
  2. Sweep/ Ramp Test
  3. Endurance Test
  4. Closed Loop Control / Constant Thrust Test
  5. 90% Settling Time Test
  6. Flight Replay Test
  7. Sinusoidal Test and Chirp Signal Test

    This article references two of our free softwares that pair with our motor and propeller test stands:

    • RCbenchmark Software - sample rate up to 50 Hz, compatible with the RCbenchmark Series 1520, Series 1580/1585 and Series 1780 test stands
    • Flight Stand Software - sample rate up to 1,000 Hz, compatible with the Flight Stand 15 test stand - coming soon! Contact sales for more information.

    Drone motor test in wind tunnel

    Figure 1: Propulsion systems tested in a wind tunnel

    1. Step Test for Brushless Motor and Propellers

    What is a step test? 

    A step test takes your propulsion system through a sequence of signal steps in a regular or irregular pattern. For example, you could set your throttle to start at 25% then increase at 5% intervals through 50% (25%, 30%, 35%, 40%, 45%, 50%). 

    At each of these ‘steps’ there is a defined settling time when the system holds the throttle steady to let the system stabilize before the data sample is captured.

    Why perform a step test?

    There are a number of reasons to perform a step test as it is one of the simpler tests available.

    First off, a step test is easily repeatable and can be run in exactly the same way as many times as needed. This makes it easy to compare different configurations of your propulsion system as the data collection points are the same each time.

    It is also useful for looking at a system’s performance at various operating points. How does efficiency compare at 55% throttle vs. 60% throttle? What is the power consumption at 80% vs. 85% throttle? A step test can help you answer these questions with a simple protocol.

    How to run a step test

    Designing a step test requires you to determine what operating points you want to learn about. Are you wanting to look at the whole range of signal inputs or are you focusing on a specific phase of flight?

    Once you have determined this, you can input these points into a test script, like the one provided in the RCbenchmark software (figure 2). Set your minimum value, maximum value, the number of steps, and the settling time between steps.

    Your steps may be manually input or imported from a spreadsheet.

    Automated step test for drone motor

    Figure 2: Automated test script for a step test

    2. Sweep / Ramp Test for Brushless Motor and Propellers 

    What is a sweep / ramp test?

    During a sweep test (AKA a ramp test) data is continuously recorded while your propulsion system undergoes a smooth ramp from one throttle value to another. Unlike a step test, there are no stops along the way, just continuous data collection during the transition between points. 

    For example, you could set your starting value at 40% throttle and your max value at 80% throttle, and have data collected continuously during the increase.

    Why perform a sweep / ramp test?

    A sweep / ramp test allows you to test a full range of ESC operating points between two values. It is the equivalent of a step test with an infinite number of steps, so one advantage is that you don’t have to enter the steps manually. Among other end goals, this can be useful for throttle curve analysis and observing signal aliasing effects.

    One consideration is that the number of data points for the test is not fixed. It is still very possible to compare experiments, but data from different tests will not line up at precise values as they would for other tests such as a step test. Additionally, the generated data files may become very large, making analysis more challenging.

    How to run a sweep / ramp test

    In the RCbenchmark software there is a pre-written sweep test script that allows users to input their own custom values. The user enters a minimum starting value, a maximum peak value, plus the desired time to transition between the two, which controls the speed of the sweep.

    One thing to keep in mind is that the sweep must be performed slowly enough to minimize the torque of acceleration of the propeller so that this does not affect the readings. If the ramp is sufficiently slow, this effect will be negligible. 

    3. Endurance Test for Brushless Motor and Propellers

    What is an endurance test?

    The endurance testing category includes any tests that have a long duration and the end goal of testing the limits of the propulsion system or the components within it.

    A few examples:

    • Thermal endurance test - testing the performance of a motor over several hours in a warm environment.
    • Bearing endurance test - determining how many hours of use a bearing can endure before experiencing wear.
    • Icing endurance test - testing propeller performance over time in a cold and humid environment.

    Why perform an endurance test?

    Endurance testing is useful at many stages of the design process. It can help you select the best components and create accurate technical documents.

    Endurance testing is also a big factor in safety and reliability. It can help with drone certification by demonstrating the useful life of components and the safe operation limits of the aircraft. Endurance testing is also useful for setting up a drone maintenance schedule, as it can tell you when components will need a tune-up.

    How to run an endurance test

    Any throttle pattern can be used for endurance testing, such as step, sweep, sinusoidal, flight replay, etc. The parameters for the test are very much based on your goals as a designer.

    A few examples:

    • Thermal endurance test - run your propulsion system for a long period at constant operating throttle in a warm environment. Observe changes in motor performance over time.
    • Bearing endurance test - run your propulsion system through a repeating sequence of operating steps for a long period in STP conditions. Observe how many hours of operation the bearing endures before showing signs of wear.
    • Icing endurance test - run your propulsion system through a smooth repeating signal in a cold and humid environment. Observe changes in propeller performance as ice builds up.

    The RCbenchmark software can help you design your endurance tests using the pre-written script, “Custom steps sequence” (figure 3). The user creates a test sequence by defining the number of steps, the throttle value at each step, and the duration of each step. The sequence can be repeated as many times as required. A data sample is recorded at the middle of every step in the test sequence.

    Endurance test script for drone

    Figure 3: Editable script for endurance testing

    4. Closed Loop Control / Constant Thrust Test

    What is a closed loop control/ constant thrust test?

    During a closed loop control test AKA a constant thrust test, the system constantly reads sensor data and adjusts the throttle to reach a constant thrust/power/RPM, as defined by the user. An example of constant loop control is a PID controller, which senses an error between the target and measured value, then applies a correction based on proportional control with integral and derivative adjustments.

    Why perform a closed loop control test?

    A closed loop control test is configured so that your desired variable stays constant, even as other areas of the system change. For example, as a drone battery depletes and the voltage drops, the throttle will be adjusted to maintain the thrust/power/RPM that was programmed. 

    This can be useful in a number of scenarios, such as when you are designing your flights, testing your battery or testing system endurance.

    How to run a closed loop control test

    Running a closed loop control test with the RCbenchmark software requires a custom script, which you can create within the software using standard Javascript. Here is an example script to get you started:

    https://www.tytorobotics.com/blogs/software-troubleshooting/automatic-control-pid

    The script will have to be modified to achieve your specific goals. The main challenge is ensuring the system does not compensate too quickly or too much, which will cause the system to oscillate around your target value, so some tuning is needed.

    5. 90% Settling Time Test

    What is a 90% Settling Time Test?

    A 90% settling time test measures how long it takes for a propulsion system to reach 90% of its final RPM value after a step input. This is a way of measuring the reaction time of your drone in a practical sense.

    It is a dynamic test that should be performed with a high sampling rate to ensure an accurate reading. 

    Why Perform a 90% Settling Time Test?

    A 90% settling time test allows designers and control engineers to quantify the reaction time of a propulsion system as a whole - the ESC, motor and propeller together. This is useful for studying drone performance and resilience, for example how quickly it recovers from a disturbance such as a wind burst.

    How to Run a 90% Settling Time Test?

    This test is easy to run as it is pre-programmed in the RCbenchmark software. The script delivers a step input signal to your propulsion system, causing it to go from 0 to 100% throttle. It simultaneously records the reaction time required to reach 90% of the final RPM. 

    Acceleration is also recorded to provide an estimate of the acceleration slope immediately following the step input. This data is included as an extra column in the output .CSV file. 90% settling time test script for drones

    Figure 4: 90% Settling time test script

    6. Flight Replay Test

    What is a Flight Replay Test?

    A flight replay test is a way of recreating a past flight in the lab with your propulsion system. You can perform this test using the throttle data stored in your onboard flight computer from a previous flight.

    Why Perform a Flight Replay Test?

     This type of test is useful because it allows you to see the performance of your propulsion system at different stages of your flight. You can determine which stages draw the most power and which are the most and least efficient.

    This testing method is one of the most accurate ways to reproduce flight operations, especially when combined with wind tunnel testing. It is especially useful for estimating battery life. Having access to this information can lead to changes in your drone design, your flight procedure or both.

    How to Run a Flight Replay Test?

    The first step is to export the throttle information from your previous flight to your computer. You can then import the file into the Flight Stand software (coming Fall 2021) as a .CSV file to create a custom test script. If you use the RCbenchmark software, a custom script will need to be written.

    Once you have connected your propulsion system to the test stand, the software will replay the throttle points through your system. You will be able to see how your thrust, torque, RPM, power and more change in real time.

    7. Sinusoidal Test and Chirp Signal Test

    What are the Sinusoidal and Chirp Signal Tests?

    During a sinusoidal test, the propulsion system is controlled with a smooth sine wave signal, forcing the motor to constantly change speed. The system goes through a whole spectrum of throttle points while continuously recording data.

    During a chirp signal test, a smooth sine wave signal is sent to the propulsion system, but now the frequency progressively changes over time (figure 5) . The signal frequency may increase or decrease, but the amplitude of the signal remains constant.

    Chirp signal structure

    Figure 5: The structure of a chirp signal (Source: Wikiwand)

    Why Perform a Sinusoidal Test or Chirp Signal Test?

    A sinusoidal test allows you to see the performance of your system at a whole spectrum of operating points. The continuous recording is similar to a sweep test and the pattern is useful for endurance testing.

    A chirp test allows the user to test the complete range of speed changes of an ESC. This can tell you how quickly and to what extent the ESC responds to throttle changes. It allows you to observe the system stability as it undergoes a higher frequency of commands, and it is often one of the tests performed by engineers to validate that a control system is stable at all frequencies.

    How to Run a Sinusoidal Test or Chirp Signal Test?

    For sinusoidal tests, we have a pre-written script for generating a sinusoidal function in the ESC output: https://cdn-docs.rcbenchmark.com/scripts/sinewave.js. This can be used with the RCbenchmark software.

    Performing a chirp signal test requires you to write a custom script, and the sinusoidal script above serves as a good starting point.

    Note that the update rate is limited by the ESC protocol and the USB communication rate. For this reason, we don't recommend setting a sine wave frequency above 10 Hz with the RCbenchmark software.

    Summary

    The automated propulsion tests discussed in this article play an important role in designing efficient and effective drones. The data obtained in these tests improves your knowledge of your system and identifies practical areas for improvement.

    If you would like to perform these tests in your own lab, our Series 1585 test stand is a great start for small drones and our Series 1780 test stand is optimal for medium and large drones. As always, our powerful RCbenchmark software is provided free of charge.

    We are always looking for ways to improve and meet the needs of our customers. Are there any tests we missed? Let us know in the comments.

    Leave a Comment

    Comments must be approved before appearing.

    * Required fields