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