13-09-2011
15:50 -> Added to the file hessianAN.m the line
"Tj=kron(T,ones(1,ng));"
at line 109.
(this is needed if: variable final time; number of path constraints different from number of the dynamic equations)
17-08-2011
15:50 -> Uploaded this guide to compile ipopt under Windows 7 64bit with a 32 bit targer MATLAB interface.
Please contact me if you have any questions.
15:50 -> Using ICLOCS with parameters
Modified line 50 and 52 of gradientConst.m:
"dLp=data.map.W*(tf-t0)*dL.dp(:,i);"
-> "dLp=data.map.W*(tf-t0)*dL.dp(:,i-nt);"
"JaL{i}=dL.dp(:,i-nt);"
-> "JaL{i}=dL.dp(:,i-nt);"
11-08-2011
15:50 -> Using ICLOCS with parameters
Modified line 101 of jacConstz.m:
"gz=gz+sparse(1:M*ng,idx(:,i),reshape(dg.dp{i}',M*ng,1),M*ng,nz);"
-> "gz=gz+sparse(1:M*ng,idx(:,i),reshape(dg.dp{i-1}',M*ng,1),M*ng,nz);"
05-08-2011
13:42 -> The OrbitRising example doesn't work, have to comment the cvodes settings.
Modified line 273 of hessianAN.m:
"bzz=bzz+sparse(idx(:,i),idx(:,j),Hb{j,i}'.*adjoint,nz,nz);"
-> "bzz=bzz+sparse(idx(:,i),idx(:,j),Hb{j,i}'.*adjoint',nz,nz);"
19-07-2011
22:08 -> In ICLOCS it seems that if one defines the x0 then it cannot be chnged as an optimisation variable.
It would be useful to have x0 as a variable and at the same time beibg able to provide a guess value for x0.
To do so I changed the line 116 in transcribeOCP: "cx0=1;" -> "cx0=0;"
18:17 -> Modified line 290 of hessianAN.m
"bt=(bpp-bp2+bo-bp1).*adjoint'/e2;" -> "bt=(bpp-bp2+bo-bp1).*adjoint/e2;"
18:12 -> Modified line 94 of jacConstz.m
"idx=data.FD.index.f;nfd=size(idx,2);" -> "idx=data.FD.index.g;nfd=size(idx,2);"
18-07-2011
20:15 -> Had to modify 2 lines of a file when including boundary constraints
29-06-2011
12:25 -> Change line 94 of jacConstz.m from
idx=data.FD.index.f;nfd=size(idx,2);
to
idx=data.FD.index.g;nfd=size(idx,2); %from "index.f" to "index.g"
27-06-2011
15:47 -> Bycicle problem started.
14:22 -> The optimisation works worse suplying the analytic formulation of the hessian of the path constraints Hg. (why?)
13:30 -> If an H element (cell) is empty, the correspoding value is calculated numerically:
Yet to understand whether using a "central" or "forward" method.
13:27 -> Just noticed that the field .flag does not appear to be used when choosing between the numeric or analytic derivation of the Hessian.
The hessianAN function only checks whether the H cells are empty.
13:10 -> It works after modifying the line:
adjoint=data.lambda(n*M+M*ng+(~~nb):n*M+M*ng+nb);
to
adjoint=data.lambda(n*M+M*ng+(~~nb):n*M+M*ng+nb)'; % transpose needed
12:02 -> The numeric evaluation of the hessian in hessianAN returns an error, this maybe
has to do with the problem experienced before in hessianCD -> see the differences in hessianCD1
22-06-2011
16:33 -> Received and tested the compiled MATLAB librarier from Rodrigo.
For licencing reasons the libraries do not include the linear solver ma57 and use MUMPS instead (Ipopt should work faster with m57).
The BangBang ICLOCS example works.
Nth attempt to compile the MATLAB interface of Ipopt under Windows 7 (64 bit)
17-06-2011
17:31 -> have a look at http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII4.0/cygwin.htm
19:18 ->
completely useless... now looking at
http://web.mit.edu/ipopt_v3.8/doc/documentation.pdf
(with some godly help form MastroTux)
the MUMPS package requires gfortran; it has to be added in the cygwin setup
19:38 ->
got the fixed version of the make 3.81 and replaced in the bin folder of cygwin; seems to work better
or (after MastroTux's suggestion) use the mingw-make (maybe needs to be installed at the cygwin setup)
22:30 ->
found the mailing list topic http://list.coin-or.org/pipermail/ipopt/2010-November/002203.html
looks promising... following the instructions
http://www.mingw.org/wiki/msys
might not need to download MSYS Core 1.0.11 as it is already included in MSYS 1.0.11
using the Ipopt-3.9.3 with all the thirdparty packages obtained with wget
in the Ipopt-3.9.3 directory use:
./configure -C --enable-doscompile --enable-static --disable-shared
> ADD_CXXFLAGS="-fexceptions" ADD_CFLAGS="-fexceptions" ADD_FFLAGS="-fexceptions">
22:38 ->
configure was successful... running make...
... which miserably failed...
18-06-2011
01:11 ->
Downloaded and installed all the CUR packages of the latest version of cygwin;
Downloaded (again) the latest version of Ipopt (3.9.3);
Downloaded all the ThirdParty software using the scripts get.*, plus ma27ad.f and mc19ad.f in the HSL folder;
Substituted the make.exe with a patched one, moved the folder ipopt-3.9.3 to /home and created /home/ipopt/install (mkdir -p ipopt/install)
Run: ./configure -C --enable-doscompile --enable-static --disable-shared ADD_CXXFLAGS="-fexceptions" ADD_CFLAGS="-fexceptions" ADD_FFLAGS="-fexceptions" --prefix=$HOME/ipopt/install
"make" "make test" "make install" ...
... and amazingly everything worked fine
08:43 ->
The MATLAB interface compilation has been a nightmare and eventually...
Linux has won...
09:43 ->
The ipopt.mexglx has been successfully compiled with Ubuntu 10.04 following the instructions on
http://www.coin-or.org/Ipopt/documentation/documentation.html and https://projects.coin-or.org/Ipopt/wiki/MatlabInterface
21-06-2011
12:40 -> Trying to compile using MinGW and MSYS:
followed the installation instruction at http://www.mingw.org/wiki/MSYS
(got a strange error about missing make)
installing wget wget following the instructions here
13:06 -> the installation of wget doesn't work.
13:16 -> just copied the wget.exe in the bin directory and it works.
Now trying to configure Ipopt with '../configure -C --enable-doscompile --enable-static --disable-shared ADD_CXXFLAGS="-fexceptions" ADD_CFLAGS="-fexceptions" ADD_FFLAGS="-fexceptions"'
13:47 -> configure succesful ... make launched.
13:32 -> Starting the definition of the optimisation problem:
constant speed sleigh with nonholonomic no-slip constraint, constant speed and elliptical track.
20:29 -> To avoid an error reporting inconsistent matrix dimensions using IPOPT
I had do modify the line 113 of the file directCollocation.m:
"b(x0,xf,u0,uf,p,tf,vdat)];" -> "b(x0,xf,u0,uf,p,tf,vdat)'];"