Создайте контроллер MPC
MPCobj = mpc(Plant)
MPCobj = mpc(Plant,Ts)
MPCobj = mpc(Plant,Ts,p,m,W,MV,OV,DV)
MPCobj = mpc(Models,Ts,p,m,W,MV,OV,DV)
MPCobj = mpc(Plant)
создает образцовый прогнозирующий контроллер, основанный на объектах на модели прогноза дискретного времени. Модель Plant
прогноза может быть или моделью LTI с заданным шагом расчета или моделью Identification Toolbox™ линейной системы. Контроллер, MPCobj
, наследовал его интервал управления от Plant.Ts
и его единицу измерения времени от Plant.TimeUnit
. Все другие свойства контроллера являются значениями по умолчанию. После того, как вы создадите контроллер MPC, можно установить его свойства с помощью MPCobj.PropertyName = PropertyValue
.
MPCobj = mpc(Plant,Ts)
задает интервал управления Ts
. Если Plant
является моделью LTI дискретного времени с незаданным шагом расчета (Plant.Ts
= –1), это наследовало шаг расчета Ts
, когда используется для прогнозов.
MPCobj = mpc(Plant,Ts,p,m,W,MV,OV,DV)
задает дополнительные свойства контроллера, такие как горизонт прогноза (p
), горизонт управления (m
), и вход, входной шаг и выходные веса (W
). Можно также установить свойства переменных, которыми управляют (MV
), выходные переменные (OV
), и ввести переменные воздействия (DV
). Если какое-либо из этих значений не использовано или пусто, значения по умолчанию применяются.
MPCobj = mpc(Models,Ts,p,m,W,MV,OV,DV)
создает образцовый прогнозирующий контроллер, основанный на объектах на наборе модели прогноза, Models
. Этот набор включает объект, входное воздействие и модели шума измерения наряду с номинальными условиями, при которых были получены модели.
|
Модель объекта управления, которая будет использоваться в прогнозах, заданных как модель LTI ( Если вы не задаете в противном случае, проектирование контроллера принимает, что все входные параметры объекта являются переменными, которыми управляют, и всем объектом, выходные параметры измеряются. Используйте команду Если вы задаете |
|
Шаг расчета контроллера (управляют интервалом), заданный как значение положительной скалярной величины. |
|
Горизонт прогноза, заданный как положительное целое число. Интервал управления, |
|
Управляйте горизонтом, Заданным как одно из следующего:
Значением по умолчанию является |
|
Контроллер, настраивающий веса, заданные как структура. Для получения дополнительной информации о том, как задать эту структуру, смотрите Веса. |
|
Границы и другие свойства переменных, которыми управляют, заданных как 1 |
|
Границы и другие свойства выходных переменных, заданных как 1 |
|
Масштабные коэффициенты и другие свойства входных параметров воздействия, заданных как 1 |
|
Объект, входное воздействие, и модели шума измерения, наряду с номинальными условиями, при которых были получены эти модели, задал как структура. Для получения дополнительной информации о том, как задать эту структуру, см. Модель. |
Минимизировать вычислительное служебное, Образцовое Прогнозирующее создание Контроллера происходит в двух фазах. Первое происходит в construction, когда вы вызываете команду mpc
, или когда вы изменяете свойство контроллера. Конструкция включает простую валидность и проверки на непротиворечивость, такие как размерности сигнала и неотрицательность весов.
Второй фазой является initialization, который происходит, когда вы используете объект впервые в симуляции или аналитической процедуре. Инициализация вычисляет все постоянные свойства, требуемые для эффективной числовой производительности, такие как матрицы, задающие проблему оптимального управления и усиления средства оценки состояния. Дополнительные, диагностические проверки происходят во время инициализации, такой как верификация, что состояния контроллера заметны.
По умолчанию обе фазы отображают информативные сообщения в командном окне. Можно включить эти сообщения или от использования команды mpcverbosity
.
Все параметры, задающие традиционный (неявный) закон о MPC управлении, хранятся в объекте MPC, свойства которого перечислены в следующей таблице.
Контроллер MPC объект
Свойство | Описание |
---|---|
| Масштабные коэффициенты, входные границы, границы входного уровня, соответствующие значения ECR, целевые значения, сигнализируют об именах и модулях. |
| Масштабные коэффициенты, входные границы, границы входного уровня, соответствующие значения ECR, целевые значения, сигнализируют об именах и модулях. |
| Масштабные коэффициенты воздействия, имена и модули |
| Веса использовали в вычислении производительности (стоимость) функция |
| Объект, входное воздействие, и выходные модели шума и номинальные условия. |
| Шаг расчета контроллера |
| Параметры, управляющие решателем QP |
| Горизонт прогноза |
| Количество свободных перемещений управления или вектор блокирования перемещений |
| CreationTime |
| Текст или комментарии о контроллере MPC объект |
| Любые дополнительные данные |
ManipulatedVariables
(или MV
или Manipulated
или Input
) является nu - размерный массив структур (nu = количество переменных, которыми управляют), один на переменную, которой управляют. Каждой структуре описали поля в следующей таблице, где p обозначает горизонт прогноза. Если не обозначено в противном случае, численные значения находятся в технических модулях.
Переменная структура, которой управляют,
Имя поля | Содержимое | Значение по умолчанию |
---|---|---|
| Неотрицательный масштабный коэффициент для этого мВ | 1 |
| 1 к вектору длины p нижних границ на этом мВ |
|
| 1 к вектору длины p верхних границ на этом мВ |
|
| 1 к вектору длины p неотрицательных параметров, задающих | (Безразмерный) |
| 1 к вектору длины p неотрицательных параметров, задающих | (Безразмерный) |
| 1 к вектору длины p целевых значений для этого мВ |
|
| 1 к вектору длины p нижних границ на от интервала к интервалу изменяются для этого мВ |
|
| 1 к вектору длины p верхних границ на от интервала к интервалу изменяются для этого мВ |
|
| 1 к вектору длины p неотрицательных параметров, задающих | (Безразмерный) |
| 1 к вектору длины p неотрицательных параметров, задающих | (Безразмерный) |
| Имя сигнала мВ только для чтения (вектор символов) |
|
| Модули сигнала мВ только для чтения (вектор символов) |
|
Уровни относятся к различию Δu (k) =u (k)-u (k-1). Ограничения и веса на основе производных du/dt непрерывно-разовых входных сигналов должны быть правильно повторно сформулированы для различия дискретного времени Δu (k), с помощью приближения du/dt ≅ Δu (k)/Ts.
OutputVariables
(or OV
или Controlled
или Output
) является ny - размерный массив структур (ny = количество выходных параметров), один на выходной сигнал. Каждой структуре описали поля в следующей таблице. p обозначает горизонт прогноза. Если не задано в противном случае, значения находятся в технических модулях.
Структура выходной переменной
Имя поля | Содержимое | Значение по умолчанию |
---|---|---|
| Неотрицательный масштабный коэффициент для этого OV | 1 |
| 1 к вектору длины p нижних границ на этом OV |
|
| 1 к вектору длины p верхних границ на этом OV |
|
| 1 к вектору длины p неотрицательных параметров, задающих | (Безразмерный) |
| 1 к вектору длины p неотрицательных параметров, задающих | (Безразмерный) |
| OV только для чтения сигнализируют об имени (вектор символов) |
|
| OV только для чтения сигнализируют о модулях (вектор символов) |
|
В порядке отклонить постоянные должные воздействия, например, получить нелинейность, измерилось значение по умолчанию, выходное возмущение, используемое в программном обеспечении Model Predictive Control Toolbox™, интегрировано белый шум (см. Выходное Возмущение).
DisturbanceVariables
(или DV
или Disturbance
) (nv +nd) - размерный массив структур (nv = количество измеренных входных воздействий, nd = количество неизмеренных входных воздействий). Каждой структуре описали поля в следующей таблице.
Структура переменной воздействия
Имя поля | Содержимое | Значение по умолчанию |
---|---|---|
| Неотрицательный масштабный коэффициент для этого DV | 1 |
| Имя сигнала DV только для чтения (вектор символов) |
|
| Модули сигнала DV только для чтения (вектор символов) |
|
Порядок сигналов воздействия в массиве DV
следующий: первые записи nv относятся к измеренным входным воздействиям, последний n d записи относятся к неизмеренным входным воздействиям.
Weights
является структурой, задающей QP взвешивание матриц. Это содержит четыре поля. Значения этих полей зависят от того, используете ли вы стандартную квадратичную функцию стоимости (см. Стандартную Функцию стоимости), или альтернативная функция стоимости (см. Альтернативную Функцию стоимости).
В следующей таблице перечислены содержимое четырех полей структуры. В таблице p обозначает горизонт прогноза, n u количество переменных, которыми управляют и n y количество выходных переменных.
Для MV
, MVRate
и весов OV
, если вы задаете меньше, чем строки p, последняя строка повторяется автоматически, чтобы сформировать матрицу, содержащую строки p.
Веса для стандартной функции стоимости
Имя поля (сокращения) | Содержимое | (Безразмерное) значение по умолчанию |
---|---|---|
| (1 к p)-by-nu размерный массив неотрицательных весов мВ |
|
| (1 к p)-by-nu размерный массив инкрементных МВ весов |
|
| (1 к p)-by-ny размерный массив весов OV |
|
| Скалярный вес на слабой переменной ɛ используется для ограничительного смягчения |
|
Если все веса MVRate
строго положительны, получившаяся проблема QP строго выпукла. Если некоторые веса MVRate
являются нулем, Гессиан QP мог бы быть положителен полуопределенный. Чтобы сохранить проблему QP строго выпуклой, когда количество условия матрицы Гессиана K ΔU больше, чем 1 012, количество, 10*sqrt(eps)
добавляется к каждому диагональному термину. Смотрите Функцию стоимости.
Можно задать недиагональный Q и матрицы веса R в функции стоимости. Для этого задайте поля ManipulatedVariables
, ManipulatedVariablesRate
и OutputVariables
как массивы ячеек, каждый содержащий одну положительную полу определенную матрицу соответствующего размера. А именно, OutputVariables
должен быть массивом ячеек, содержащим ny-by-ny
матрица Q, ManipulatedVariables
должен быть массивом ячеек, содержащим nu-by-nu
матрица Ru, и ManipulatedVariablesRate
должен быть массивом ячеек, содержащим nu-by-nu
R Δu матрица (см. Альтернативную Функцию стоимости и пример mpcweightsdemo
). Можно использовать диагональные матрицы веса для одного или нескольких из этих полей. Если вы не используете поле, диспетчер MPC использует значения по умолчанию, показанные в приведенной выше таблице.
Например, можно задать недиагональные веса, можно следующим образом
MPCobj.Weights.OutputVariables = {Q}; MPCobj.Weights.ManipulatedVariables = {Ru}; MPCobj.Weights.ManipulatedVariablesRate = {Rdu};
где Q
= Q. Ru
= R u и Rdu
= R Δu является положительными полуопределенными матрицами.
Вы не можете задать недиагональные веса, которые отличаются на каждом шаге горизонта прогноза. Тот же Q
, Ru
и веса Rdu
применяются на каждом шаге.
Свойство Model
задает объект, входное воздействие, и вывело шумовые модели и номинальные условия, согласно образцовой настройке, описанной в Оценке состояния Контроллера. Это - 1D структура, содержащая следующие поля.
Модели, используемые MPC
Имя поля | Содержимое | Значение по умолчанию | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Модель LTI или идентифицированная линейная модель объекта | Никакое значение по умолчанию | |||||||||||||||
| Модель LTI, описывающая, ожидала неизмеренные входные воздействия | [] (По умолчанию, входные воздействия, как ожидают, будут интегрированы белый шум. Чтобы смоделировать сигнал, интегратор с безразмерным усилением единицы добавляется для каждого неизмеренного входного воздействия, если сложение не заставляет контроллер терять наблюдаемость состояния. В этом случае воздействие, как ожидают, будет белым шумом, и таким образом, безразмерное усиление единицы будет добавлено к тому каналу вместо этого.) | |||||||||||||||
| Модель LTI, описывающая ожидаемый шум для выходных измерений | [] (По умолчанию, шум измерения, как ожидают, будет белым шумом с модульным отклонением. Чтобы смоделировать сигнал, безразмерное усиление единицы добавляется для каждого измеренного канала.) | |||||||||||||||
| Структура, содержащая состояние, вход и выходные значения, где | Значения по умолчанию полей показывают в следующей таблице:
|
Прямое сквозное соединение от переменных, которыми управляют, до любого вывода в Model.Plant
не позволено. Смотрите, что MPC Моделирует.
Задайте типы сигнала ввода и вывода через свойства InputGroup
и OutputGroup
Model.Plant
, или, более удобно, используйте команду setmpcsignals
. Допустимые типы сигнала перечислены в следующих таблицах.
Введите группы в модели объекта управления
Назовите (Сокращения) | Значение |
---|---|
| Индексы переменных, которыми управляют, в |
| Индексы измеренных воздействий в |
| Индексы неизмеренных воздействий в |
Выведите группы в модели объекта управления
Назовите (Сокращения) | Значение |
---|---|
| Индексы измеренных выходных параметров в |
| Индексы неизмеренных выходных параметров в |
По умолчанию все входные параметры Model.Plant
являются переменными, которыми управляют, и все выходные параметры измеряются.
Nominal
структуры содержит значения (в технических модулях) для состояний, входных параметров, выходных параметров и производных/различий состояния в рабочей точке, где Model.Plant
применяется. Эта точка обычно является точкой линеаризации. О полях сообщают в следующей таблице (см. также Моделирование MPC).
Номинальная стоимость в рабочей точке
Поле | Описание | Значение по умолчанию |
---|---|---|
| Состояние объекта в рабочей точке |
|
| Вход Plant в рабочей точке, включая переменные, которыми управляют, и измеренные и неизмеренные воздействия |
|
| Plant вывод в рабочей точке |
|
| Для непрерывно-разовых моделей |
|
Шаг расчета контроллера MPC. По умолчанию, если Model.Plant
является моделью дискретного времени, Ts = Model.Plant.ts
. Для непрерывно-разовых моделей объекта управления задайте контроллер Ts
. Модуль измерения Ts
наследован от Model.Plant.TimeUnit
.
Optimizer
является структурой с полями, которые содержат параметры для оптимизации QP.
Свойства оптимизатора
Поле | Описание | Значение по умолчанию |
---|---|---|
MaxIter | Максимальное количество итераций позволено в решателе QP, заданном как одно из следующего:
Если | 'Default' |
MinOutputECR | Минимальное значение допускало | 0 |
UseSuboptimalSolution | Отметьте указание, применить ли субоптимальное решение после того, как количество итераций оптимизации превышает | false |
UseWarmStart |
Отметьте указание ли к горячему запуску каждая итерация решателя QP путем передачи в списке активных неравенств от предыдущей итерации, заданной как логическое значение. Неравенства активны, когда их равный фрагмент верен. Если | true |
CustomSolver |
Отметьте указание, использовать ли пользовательский решатель QP для симуляции, заданной как логическое значение. Если Этот пользовательский решатель не используется для генерации кода. Чтобы сгенерировать код для контроллера с пользовательским решателем, используйте Если Для получения дополнительной информации об определении пользовательских решателей смотрите Пользовательский Решатель QP. | false |
CustomSolverCodeGen |
Отметьте указание, использовать ли пользовательский решатель QP для генерации кода, заданной как логическое значение. Если Этот пользовательский решатель не используется для симуляции. Чтобы моделировать контроллер с пользовательским решателем, используйте Если Для получения дополнительной информации об определении пользовательских решателей смотрите Пользовательский Решатель QP. | false |
Значение MaxIter
по умолчанию может быть очень большим для некоторых настроек контроллера, таким как те с большим прогнозом и управлять горизонтами. При симуляции таких контроллеров, если решатель QP не может найти выполнимое решение, симуляция, может казаться, прекращает отвечать, поскольку решатель продолжает искать итерации MaxIter
.
PredictionHorizon
является целым числом шагов горизонта прогноза. Интервал управления, Ts
, определяет длительность каждого шага. Значение по умолчанию равняется 10 + максимальные интервалы задержки (если таковые имеются).
ControlHorizon
является или многими свободными перемещениями управления или вектором блокирования перемещений (см., что Переменная, которой Управляют, Блокируется). Значение по умолчанию равняется 2.
History
хранит время, контроллер MPC был создан (только для чтения).
Notes
хранит текст или комментирует как массив ячеек из символьных векторов.
Любые дополнительные данные хранимы в контроллере MPC объект.
get
| mpcprops
| mpcverbosity
| set
| setmpcsignals