Создайте нелинейный контроллер MPC с четырьмя состояниями, одной выходной переменной, одной переменной, которой управляют и одним измеренным воздействием.
Задайте шаг расчета контроллера и горизонты.
Задайте функцию состояния модели предсказания.
Задайте выходную функцию модели предсказания и масштабный коэффициент выходной переменной.
Задайте переменные ограничения, которыми управляют, и масштабный коэффициент.
Задайте измеренный масштабный коэффициент воздействия.
Вычислите состояние и введите условия работы для трех линейных контроллеров MPC, использующих fsolve
функция.
Создайте линейные контроллеры MPC для каждого из этих номинальных условий.
Можно также создать несколько контроллеров, использующих массивы номинальных условий. Количество строк в массивах задает контроллеры номера, чтобы создать. Линейные контроллеры возвращены как массив ячеек mpc
объекты.
Просмотрите свойства mpcobjLow
контроллер.
MPC object (created on 25-Aug-2021 18:44:28):
---------------------------------------------
Sampling time: 1 (seconds)
Prediction Horizon: 10
Control Horizon: 3
Plant Model:
--------------
1 manipulated variable(s) -->| 4 states |
| |--> 1 measured output(s)
1 measured disturbance(s) -->| 2 inputs |
| |--> 0 unmeasured output(s)
0 unmeasured disturbance(s) -->| 1 outputs |
--------------
Indices:
(input vector) Manipulated variables: [1 ]
Measured disturbances: [2 ]
(output vector) Measured outputs: [1 ]
Disturbance and Noise Models:
Output disturbance model: default (type "getoutdist(mpcobjLow)" for details)
Measurement noise model: default (unity gain after scaling)
Weights:
ManipulatedVariables: 0
ManipulatedVariablesRate: 0.1000
OutputVariables: 1
ECR: 100000
State Estimation: Default Kalman Filter (type "getEstimator(mpcobjLow)" for details)
Constraints:
0.0704 <= u1 <= 0.7042, u1/rate is unconstrained, y1 is unconstrained