From bf556e573b3a5a4c5c3c49667b87d058dc6f3112 Mon Sep 17 00:00:00 2001 From: Danilo Ciliberti <52099779+dciliberti@users.noreply.github.com> Date: Tue, 23 Feb 2021 13:33:58 +0100 Subject: [PATCH 1/4] Update README.md --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9f4dda5..df41463 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,67 @@ -# lehner-motoren-map -Calculate the Lehner 2280-40 electric motor map from performance data issued by the manufacturer. Plot propeller operating points on the map. +# Lehner motor map +Calculate the Lehner© 2280-40 electric motor map from performance data issued by the manufacturer. Plot propeller operating points on the map. + +## Code structure +The code is entirely written in MATLAB. The structure is as follows: + +| Name | Type | +| :--- | :--- | +| *data* | folder | +| *example* | folder | +| README.md | this readme file +| LICENSE | license file | +| annot.m | MATLAB function | +| annot3.m | MATLAB function | +| plotData.m | MATLAB function | +| voltagePlot.m | MATLAB function | +| voltagePlot3.m | MATLAB function | +| performanceCharts.m | MATLAB main script | + + +The software has one main script `performanceCharts.m` and several functions to run. Motor data is imported from .csv files located in the `data` folder. Each file contains data manually imported from the webpage [http://www.lehner-motoren.com/calc/diagramm_en.php](http://www.lehner-motoren.com/calc/diagramm_en.php). Therefore, each .csv file is for a fixed input voltage. Columns contain the follwing data: + +| Current (A) | Input power (W) | RPM (/min) | Torque (Ncm) | Output power (W) | Efficiency (%) | +| --- | --- | --- | --- | --- | --- | +| ... | ... | ... | ... | ... | ... | +| 10.8 | 648.0 | 10698 | 53.4 | 598.7 | 92.4 | +| 11.0 | 660.0 | 10690 | 54.5 | 609.8 | 92.4 | +| 11.2 | 672.0 | 10683 | 55.5 | 620.9 | 92.4 | +| 11.4 | 684.0 | 10675 | 56.5 | 632.0 | 92.4 | +| ... | ... | ... | ... | ... | ... | + +Therefore, any electric motor data can be imported and plotted, although this software is focused on the 2280-40 for my personal interest. + +At the beginning of the main script `performanceCharts.m` the following variables are assigned: +- `propDiam`: the propeller diameter in meters, assigned by the user +- `windSpeed`: the advance speed of the propeller in m/s, assigned by the user +- `Jconv`: a conversion factor from RPM to advance ratio J, pre-defined + +Then the user should write the propeller operating point of interest. If void, the program should only show the motor performance maps in terms of torque, shaft power, efficiency, and absorbed current as function of RPM and input voltage. The utility of this software is to plot the propeller operating points acheivable with the motor. The possibility to account for gearbox is included. + +## Usage +After defining the propeller diameter and the wind speed in the first lines of the main script `performanceCharts.m`, the user should write the propeller operating condition as a matrix. Each column correspond to a given quantity, i.e. Thrust, Shaft Power, RPM. Each row is a different combination of these quantities. For instance: + +| Thrust (N) | Shaft Power (W) | (RPM) | +| --- | --- | --- | +| 37.32 | 1317.6 | 10000 | +| 20.72 | 645.7 | 8000 | +| 11.94 | 345.3 | 6667 | +| 6.82 | 191.2 | 5714 | +| 3.61 | 104.4 | 5000 | + +Many of these matrices can be assigned, each one corresponding to a single propeller, so that different propellers can be observed on the motor map. Each of these matrices then must have a unique identifier. Actually, each matrix is an element of the cell array `condition`, so that there will be `condition{1}`, `condition{2}`, and `condition{3}` if three propellers have to be analyzed. There is no limit, but do not compare too much data to avoid a cluttered chart. + +To easily distinguish each propeller, labels are assigned to each matrix in another cell array, named `conditionLabels`. For instance, there will be `conditionLabels = {'Prop 1', 'Prop 2', 'Prop 3'}` if three propellers have to be analyzed. + +Finally, to account for gear ratio and gearbox losses, two more variables must be edited: +- `gratio`: gear ratio of each propeller, 1D array +- `gloss`: gearbox losses for each propeller, 1D array + +For instance, in case of three propellers we must have three numbers for each array: +`gratio = [1, 4, 3]` +`gloss = [0.0, 0.10, 0.05]` + +To eliminate the gearbox just assign 1 to `gratio` and 0 to `gloss`, but always matching the number of elements with the number of conditions. + +## Output +Actually the outputs are six charts: three 3D plots and three contours. Please, keep in mind that the J axis in the contour plot is referred to the values assigned to `propdiam` and `windSpeed`, therefore if your propeller data do not match these reference values, the conversion between RPM and J will be wrong and only the RPM axis should be looked. From e58856a2d13d36dd1269b3fdb594ea8dbce8f23a Mon Sep 17 00:00:00 2001 From: Danilo Ciliberti <52099779+dciliberti@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:04:28 +0100 Subject: [PATCH 2/4] Update README.md --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index df41463..c2c261c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Lehner motor map -Calculate the Lehner© 2280-40 electric motor map from performance data issued by the manufacturer. Plot propeller operating points on the map. +Calculate the Lehner© 2280-40 electric motor map from performance data issued by the manufacturer. Plot motor performance maps in terms of torque, shaft power, efficiency, and absorbed current as function of RPM and input voltage. Plot propeller operating points on the map. Include gear ratio and gearbox losses. +If you are is satisfied with the default motor data, then skip to the [Usage](#usage) section + ## Code structure The code is entirely written in MATLAB. The structure is as follows: @@ -18,7 +20,7 @@ The code is entirely written in MATLAB. The structure is as follows: | performanceCharts.m | MATLAB main script | -The software has one main script `performanceCharts.m` and several functions to run. Motor data is imported from .csv files located in the `data` folder. Each file contains data manually imported from the webpage [http://www.lehner-motoren.com/calc/diagramm_en.php](http://www.lehner-motoren.com/calc/diagramm_en.php). Therefore, each .csv file is for a fixed input voltage. Columns contain the follwing data: +The software has one main script `performanceCharts.m` and several functions to run. Motor data is imported from .csv files located in the `data` folder. Each file contains data manually imported from the webpage . Therefore, each .csv file is for a fixed input voltage. Columns contain the follwing data: | Current (A) | Input power (W) | RPM (/min) | Torque (Ncm) | Output power (W) | Efficiency (%) | | --- | --- | --- | --- | --- | --- | @@ -29,16 +31,18 @@ The software has one main script `performanceCharts.m` and several functions to | 11.4 | 684.0 | 10675 | 56.5 | 632.0 | 92.4 | | ... | ... | ... | ... | ... | ... | -Therefore, any electric motor data can be imported and plotted, although this software is focused on the 2280-40 for my personal interest. +Therefore, any electric motor data can be imported and plotted, although this software is focused on the 2280-40 for my research activities. +## Usage + +### Input At the beginning of the main script `performanceCharts.m` the following variables are assigned: - `propDiam`: the propeller diameter in meters, assigned by the user - `windSpeed`: the advance speed of the propeller in m/s, assigned by the user - `Jconv`: a conversion factor from RPM to advance ratio J, pre-defined -Then the user should write the propeller operating point of interest. If void, the program should only show the motor performance maps in terms of torque, shaft power, efficiency, and absorbed current as function of RPM and input voltage. The utility of this software is to plot the propeller operating points acheivable with the motor. The possibility to account for gearbox is included. +Then the user should write the propeller operating point of interest. If none, the program should only show the motor performance maps without propeller data points. The utility of this software is to plot the propeller operating points acheivable with the motor. A gearbox may be included. -## Usage After defining the propeller diameter and the wind speed in the first lines of the main script `performanceCharts.m`, the user should write the propeller operating condition as a matrix. Each column correspond to a given quantity, i.e. Thrust, Shaft Power, RPM. Each row is a different combination of these quantities. For instance: | Thrust (N) | Shaft Power (W) | (RPM) | @@ -63,5 +67,5 @@ For instance, in case of three propellers we must have three numbers for each ar To eliminate the gearbox just assign 1 to `gratio` and 0 to `gloss`, but always matching the number of elements with the number of conditions. -## Output +### Output Actually the outputs are six charts: three 3D plots and three contours. Please, keep in mind that the J axis in the contour plot is referred to the values assigned to `propdiam` and `windSpeed`, therefore if your propeller data do not match these reference values, the conversion between RPM and J will be wrong and only the RPM axis should be looked. From 34d0b8d96cf4d59e4cab932ce18193320ac4e2e3 Mon Sep 17 00:00:00 2001 From: Danilo Ciliberti <52099779+dciliberti@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:19:22 +0100 Subject: [PATCH 3/4] Update README.md --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c2c261c..51dc96a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Calculate the Lehner© 2280-40 electric motor map from performance data issu If you are is satisfied with the default motor data, then skip to the [Usage](#usage) section ## Code structure -The code is entirely written in MATLAB. The structure is as follows: +The code is entirely written in MATLAB®. The structure is as follows: | Name | Type | | :--- | :--- | @@ -34,6 +34,7 @@ The software has one main script `performanceCharts.m` and several functions to Therefore, any electric motor data can be imported and plotted, although this software is focused on the 2280-40 for my research activities. ## Usage +The program will interpolate data to plot the motor performance maps and the achievable propeller operating points. For the first time, just hit RUN on the MATLAB® toolbar to get a demo. ### Input At the beginning of the main script `performanceCharts.m` the following variables are assigned: @@ -41,9 +42,9 @@ At the beginning of the main script `performanceCharts.m` the following variable - `windSpeed`: the advance speed of the propeller in m/s, assigned by the user - `Jconv`: a conversion factor from RPM to advance ratio J, pre-defined -Then the user should write the propeller operating point of interest. If none, the program should only show the motor performance maps without propeller data points. The utility of this software is to plot the propeller operating points acheivable with the motor. A gearbox may be included. +Then the user should write the propeller operating points of interest. If none, the program should only show the motor performance map charts without propeller data points. -After defining the propeller diameter and the wind speed in the first lines of the main script `performanceCharts.m`, the user should write the propeller operating condition as a matrix. Each column correspond to a given quantity, i.e. Thrust, Shaft Power, RPM. Each row is a different combination of these quantities. For instance: +Each propeller is defined as a matrix. Each column correspond to a given quantity, i.e. Thrust, Shaft Power, RPM. Each row is a different combination of these quantities defining a data point. For instance: | Thrust (N) | Shaft Power (W) | (RPM) | | --- | --- | --- | @@ -65,7 +66,8 @@ For instance, in case of three propellers we must have three numbers for each ar `gratio = [1, 4, 3]` `gloss = [0.0, 0.10, 0.05]` -To eliminate the gearbox just assign 1 to `gratio` and 0 to `gloss`, but always matching the number of elements with the number of conditions. +To eliminate the gearbox just assign 1 to `gratio` and 0 to `gloss`, but always match the number of elements with the number of conditions. ### Output Actually the outputs are six charts: three 3D plots and three contours. Please, keep in mind that the J axis in the contour plot is referred to the values assigned to `propdiam` and `windSpeed`, therefore if your propeller data do not match these reference values, the conversion between RPM and J will be wrong and only the RPM axis should be looked. + From c78325584dc12a6c1c1dec8d5637622298ea958a Mon Sep 17 00:00:00 2001 From: Danilo Ciliberti <52099779+dciliberti@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:25:45 +0100 Subject: [PATCH 4/4] Update README.md --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 51dc96a..468e1dc 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Lehner motor map -Calculate the Lehner© 2280-40 electric motor map from performance data issued by the manufacturer. Plot motor performance maps in terms of torque, shaft power, efficiency, and absorbed current as function of RPM and input voltage. Plot propeller operating points on the map. Include gear ratio and gearbox losses. +Calculate the Lehner© 2280-40 electric motor map from performance data released by the manufacturer. Plot motor performance maps in terms of torque, shaft power, efficiency, and absorbed current as function of RPM and input voltage. Plot propeller operating points on the map. Include gear ratio and gearbox losses. -If you are is satisfied with the default motor data, then skip to the [Usage](#usage) section +If you are is satisfied with the default motor data, then skip to the [Usage](#usage) section. ## Code structure The code is entirely written in MATLAB®. The structure is as follows: @@ -69,5 +69,12 @@ For instance, in case of three propellers we must have three numbers for each ar To eliminate the gearbox just assign 1 to `gratio` and 0 to `gloss`, but always match the number of elements with the number of conditions. ### Output -Actually the outputs are six charts: three 3D plots and three contours. Please, keep in mind that the J axis in the contour plot is referred to the values assigned to `propdiam` and `windSpeed`, therefore if your propeller data do not match these reference values, the conversion between RPM and J will be wrong and only the RPM axis should be looked. +Actually the outputs are six charts: three 3D plots and three contours. Please, keep in mind that the J axis in the contour plot is referred to the values assigned to `propdiam` and `windSpeed`, therefore if your propeller data do not match these reference values, the conversion between RPM and J will be wrong and only the RPM values should be looked. +![Motor Map Surface Plot](https://github.com/dciliberti/lehner-motoren-map/blob/master/example/Motor%20Map%20Surface%20Plot.png?raw=true) + +![Shaft Power Surface Plot](https://github.com/dciliberti/lehner-motoren-map/blob/master/example/Shaft%20Power%20Surface%20Plot.png?raw=true) + +![Motor Map Contour Plot](https://github.com/dciliberti/lehner-motoren-map/blob/master/example/Motor%20Map%20Contour%20Plot.png?raw=true) + +![Shaft Power Contour Plot](https://github.com/dciliberti/lehner-motoren-map/blob/master/example/Shaft%20Power%20Contour%20Plot.png?raw=true)