Hi,
I am new to Julia and would like to run a set of operations repeatedly
for a finite set of time. I tried to implement the following code:
using JuMP, Ipopt
Truck = Model(solver=IpoptSolver(print_level=0))
#Initial Values
gear_0 = 1
v_0 = 20
N_0 = 600
#Constants:
i_f = 3.27
eta_f = 0.95
eta_t = 0.95
r_w = 0.52
gear = 1
i = [11.27 9.14 7.17 5.81 4.62 3.75 3.01 2.44 1.91 1.55 1.23 1]
#Discretization
n = 500
@defVar(Truck,Δt≥0,start = 1/n)
@defNLExpr(t_f,Δt*n)
@defVar(Truck,600<=N[0:n]<=2500)
@defVar(Truck,1<=gear[0:n]<=12)
@defVar(Truck,i_t[0:n])
@addConstraint(Truck,N[0]==N_0)
@addConstraint(Truck,gear[0]==gear_0)
@addConstraint(Truck,i_t[0]==i[1])
@defNLExpr(N[j=0:n],(30*i_t[j]*i_f)/(pi*r_w))
for j in 1:n
if(gear[j]==1)
if(N[j]>=1500)
gear[j]= 2
else
gear[j] = 1
end
elseif(gear[j]==2)
if(N[j]>=1501)
gear[j] = 3
elseif(N[j]<=950)
gear[j]= 1
else
gear[j] = 2
end
elseif(gear[j]==3)
if(N[j]>=1502)
gear[j] = 4
elseif(N[j]<=960)
gear[j] = 2
else
gear[j] = 3
end
elseif(gear[j]==4)
if(N[j]>=1503)
gear[j] = 5;
elseif(N[j]<=970)
gear[j] = 3
else
gear[j] = 4
end
elseif(gear[j]==5)
if(N[j]>=1504)
gear[j] = 6;
elseif(N[j]<=980)
gear[j] = 4
else
gear[j] = 5
end
elseif(gear[j]==6)
if(N[j]>=1505)
gear[j] = 7
elseif(N[j]<=990)
gear[j] = 5
else
gear[j] = 6
end
elseif(gear[j]==7)
if(N[j]>=1497)
gear[j] = 8
elseif(N[j]<=1000)
gear[j] = 6
else
gear[j] = 7
end
elseif(gear[j]==8)
if(N[j]>=1489)
gear[j] = 9
elseif(N[j]<=1006)
gear[j] = 7
else
gear[j] = 8
end
elseif(gear[j]==9)
if(N[j]>=1481)
gear[j] = 10
elseif(N[j]<=1012)
gear[j] = 8
else
gear[j] = 9
end
elseif(gear[j]==10)
if(N[j]>=1473)
gear[j] = 11
elseif(N[j]<=1018)
gear[j] = 9
else
gear[j] = 10
end
elseif(gear[j]==11)
if(N[j]>=1465)
gear[j] = 12
elseif(N[j]<=1024)
gear[j] = 10
else
gear[j] = 11
end
elseif(gear[j]==12)
if(N[j]<=1030)
gear[j] = 11
else
gear[j] = 12
end
end
i_t[j] = i[gear[j]]
end
However, I keep getting the error:
LoadError: TypeError: non-boolean
(JuMP.GenericRangeConstraint{JuMP.GenericAffExpr{Float64,JuMP.Variable}}) used
in boolean context
while loading In[52], in expression starting on line 25
in anonymous at no file
I am clueless about how I could debug this!
Thank you.