NLOptControl.jl
The following link provides documentation all of the exported NLOptControl.jl
functions:
NLOptControl.configure!
— Method.Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 1/1/2017, Last Modified: 6/14/2017
NLOptControl.define!
— Method.n=define!(;numStates=2,numControls=1,X0=[0.,1],XF=[0.,-1.],XL=[0.,-Inf],XU=[1/9,Inf],CL=[-Inf],CU=[Inf])
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 1/1/2017, Last Modified: 6/9/2017
Citations:
Initially Influenced by: S. Hughes. steven.p.hughes@nasa.gov Source: DecisionVector.m located here ––––––––––––––––––––––––––––––––––––––––––-
NLOptControl.defineSolver!
— Method.defineSolver!(n;(:name=>:Ipopt))
To debug KNITRO turn up the output level
Try to tune KNITRO
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 2/9/2017, Last Modified: 5/29/2017
NLOptControl.defineTolerances!
— Method.defineTolerances!(n)
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 2/8/2017, Last Modified: 2/8/2017
NLOptControl.evalMaxDualInf
— Method.maxDualInf = evalMaxDualInf(n)
funtionality to evaluate maximum dual infeasibility of problem
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 2/13/2017, Last Modified: 2/13/2017
NLOptControl.integrate!
— Method.for integrating JuMP variables
Expr=integrate!(n,u;(:mode=>:control)) Expr=integrate!(n,u,idx=1;C=0.5,(:variable=>:control),(:integrand=>:squared)) Expr=integrate!(n,n.r.u[:,1];D=rand(n.numStatePoints),(:variable=>:control),(:integrand=>:squared),(:integrandAlgebra=>:subtract)) #TODO fix D ::Array{JuMP.NonlinearParameter,1} –––––––––––––––––––––––––––––––––––––––––––
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 1/2/2017, Last Modified: 5/29/2017
NLOptControl.linearStateTolerances!
— Method.linearStateTolerances!(n)
the purpose of this function is to taper the tolerances on the constant state constraints
the idea is that when doing MPC, the final states are well within the bounds so that the next optimization is not initalized at an infeasible point
if you want a constant bond, set the slope to zero
default is a positive slope on the lower bound and a negative slope on the upper bound
this functionality in not needed for states like position, so you do not need to add a linearStateTol for all states
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 3/23/2017, Last Modified: 3/25/2017
NLOptControl.maxDF
— Method.Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 12/8/2016, Last Modified: 3/29/2017
NLOptControl.minDF
— Method.maximum(x->maximum(x[:A]), dfs) -> consider
maximum(x->maximum(filter(y->y !== nothing, x[:A])), dfs)
minimum(x->maximum(filter(y->y !== nothing, x[:t])), dfs)
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 12/8/2016, Last Modified: 3/29/2017
NLOptControl.resultsDir!
— Method.description = string( " * ")
resultsDir!(r;results_name,description=description)
removes results folder and creates a new one
TODO consider putting in a warning or some sort of an interaction with user
Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 3/26/2017, Last Modified: 5/29/2017
NLOptControl.savePlantData!
— Method.Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 3/26/2017, Last Modified: 4/27/2017