Создайте нелинейный контроллер MPC с четырьмя состояниями, одной выходной переменной, одной манипулированной переменной и одним измеренным нарушением порядка.
Задайте шаг расчета контроллера и горизонты.
Задайте функцию состояния модели предсказания.
Задайте выходную функцию модели предсказания и выходной переменный масштабный коэффициент.
Задайте управляемые ограничения переменной и масштабный коэффициент.
Задайте измеренный масштабный коэффициент нарушения порядка.
Вычислите состояние и входные условия работы для трех линейных контроллеров MPC с помощью fsolve
функция.
Создайте линейные контроллеры MPC для каждого из этих номинальных условий.
Можно также создать несколько контроллеров, используя массивы номинальных условий. Количество строк в массивах определяет количество создаваемых контроллеров. Линейные контроллеры возвращаются как массив ячеек mpc
объекты.
Просмотр свойств mpcobjLow
контроллер.
MPC object (created on 23-Apr-2021 11:07:17):
---------------------------------------------
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