AutomationLabsModelPredictiveControl.IMPLEMENTATION_PROGRAMMING_LIST
— ConstantIMPLEMENTATION_PROGRAMMING_LIST = (
Constant tuple programming list.
AutomationLabsModelPredictiveControl.AbstractController
— TypeAbstractController
An abstract type that should be subtyped for controllers extensions.
AutomationLabsModelPredictiveControl.AbstractImplementation
— TypeAbstractImplementaiton
An abstract type that should be subtyped for activation function extensions, mainly for relu.
AutomationLabsModelPredictiveControl.AbstractReferences
— TypeAbstractReferences
An abstract type that should be subtyped for references extensions.
AutomationLabsModelPredictiveControl.AbstractSolvers
— TypeAbstractSolvers
An abstract type that should be subtyped for solver extensions.
AutomationLabsModelPredictiveControl.AbstractTerminal
— TypeAbstractTerminal
An abstract type that should be subtyped for terminal extensions.
AutomationLabsModelPredictiveControl.AbstractWeights
— TypeAbstractWeights
An abstract type that should be subtyped for weights coefficients extensions.
AutomationLabsModelPredictiveControl.FuzzyProgramming
— TypeFuzzyProgramming
Linear fuzzy tool for modeler implementation of neural networks.
AutomationLabsModelPredictiveControl.LinearProgramming
— TypeLinearProgramming
Linear tool for modeler implementation of neural networks.
AutomationLabsModelPredictiveControl.MixedIntegerLinearProgramming
— TypeMixedIntegerLinearProgramming
Milp tool for modeler implementation of Fnn and Resnet with relu activation function.
AutomationLabsModelPredictiveControl.ModelPredictiveControlController
— TypeModelPredictiveControlController
Model predictive control main struct parameters. The controller as all the necessary before optimization.
** Fields **
system
: mathematical system type of the dynamical system (f and constraints).tuning
: model predictive control implementation according to reference.initialization
: initialization of the model predictive control before computation.inputs_command
: model predictive control input after computation, which are sent to dynamical system.
AutomationLabsModelPredictiveControl.ModelPredictiveControlResults
— TypeModelPredictiveControlResults
Model predictive control results after computation.
** Fields **
x
: state computed.e_x
: state deviation computed.u
: input computed.e_u
: input deviation computed.
AutomationLabsModelPredictiveControl.ModelPredictiveControlTuning
— TypeModelPredictiveControlTuning
Model predictive control tuning implementation according to parameters and references.
** Fields **
modeler
: model predictive control implementation acocrding to JuMP.reference
: model predictive control references.horizon
: model predictive control horizon.weights
: model predictive control weighting coefficients.terminal_ingredient
: model predictive control terminal ingredients.sample_time
: model predictive control sample time.max_time
: model predictive control maximum time computation.
AutomationLabsModelPredictiveControl.NonLinearProgramming
— TypeNonLinearProgramming
Nl tool for modeler implementation of Fnn and Resnet abd DenseNet with any activation function.
AutomationLabsModelPredictiveControl.ReferencesStateInput
— TypeReferencesStateInput
State and input references for model predictive control.
** Fields **
x
: state references.u
: input references.
AutomationLabsModelPredictiveControl.WeightsCoefficient
— TypeWeightsCoefficient
State, input and input rate weighting coefficient for the cost function.
** Fields **
Q
: state weight coefficient.R
: input weight coefficient.S
: input rate weight coefficient.
AutomationLabsModelPredictiveControl.auto_solver_def
— Typeauto
Automatique selection of the solver according to the method.
AutomationLabsModelPredictiveControl.highs_solver_def
— Typehighs
Linear quadratic solver.
AutomationLabsModelPredictiveControl.ipopt_solver_def
— Typeipopt
Linear and non-linear quadratic solver.
AutomationLabsModelPredictiveControl.osqp_solver_def
— Typeosqp
Linear quadratic solver.
AutomationLabsModelPredictiveControl.scip_solver_def
— TypeSCIP
Linear and integer and non-linear quadratic solver.
AutomationLabsModelPredictiveControl._create_quadratic_cost_function
— Method_create_quadratic_cost_function
Function that create the quadratic cost of the model predictive control.
** Required fields **
model_mpc
: the JuMP struct.weights
: the weighing coefficient struct.P_cost
: the terminal ingredient cost.
AutomationLabsModelPredictiveControl._create_terminal_ingredient
— Method_create_terminal_ingredient
Function that create the terminal ingredient for model predictive control. The terminal ingredients are the terminal weight and terminal constraints. The terminal constraints could be optional.
** Required fields **
model_mpc
: the JuMP from the modeler design.terminal_ingredient
: a string to set the terminal constraints.system
: the dynamical system mathemacal systems.references
: the states and inputs references.weights
: the weighting coefficients.kws
optional parameters.
AutomationLabsModelPredictiveControl._create_weights_coefficients
— Method_create_weights_coefficients
Function that create the weighting struct for model predictive control.
** Required fields **
system
: the mathematical system from the dynamical system.kws
: optional parameters.
AutomationLabsModelPredictiveControl._create_weights_coefficients
— Method_create_weights_coefficients
Function that create the weighting struct for model predictive control.
** Required fields **
system
: the mathematical system from the dynamical system.kws
: optional parameters.
AutomationLabsModelPredictiveControl._design_reference_mpc
— Method_design_reference_mpc
A function for references for model predictive control and linearization point for economic model predictive control.
The following variables are mendatories:
state_reference
: the state reference.input_reference
: the input reference.horizon
: the horizon for the mpc or empc.
AutomationLabsModelPredictiveControl._model_predictive_control_design
— Method_model_predictive_control_design
Function that tunes a model predictive control.
** Required fields **
system
: mathematical system type.horizon
: horizon length of the model predictive control.method
: implementation method (linear, non linear, mixed integer linear, fuzzy rules)sample_time
: time sample of the model predictive control.kws
optional fields
AutomationLabsModelPredictiveControl._model_predictive_control_design
— Method_model_predictive_control_design
Function that tunes a model predictive control.
** Required fields **
system
: mathematical system type.horizon
: horizon length of the model predictive control.method
: implementation method (linear, non linear, mixed integer linear, fuzzy rules)sample_time
: time sample of the model predictive control.kws
optional fields
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.model_mlj
: model of the dynamical system from AutomationLabsIdentification package.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl._model_predictive_control_modeler_implementation
— Method_model_predictive_control_modeler_implementation
Modeler implementation of a Model Predictive Control.
** Required fields **
method
: method which is multipled dispatched type. Type are LinearProgramming, TakagiSugeno, NonLinearProgramming and MixedIntegerLinearProgramming.system
: system from MethematicalSystems.horizon
: model predictive control horizon parameter.references
: model predictive control references.solver
: model predictive control solver selection.
AutomationLabsModelPredictiveControl.calculate!
— Methodcalculate!(C::ModelPredictiveControlController)
Model predictive control computation function. The controller is computed and optimization results values are written on mutable struct controller.
** Required fields **
C
: the model predictive control controller.
AutomationLabsModelPredictiveControl.proceed_controller
— Methodproceed_controller
A function for model predictive control and economic model predictive control.
The following variables are mendatories:
system
: a mathematical systems from AutomationLabsSystems.mpc_controller_type
: a string for model predictive control or economic model predictive control.mpc_horizon
: a horizon for the predictive controller.mpc_sample_time
: a sample time for the predictive controller.mpc_state_reference
: state reference for mpc or linearization point for empc.mpc_input_reference
: input reference for mpc or linearization point for empc.kws
optional argument.
AutomationLabsModelPredictiveControl.update_initialization!
— Methodupdate_initialization!(C::ModelPredictiveControlController, initialization::Vector)
Update initialization (also known as state measure) of Model predictive control controller.
** Required fields **
C
: the design model predictive control controller.initialization
: initialization of the model predictive control befre computation (also now as the state measures).