Multiple shooting, DAE, using IDA

359 views
Skip to first unread message

Sarry Haj Yahia

unread,
Nov 16, 2017, 9:31:06 AM11/16/17
to CasADi
Hello Casadi team, 

 I was wondering if there is an example in casadi on how to apply multiple shooting method on a DAE system using Casadi? 
 I know that a collocation method would be favorable, hence it will be the next step of my learning. 

Regards, 
Sarry 


Joel Andersson

unread,
Nov 17, 2017, 10:48:01 AM11/17/17
to CasADi

Sarry Haj Yahia

unread,
Nov 17, 2017, 11:24:55 AM11/17/17
to CasADi
Hi Joel,  Thank you for your quick response, I attempt to use the same method, however, I get a msg similar to the following: 


F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

The residual routine or the linear setup or solve routine had a recoverable error, but IDACalcIC was unable to recover.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_NO_RECOVERY". Consult IDAS documentation.

Warning: Cutting back alpha due to evaluation error
F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

The residual routine or the linear setup or solve routine had a recoverable error, but IDACalcIC was unable to recover.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_NO_RECOVERY". Consult IDAS documentation.

Warning: Cutting back alpha due to evaluation error
F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

The residual routine or the linear setup or solve routine had a recoverable error, but IDACalcIC was unable to recover.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_NO_RECOVERY". Consult IDAS documentation.

Warning: Cutting back alpha due to evaluation error
Newton/Linesearch algorithm failed to converge.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_CONV_FAIL". Consult IDAS documentation.

Warning: Cutting back alpha due to evaluation error
Newton/Linesearch algorithm failed to converge.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_CONV_FAIL". Consult IDAS documentation.

Warning: Cutting back alpha due to evaluation error
Newton/Linesearch algorithm failed to converge.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_CONV_FAIL". Consult IDAS documentation.

Warning: Cutting back alpha due to evaluation error
Newton/Linesearch algorithm failed to converge.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_CONV_FAIL". Consult IDAS documentation.


F:jacF failed: NaN detected for output o0, at nonzero index 32 (row 16, col 4).
psetup failed: The assertion "!isnan(A[k])" on line 110 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/csparse/csparse_interface.cpp" failed. 
Nonzero 32 is not-a-number

The residual routine or the linear setup or solve routine had a recoverable error, but IDACalcIC was unable to recover.
solver:nlp_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_NO_RECOVERY". Consult IDAS documentation.
...
...
...
...
...
.
...
...
...
.
...

Warning: Cutting back alpha due to evaluation error
F:daeF failed: NaN detected for output alg, at (row 5, col 0).
F:daeF failed: NaN detected for output alg, at (row 9, col 0).
F:daeF failed: NaN detected for output alg, at (row 5, col 0).
F:daeF failed: NaN detected for output alg, at (row 5, col 0).
F:daeF failed: NaN detected for output alg, at (row 9, col 0).
F:daeF failed: NaN detected for output alg, at (row 5, col 0).
F:daeF failed: NaN detected for output alg, at (row 5, col 0).
F:daeF failed: NaN detected for output alg, at (row 9, col 0).
F:daeF failed: NaN detected for output alg, at (row 5, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 5, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 5, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 5, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 5, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 5, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 3, col 1).
fsens18_F:jtimesF failed: NaN detected for output fwd_alg, at (row 3, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
fsens18_F:daeF failed: NaN detected for output alg, at (row 9, col 0).
fsens18_F:jtimesF failed: NaN detected for output fwd_ode, at (row 0, col 0).
Newton/Linesearch algorithm failed to converge.
solver:nlp_jac_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_CONV_FAIL". Consult IDAS documentation.

Sorry, things failed ?!?!

Number of Iterations....: 25
...
...
....
...
Newton/Linesearch algorithm failed to converge.
solver:nlp_jac_g failed: on line 566 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp"
IDACalcIC on line 399 of file "/home/travis/build/casadi/binaries/casadi/casadi/interfaces/sundials/idas_interface.cpp" returned "IDA_CONV_FAIL". Consult IDAS documentation.

Exception of type: Eval_Error in file "../../../../Ipopt/src/Algorithm/IpOrigIpoptNLP.cpp" at line 646:
 Exception message: success evaluated false: Error evaluating the jacobian of the equality constraints

Number of objective function evaluations             = 35
Number of objective gradient evaluations             = 6
Number of equality constraint evaluations            = 485
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 29
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 26
Total CPU secs in IPOPT (w/o function evaluations)   =      3.090
Total CPU secs in NLP function evaluations           =    850.577

EXIT: Invalid number in NLP function or derivative detected.
                   proc           wall      num           mean             mean
                   time           time     evals       proc time        wall time
        nlp_f     2.553 [s]      2.552 [s]    32      79.78 [ms]       79.75 [ms]
        nlp_g     2.884 [s]      2.885 [s]    33      87.39 [ms]       87.42 [ms]
   nlp_grad_f     5.957 [s]      5.957 [s]     7     851.00 [ms]      850.95 [ms]
    nlp_jac_g   161.692 [s]    161.689 [s]    28    5774.71 [ms]     5774.62 [ms]
   nlp_hess_l   672.765 [s]    672.765 [s]    25   26910.60 [ms]    26910.59 [ms]
 all previous   845.851 [s]    845.847 [s]
callback_prep     0.000 [s]      0.000 [s]     4       0.00 [ms]        0.00 [ms]
       solver    12.100 [s]     12.104 [s]
     mainloop   857.951 [s]    857.951 [s]

Joel Andersson

unread,
Nov 17, 2017, 3:24:27 PM11/17/17
to CasADi
You probably need to start by making sure you can simulate the system using IDAS. Joel
Reply all
Reply to author
Forward
0 new messages