diff --git a/params/operator_params.json b/params/operator_params.json index d3da4e8..b16dd4c 100644 --- a/params/operator_params.json +++ b/params/operator_params.json @@ -32,8 +32,8 @@ 0.003 ], "object_position": [ - 0.03, - 0.03 + 0.02, + 0.01 ], "time_wielding": [ 1.332, diff --git a/src/controller/passportFormer.py b/src/controller/passportFormer.py index 90d45a9..4c510ea 100644 --- a/src/controller/passportFormer.py +++ b/src/controller/passportFormer.py @@ -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 diff --git a/src/gui/plotter.py b/src/gui/plotter.py index 55cebf6..2be4a05 100644 --- a/src/gui/plotter.py +++ b/src/gui/plotter.py @@ -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: diff --git a/src/utils/base/base.py b/src/utils/base/base.py index d9bc10d..59b53ae 100644 --- a/src/utils/base/base.py +++ b/src/utils/base/base.py @@ -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)