Schersteifigkeit für TUD und Labor Hart ergänzt. Auswertung läuft

This commit is contained in:
Markus Clauß
2023-03-03 15:03:23 +01:00
parent e1dd4c7c00
commit ecaf97bbb3
3 changed files with 109 additions and 59 deletions

View File

@@ -37,7 +37,6 @@ class DataSheartest(RawData):
N = ListField(IntField()) N = ListField(IntField())
s_vert_1 = ListField(FloatField()) s_vert_1 = ListField(FloatField())
s_vert_2 = ListField(FloatField()) s_vert_2 = ListField(FloatField())
s_vert_sum = ListField(FloatField(), required=False)
s_piston = ListField(FloatField(), required=False) s_piston = ListField(FloatField(), required=False)
s_hor_1 = ListField(FloatField(), required=False) s_hor_1 = ListField(FloatField(), required=False)
s_hor_2 = ListField(FloatField(), required=False) s_hor_2 = ListField(FloatField(), required=False)

View File

@@ -201,7 +201,7 @@ class DataSineLoad():
for col in [ for col in [
's_hor_sum', 's_hor_1', 's_hor_2', 's_vert_sum', 's_vert_1', 's_hor_sum', 's_hor_1', 's_hor_2', 's_vert_sum', 's_vert_1',
's_vert_2' 's_vert_2', 's_piston', 'extension',
]: ]:
if col in self.data.columns: if col in self.data.columns:
self.data[col] = self.data[col].mul(self.unit_s) self.data[col] = self.data[col].mul(self.unit_s)
@@ -232,10 +232,14 @@ class DataSineLoad():
cols = self.data.columns cols = self.data.columns
if not 's_hor_sum' in cols: if not 's_hor_sum' in cols:
if ('s_hor_1' in self.data.columns) & ('s_hor_2'
in self.data.columns):
self.data['s_hor_sum'] = self.data[['s_hor_1', self.data['s_hor_sum'] = self.data[['s_hor_1',
's_hor_2']].sum(axis=1) 's_hor_2']].sum(axis=1)
if not 's_vert_sum' in cols: if not 's_vert_sum' in cols:
if ('s_vert_1' in self.data.columns) & ('s_vert_2'
in self.data.columns):
self.data['s_vert_sum'] = self.data[['s_vert_1', self.data['s_vert_sum'] = self.data[['s_vert_1',
's_vert_2']].sum(axis=1) 's_vert_2']].sum(axis=1)

View File

@@ -79,11 +79,12 @@ class ShearTest(DataSineLoad):
self.col_as_float = ['T', 'F', 's_piston', 's_hor_1', 's_hor_2'] self.col_as_float = ['T', 'F', 's_piston', 's_hor_1', 's_hor_2']
self.val_col_names = [ self.val_col_names = [
'time', 'T', 'f', 'sigma_normal', 'extension', 'N', 'F', 's_hor_1', 'time', 'T', 'f', 'sigma_normal', 'extension', 'N', 'F',
's_hor_2', 's_vert_1', 's_vert_2' 's_vert_1', 's_vert_2'
] ]
self.round_values = [('T', 1), ('sigma_normal', 1), ('f', 1)] self.round_values = [('T', 1), ('sigma_normal', 1), ('f', 1),
('extension', 6)]
self.columns_analyse = [ self.columns_analyse = [
'F', 's_vert_sum', 's_vert_1', 's_vert_2', 's_hor_1', 's_hor_2', 'F', 's_vert_sum', 's_vert_1', 's_vert_2', 's_hor_1', 's_hor_2',
@@ -91,9 +92,7 @@ class ShearTest(DataSineLoad):
] ]
# Header names after standardization; check if exists # Header names after standardization; check if exists
self.val_header_names = [ self.val_header_names = ['speciment_diameter', 'broken']
'speciment_height', 'speciment_diameter', 'broken'
]
self.number_of_load_cycles_for_analysis = 5 self.number_of_load_cycles_for_analysis = 5
@@ -172,9 +171,8 @@ class ShearTestExtension(ShearTest):
time=data.index, time=data.index,
F=list(data['F']), F=list(data['F']),
N=list(data['N']), N=list(data['N']),
s_vert_1=list(data['s_hor_1']), s_vert_1=list(data['s_vert_1']),
s_vert_2=list(data['s_hor_2']), s_vert_2=list(data['s_vert_2']),
s_vert_sum=list(data['s_hor_sum']),
) )
# add optional datas # add optional datas
@@ -230,13 +228,13 @@ class ShearTestExtension(ShearTest):
Calculate Results Calculate Results
""" """
self._logger.info('run _calc base') self._logger.info('run _calc')
print('run BASE')
self.fit = [] self.fit = []
for idx_data, data in enumerate(self.data): for idx_data, data in enumerate(self.data):
try:
if data is None: continue if data is None: continue
data.index = data.index - data.index[0] data.index = data.index - data.index[0]
@@ -299,6 +297,9 @@ class ShearTestExtension(ShearTest):
if (self.debug) & (len(self.fit) > 5): if (self.debug) & (len(self.fit) > 5):
break break
except Exception as e:
self._logger.critical(e, exc_info=True)
self.fit = pd.DataFrame.from_records(self.fit) self.fit = pd.DataFrame.from_records(self.fit)
self.fit = self.fit.reset_index(drop=True).set_index('idx') self.fit = self.fit.reset_index(drop=True).set_index('idx')
@@ -404,3 +405,49 @@ class ShearTestExtensionLaborHart(ShearTestExtension):
# log infos # log infos
self._logger.info(self.metadata) self._logger.info(self.metadata)
self._logger.info(self.data.head()) self._logger.info(self.data.head())
class ShearTestExtensionTUDresden(ShearTestExtension):
def _define_units(self):
self.unit_s = 1 / 1000. #mm
self.unit_F = 1.0 #N
self.unit_t = 1.0 #s
def update_parameter(self):
self.meta_names_of_parameter = {
't': ['TIME'],
'speciment_diameter': ['Diameter of specimen\r\n'],
} #list of names
self.data_column_names = {
'time': ['TIME'],
'f': ['soll frequency'],
'T': ['soll temperature'],
'sigma_normal': ['soll sigma'],
'extension': ['soll extension'],
'F': ['vertical load from hydraulic pressure'],
's_vert_1': ['Vertical position from LVDT 1'],
's_vert_2': ['Vertical position from LVDT 2'],
's_piston': ['vertical position from hydraulic pressure'],
'N': ['Number of vertical cycles'],
}
def _process_data(self):
meta, data = read_geosys(
self.data, '015', metadata_ids=['001', '003', '005', '007', '009'])
#convert sigma
f = 900.0 / 355.0
data['soll sigma'] = data['soll sigma'].mul(f)
#define in class
self.data = data.reset_index()
self.metadata.update(meta)
# log infos
self._logger.info(self.metadata)
self._logger.info(self.data.head())