dev: Внедрение склейки этапов по позиции
This commit is contained in:
parent
d782189449
commit
e8c57334f3
@ -32,8 +32,8 @@
|
||||
0.003
|
||||
],
|
||||
"object_position": [
|
||||
0.03,
|
||||
0.03
|
||||
0.02,
|
||||
0.01
|
||||
],
|
||||
"time_wielding": [
|
||||
1.332,
|
||||
|
||||
@ -64,7 +64,8 @@ class PassportFormer(BasePointPassportFormer):
|
||||
tesla_time = sum(self._params[0].get("Tesla summary time", []))
|
||||
useful_data = {"tesla_time": tesla_time,
|
||||
"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):
|
||||
@ -72,6 +73,21 @@ class PassportFormer(BasePointPassportFormer):
|
||||
key: (value[i] if i < len(value) else value[0])
|
||||
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]
|
||||
cache_key = self._generate_cache_key(params_list)
|
||||
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"],
|
||||
"position": operator_settings["object_position"]-0.5*operator_settings["object_thickness"],
|
||||
"force": operator_settings["force_target"],
|
||||
"P1": operator_settings["object_position"] + operator_settings["object_thickness"],
|
||||
"P2": operator_settings["object_position"]}
|
||||
"P1": operator_settings["object_position"] + 0.5*operator_settings["object_thickness"],
|
||||
"P2": operator_settings["object_position"] - 0.5*operator_settings["object_thickness"]}
|
||||
|
||||
points_pocket.append([point_timeframe, ideal_data, point_events, useful_p_data])
|
||||
return dataframe, points_pocket, useful_data
|
||||
|
||||
@ -200,7 +200,8 @@ class PlotWidget(BasePlotWidget):
|
||||
|
||||
dataframe, points_pocket, useful_data = data
|
||||
tesla_time = useful_data["tesla_time"]
|
||||
range_ME = useful_data["range"]
|
||||
gun_range = useful_data["range"]
|
||||
|
||||
k_hardness = useful_data["k_hardness"]
|
||||
|
||||
dat_is_none = dataframe is None
|
||||
@ -226,7 +227,7 @@ class PlotWidget(BasePlotWidget):
|
||||
"ME",
|
||||
description["Real_signals"],
|
||||
dataframe,
|
||||
range_ME
|
||||
gun_range
|
||||
)
|
||||
|
||||
# Итерация по точкам
|
||||
@ -246,7 +247,7 @@ class PlotWidget(BasePlotWidget):
|
||||
global_shift +=ideal_data["Ideal cycle"]
|
||||
|
||||
# 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"]
|
||||
F_comp = - force/k_hardness
|
||||
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"]:
|
||||
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:
|
||||
|
||||
@ -298,6 +298,22 @@ class BasePlotWidget:
|
||||
if valid_str in signal["name"] and signal["name"] in keys:
|
||||
dataframe[signal["name"]] = dataframe[signal["name"]].apply(lambda x: shift-x)
|
||||
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,
|
||||
valid_str: str,
|
||||
@ -369,6 +385,9 @@ class BaseIdealDataBuilder(OptAlgorithm):
|
||||
operator_params, system_params = params
|
||||
self.mul = system_params['time_capture']
|
||||
self.welding_time = operator_params['time_wielding']
|
||||
|
||||
|
||||
|
||||
super().__init__(operator_params, system_params)
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user