|
31 | 31 | W_DELTA_SIGMA = 1e-1 # difference in flight time
|
32 | 32 | W_NU = 1e5 # virtual control
|
33 | 33 |
|
| 34 | +print(cvxpy.installed_solvers()) |
34 | 35 | solver = 'ECOS'
|
35 | 36 | verbose_solver = False
|
36 | 37 |
|
@@ -462,11 +463,11 @@ def __init__(self, m, K):
|
462 | 463 | # x_t+1 = A_*x_t+B_*U_t+C_*U_T+1*S_*sigma+zbar+nu
|
463 | 464 | constraints += [
|
464 | 465 | self.var['X'][:, k + 1] ==
|
465 |
| - cvxpy.reshape(self.par['A_bar'][:, k], (m.n_x, m.n_x)) @ |
| 466 | + cvxpy.reshape(self.par['A_bar'][:, k], (m.n_x, m.n_x), order='F') @ |
466 | 467 | self.var['X'][:, k] +
|
467 |
| - cvxpy.reshape(self.par['B_bar'][:, k], (m.n_x, m.n_u)) @ |
| 468 | + cvxpy.reshape(self.par['B_bar'][:, k], (m.n_x, m.n_u), order='F') @ |
468 | 469 | self.var['U'][:, k] +
|
469 |
| - cvxpy.reshape(self.par['C_bar'][:, k], (m.n_x, m.n_u)) @ |
| 470 | + cvxpy.reshape(self.par['C_bar'][:, k], (m.n_x, m.n_u), order='F') @ |
470 | 471 | self.var['U'][:, k + 1] +
|
471 | 472 | self.par['S_bar'][:, k] * self.var['sigma'] +
|
472 | 473 | self.par['z_bar'][:, k] +
|
@@ -536,7 +537,7 @@ def solve(self, **kwargs):
|
536 | 537 | with warnings.catch_warnings(): # For User warning from solver
|
537 | 538 | warnings.simplefilter('ignore')
|
538 | 539 | self.prob.solve(verbose=verbose_solver,
|
539 |
| - solver=solver) |
| 540 | + solver=solver) |
540 | 541 | except cvxpy.SolverError:
|
541 | 542 | error = True
|
542 | 543 |
|
|
0 commit comments