Dec-27-2022, 11:03 AM
(This post was last modified: Dec-27-2022, 01:35 PM by Yoriz.
Edit Reason: Added code tags
)
Thanks a lot. Here are my attempts. The constraints are not obeyed in the results
N = 1; T =24; P = 10 E = 20 dt = 1 # eta_c = 0.8 eta_d = 0.9 e0 = 0.95* E t = 0.02 p_c = np.linspace(0, P, T, endpoint=True) p_d = np.linspace(0, P, T, endpoint=False) A = np.tri(T) # lower trinagular matrix II = np.ones(T) e = cp.Variable((T,N)) e = t*II*x0 + eta_c*A@p_c - A@p_d/eta_d e[0] = e0 # use a for loop to define the unit constriant over each time period const = [] for k in range(T-1): # go through each period # const.append(x[0] == e0) #e[k+1] = t*x[k] + eta_c*p_c[k] - p_d[k]/eta_d p_c[k]*p_d[k] == 0 p_c[k] >= 0 p_c[k] <= P p_d[k] >= 0 p_d[k] <= P e[k+1] >= 0 e[k+1] <= E