MinimaxAdaptiveControl.MACLMIsFunction
MACLMIs(A::AbstractMatrix{T}, B::AbstractMatrix{T}, G::AbstractMatrix{T}, Ks::AbstractVector{M}, 
        Hs::AbstractVector{M}, period::Int, model::Model) where M<:AbstractMatrix{T} where T<:Real

Solve the Linear Matrix Inequalities (LMIs) associated with the periodic dissipation inequality for the given system matrices and optimization model.

Arguments

  • A::AbstractMatrix{T}: State transition matrix of the system.
  • B::AbstractMatrix{T}: Control input matrix of the system.
  • G::AbstractMatrix{T}: Disturbance input matrix of the system.
  • Ks::AbstractVector{M}: Vector of feedback-gain matrices.
  • Hs::AbstractVector{M}: Vector of symmetric cost matrices.
  • period::Int: Control period.
  • model::Model: JuMP optimization optimization model.

Returns

  • Ps0::Dict{NTuple{2, Int}, Array{VariableRef, 2}}: Dictionary of positive semi-definite matrices at time 0.
  • Psplus::Dict{NTuple{4, Int}, Array{VariableRef, 2}}: Dictionary of positive semi-definite matrices at future time steps.
source
MinimaxAdaptiveControl.computeMethod
compute(controller::MAController{T}) where T<:Real

Compute the control input for the multi-agent controller.

Arguments

  • controller::MAController{T}: The multi-agent controller.

Returns

  • AbstractVector{T}: The computed control input vector.

Description

This function computes the control input for the MAController by selecting the appropriate control law from the Ks collection based on the current internal state z and the reward signals rs. The selection is made using the selectionRule of the controller.

source
MinimaxAdaptiveControl.getPeriodicSelectionRuleFunction
getPeriodicSelectionRule(period::Int)

Create a selection rule for periodic control.

Arguments

  • period::Int: Control period.

Returns

  • selectionRule::Function: A function that selects the index of the control input based on the period and reward signals.

Example

selectionRule = getPeriodicSelectionRule(4)
index = selectionRule(z, rs)
source
MinimaxAdaptiveControl.getValueFunctionFunction
getValueFunction(mac::MAController{T}, Ps0::Dict{Tuple{Int, Int}, Matrix{VariableRef}}, N::Int) where T<:Real

Create a ValueFunction for the given multi-agent controller and positive semi-definite matrices.

Arguments

  • mac::MAController{T}: Minimax adaptive controller.
  • Ps0::Dict{Tuple{Int, Int}, Matrix{VariableRef}}: Dictionary of positive semi-definite matrices associated with the first time step in each period.
  • N::Int: Number of models.

Returns

  • ValueFunction: A value function object for the multi-agent controller.

Example

vfun = getValueFunction(mac, Ps0, N)
source
MinimaxAdaptiveControl.update!Method
update!(controller::MAController{T}, output::AbstractVector{T}, control::AbstractVector{T}) where T<:Real

Update the multi-agent controller with new output and control data.

Arguments

  • controller::MAController{T}: The multi-agent controller to be updated.
  • output::AbstractVector{T}: The new output measurement vector.
  • control::AbstractVector{T}: The new control input vector.

Description

This function updates the internal state z and the reward signals rs of the MAController based on the new output and control input data. The reward signals are updated for each matrix H in the controller's Hs collection. The internal state z is updated using the estimated system matrices Ahat, Bhat, and Ghat.

source