|
1 | 1 | using AlgebraicControl.CMPC |
2 | | -#using AlgebraicControl.ParaConvCat |
| 2 | +using AlgebraicControl.ParaConvCat |
3 | 3 | using SCS |
4 | 4 | using Convex |
5 | 5 |
|
|
42 | 42 | xs = Variable(2, N) |
43 | 43 | us = Variable(1, N-1) |
44 | 44 |
|
45 | | -constraints = Constraint[ |
| 45 | +constraints2 = Constraint[ |
46 | 46 | xs[:, i+1] == A*xs[:,i] + B*us[:,i] for i in 1:N-1 |
47 | 47 | ] |
48 | 48 |
|
49 | 49 | for i in 1:N-1 |
50 | | - push!(constraints, xs[:,i][1] <= 3) |
51 | | - push!(constraints, xs[:,i][1] >= -3) |
52 | | - push!(constraints, xs[:,i][2] <= 2) |
53 | | - push!(constraints, xs[:,i][2] >= -2) |
54 | | - push!(constraints, us[:,i] <= 1) |
55 | | - push!(constraints, us[:,i] >= -1) |
| 50 | + push!(constraints2, xs[:,i][1] <= 3) |
| 51 | + push!(constraints2, xs[:,i][1] >= -3) |
| 52 | + push!(constraints2, xs[:,i][2] <= 2) |
| 53 | + push!(constraints2, xs[:,i][2] >= -2) |
| 54 | + push!(constraints2, us[:,i] <= 1) |
| 55 | + push!(constraints2, us[:,i] >= -1) |
56 | 56 | end |
57 | 57 |
|
58 | | -push!(constraints, xs[:,1] == x₀) |
| 58 | +push!(constraints2, xs[:,1] == x₀) |
59 | 59 |
|
60 | 60 | objective = sum([quadform(xs[:,i], Q) + R*square(us[:,i]) for i in 1:N-1]) |
61 | 61 |
|
62 | | -prob = minimize(objective, constraints) |
| 62 | +prob = minimize(objective, constraints2) |
63 | 63 |
|
64 | 64 | solve!(prob, SCS.Optimizer) |
0 commit comments