NLOptControl.jl

NLOptControl.jl

The following link provides documentation all of the exported NLOptControl.jl functions:


Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 1/1/2017, Last Modified: 6/14/2017


source

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 ––––––––––––––––––––––––––––––––––––––––––-

source

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


source

defineTolerances!(n)

Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 2/8/2017, Last Modified: 2/8/2017


source

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


source

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


source

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


source
NLOptControl.maxDFMethod.

Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 12/8/2016, Last Modified: 3/29/2017


source
NLOptControl.minDFMethod.

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


source

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


source

Author: Huckleberry Febbo, Graduate Student, University of Michigan Date Create: 3/26/2017, Last Modified: 4/27/2017


source