feat(SF-471): Добавлена фаза закрытия в график согласно заглушке
This commit is contained in:
parent
1ece32a57c
commit
8a611998c0
@ -336,6 +336,18 @@ class OptAlgorithm(AutoConfigClass):
|
|||||||
"""
|
"""
|
||||||
return self.X1Open(t), self.X2Open(t), self.V1Open(t), self.V2Open(t), self.FOpen(t)
|
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:
|
def getSpecific(self, param : str, phase : str, t : float) -> float:
|
||||||
"""
|
"""
|
||||||
Получить значение величины в определенную фазу в момент времени t (с начала фазы)
|
Получить значение величины в определенную фазу в момент времени t (с начала фазы)
|
||||||
|
|||||||
@ -66,14 +66,14 @@ class PlotWindow:
|
|||||||
|
|
||||||
def _getIdealTimings(self):
|
def _getIdealTimings(self):
|
||||||
data = self.opt.Ts
|
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):
|
def _form_idealdatGraph(self, times):
|
||||||
self.idealPhase0 = (self.idealTime[0])*self.scaler #Подъезд
|
self.idealPhase0 = (self.idealTime[0])*self.scaler #Подъезд
|
||||||
self.idealPhase1 = (self.idealTime[0]+ self.idealTime[1])*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.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.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.x_splitter = np.array([[0, self.idealPhase0],
|
||||||
[self.idealPhase0, self.idealPhase1],
|
[self.idealPhase0, self.idealPhase1],
|
||||||
[self.idealPhase1, self.idealPhase2],
|
[self.idealPhase1, self.idealPhase2],
|
||||||
@ -90,7 +90,7 @@ class PlotWindow:
|
|||||||
elif time <= self.idealPhase3:
|
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)
|
x_fe, x_me, v_fe, v_me, f = self.opt.calcPhaseOpen(time/self.scaler-self.idealTime[0]-self.idealTime[1]-self.WeldTime)
|
||||||
else:
|
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.append([x_fe, x_me, v_fe, v_me, f])
|
||||||
data = np.array(data).T
|
data = np.array(data).T
|
||||||
return data
|
return data
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user