Name
|
Description
|
Attributes
|
Constraints
|
The constraints in the optimization process.
|
Type: Array of OptimizationConstraint
Access: Read-Only
|
DeclaredName
|
The name of the object as declared.
|
Type: String
Access: Read-Only
|
DisplayName
|
The name displayed for this object in output windows such as views, plots, and reports.
|
Type: String
Access: Read/Write
|
EngineOutput
|
StringArray containing all lines written to standard output from the third party optimization library. Note: NLopt does not generate output.
|
Type: StringArray
Access: Read-Only
|
FeasibilityTolerance
|
The application of this property depends on which third party optimization engine is loaded. If Ipopt is loaded, this value is used to set the "constr_viol_tol option". If SNOPT is loaded, this value is used to set the "Major feasibility tolerance" and the "Minor feasibility tolerance". If NLopt is loaded, this value is used to set each of the individual constraint tolerances.
|
Type: Variable
Access: Read/Write
|
FiniteDifferenceMethod
|
The method used to obtain finite difference derivatives.
|
Type: Variable
Access: Read/Write
|
Gradient
|
The Gradient of the objective function. This is the partial derivative of the objective with respect to the state variables. At the beginning of the optimization process, FreeFlyer fills this array with a constant (-999) so that any derivatives the user provides using this array can be automatically detected. All derivatives that the user does not provide will be calculated numerically. When FreeFlyer calculates the derivatives numerically, the elements of the Gradient are filled in one at a time as they are calculated.
|
Type: Array
Access: Read/Write
|
GradientSparsity
|
This array represents the sparsity of the gradient. Utilizing this property is not required to solve an optimization problem. However, specifying the complete sparsity structure of a problem (both for the Jacobian and the gradient) in addition to setting Optimizer.ValidateUserDerivatives = 0 will significantly reduce the processing time needed for the Optimizer's sampling phase. If the sparsity isn't specified by the user, then FreeFlyer will detect it automatically. The detected sparsity structure will be readable from this property after the first 3 nominal evaluations of the Optimizer.
Each element of this array property is either -999 (corresponds to an unknown element), a 0 (corresponding to an element that is always zero), or a 1 (corresponding to an element that is not always zero).
|
Type: Array
Access: Read/Write
|
Jacobian
|
The Jacobian of the constraints. This is the partial derivative of the constraints with respect to the state variables. At the beginning of the optimization process, FreeFlyer fills this matrix with a constant (-999) so that any derivatives the user provides using this matrix can be automatically detected. All derivatives that the user does not provide will be calculated numerically. When FreeFlyer calculates the derivatives numerically, the columns of the Jacobian are filled in one at a time as they are calculated.
|
Type: Matrix
Access: Read/Write
|
JacobianSparsity
|
This matrix represents the sparsity of the Jacobian of the user created constraints. It does not include the Jacobian of constraints associated with TrajectorySegment objects. Utilizing this property is not required to solve an optimization problem. However, specifying the complete sparsity structure of a problem (both for the Jacobian and the gradient) in addition to setting Optimizer.ValidateUserDerivatives = 0 will significantly reduce the processing time needed for the Optimizer's sampling phase. If the sparsity isn't specified by the user, then FreeFlyer will detect it automatically. The detected sparsity structure will be readable from this property after the first 3 nominal evaluations of the Optimizer.
Each element of this matrix property is either -999 (corresponds to an unknown element), a 0 (corresponding to an element that is always zero), or a 1 (corresponding to an element that is not always zero).
|
Type: Matrix
Access: Read/Write
|
LastGeneratedEngineOutput
|
The most recent line or set of lines (newline delimited) reported from the optimization engine. Note: NLopt does not generate output.
|
Type: String
Access: Read-Only
|
MaximumInfeasibility
|
The current maximum violation of both the state variable bounds and the constraint bounds. This property is updated anytime the Minimize/Maximize Optimizer methods are used.
|
Type: Variable
Access: Read-Only
|
MaximumInfeasibilitySource
|
Holds the string label corresponding to the state variable or constraint that possesses the highest bound violation (see the Optimizer.MaxInfeasibility propery for more information).
Labels for TrajectoryPhase variables/constraints are formatted as follows:
___________________________________________________________
Variables: phaseA_nB_C
A : The phase number
B : The node number.
C : The state, time, or control element.
Can be: x, y, z, vx, vy, vz, mass, time, or uD, where
D is the control variable number.
___________________________________________________________
Collocation defect constraints: phaseA_cB_C
A : The phase number
B : The collocation point number.
C : The state derivative element.
Can be: vx, vy, vz, ax, ay, az, or mdot.
___________________________________________________________
Node spacing constraints: phaseA_nB_spacing
A : The phase number.
B : The node number.
___________________________________________________________
Control model path constraints: phaseA_nB_cmpc_C
A : The phase number.
B : The node number.
C : A short description of the path constraint.
___________________________________________________________
Time of flight constraint: phaseA_tof
A : The phase number.
___________________________________________________________
State boundary constraints: phaseA_sbc_B_C
A : The phase number.
B : The endpoint of the state boundary constraint.
C : A short description of the state boundary constraint.
___________________________________________________________
State path constraints: phaseA_spc_nB_C
A : The phase number.
B : The node number.
C : A short description of the state path constraint.
___________________________________________________________
Interphase link constraints: link_A_pB_C_pD_E
A : The link endpoint of the first phase
B : The phase number of the first phase.
A : The link endpoint of the second phase
D : The phase number of the second phase.
E : A short description of the interphase constraint.
Note: All phase/node/collocation point numbers are equivalent to the corresponding index plus one. In other words, the first node point corresponds to node number 1. Phases are numbered in the order they were added to the optimizer.
|
Type: String
Access: Read-Only
|
MaximumNominalEvaluationCount
|
Defines the maximum number of nominal evaluations that will be performed before the optimization process is terminated.
|
Type: Variable
Access: Read/Write
|
NominalEvaluationCount
|
The current number of nominal evaluations that have been completed.
|
Type: Variable
Access: Read-Only
|
NumberOfConstraints
|
The number of Constraints in the optimization process.
|
Type: Variable
Access: Read-Only
|
NumberOfStateVariables
|
The number of StateVariables in the optimization process.
|
Type: Variable
Access: Read-Only
|
ObjectId
|
The unique identifier for the object.
|
Type: Variable
Access: Read-Only
|
ObjectiveFunctionLabel
|
Label associated with the objective function being minimized or maximized. This is used only for reporting.
|
Type: String
Access: Read/Write
|
ObjectiveFunctionScale
|
The scale used for the objective function. This can be used to normalize the objective function value to be the same order of magnitude of constraints and state variables to preserve better matrix conditioning.
|
Type: Variable
Access: Read/Write
|
ObjectiveFunctionValue
|
The last evaluated value of the objective function. This is set from the Optimize method.
|
Type: Variable
Access: Read-Only
|
ObjectType
|
The type of the object.
|
Type: String
Access: Read-Only
|
OptimizationPhase
|
Reports the phase of the Optimization process, which indicates whether the current iteration is associated with a nominal guess, or in evaluating a derivative.
|
Type: Variable
Access: Read-Only
|
ProblemName
|
The name associated with the problem being solved. This is used only for reporting.
|
Type: String
Access: Read/Write
|
ReturnCode
|
Holds the return code of the optimizer after the optimization process completes. Note that this code is specific to the optimization library being used.
|
Type: Variable
Access: Read-Only
|
ReturnString
|
Holds the return string of the optimizer after the optimization process completes. Note that this code is specific to the optimization library being used.
|
Type: String
Access: Read-Only
|
ScaledGradient
|
The scaled Gradient of the objective function. This represents the Gradient after it has been transformed using the scales of the state variables and objective.
|
Type: Array
Access: Read-Only
|
ScaledJacobian
|
The scaled Jacobian of the constraints. This represents the Jacobian after it has been transformed using the scales of the state variables and constraints.
|
Type: Matrix
Access: Read-Only
|
StateVariables
|
The state variable in the optimization process.
|
Type: Array of OptimizationStateVariable
Access: Read-Only
|
ThirdPartyLibraryName
|
The name of the third pary optimization library that is currently loaded. This property will be blank until the optimizer loads an optimization engine.
|
Type: String
Access: Read-Only
|
TotalEvaluationCount
|
The current total number of evaluations of the constraints and the objective function.
|
Type: Variable
Access: Read-Only
|
TrajectoryPhases
|
The TrajectoryPhases that have been added to the optimizer.
|
Type: Array of TrajectoryPhase
Access: Read-Only
|
UseJacobianSparsity
|
Determines whether to process only the nonzero portion of the Jacobian. If this property is set to 0, the Jacobian will be treated as fully dense.
|
Type: Variable
Access: Read/Write
|
ValidateUserDerivatives
|
Determines whether initial validation is performed on the values of user-provided derivatives. When set to true, an error is reported if a user-provided derivative is more than 10% different than the finite difference derivative evaluated during the sampling process.
|
Type: Variable
Access: Read/Write
|