dev: Внедрение склейки этапов по позиции
This commit is contained in:
parent
d782189449
commit
e8c57334f3
@ -32,8 +32,8 @@
|
|||||||
0.003
|
0.003
|
||||||
],
|
],
|
||||||
"object_position": [
|
"object_position": [
|
||||||
0.03,
|
0.02,
|
||||||
0.03
|
0.01
|
||||||
],
|
],
|
||||||
"time_wielding": [
|
"time_wielding": [
|
||||||
1.332,
|
1.332,
|
||||||
|
|||||||
@ -64,7 +64,8 @@ class PassportFormer(BasePointPassportFormer):
|
|||||||
tesla_time = sum(self._params[0].get("Tesla summary time", []))
|
tesla_time = sum(self._params[0].get("Tesla summary time", []))
|
||||||
useful_data = {"tesla_time": tesla_time,
|
useful_data = {"tesla_time": tesla_time,
|
||||||
"range": system_settings["gun_range"],
|
"range": system_settings["gun_range"],
|
||||||
"k_hardness": system_settings["k_hardness_1"]
|
"k_hardness": system_settings["k_hardness_1"],
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in range(point_quantity):
|
for i in range(point_quantity):
|
||||||
@ -72,6 +73,21 @@ class PassportFormer(BasePointPassportFormer):
|
|||||||
key: (value[i] if i < len(value) else value[0])
|
key: (value[i] if i < len(value) else value[0])
|
||||||
for key, value in self._params[0].items()
|
for key, value in self._params[0].items()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
next_i = i + 1
|
||||||
|
|
||||||
|
if next_i < point_quantity:
|
||||||
|
next_operator_settings = {
|
||||||
|
key: (value[next_i] if i < len(value) else value[0])
|
||||||
|
for key, value in self._params[0].items()
|
||||||
|
}
|
||||||
|
|
||||||
|
displacement_me = -0.005
|
||||||
|
displacement_fe = -0.005
|
||||||
|
|
||||||
|
operator_settings["distance_h_end1"] += displacement_fe
|
||||||
|
operator_settings["distance_h_end2"] += displacement_me
|
||||||
|
|
||||||
params_list = [operator_settings, system_settings]
|
params_list = [operator_settings, system_settings]
|
||||||
cache_key = self._generate_cache_key(params_list)
|
cache_key = self._generate_cache_key(params_list)
|
||||||
if cache_key in self._ideal_data_cashe and False:
|
if cache_key in self._ideal_data_cashe and False:
|
||||||
@ -88,8 +104,8 @@ class PassportFormer(BasePointPassportFormer):
|
|||||||
useful_p_data = {"thickness": operator_settings["object_thickness"],
|
useful_p_data = {"thickness": operator_settings["object_thickness"],
|
||||||
"position": operator_settings["object_position"]-0.5*operator_settings["object_thickness"],
|
"position": operator_settings["object_position"]-0.5*operator_settings["object_thickness"],
|
||||||
"force": operator_settings["force_target"],
|
"force": operator_settings["force_target"],
|
||||||
"P1": operator_settings["object_position"] + operator_settings["object_thickness"],
|
"P1": operator_settings["object_position"] + 0.5*operator_settings["object_thickness"],
|
||||||
"P2": operator_settings["object_position"]}
|
"P2": operator_settings["object_position"] - 0.5*operator_settings["object_thickness"]}
|
||||||
|
|
||||||
points_pocket.append([point_timeframe, ideal_data, point_events, useful_p_data])
|
points_pocket.append([point_timeframe, ideal_data, point_events, useful_p_data])
|
||||||
return dataframe, points_pocket, useful_data
|
return dataframe, points_pocket, useful_data
|
||||||
|
|||||||
@ -200,7 +200,8 @@ class PlotWidget(BasePlotWidget):
|
|||||||
|
|
||||||
dataframe, points_pocket, useful_data = data
|
dataframe, points_pocket, useful_data = data
|
||||||
tesla_time = useful_data["tesla_time"]
|
tesla_time = useful_data["tesla_time"]
|
||||||
range_ME = useful_data["range"]
|
gun_range = useful_data["range"]
|
||||||
|
|
||||||
k_hardness = useful_data["k_hardness"]
|
k_hardness = useful_data["k_hardness"]
|
||||||
|
|
||||||
dat_is_none = dataframe is None
|
dat_is_none = dataframe is None
|
||||||
@ -226,7 +227,7 @@ class PlotWidget(BasePlotWidget):
|
|||||||
"ME",
|
"ME",
|
||||||
description["Real_signals"],
|
description["Real_signals"],
|
||||||
dataframe,
|
dataframe,
|
||||||
range_ME
|
gun_range
|
||||||
)
|
)
|
||||||
|
|
||||||
# Итерация по точкам
|
# Итерация по точкам
|
||||||
@ -246,7 +247,7 @@ class PlotWidget(BasePlotWidget):
|
|||||||
global_shift +=ideal_data["Ideal cycle"]
|
global_shift +=ideal_data["Ideal cycle"]
|
||||||
|
|
||||||
# TODO: проверить корректность расчетов
|
# TODO: проверить корректность расчетов
|
||||||
if settings["force compensation FE"] and not dat_is_none:
|
if False and settings["force compensation FE"] and not dat_is_none:
|
||||||
force = useful_p_data["force"]
|
force = useful_p_data["force"]
|
||||||
F_comp = - force/k_hardness
|
F_comp = - force/k_hardness
|
||||||
point_idxs = dataframe[(dataframe["time"] >= point_timeframe[0]) & (dataframe["time"] <= point_timeframe[1])].index
|
point_idxs = dataframe[(dataframe["time"] >= point_timeframe[0]) & (dataframe["time"] <= point_timeframe[1])].index
|
||||||
@ -256,7 +257,11 @@ class PlotWidget(BasePlotWidget):
|
|||||||
# Модифицируем данные для отображения гарфика
|
# Модифицируем данные для отображения гарфика
|
||||||
if settings["ideals"] and settings["mirror ME"]:
|
if settings["ideals"] and settings["mirror ME"]:
|
||||||
for stage in point_events.keys():
|
for stage in point_events.keys():
|
||||||
ideal_data[stage] = self._mirror_shift_data("ME", description["Ideal_signals"], ideal_data[stage], range_ME)
|
ideal_data[stage] = (
|
||||||
|
self._mirror_shift_ideal("ME", "FE", description["Ideal_signals"],
|
||||||
|
ideal_data[stage],
|
||||||
|
gun_range, useful_p_data["P1"]*1000, useful_p_data["P2"]*1000)
|
||||||
|
)
|
||||||
|
|
||||||
# Добавляем реальные стадии
|
# Добавляем реальные стадии
|
||||||
if settings["stages"] and not dat_is_none:
|
if settings["stages"] and not dat_is_none:
|
||||||
|
|||||||
@ -298,6 +298,22 @@ class BasePlotWidget:
|
|||||||
if valid_str in signal["name"] and signal["name"] in keys:
|
if valid_str in signal["name"] and signal["name"] in keys:
|
||||||
dataframe[signal["name"]] = dataframe[signal["name"]].apply(lambda x: shift-x)
|
dataframe[signal["name"]] = dataframe[signal["name"]].apply(lambda x: shift-x)
|
||||||
return dataframe
|
return dataframe
|
||||||
|
|
||||||
|
def _mirror_shift_ideal(self,
|
||||||
|
name_ME: str, name_FE: str,
|
||||||
|
signals: list[dict],
|
||||||
|
dataframe: pd.DataFrame,
|
||||||
|
shift: float,
|
||||||
|
P1: float, P2: float) -> pd.DataFrame:
|
||||||
|
keys = dataframe.keys()
|
||||||
|
for signal in signals:
|
||||||
|
if name_ME in signal["name"] and signal["name"] in keys:
|
||||||
|
dataframe[signal["name"]] = dataframe[signal["name"]].apply(lambda x: -x+P1)
|
||||||
|
|
||||||
|
if name_FE in signal["name"] and signal["name"] in keys:
|
||||||
|
dataframe[signal["name"]] = dataframe[signal["name"]].apply(lambda x: x+P2)
|
||||||
|
|
||||||
|
return dataframe
|
||||||
|
|
||||||
def _shift_data(self,
|
def _shift_data(self,
|
||||||
valid_str: str,
|
valid_str: str,
|
||||||
@ -369,6 +385,9 @@ class BaseIdealDataBuilder(OptAlgorithm):
|
|||||||
operator_params, system_params = params
|
operator_params, system_params = params
|
||||||
self.mul = system_params['time_capture']
|
self.mul = system_params['time_capture']
|
||||||
self.welding_time = operator_params['time_wielding']
|
self.welding_time = operator_params['time_wielding']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
super().__init__(operator_params, system_params)
|
super().__init__(operator_params, system_params)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user