Upload files to "diagnostics"
This commit is contained in:
49
diagnostics/BatteryDiagnostics.py
Normal file
49
diagnostics/BatteryDiagnostics.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from pybricks.tools import wait
|
||||
import umath
|
||||
class BatteryDiagnostics:
|
||||
def __init__(self, hub):
|
||||
self.voltage = 0
|
||||
self.current = 0
|
||||
self.hub = hub
|
||||
def printVoltage(self):
|
||||
self.voltage = self.hub.battery.voltage()
|
||||
if self.voltage > 7800:
|
||||
print(f"Battery voltage is sufficient: {self.voltage}")
|
||||
elif self.voltage < 7800 :
|
||||
print(f"Charging needed: {self.voltage}")
|
||||
def printCurrent(self):
|
||||
self.current = self.hub.battery.current()
|
||||
print("Battery current:", self.current)
|
||||
def printAll(self):
|
||||
timeelapsed = 0
|
||||
voltageList = []
|
||||
currentList = []
|
||||
while True:
|
||||
print("\n\n\n\n\n")
|
||||
self.printVoltage()
|
||||
voltageList.append(self.voltage)
|
||||
self.printCurrent()
|
||||
currentList.append(self.current)
|
||||
wait(50)
|
||||
timeelapsed += 50
|
||||
|
||||
if(timeelapsed >= 3000):
|
||||
break
|
||||
print("--------------FINAL RESULTS OF BATTERY DIAGNOSTICS---------------")
|
||||
print("Voltage deviation:", self.stdev(voltageList))
|
||||
print("Current deviation:", self.stdev(currentList))
|
||||
def stdev(self, vals):
|
||||
DATA = vals
|
||||
if len(DATA) < 2:
|
||||
return 0
|
||||
# Calculate the mean
|
||||
MEAN = sum(DATA) / len(DATA)
|
||||
|
||||
# Calculate the variance (sum of squared differences from the mean, divided by n-1 for sample standard deviation)
|
||||
VARIANCE = sum([(x - MEAN) ** 2 for x in DATA]) / float(len(DATA) - 1)
|
||||
|
||||
# Calculate the standard deviation (square root of the variance)
|
||||
STD_DEV_MANUAL = umath.sqrt(VARIANCE)
|
||||
|
||||
|
||||
return (STD_DEV_MANUAL)
|
||||
Reference in New Issue
Block a user