From 8a611998c0b7aa88d1123355505e837710634e2c Mon Sep 17 00:00:00 2001 From: ermolaev_p Date: Fri, 8 Nov 2024 17:48:38 +0300 Subject: [PATCH] =?UTF-8?q?feat(SF-471):=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=84=D0=B0=D0=B7=D0=B0=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20=D0=B2=20=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D1=84=D0=B8=D0=BA=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=B3=D0=BB=D1=83=D1=88=D0=BA?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OptAlgorithm/OptAlgorithm.py | 12 ++++++++++++ src/gui/plot_window.py | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/OptAlgorithm/OptAlgorithm.py b/src/OptAlgorithm/OptAlgorithm.py index efd1938..c86e411 100644 --- a/src/OptAlgorithm/OptAlgorithm.py +++ b/src/OptAlgorithm/OptAlgorithm.py @@ -336,6 +336,18 @@ class OptAlgorithm(AutoConfigClass): """ return self.X1Open(t), self.X2Open(t), self.V1Open(t), self.V2Open(t), self.FOpen(t) + def calcPhaseMovement(self, t: float) -> tuple[float, float, float, float, float]: + """ + Получить значения X1, X2, V1, V2, F в момент времени t для фазы раксрытия + + Args: + t (float): Момент времени + + Returns: + (float, float, float, float, float): X1, X2, V1, V2, F + """ + return self.X1Movement(t), self.X2Movement(t), self.V1Movement(t), self.V2Movement(t), self.FMovement(t) + def getSpecific(self, param : str, phase : str, t : float) -> float: """ Получить значение величины в определенную фазу в момент времени t (с начала фазы) diff --git a/src/gui/plot_window.py b/src/gui/plot_window.py index 3a7e244..0343766 100644 --- a/src/gui/plot_window.py +++ b/src/gui/plot_window.py @@ -66,14 +66,14 @@ class PlotWindow: def _getIdealTimings(self): data = self.opt.Ts - self.idealTime = [data['tclose'], data['tgrow'], self.opt.getMarkOpen()] + self.idealTime = [data['tclose'], data['tgrow'], self.opt.getMarkOpen(), data["tmovement"]] def _form_idealdatGraph(self, times): self.idealPhase0 = (self.idealTime[0])*self.scaler #Подъезд self.idealPhase1 = (self.idealTime[0]+ self.idealTime[1])*self.scaler #Сжатие self.idealPhase2 = (self.idealTime[0]+ self.idealTime[1] + self.WeldTime)*self.scaler #Сварка self.idealPhase3 = (self.idealTime[0]+ self.idealTime[1] + self.idealTime[2] + self.WeldTime)*self.scaler #Разъезд - self.idealPhase4 = (self.idealTime[0]+ self.idealTime[1] + self.idealTime[2] + self.WeldTime + 0.25)*self.scaler #Последнее смыкание #TODO добавить идеальное время вместо 0.25 + self.idealPhase4 = (sum(self.idealTime[:4]) + self.WeldTime)*self.scaler #Последнее смыкание #TODO добавить идеальное время вместо 0.25 self.x_splitter = np.array([[0, self.idealPhase0], [self.idealPhase0, self.idealPhase1], [self.idealPhase1, self.idealPhase2], @@ -90,7 +90,7 @@ class PlotWindow: elif time <= self.idealPhase3: x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseOpen(time/self.scaler-self.idealTime[0]-self.idealTime[1]-self.WeldTime) else: - x_fe, x_me, v_fe, v_me, f = 0, 0, 0, 0, 0 + x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseMovement(time/self.scaler-sum(self.idealTime[:3])-self.WeldTime) data.append([x_fe, x_me, v_fe, v_me, f]) data = np.array(data).T return data