def __compute_continuity_constraints(self):
integrator = ci.Integrator("integrator", "rk", self.__ode_scaled, {"t0": 0, "tf": 1, "expand": True})
params = ci.vertcat([np.atleast_2d(self.time_points[1:] - self.time_points[:-1]), \
self.optimization_variables["U"], \
ci.repmat(self.optimization_variables["Q"], 1, self.number_of_intervals), \
ci.repmat(self.optimization_variables["P"], 1, self.number_of_intervals), \
self.optimization_variables["EPS_U"]])
shooting = integrator.map("shooting", "openmp", self.number_of_intervals)
X_next = shooting(x0 = self.optimization_variables["X"][:,:-1], \
p = params)["xf"]
self.__continuity_constraints = \
self.optimization_variables["X"][:, 1:] - X_next
评论列表
文章目录