Support AMPL files
From mintOC
The following files are useful for several discretized control problems listed on the AMPL Category page. They need to be saved to the same directory.
ampl_general.mod
param T > 0; # End time param nt > 0; # Number of discretization points in time param nu > 0; # Number of control discretization points param nx > 0; # Dimension of differential state vector param ntperu > 0; # nt / nu set I:= 0..nt; set U:= 0..nu-1; param uidx {I}; param fix_w; param fix_w; var w {U} >= 0, <= 1 binary; # control function var dt {U} >= 0, <= T; # stage length vector
ampl_general.dat
if ( fix_w > 0 ) then { for {i in U} { fix w[i]; } } if ( fix_dt > 0 ) then { for {i in U} { fix dt[i]; } } # Set indices of controls corresponding to time points for {i in 0..nu-1} { for {j in 0..ntperu-1} { let uidx[i*ntperu+j] := i; } } let uidx[nt] := nu-1;
OptimalControl.mod
This header file is required for solving AMPL models of ODE/DAE constrained optimal control problems using a solver that supports the TACO toolkit for AMPL control optimization.
suffix type symbolic IN; option type_table '\ 1 u0 piecewise constant control\ 2 u1 piecewise linear control\ 3 u1c piecewise linear continuous control\ 4 u3 piecewise cubic control\ 5 u3c piecewise cubic continuous control\ 6 dae DAE algebraic state variable\ 7 Lagrange Prevent least-squares detection in an objective\ '; function diff; function eval; function integral;