Загрузил(а) файлы в 'Project'

This commit is contained in:
Дмитрий Пунов 2022-11-28 01:54:15 +03:00
parent 6b00e74b42
commit ad54866a04
2 changed files with 71 additions and 0 deletions

38
Project/analize.py Normal file
View 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

View 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')