Init
Index
CTModels.Init
CTModels.buildFunctionalInit
CTModels.buildFunctionalInit
CTModels.buildFunctionalInit
CTModels.buildFunctionalInit
CTModels.buildVectorInit
CTModels.checkDim
CTModels.formatData
CTModels.formatTimeGrid
CTModels.isaVectVect
In the examples in the documentation below, the methods are not prefixed by the module name even if they are private.
julia> using CTModels
julia> x = 1
julia> private_fun(x) # throw an error
must be replaced by
julia> using CTModels
julia> x = 1
julia> CTModels.private_fun(x)
However, if the method is reexported by another package, then, there is no need of prefixing.
julia> module OptimalControl
import CTModels: private_fun
export private_fun
end
julia> using OptimalControl
julia> x = 1
julia> private_fun(x)
Documentation
CTModels.Init
— TypeInitial guess for OCP, contains
- functions of time for the state and control variables
- vector for optimization variables
Initialization data for each field can be left to default or:
- vector for optimization variables
- constant / vector / function for state and control
- existing solution ('warm start') for all fields
Constructors:
Init()
: default initializationInit(state, control, variable, time)
: constant vector, function handles and / or matrices / vectors interpolated along given time gridInit(sol)
: from existing solution
Examples
julia> init = Init()
julia> init = Init(state=[0.1, 0.2], control=0.3)
julia> init = Init(state=[0.1, 0.2], control=0.3, variable=0.5)
julia> init = Init(state=[0.1, 0.2], controlt=t->sin(t), variable=0.5)
julia> init = Init(state=[[0, 0], [1, 2], [5, -1]], time=[0, .3, 1.], controlt=t->sin(t))
julia> init = Init(sol)
CTModels.buildFunctionalInit
— MethodbuildFunctionalInit(data, time, dim) -> CTModels.var"#25#26"
Build functional initialization: general interpolation case
CTModels.buildFunctionalInit
— MethodbuildFunctionalInit(
data::Function,
time,
dim
) -> CTModels.var"#27#28"{<:Function}
Build functional initialization: function case
CTModels.buildFunctionalInit
— MethodbuildFunctionalInit(
data::Nothing,
time,
dim
) -> CTModels.var"#25#26"
Build functional initialization: default case
CTModels.buildFunctionalInit
— MethodbuildFunctionalInit(
data::Union{Real, AbstractVector{<:Real}},
time,
dim
) -> Union{CTModels.var"#29#31", CTModels.var"#30#32"}
Build functional initialization: constant / 1D interpolation
CTModels.buildVectorInit
— MethodbuildVectorInit(data, dim) -> Any
Build vector initialization: default / vector case
CTModels.checkDim
— MethodcheckDim(actual_dim, target_dim)
Check if actual dimension is equal to target dimension, error otherwise
CTModels.formatData
— MethodformatData(data) -> Any
Convert matrix to vector of vectors (could be expanded)
CTModels.formatTimeGrid
— MethodformatTimeGrid(time) -> Any
Convert matrix time-grid to vector
CTModels.isaVectVect
— MethodisaVectVect(data) -> Bool
Return true if argument is a vector of vectors