|
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