-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathnonlinear_dd_mpc_example_params.yaml
More file actions
86 lines (71 loc) · 3.31 KB
/
nonlinear_dd_mpc_example_params.yaml
File metadata and controls
86 lines (71 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---
# Nonlinear Data-Driven MPC Parameters
# Based on the Nonlinear Data-Driven MPC implementation example for the
# control of a nonlinear continuous stirred tank reactor (CSTR) from Section V
# of the paper:
# [2] J. Berberich, J. Köhler, M. A. Müller and F. Allgöwer, "Linear Tracking
# MPC for Nonlinear Systems—Part II: The Data-Driven Case," in IEEE
# Transactions on Automatic Control, vol. 67, no. 9, pp. 4406-4421, Sept.
# 2022, doi: 10.1109/TAC.2022.3166851.
nonlinear_data_driven_mpc_params:
n: 3 # Estimated system order
N: 120 # Initial input-output trajectory length
L: 40 # Prediction horizon
# Weighting matrices
# Each weighting parameter can be either a scalar or a list.
# - Scalar → Applies the same weight to all variables.
# - List → Assigns specific weights to each variable. Must have `n_vars`
# elements, where:
# - Q_weights → `n_vars = p` (number of outputs)
# - R_weights → `n_vars = m` (number of inputs)
# - S_weights → `n_vars = p` (number of outputs)
#
# Example (scalar):
# Q_weights: 0.1 # Same weight for all outputs
# Q_weights: [0.1, 2.5, 40] # Different weights per output
Q_weights: 1 # Output weighting matrix Q weights
R_weights: 5.0e-2 # Input weighting matrix R weights
S_weights: 10 # Output setpoint weighting matrix S weights
lambda_alpha: 3.0e-6 # Regularization parameter for alpha
lambda_sigma: 1.0e+7 # Regularization parameter for sigma
# Parameters for input bounds and ranges
# Note: Each input must have an associated vector of
# bounds or ranges [min, max].
# Bounds for the predicted input
U:
- [0.1, 2]
# Bounds for the predicted input setpoint (must be a subset of U)
Us:
- [0.11, 1.99]
# Range of the persistently exciting input u
u_range:
- [0.1, 1]
# Alpha regularization type:
# - 0 = Approximated → Regularized w.r.t. an approximation of
# alpha_Lin^sr(D_t) (Remark 1 of [2]).
# - 1 = Previous → Regularized w.r.t. a previous optimal alpha value to
# encourage stationary behavior (Section V of [2]).
# - 2 = Zero → Regularized w.r.t. zero.
alpha_reg_type: 1
# Nonlinear MPC parameters for alpha_reg_type = 0 (Approximated)
lambda_alpha_s: null # Regularization parameter for alpha_s (optional)
lambda_sigma_s: null # Regularization parameter for sigma_s (optional)
y_r: [0.6519] # System output setpoint
# Control system structure (Extendended Output and Input Increments):
# - true → Controller uses an extended output representation
# (y_ext[k] = [y[k], u[k]]) and input increments where the control
# input is updated incrementally as: u[k] = u[k-1] + du[k-1].
# - false → Standard controller operation. Direct control input, without
# extensions.
ext_out_incr_in: true
# Tracking cost value threshold
# Online input-output data updates are disabled when the tracking cost value
# is less than this value. This ensures prediction data is persistently
# exciting (Section V of [2]).
#
# If set to `null` or 0, input-output data is always updated online.
update_cost_threshold: 1.0e-5
# Enable n-Step Data-Driven MPC:
# - true = n-Step Data-Driven MPC
# - false = 1-Step Data-Driven MPC
n_n_mpc_step: true