@@ -462,13 +462,15 @@ estimate_delays(::SimModel) = 0
462
462
463
463
Get the move blocking vector `nb` from the `Hc` argument, and modify it to match `Hp`.
464
464
465
- The argument `Hc` is interpreted as the move blocking vector `nb`. It specifies the length
466
- of each step (or "block") in the ``\m athbf{ΔU}`` vector, to customize the pattern (strictly
467
- positive integers):
465
+ This feature is also known as manipulated variable blocking. The argument `Hc` is
466
+ interpreted as the move blocking vector `nb`. It specifies the length of each step (or
467
+ "block") in the ``\m athbf{ΔU}`` vector, to customize the pattern (in time steps, thus
468
+ strictly positive integers):
468
469
```math
469
470
\m athbf{n_b} = \b egin{bmatrix} n_1 & n_2 & \c dots & n_{H_c} \e nd{bmatrix}'
470
471
```
471
- The vector with all the manipulated input increments is then defined as:
472
+ The vector that includes all the manipulated input increments ``\m athbf{Δu}`` is then
473
+ defined as:
472
474
```math
473
475
\m athbf{ΔU} = \b egin{bmatrix}
474
476
\m athbf{Δu}(k + 0) \\ [0.1em]
@@ -478,9 +480,9 @@ The vector with all the manipulated input increments is then defined as:
478
480
\m athbf{Δu}(k + ∑_{i=1}^{H_c-1} n_i)
479
481
\e nd{bmatrix}
480
482
```
481
- The provided `nb` vector is modified in these two cases :
483
+ The provided `nb` vector is modified to ensure `sum(nb) == Hp` :
482
484
- If `sum(nb) < Hp`, a new element is pushed to `nb` with the value `Hp - sum(nb)`.
483
- - If `sum(nb) > Hp`, the intervals are truncated until the sum is ` Hp`. For example, if
485
+ - If `sum(nb) > Hp`, the intervals are truncated until ` sum(nb) == Hp`. For example, if
484
486
`Hp = 10` and `nb = [1, 2, 3, 6, 7]`, then `nb` is truncated to `[1, 2, 3, 4]`.
485
487
"""
486
488
function move_blocking (Hp_arg:: Int , Hc_arg:: AbstractVector{Int} )
0 commit comments