Загрузил(а) файлы в 'Project'
This commit is contained in:
parent
6b00e74b42
commit
ad54866a04
38
Project/analize.py
Normal file
38
Project/analize.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
from scipy.optimize import curve_fit
|
||||||
|
from numpy import linspace
|
||||||
|
|
||||||
|
from numpy import tanh
|
||||||
|
from scipy.constants import e, k
|
||||||
|
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
|
||||||
|
# Global variables
|
||||||
|
|
||||||
|
new_U = linspace(-25, 25, 1000)
|
||||||
|
|
||||||
|
|
||||||
|
# Function for approximation
|
||||||
|
|
||||||
|
|
||||||
|
def function_IU(U, I_n, T_e):
|
||||||
|
return I_n * tanh(e*U/2/k/T_e)
|
||||||
|
|
||||||
|
# Find the best fit params of In and Te
|
||||||
|
|
||||||
|
|
||||||
|
def find_FitParams(data_I, data_U):
|
||||||
|
popt, pcov = curve_fit(function_IU, data_U, data_I, p0=[0, 50000])
|
||||||
|
return popt, pcov
|
||||||
|
|
||||||
|
# Returns pandas.DataFrame with approximated Current and Voltage values
|
||||||
|
|
||||||
|
|
||||||
|
def getApproxValues(data):
|
||||||
|
data = data.sort_values(by=['U'])
|
||||||
|
popt, pcov = find_FitParams(data['I'], data['U'])
|
||||||
|
df = pd.DataFrame()
|
||||||
|
df['U'] = new_U
|
||||||
|
df['I'] = function_IU(df['U'], *popt)
|
||||||
|
return df
|
33
Project/rw_device_params.py
Normal file
33
Project/rw_device_params.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Dict for all devices params
|
||||||
|
|
||||||
|
all_params = {'func': 0, 'status': 1, 'name': 2,
|
||||||
|
'id': 3, 'type_of_connection': 4, 'baud_rate': 5}
|
||||||
|
|
||||||
|
# Read device params from .dat device file
|
||||||
|
|
||||||
|
|
||||||
|
def read_device_params(name):
|
||||||
|
file = open('data/{}.dat'.format(name), 'r')
|
||||||
|
params = file.readline().split()
|
||||||
|
file.close()
|
||||||
|
return params
|
||||||
|
|
||||||
|
# Change device params in .dat device file
|
||||||
|
|
||||||
|
|
||||||
|
def write_device_params(name, param, value):
|
||||||
|
|
||||||
|
try:
|
||||||
|
file = open('data/{}.dat'.format(name), 'r+')
|
||||||
|
params = file.readline().split()
|
||||||
|
if value != '':
|
||||||
|
params[all_params[param]] = str(value)
|
||||||
|
else:
|
||||||
|
params[all_params[param]] = 'none'
|
||||||
|
file.seek(0)
|
||||||
|
file.truncate()
|
||||||
|
file.write(' '.join(params))
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
except IndexError:
|
||||||
|
print('ErrorType = FileError: File.dat for this device does not exist')
|
Loading…
Reference in New Issue
Block a user