Analysis and plotting for motor/prop/ESC characterization, thrust vs RPM and torque vs thrust

Overview

esc_test

This is a Python package used to plot and analyze data collected for the purpose of characterizing a particular propeller, motor, and ESC configuration (e.g. for quadrotors).

main.py computes two models:

  • a quadratic model describing thrust as a function of motor RPM
  • a linear model describing torque as a function of thrust

The data sources currently supported are:

Additional sources can be used by adding an appropriate class to formats.py.

Sample data from 6 tests is included, all with the three-bladed 7-inch DALPROP T7056.

  • ESC32v3 with T-Motor F40 Pro III 1600 kv (esc32v3-f40)
  • Kotleta 20 with F60 Pro II 1750 kv (duty cycle commands, kotleta-f60-duty)
  • Kotleta 20 with F60 Pro II 1750 kv (closed-loop RPM commands, kotleta-f60-rpm)
  • ESC32v3 with F60 Pro II 1750 kv (esc32v3-f60)
  • ESC32v2 with F60 Pro II 1750 kv (esc32v2-f60)
  • Aikon BLHeli32 4-in-1 with F80 Pro 1900 kv (aikon-f80)

You can add your own data by editing tests_sample.py or creating Test objects and adding them to tests.py.

The relationship between RPM and thrust should really only be a function of the propeller and it should be independent of the ESC and motor. So for all six tests above, the RPM to thrust curves should be fairly similar. However, the command and voltage to RPM (and thus to thrust) relationship will depend on the ESC and motor as well.

Written with the help of Xuning Yang.

Usage

Dependencies are numpy, scipy, and matplotlib.

Run python main.py where TEST is a test name found in tests_sample.py.

Run python main.py --help to see additional options. In particular, --plot-debug can be used to plot additional intermediate quantities used in the model computation and --plot-extra will plot additional measurements that may be interesting.

plot_rpm_thrust.py is a helper script to compare motor thrust models from different tests.

Sample Output

Plots can be optionally saved to the media folder by passing --save to main.py.

Current from kotleta-f60-rpm Voltage from kotleta-f60-rpm Thrust model from kotleta-f60-rpm Torque model from kotleta-f60-rpm

Owner
Alex Spitzer
Alex Spitzer
Colormaps for astronomers

cmastro: colormaps for astronomers 🔭 This package contains custom colormaps that have been used in various astronomical applications, similar to cmoc

Adrian Price-Whelan 12 Oct 11, 2022
Boltzmann visualization - Visualize the Boltzmann distribution for simple quantum models of molecular motion

Boltzmann visualization - Visualize the Boltzmann distribution for simple quantum models of molecular motion

1 Jan 22, 2022
A Bokeh project developed for learning and teaching Bokeh interactive plotting!

Bokeh-Python-Visualization A Bokeh project developed for learning and teaching Bokeh interactive plotting! See my medium blog posts about making bokeh

Will Koehrsen 350 Dec 05, 2022
Data aggregated from the reports found at the MCPS COVID Dashboard into a set of visualizations.

Montgomery County Public Schools COVID-19 Visualizer Contents About this project Data Support this project About this project Data All data we use can

James 3 Jan 19, 2022
Visualization Library

CamViz Overview // Installation // Demos // License Overview CamViz is a visualization library developed by the TRI-ML team with the goal of providing

Toyota Research Institute - Machine Learning 67 Nov 24, 2022
Generate a 3D Skyline in STL format and a OpenSCAD file from Gitlab contributions

Your Gitlab's contributions in a 3D Skyline gitlab-skyline is a Python command to generate a skyline figure from Gitlab contributions as Github did at

Félix Gómez 70 Dec 22, 2022
FURY - A software library for scientific visualization in Python

Free Unified Rendering in Python A software library for scientific visualization in Python. General Information • Key Features • Installation • How to

169 Dec 21, 2022
Small U-Net for vehicle detection

Small U-Net for vehicle detection Vivek Yadav, PhD Overview In this repository , we will go over using U-net for detecting vehicles in a video stream

Vivek Yadav 91 Nov 03, 2022
Python script for writing text on github contribution chart.

Github Contribution Drawer Python script for writing text on github contribution chart. Requirements Python 3.X Getting Started Create repository Put

Steven 0 May 27, 2022
Simple addon for snapping active object to mesh ground

Snap to Ground Simple addon for snapping active object to mesh ground How to install: install the Python file as an addon use shortcut "D" in 3D view

Iyad Ahmed 12 Nov 07, 2022
Generate visualizations of GitHub user and repository statistics using GitHub Actions.

GitHub Stats Visualization Generate visualizations of GitHub user and repository statistics using GitHub Actions. This project is currently a work-in-

Aditya Thakekar 1 Jan 11, 2022
Functions for easily making publication-quality figures with matplotlib.

Data-viz utils 📈 Functions for data visualization in matplotlib 📚 API Can be installed using pip install dvu and then imported with import dvu. You

Chandan Singh 16 Sep 15, 2022
A dashboard built using Plotly-Dash for interactive visualization of Dex-connected individuals across the country.

Dashboard For The DexConnect Platform of Dexterity Global Working prototype submission for internship at Dexterity Global Group. Dashboard for real ti

Yashasvi Misra 2 Jun 15, 2021
Flipper Zero documentation repo

Flipper Zero Docs Participation To fix a bug or add something new to this repository, you need to open a pull-request. Also, on every page of the site

Flipper Zero (All Repositories will be public soon) 114 Dec 30, 2022
Analysis and plotting for motor/prop/ESC characterization, thrust vs RPM and torque vs thrust

esc_test This is a Python package used to plot and analyze data collected for the purpose of characterizing a particular propeller, motor, and ESC con

Alex Spitzer 1 Dec 28, 2021
Make sankey, alluvial and sankey bump plots in ggplot

The goal of ggsankey is to make beautiful sankey, alluvial and sankey bump plots in ggplot2

David Sjoberg 156 Jan 03, 2023
Runtime analysis of code with plotting

Runtime analysis of code with plotting A quick comparison among Python, Cython, and the C languages A Programming Assignment regarding the Programming

Cena Ashoori 2 Dec 24, 2021
BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

BGraph BGraph is a tool designed to generate dependencies graphs from Android.bp soong files. Overview BGraph (for Build-Graphs) is a project aimed at

Quarkslab 10 Dec 19, 2022
Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track)

Kcse-Data-Analysis Data science project for exploratory analysis on the kcse grades dataset (Kamilimu Data Science Track) Findings The performance of

MUGO BRIAN 1 Feb 23, 2022
patchwork for matplotlib

patchworklib patchwork for matplotlib test code Preparation of example plots import seaborn as sns import numpy as np import pandas as pd #Bri

Mori Hideto 185 Jan 06, 2023