fix(SF-483): Исправлен неправильный подсчёт скорости на этапе раскрытия, добавлен ассерт на достижение номинальной траектории до фазы подпора
This commit is contained in:
parent
1a36aa217b
commit
e1c38eeb2d
@ -51,12 +51,10 @@ class OptTimeCalculator(AutoConfigClass):
|
||||
t22 = max(0, (l2 - (self.a_max_2 * t21 * t21)) / self.v_max_2)
|
||||
T2 = t22 + 2 * t21 + offset
|
||||
|
||||
Topen = max(T1, T2)
|
||||
|
||||
topen_1_acc, topen_1_speed = self.calcFirstOpen(Topen, l1+Fs1)
|
||||
topen_1_acc, topen_1_speed = self.calcFirstOpen(T1, l1+Fs1)
|
||||
offset = self.calcSecondOpenOffset(topen_1_acc, topen_1_speed, Fs1)
|
||||
|
||||
topen_2_acc, topen_2_speed = self.calcSecondOpen(Topen - offset, l2)
|
||||
topen_2_acc, topen_2_speed = self.calcSecondOpen(T2 - offset, l2)
|
||||
|
||||
self.allTimes["topen_1_acc"] = topen_1_acc
|
||||
self.allTimes["topen_2_offset"] = offset
|
||||
@ -95,7 +93,6 @@ class OptTimeCalculator(AutoConfigClass):
|
||||
|
||||
self.allTimes["topen_1_mark"] = topen_1_mark
|
||||
self.allTimes["topen_2_mark"] = topen_2_mark
|
||||
self.allTimes["topen"] = Topen
|
||||
|
||||
def Tgrow(self) -> None:
|
||||
|
||||
@ -109,7 +106,9 @@ class OptTimeCalculator(AutoConfigClass):
|
||||
tspeed = sqrt(self.mass_1/self.k_hardness_1) * (arcsin(vFmax / L) - arccos(sqrt(self.k_hardness_1 / self.mass_1) * self.eff_control / L))
|
||||
Fspeed = - self.eff_control * cos(self.freq * tspeed) + self.eff_control + 1/self.freq * vF0 * sin(self.freq * tspeed)
|
||||
Fmeet = 1/self.freq * sqrt(self.freq**2 * self.Ftogrow**2 - vFmax**2)
|
||||
|
||||
Fstart_prop = self.Fstart_prop
|
||||
assert Fmeet < Fstart_prop
|
||||
tmeet = (Fmeet - Fspeed)/vFmax
|
||||
tend = self.tGrowNominal(Fstart_prop) - self.tGrowNominal(Fmeet)
|
||||
vp = 1/sqrt(self.k_hardness_1 * self.mass_1) * sqrt(self.Ftogrow**2 - self.Fstart_prop**2)
|
||||
|
Loading…
Reference in New Issue
Block a user