Hi @zling. Your project uses the GMP-AOA module to solve an MINLP problem. If I run the project, after loading the case file, then the AIMMS Presolver used by the GMP-AOA module concludes that the model is infeasible, and therefore CONOPT is not called. So I do not know how you obtained that CONOPT 4.1 related message.
The model is infeasible, that is, no feasibile solution exists. AIMMS will print an infeasibility analysis, in the listing file, if you switch on the Solvers General option ‘Display infeasibility analysis’.
The model only seems to be nonlinear because you are using the max() function in the definition of some of the variables. For example, you defined:
maxBPT = max(t,Energyflow('HPS','HPS-MPS',t))
This maxBPT variable is only used in the definition of the variable ccBPT:
ccBPT = (maxBPT*a('BPT'))+b('BPT')
The variable ccBPT is only used, with a positive term, in the objective variable, which you are minimizing. Instead of using the current definition of maxBPT you can therefore use the following constraint:
Constraint c_maxBPT {
IndexDomain: (t);
Unit: hour*kW;
Definition: maxBPT >= Energyflow('HPS','HPS-MPS',t);
}
If you use this constraint then in any optimal solution maxBPT will become equal to max(t,Energyflow('HPS','HPS-MPS',t)). The advantage of using this constraint is that you do not need the max() function, and if you apply this reformulation trick to all variables using the max() function then you can transform this model into a linear MIP model.
Note that reformulating the model as a linear model will not make the model feasible, but for an MIP model it is often easier to analyze infeasibilities. Moreover, solving an MIP model is often faster than solving an MINLP model, and by solving the MIP model you will find a global optimum while GMP-AOA might only find a local optimum (once the model is feasible).