From e73c9e2953cae41c7e944af9d0d8302b29424a0c Mon Sep 17 00:00:00 2001
From: Your Name
Date: Tue, 18 Oct 2022 23:05:57 -0700
Subject: [PATCH 1/2] [DMS] Implemented Output Calculations + Minor Fixes -
Added in missing Supply Voltage input - Corrected input & output unit labels
- Implemented equations from DMS website for outputs - Attempted to
reconfigure "Math in Action" for new equations
---
drive-motor-sizer/index.html | 126 +++++++++++++++++++++++++----------
drive-motor-sizer/main.js | 75 ++++++++++++++++-----
2 files changed, 149 insertions(+), 52 deletions(-)
diff --git a/drive-motor-sizer/index.html b/drive-motor-sizer/index.html
index bed6e7b..fa50268 100644
--- a/drive-motor-sizer/index.html
+++ b/drive-motor-sizer/index.html
@@ -27,9 +27,9 @@ Input
@@ -37,29 +37,29 @@ Input
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
@@ -67,34 +67,92 @@ Input
-
+
Output
- Math in Action
-
+
+
-
+
+
-
+
+
-
+
-
- Result
-
+ Math in Action
+
+ Angular Velocity:
+ w =
/
+
+
+
+ Torque:
+ T = (((
+
+ 9.81 sin(
) ) *
+ (
*
)) /
+
) *
+ (100/
)
+
+
+
+ Total Power:
+ P =
*
+
+
+
+ Maximum Current:
+ I = (
*
) /
+
+
+
+ Battery Pack:
+ C =
* (
/30)
+
+
+
+ Results:
+
+ Angular Velocity:
+
+
+
+
+
+ Torque:
+
+
+
+
+
+ Total Power:
+
+
+
+
+
+ Maximum current [A]:
+
+
+
+
+
+ Battery Pack [Ah]:
+
+
+
diff --git a/drive-motor-sizer/main.js b/drive-motor-sizer/main.js
index 9c85ec6..be08d88 100644
--- a/drive-motor-sizer/main.js
+++ b/drive-motor-sizer/main.js
@@ -2,20 +2,19 @@ var var_total_mass = 0;
var var_num_wheels = 0;
var var_wheel_radius = 0;
var var_linear_velocity = 0;
-var var_acceleration = 0;
var var_maximum_incline = 0;
+var var_supply_voltage = 0;
+var var_acceleration = 0;
var var_operating_time = 0;
var var_efficiency = 0;
-// replace with actual outputs later
-var sum = 0;
-
// initializing variables with document elements
const input_total_mass = document.getElementById("total_mass");
const input_num_wheels = document.getElementById("num_wheels");
const input_wheel_radius = document.getElementById("wheel_rad");
const input_linear_velocity = document.getElementById("lin_velocity");
const input_acceleration = document.getElementById("acceleration");
+const input_supply_voltage = document.getElementById("supply_voltage");
const input_maximum_incline = document.getElementById("max_incline");
const input_operating_time = document.getElementById("op_time");
const input_efficiency = document.getElementById("efficiency");
@@ -25,26 +24,54 @@ const display_total_mass = document.getElementById("display_total_mass");
const display_num_wheels = document.getElementById("display_num_wheels");
const display_wheel_radius = document.getElementById("display_wheel_rad");
const display_linear_velocity = document.getElementById("display_lin_velocity");
+const display_supply_voltage = document.getElementById("display_supply_voltage");
const display_acceleration = document.getElementById("display_acceleration");
const display_maximum_incline = document.getElementById("display_max_incline");
const display_operating_time = document.getElementById("display_op_time");
const display_efficiency = document.getElementById("display_efficiency");
+const display_torque = document.getElementById("display_torque");
+const display_angular_velocity = document.getElementById("display_angular_velocity");
+const display_max_current = document.getElementById("display_max_current");
+
+// outputs
+const output_angular_velocity = document.getElementById("angular_velocity");
+const output_torque = document.getElementById("torque");
+const output_total_power = document.getElementById("Total_Power");
+const output_max_current = document.getElementById("Maximum_Current");
+const output_battery_pack = document.getElementById("Battery_Pack");
-const result = document.getElementById("result");
function Calculate(e) {
- sum =
- parseFloat(input_total_mass.value) +
- parseFloat(input_num_wheels.value) +
- parseFloat(input_wheel_radius.value) +
- parseFloat(input_linear_velocity.value) +
- parseFloat(input_acceleration.value) +
- parseFloat(input_maximum_incline.value) +
- parseFloat(input_operating_time.value) +
- parseFloat(input_efficiency.value);
-
- result.textContent = sum;
- return sum;
+ // Angular Velocity calculation
+ calc_angular_velocity=
+ parseFloat(input_linear_velocity.value) / parseFloat(input_wheel_radius.value)
+ output_angular_velocity.textContent = calc_angular_velocity;
+ display_angular_velocity.textContent = calc_angular_velocity;
+
+ // Torque calculation
+ convert_degrees = (Math.PI/180) * parseFloat(input_maximum_incline.value);
+ torque_numerator = (parseFloat ( input_acceleration.value ) + 9.81 * Math.sin( convert_degrees ) ) *
+ ( parseFloat( input_total_mass.value ) * parseFloat( input_wheel_radius.value ) * 100 );
+
+ torque_denominator = parseFloat(input_num_wheels.value) * parseFloat(input_efficiency.value);
+
+ calc_torque = (torque_numerator / torque_denominator);
+ output_torque.textContent = calc_torque;
+ display_torque.textContent = calc_torque;
+
+ // Total Power calculation
+ calc_Power = calc_torque * calc_angular_velocity;
+ output_total_power.textContent = calc_Power;
+
+ // Max current calculation
+ calc_max_current = calc_Power / parseFloat(input_supply_voltage.value)
+ output_max_current.textContent = calc_max_current;
+ display_max_current.textContent = calc_max_current;
+
+ // Battery Pack calculation
+ calc_Battery_pack = (calc_max_current * parseFloat(input_operating_time.value))/30;
+ output_battery_pack.textContent = calc_Battery_pack;
+
}
// display
@@ -84,6 +111,12 @@ function updateInput_maximum_incline(e) {
Calculate();
}
+function updateInput_supply_voltage(e){
+ var_supply_voltage = parseFloat(e.target.value);
+ display_supply_voltage.textContent = e.target.value;
+ Calculate();
+}
+
function updateInput_operating_time(e) {
var_operating_time = parseFloat(e.target.value);
display_op_time.textContent = e.target.value;
@@ -109,6 +142,9 @@ input_wheel_radius.addEventListener("click", updateInput_wheel_radius);
input_linear_velocity.addEventListener("change", updateInput_linear_velocity);
input_linear_velocity.addEventListener("click", updateInput_linear_velocity);
+input_supply_voltage.addEventListener('change',updateInput_supply_voltage);
+input_supply_voltage.addEventListener('click',updateInput_supply_voltage);
+
input_acceleration.addEventListener("change", updateInput_acceleration);
input_acceleration.addEventListener("click", updateInput_acceleration);
@@ -121,7 +157,7 @@ input_operating_time.addEventListener("click", updateInput_operating_time);
input_efficiency.addEventListener("change", updateInput_efficiency);
input_efficiency.addEventListener("click", updateInput_efficiency);
-//URL parameters
+// URL parameters
const queryString = window.location.search;
const urlParams = URLSearchParams(queryString);
@@ -129,6 +165,7 @@ const url_total_mass = urlParams.get("total-mass");
const url_num_wheels = urlParams.get("num-wheels");
const url_wheel_radius = urlParams.get("wheel-radius");
const url_linear_velocity = urlParams.get("linear-velocity");
+const url_supply_voltage = urlParams.get("supply_voltage");
const url_acceleration = urlParams.get("acceleration");
const url_maximum_incline = urlParams.get("maximum-incline");
const url_operating_time = urlParams.get("operating-time");
@@ -139,6 +176,7 @@ window.addEventListener("load", (event) => {
input_num_wheels = url_num_wheels;
input_wheel_radius = url_wheel_radius;
input_linear_velocity = url_linear_velocity;
+ input_supply_voltage = url_supply_voltage;
input_acceleration = url_acceleration;
input_maximum_incline = url_maximum_incline;
input_operating_time = url_operating_time;
@@ -148,6 +186,7 @@ window.addEventListener("load", (event) => {
display_num_wheels.textContent = url_num_wheels;
display_wheel_radius.textContent = url_wheel_radius;
display_linear_velocity.textContent = url_linear_velocity;
+ display_supply_voltage.textContent = url_supply_voltage;
display_acceleration.textContent = url_acceleration;
display_maximum_incline.textContent = url_maximum_incline;
display_operating_time.textContent = url_operating_time;
From 9eb09551ae5d4c836a93021e0405993eec6522ee Mon Sep 17 00:00:00 2001
From: hannah
Date: Sun, 4 Jun 2023 17:26:05 -0700
Subject: [PATCH 2/2] + Implemented Most Output Calculations
+Motor Torque Graph
---
electric-motor-torque-curve/index.html | 88 +++++++--
electric-motor-torque-curve/main.css | 3 +-
electric-motor-torque-curve/main.js | 256 ++++++++++++++++++-------
3 files changed, 259 insertions(+), 88 deletions(-)
diff --git a/electric-motor-torque-curve/index.html b/electric-motor-torque-curve/index.html
index 47631af..618f313 100644
--- a/electric-motor-torque-curve/index.html
+++ b/electric-motor-torque-curve/index.html
@@ -3,9 +3,12 @@
+
+
+
Input
@@ -63,26 +66,85 @@
Input
-
- ----------------------------------------
+
+
+
+
- Output
-
+
+
+
+
- Math in Action
-
+
+
+
+
+
+
+
+
+
-
-
- Result
+
-->
-
-
-
+ Output
+ Math in Action
+
+ Max Torque:
+
+
+
+
+
+ Max Current:
+
+
+
+
+ Max Power:
+
+
+
+
+
+ Motor Torque graph
+
+
+
+
+
+
+ Results:
+
+ Max Torque:
+
+
+
+
+ Max Current:
+
+
+
+
+ Max Power:
+
+
+
+
+ Limited Torque
+
+ RPM @ Limited Torque:
+
+
+
+
+ Power @ Limited Torque:
+
+
+
+
+ Limited Electrical Power [W]:
+
+
+
+
@@ -92,4 +154,4 @@ Result
-