Skip to content

Commit 2173f4f

Browse files
committed
pyecosqps )
1 parent 1496253 commit 2173f4f

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

Diff for: mpc_modeling/pyecosqp.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def ecosqp(H, f, A=None, B=None, Aeq=None, Beq=None):
4242

4343
# check cholesky
4444
try:
45-
W = np.linalg.cholesky(H)
45+
W = np.linalg.cholesky(H).T
4646
except np.linalg.linalg.LinAlgError:
4747
W = scipy.linalg.sqrtm(H)
4848
# print(W)

Diff for: mpc_tracking/mpc_tracking.py

+11-12
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111
import numpy as np
1212
import matplotlib.pyplot as plt
1313
import scipy.linalg
14-
15-
from cvxopt import matrix
16-
import cvxopt
14+
import pyecosqp
1715

1816
DEBUG_ = False
1917

@@ -132,7 +130,7 @@ def generate_x_constraints_mat(G, h, N, nx, u0, theta, kappa, minx, maxx):
132130
tG[0, -1] = -1.0
133131
cG = np.vstack([cG, tG])
134132

135-
print(cG)
133+
# print(cG)
136134

137135
tau = cG[:, :-1]
138136
g = cG[:, -1]
@@ -180,15 +178,15 @@ def model_predictive_control(A, B, N, Q, R, T, x0, u0, mindu=None, maxdu=None, m
180178
kappa = psi * x0 + gamma * u0
181179
G, h = generate_x_constraints_mat(G, h, N, nx, u0, theta, kappa, minx, maxx)
182180

183-
P = matrix(H)
184-
q = matrix(g)
185-
G = matrix(G)
186-
h = matrix(h)
187-
sol = cvxopt.solvers.qp(P, q, G, h)
181+
# print(H)
182+
# print(g)
183+
# print(G)
184+
# print(h)
185+
186+
sol = pyecosqp.ecosqp(H, g, A=G, B=h)
187+
du = np.matrix(sol["x"]).T
188188

189-
du = np.matrix(sol["x"])
190189
# print(du)
191-
# print(len(du))
192190

193191
fx = psi * x0 + gamma * u0 + theta * du
194192

@@ -244,6 +242,7 @@ def test1():
244242

245243
target = T.reshape(N, nx)
246244
for ii in range(len(x[0, :]) + 1):
245+
# print(x[-1, ii] - target[-1, ii])
247246
assert abs(x[-1, ii] - target[-1, ii]) <= 0.3, "Error"
248247

249248

@@ -782,7 +781,7 @@ def test12():
782781
mindu = -0.5
783782
maxdu = 0.5
784783

785-
x, u, du = model_predictive_control(A, B, N, Q, R, T, x0, u0, maxx=maxx, minx=minx, maxdu=maxdu, mindu=mindu)
784+
x, u, du = model_predictive_control(A, B, N, Q, R, T, x0, u0, mindu=mindu, maxdu=maxdu, maxx=maxx, minx=minx)
786785

787786
# test
788787
tx = x0

0 commit comments

Comments
 (0)