47 adding the variables and constraints to the model
48 @ingroup PYTHON1THREAD_PINADD
51 demand = [1.0 + 2.3 * pow(1.015, t)
for t
in range(T)]
56 varidx = self.addVariable(0, co.Conopt.Infinity, 18)
57 self.
vartd.append(varidx)
60 varidx = self.addVariable(0, co.Conopt.Infinity, 7 * (t + 1))
61 self.
varcs.append(varidx)
64 varidx = self.addVariable(0, co.Conopt.Infinity, 7)
65 self.
vars.append(varidx)
68 varidx = self.addVariable(
71 self.getVariable(self.
vartd[t]).curr
72 - self.getVariable(self.
vars[t]).curr,
74 self.
vard.append(varidx)
78 varidx = self.addVariable(
81 self.getVariable(self.
varr[t - 1]).curr
82 - self.getVariable(self.
vard[t]).curr,
85 varidx = self.addVariable(
88 500 - self.getVariable(self.
vard[t]).curr,
90 self.
varr.append(varidx)
93 varidx = self.addVariable(1, co.Conopt.Infinity, 14)
94 self.
varp.append(varidx)
97 varidx = self.addVariable(-co.Conopt.Infinity, co.Conopt.Infinity)
105 for i
in range(len(xkeep)):
106 self.getVariable(i).curr = xkeep[i]
109 self.getVariable(self.
vartd[T - 1]).curr = (
110 2 * self.getVariable(self.
vartd[T - 2]).curr
111 - self.getVariable(self.
vartd[T - 3]).curr
114 self.getVariable(self.
varcs[T - 1]).curr = (
115 2 * self.getVariable(self.
varcs[T - 2]).curr
116 - self.getVariable(self.
varcs[T - 3]).curr
119 self.getVariable(self.
vars[T - 1]).curr = (
120 2 * self.getVariable(self.
vars[T - 2]).curr
121 - self.getVariable(self.
vars[T - 3]).curr
124 self.getVariable(self.
vard[T - 1]).curr = (
125 2 * self.getVariable(self.
vard[T - 2]).curr
126 - self.getVariable(self.
vard[T - 3]).curr
129 self.getVariable(self.
varr[T - 1]).curr = (
130 2 * self.getVariable(self.
varr[T - 2]).curr
131 - self.getVariable(self.
varr[T - 3]).curr
134 self.getVariable(self.
varp[T - 1]).curr = (
135 2 * self.getVariable(self.
varp[T - 2]).curr
136 - self.getVariable(self.
varp[T - 3]).curr
139 self.getVariable(self.
varrev[T - 1]).curr = (
140 2 * self.getVariable(self.
varrev[T - 2]).curr
141 - self.getVariable(self.
varrev[T - 3]).curr
147 for i
in range(len(xstat)):
148 self.getVariable(i).varstatus = xstat[i]
151 self.getVariable(self.
vartd[T - 1]).varstatus = self.getVariable(
155 self.getVariable(self.
varcs[T - 1]).varstatus = self.getVariable(
159 self.getVariable(self.
vars[T - 1]).varstatus = self.getVariable(
163 self.getVariable(self.
vard[T - 1]).varstatus = self.getVariable(
167 self.getVariable(self.
varr[T - 1]).varstatus = self.getVariable(
171 self.getVariable(self.
varp[T - 1]).varstatus = self.getVariable(
175 self.getVariable(self.
varrev[T - 1]).varstatus = self.getVariable(
180 objcoeff = [pow(1.05, 1 - (t + 1))
for t
in range(T)]
182 objidx = self.addConstraint(
183 co.ConstraintType_Free, 0.0, self.
varrev, objcoeff, objnlflag
189 considx = self.addConstraint(
190 co.ConstraintType_Eq,
191 demand[t] + 0.87 * 18.0,
197 considx = self.addConstraint(
198 co.ConstraintType_Eq,
207 considx = self.addConstraint(
208 co.ConstraintType_Eq,
215 considx = self.addConstraint(
216 co.ConstraintType_Eq,
224 [1.0, -0.75, 0.0, 0.0],
231 considx = self.addConstraint(
232 co.ConstraintType_Eq,
239 considx = self.addConstraint(
240 co.ConstraintType_Eq,
248 considx = self.addConstraint(
249 co.ConstraintType_Eq,
258 considx = self.addConstraint(
259 co.ConstraintType_Eq,
266 considx = self.addConstraint(
267 co.ConstraintType_Eq,
275 considx = self.addConstraint(
276 co.ConstraintType_Eq,
279 [1.0, 0.0, 0.0, 0.0],
288 for i
in range(len(estat)):
289 self.getConstraint(i).slackstatus = estat[i]
294 ).slackstatus = self.getConstraint(self.
consttdeq[T - 2]).slackstatus
298 ).slackstatus = self.getConstraint(self.
constseq[T - 2]).slackstatus
302 ).slackstatus = self.getConstraint(self.
constcseq[T - 2]).slackstatus
306 ).slackstatus = self.getConstraint(self.
constdeq[T - 2]).slackstatus
310 ).slackstatus = self.getConstraint(self.
constreq[T - 2]).slackstatus
314 ).slackstatus = self.getConstraint(self.
constdrev[T - 2]).slackstatus
317 self.setObjectiveElement(co.ObjectiveElement_Constraint, objidx)
320 self.setOptimizationSense(co.Sense_Maximize)