Python cvxpy.vstack() Examples
The following are 5
code examples of cvxpy.vstack().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
cvxpy
, or try the search function
.
Example #1
Source File: diffdrive_2d.py From SCvx with MIT License | 6 votes |
def get_constraints(self, X_v, U_v, X_last_p, U_last_p): """ Get model specific constraints. :param X_v: cvx variable for current states :param U_v: cvx variable for current inputs :param X_last_p: cvx parameter for last states :param U_last_p: cvx parameter for last inputs :return: A list of cvx constraints """ # Boundary conditions: constraints = [ X_v[:, 0] == self.x_init, X_v[:, -1] == self.x_final, U_v[:, 0] == 0, U_v[:, -1] == 0 ] # Input conditions: constraints += [ 0 <= U_v[0, :], U_v[0, :] <= self.v_max, cvx.abs(U_v[1, :]) <= self.w_max, ] # State conditions: constraints += [ X_v[0:2, :] <= self.upper_bound - self.robot_radius, X_v[0:2, :] >= self.lower_bound + self.robot_radius, ] # linearized obstacles for j, obst in enumerate(self.obstacles): p = obst[0] r = obst[1] + self.robot_radius lhs = [(X_last_p[0:2, k] - p) / (cvx.norm((X_last_p[0:2, k] - p)) + 1e-6) * (X_v[0:2, k] - p) for k in range(K)] constraints += [r - cvx.vstack(lhs) <= self.s_prime[j]] return constraints
Example #2
Source File: test_synth.py From controlpy with GNU General Public License v3.0 | 5 votes |
def synth_h2_state_feedback_LMI(A, Binput, Bdist, C1, D12): #Dullerud p 217 (?) n = A.shape[0] #num states m = Binput.shape[1] #num control inputs q = C1.shape[0] #num outputs to "be kept small" X = cvxpy.Variable(n,n) Y = cvxpy.Variable(m,n) Z = cvxpy.Variable(q,q) tmp1 = cvxpy.hstack(X, (C1*X+D12*Y).T) tmp2 = cvxpy.hstack((C1*X+D12*Y), Z) tmp = cvxpy.vstack(tmp1, tmp2) constraints = [A*X + Binput*Y + X*A.T + Y.T*Binput.T + Bdist*Bdist.T == -cvxpy.Semidef(n), tmp == cvxpy.Semidef(n+q), ] obj = cvxpy.Minimize(cvxpy.trace(Z)) prob = cvxpy.Problem(obj, constraints) prob.solve(solver='CVXOPT', kktsolver='robust') K = -Y.value*np.linalg.inv(X.value) return K
Example #3
Source File: devices.py From cvxpower with GNU General Public License v3.0 | 5 votes |
def cost(self): T, S = self.terminals[0].power_var.shape if self.final_energy_price is not None: if self.energy is None: self.energy = cvx.Variable(self.terminals[0].power_var.shape) cost = np.zeros((T - 1, S)) final_cost = cvx.reshape( self.energy[-1, :] * self.final_energy_price[0, 0], (1, S)) cost = cvx.vstack([cost, final_cost]) else: cost = np.zeros(T, S) return cost
Example #4
Source File: rocket_landing_3d.py From SCvx with MIT License | 4 votes |
def get_constraints(self, X_v, U_v, X_last_p, U_last_p): """ Get model specific constraints. :param X_v: cvx variable for current states :param U_v: cvx variable for current inputs :param X_last_p: cvx parameter for last states :param U_last_p: cvx parameter for last inputs :return: A list of cvx constraints """ # Boundary conditions: constraints = [ X_v[0, 0] == self.x_init[0], X_v[1:4, 0] == self.x_init[1:4], X_v[4:7, 0] == self.x_init[4:7], X_v[7:11, 0] == self.x_init[7:11], X_v[11:14, 0] == self.x_init[11:14], # X_[0, -1] == self.x_final[0], # final mass is free X_v[1:, -1] == self.x_final[1:], # U_v[1:3, -1] == 0, ] constraints += [ # State constraints: X_v[0, :] >= self.m_dry, # minimum mass cvx.norm(X_v[1: 3, :], axis=0) <= X_v[3, :] / self.tan_gamma_gs, # glideslope cvx.norm(X_v[8:10, :], axis=0) <= np.sqrt((1 - self.cos_theta_max) / 2), # maximum angle cvx.norm(X_v[11: 14, :], axis=0) <= self.w_B_max, # maximum angular velocity # Control constraints: cvx.norm(U_v[0:2, :], axis=0) <= self.tan_delta_max * U_v[2, :], # gimbal angle constraint # self.cos_delta_max * self.gamma <= U_v[2, :], cvx.norm(U_v, axis=0) <= self.T_max, # upper thrust constraint # U_v[2, :] >= self.T_min # simple lower thrust constraint # # Lossless convexification: # self.gamma <= self.T_max, # self.T_min <= self.gamma, # cvx.norm(U_v, axis=0) <= self.gamma ] # linearized lower thrust constraint lhs = [U_last_p[:, k] / (cvx.norm(U_last_p[:, k])) * U_v[:, k] for k in range(K)] constraints += [ self.T_min - cvx.vstack(lhs) <= self.s_prime ] return constraints
Example #5
Source File: model_6dof.py From SuccessiveConvexificationFreeFinalTime with MIT License | 4 votes |
def get_constraints(self, X_v, U_v, X_last_p, U_last_p): """ Get model specific constraints. :param X_v: cvx variable for current states :param U_v: cvx variable for current inputs :param X_last_p: cvx parameter for last states :param U_last_p: cvx parameter for last inputs :return: A list of cvx constraints """ # Boundary conditions: constraints = [ X_v[0, 0] == self.x_init[0], X_v[1:4, 0] == self.x_init[1:4], X_v[4:7, 0] == self.x_init[4:7], # X_v[7:11, 0] == self.x_init[7:11], # initial orientation is free X_v[11:14, 0] == self.x_init[11:14], # X_[0, -1] == self.x_final[0], # final mass is free X_v[1:, -1] == self.x_final[1:], U_v[1:3, -1] == 0, ] constraints += [ # State constraints: X_v[0, :] >= self.m_dry, # minimum mass cvx.norm(X_v[2: 4, :], axis=0) <= X_v[1, :] / self.tan_gamma_gs, # glideslope cvx.norm(X_v[9:11, :], axis=0) <= np.sqrt((1 - self.cos_theta_max) / 2), # maximum angle cvx.norm(X_v[11: 14, :], axis=0) <= self.w_B_max, # maximum angular velocity # Control constraints: cvx.norm(U_v[1:3, :], axis=0) <= self.tan_delta_max * U_v[0, :], # gimbal angle constraint cvx.norm(U_v, axis=0) <= self.T_max, # upper thrust constraint # U_v[0, :] >= self.T_min # simple lower thrust constraint ] # linearized lower thrust constraint rhs = [U_last_p[:, k] / cvx.norm(U_last_p[:, k]) * U_v[:, k] for k in range(X_v.shape[1])] constraints += [ self.T_min <= cvx.vstack(rhs) ] return constraints