Skip to content

Commit af0442d

Browse files
authored
build(deps): update cvxpy version from 1.5.3 to 1.6.5 in requirements (#1203)
* build(deps): update cvxpy version from 1.5.3 to 1.6.5 in requirements * Add ECOS solver and improve solver handling for stability Added ECOS to requirements and enhanced compatibility with cvxpy solvers by specifying 'order' for matrix reshaping. Updated solver configurations in rocket landing and pendulum control for consistency and reliability. Improved test behavior by enforcing stricter warning handling in pytest.
1 parent f466f25 commit af0442d

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

AerialNavigation/rocket_powered_landing/rocket_powered_landing.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
W_DELTA_SIGMA = 1e-1 # difference in flight time
3232
W_NU = 1e5 # virtual control
3333

34+
print(cvxpy.installed_solvers())
3435
solver = 'ECOS'
3536
verbose_solver = False
3637

@@ -462,11 +463,11 @@ def __init__(self, m, K):
462463
# x_t+1 = A_*x_t+B_*U_t+C_*U_T+1*S_*sigma+zbar+nu
463464
constraints += [
464465
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') @
466467
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') @
468469
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') @
470471
self.var['U'][:, k + 1] +
471472
self.par['S_bar'][:, k] * self.var['sigma'] +
472473
self.par['z_bar'][:, k] +
@@ -536,7 +537,7 @@ def solve(self, **kwargs):
536537
with warnings.catch_warnings(): # For User warning from solver
537538
warnings.simplefilter('ignore')
538539
self.prob.solve(verbose=verbose_solver,
539-
solver=solver)
540+
solver=solver)
540541
except cvxpy.SolverError:
541542
error = True
542543

InvertedPendulum/inverted_pendulum_mpc_control.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def mpc_control(x0):
9191
prob = cvxpy.Problem(cvxpy.Minimize(cost), constr)
9292

9393
start = time.time()
94-
prob.solve(verbose=False)
94+
prob.solve(verbose=False, solver=cvxpy.CLARABEL)
9595
elapsed_time = time.time() - start
9696
print(f"calc time:{elapsed_time:.6f} [sec]")
9797

requirements/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
numpy == 2.2.4
22
scipy == 1.15.2
33
matplotlib == 3.10.1
4-
cvxpy == 1.5.3
4+
cvxpy == 1.6.5
5+
ecos == 2.0.14
56
pytest == 8.3.5 # For unit test
67
pytest-xdist == 3.6.1 # For unit test
78
mypy == 1.15.0 # For unit test

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010

1111

1212
def run_this_test(file):
13-
pytest.main([os.path.abspath(file)])
13+
pytest.main(args=["-W", "error", "-Werror", "--pythonwarnings=error", os.path.abspath(file)])

0 commit comments

Comments
 (0)