Симулируйте нелинейные прогнозирующие контроллеры модели
Model Predictive Control Toolbox
Блок Nonlinear MPC Controller симулирует нелинейный прогнозирующий контроллер модели. В каждом контрольном интервале блок вычисляет перемещения оптимального управления путем решения задачи нелинейного программирования. Для получения дополнительной информации о нелинейном MPC смотрите Нелинейный MPC.
Чтобы использовать этот блок, необходимо сначала создать nlmpc
объект в MATLAB® рабочая область.
Ни одни из параметров блоков Nonlinear MPC Controller не являются настраиваемыми.
x
входной параметрТекущая модель предсказания утверждает в виде векторного сигнала длины Nx, где Nx является количеством состояний модели предсказания. Поскольку нелинейный контроллер MPC не выполняет оценку состояния, необходимо или измерить или оценить текущие состояния модели предсказания в каждом контрольном интервале.
ref
— Выходные значения ссылки моделиОбъект выходные значения ссылки в виде вектора-строки сигнализирует или матричный сигнал.
Чтобы использовать те же ссылочные значения через горизонт предсказания, соедините ref с сигналом вектора-строки с элементами NY, где Ny является количеством выходных переменных. Каждый элемент задает ссылку для выходной переменной.
Чтобы варьироваться ссылки по горизонту предсказания (предварительный просмотр) со времени k +1 ко времени k +p, соедините ref с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит ссылки для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, итоговые ссылки используются для остающихся шагов горизонта предсказания.
last_mv
— Управляющие сигналы используются на объекте в предыдущем контрольном интервалеУправляющие сигналы использовали на объекте в предыдущем контрольном интервале в виде векторного сигнала lengthNmv, где Nmv является количеством переменных, которыми управляют.
Примечание
Соединитесь last_mv к сигналам мВ на самом деле применился к объекту в предыдущем контрольном интервале. Как правило, эти сигналы мВ являются значениями, сгенерированными контроллером, хотя это не всегда имеет место. Например, если ваш контроллер является оффлайновым и рабочим в режиме отслеживания; то есть, контроллер выход не управляет объектом, затем питание фактического управляющего сигнала к last_mv может помочь достигнуть передачи bumpless, когда контроллер переключается назад онлайн.
md
входной параметрЕсли ваша модель предсказания контроллера измерила воздействия, необходимо включить этот порт и подключение к нему вектор-строка или матричный сигнал.
Чтобы использовать те же измеренные значения воздействия через горизонт предсказания, соедините md с сигналом вектора-строки с элементами Nmd, где Nmd является количеством переменных, которыми управляют. Каждый элемент задает значение для измеренного воздействия.
Чтобы варьироваться воздействия по горизонту предсказания (предварительный просмотр) со времени k ко времени k +p, соедините md с матричным сигналом со столбцами Nmd и до p +1 строка. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит воздействия для одного шага горизонта предсказания. Если вы задаете меньше, чем p +1 строка, итоговые воздействия используются для остающихся шагов горизонта предсказания.
Чтобы включить этот порт, выберите параметр Measured disturbances.
params
— Дополнительные параметрыЕсли ваш диспетчер использует дополнительные параметры в ее модели предсказания, пользовательской функции стоимости или пользовательских ограничительных функциях, включите этот входной порт и соедините сигнал шины параметра с элементами Np, где Np является количеством параметров. Для получения дополнительной информации о создании сигнала шины параметра смотрите createParameterBus
. Контроллер, передает эти параметры ее функциям модели, функции стоимости, ограничительным функциям и Функциям Якоби.
Если ваш диспетчер не использует дополнительные параметры, необходимо отключить params.
Чтобы включить этот порт, выберите параметр Model parameters.
mv.target
— Переменные цели, которыми управляют,Чтобы задать переменные цели, которыми управляют, включите этот входной порт и соедините вектор-строку или матричный сигнал. Чтобы заставить данную переменную, которой управляют, отследить свое заданное целевое значение, необходимо также задать ненулевой настраивающий вес для той переменной, которой управляют.
Чтобы использовать те же переменные цели, которыми управляют, через горизонт предсказания, соедините mv.target с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает цель для переменной, которой управляют.
Чтобы варьироваться цели по горизонту предсказания (предварительный просмотр) со времени k ко времени k +p-1, соедините mv.target с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит цели для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, итоговые цели используются для остающихся шагов горизонта предсказания.
Чтобы включить этот порт, выберите параметр Targets for manipulated variables.
y.min
— Минимальные ограничения выходной переменнойЧтобы задать минимальные ограничения выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в OutputVariables.Min
свойство его объекта контроллера.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение y.min к сигналу вектора-строки с элементами Ny, где Ny является количеством выходных параметров. Каждый элемент задает нижнюю границу для выходной переменной.
Чтобы варьироваться границы по горизонту предсказания со времени k +1 ко времени k +p, соедините y.min с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Lower OV limits.
y.max
— Максимальные ограничения выходной переменнойЧтобы задать максимальные ограничения выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в OutputVariables.Min
свойство его объекта контроллера.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение y.max к сигналу вектора-строки с элементами Ny, где Ny является количеством выходных параметров. Каждый элемент задает верхнюю границу для выходной переменной.
Чтобы варьироваться границы по горизонту предсказания со времени k +1 ко времени k +p, соедините y.max с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Upper OV limits.
mv.min
— Минимальные переменные ограничения, которыми управляют,Чтобы задать минимальные переменные ограничения во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в ManipulatedVariables.Min
свойство его объекта контроллера.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение mv.min к сигналу вектора-строки с элементами Nmv, где Nmv является количеством выходных параметров. Каждый элемент задает нижнюю границу для переменной, которой управляют.
Чтобы варьироваться границы по горизонту предсказания со времени k ко времени k +p-1, соедините mv.min с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Lower MV limits.
mv.max
— Максимальные переменные ограничения, которыми управляют,Чтобы задать максимальные переменные ограничения во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в ManipulatedVariables.Max
свойство его объекта контроллера.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение mv.max к сигналу вектора-строки с элементами Nmv, где Nmv является количеством выходных параметров. Каждый элемент задает верхнюю границу для переменной, которой управляют.
Чтобы варьироваться границы по горизонту предсказания со времени k ко времени k +p-1, соедините mv.max с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Upper MV limits.
dmv.min
— Минимальные ограничения с плавающей ставкой, которыми управляют,Чтобы задать минимальные ограничения с плавающей ставкой во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в ManipulatedVariable.RateMin
свойство его объекта контроллера. границы dmv.min должны быть неположительными.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение dmv.min к сигналу вектора-строки с элементами Nmv, где Nmv является количеством выходных параметров. Каждый элемент задает нижнюю границу для плавающего курса, которым управляют, изменения.
Чтобы варьироваться границы по горизонту предсказания со времени k ко времени k +p-1, соедините dmv.min с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Lower MVRate limits.
dmv.max
— Максимальные ограничения с плавающей ставкой, которыми управляют,Чтобы задать максимальные ограничения с плавающей ставкой во время выполнения, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в ManipulatedVariables.RateMax
свойство его объекта контроллера. границы dmv.max должны быть неотрицательными.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение dmv.max к сигналу вектора-строки с элементами Nmv, где Nmv является количеством выходных параметров. Каждый элемент задает верхнюю границу для плавающего курса, которым управляют, изменения.
Чтобы варьироваться границы по горизонту предсказания со времени k ко времени k +p-1, соедините dmv.max с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Upper MVRate limits.
x.min
— Минимальные ограничения состоянияЧтобы задать минимальные ограничения состояния во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, заданные в States.Min
свойство его объекта контроллера.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение x.min к сигналу вектора-строки с элементами Nx, где Nx является количеством выходных параметров. Каждый элемент задает нижнюю границу для состояния.
Чтобы варьироваться границы по горизонту предсказания со времени k +1 ко времени k +p, соедините x.min с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Lower state limits.
x.max
— Максимальные ограничения состоянияЧтобы задать максимальные ограничения состояния во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, заданные в States.Max
свойство его объекта контроллера.
Использовать то же самое перепрыгивает через горизонт предсказания, подключение x.max к сигналу вектора-строки с элементами Nx, где Nx является количеством выходных параметров. Каждый элемент задает верхнюю границу для состояния.
Чтобы варьироваться границы по горизонту предсказания со времени k +1 ко времени k +p, соедините x.max с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Upper state limits.
y.wt
— Настраивающие веса выходной переменнойЧтобы задать переменную вывода во время выполнения настраивающиеся веса, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.OutputVariables
свойство его объекта контроллера. Эти настраивающие веса штрафуют отклонения от выходных ссылок.
Если диспетчер MPC возражает, использует постоянные выходные настраивающие веса по горизонту предсказания, можно задать только постоянные выходные настраивающие веса во времени выполнения. Точно так же, если диспетчер MPC возражает использованию выходные настраивающие веса, которые варьируются по горизонту предсказания, можно задать только изменяющиеся во времени выходные настраивающие веса во времени выполнения
Чтобы использовать постоянные настраивающие веса по горизонту предсказания, соедините y.wt с сигналом вектора-строки с элементами Ny, где Ny является количеством выходных параметров. Каждый элемент задает неотрицательный настраивающий вес для выходной переменной. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k +1 ко времени k +p, соедините y.wt с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Устанавливающие Изменяющиеся во времени Веса и Ограничения с MPC Designer.
Чтобы включить этот порт, выберите параметр OV weights.
mv.wt
— Переменные настраивающие веса, которыми управляют,Задавать время выполнения управляло переменными настраивающими весами, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.ManipulatedVariables
свойство его объекта контроллера. Эти настраивающие веса штрафуют отклонения от целей мВ.
Чтобы использовать те же настраивающие веса по горизонту предсказания, соедините mv.wt с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает неотрицательный настраивающий вес для переменной, которой управляют. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, соедините mv.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Устанавливающие Изменяющиеся во времени Веса и Ограничения с MPC Designer.
Чтобы включить этот порт, выберите параметр MV weights.
dmv.wt
— Настраивающие веса с плавающей ставкой, которыми управляют,Задавать время выполнения управляло настраивающими весами с плавающей ставкой, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.ManipulatedVariablesRate
свойство его объекта контроллера. Эти настраивающие веса штрафуют большие изменения в перемещениях управления.
Чтобы использовать те же настраивающие веса по горизонту предсказания, соедините dmv.wt с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает неотрицательный настраивающий вес для плавающего курса, которым управляют. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, соедините dmv.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающиеся веса для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта предсказания. Для получения дополнительной информации о различных весах по горизонту предсказания смотрите Устанавливающие Изменяющиеся во времени Веса и Ограничения с MPC Designer.
Чтобы включить этот порт, выберите параметр MVRate weights.
ecr.wt
— Ослабьте переменный настраивающий весЧтобы задать время выполнения ослабляют переменный настраивающий вес, включают этот входной порт и соединяют скалярный сигнал. Если этот порт отключен, блок использует настраивающийся вес, заданный в Weights.ECR
свойство его объекта контроллера.
Слабый переменный настраивающий вес не оказывает влияния, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR являются ненулевыми. Если существуют мягкие ограничения, увеличивание значения ecr.wt делает эти ограничения относительно тяжелее. Контроллер затем помещает более высокий приоритет в минимизацию величины предсказанного нарушения ограничений худшего случая.
Чтобы включить этот порт, выберите параметр ECR weight.
mv.init
— Исходные предположения для оптимальных переменных решений, которыми управляют,Чтобы задать исходные предположения для оптимальных переменных решений, которыми управляют, включите этот входной порт. Если этот порт отключен, блок использует последовательности оптимального управления, вычисленные в предыдущем контрольном интервале как исходные предположения.
Чтобы использовать те же исходные предположения по горизонту предсказания, соедините mv.init с векторным сигналом с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает исходное предположение для переменной, которой управляют.
Чтобы варьироваться исходные предположения по горизонту предсказания со времени k ко времени k +p-1, соедините mv.init с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит исходные предположения для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, предположения в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Initial guess.
x.init
— Исходные предположения для оптимальных решений для переменной состоянияЧтобы задать исходные предположения для оптимальных решений состояния, включите этот входной порт. Если этот порт отключен, блок использует оптимальные последовательности состояния, вычисленные в предыдущем контрольном интервале как исходные предположения.
Чтобы использовать те же исходные предположения по горизонту предсказания, соедините x.init с векторным сигналом с элементами Nx, где Nx является количеством состояний. Каждый элемент задает исходное предположение для состояния.
Чтобы варьироваться исходные предположения по горизонту предсказания со времени k ко времени k +p-1, соедините x.init с матричным сигналом со столбцами Nx и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит исходные предположения для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, предположения в итоговой строке запрашивают остаток от горизонта предсказания.
Чтобы включить этот порт, выберите параметр Initial guess.
e.init
— Исходное предположение для слабой переменной в решенииЧтобы задать исходное предположение для слабой переменной в решении, включите этот входной порт и соедините неотрицательный скалярный сигнал. Если этот порт отключен, блок использует исходное предположение 0
.
Чтобы включить этот порт, выберите параметр Initial guess.
mv
— Оптимальное действие управления переменными, которым управляют,Оптимальное действие управления переменными, которым управляют, выход как сигнал вектор-столбца длины Nmv, где Nmv является количеством переменных, которыми управляют.
Если решатель сходится к решению для локального оптимума (nlp.status положителен), то mv содержит оптимальное решение.
Если решатель достигает максимального количества итераций, не находя оптимальное решение (nlp.status является нулем), и Optimization.UseSuboptimalSolution
свойство контроллера:
true
, затем mv содержит субоптимальное решение
false
, затем mv совпадает с last_mv
Если решатель перестал работать (nlp.status отрицателен), то mv совпадает с last_mv.
cost
— Целевая функция стоитсяСтоимость целевой функции, выход как неотрицательный скалярный сигнал. Стоимость определяет количество степени, до которой контроллер достиг ее целей.
Величина затрат только значима, когда nlp.status выход является неотрицательным.
Чтобы включить этот порт, выберите параметр Optimal cost.
slack
— Слабая переменнаяОслабьте переменную, ε, используемый в ограничительном смягчении, выведите как 0
или значение положительной скалярной величины.
ε = 0 — Всем мягким ограничениям удовлетворяют по целому горизонту предсказания.
ε> 0 — По крайней мере одно мягкое ограничение нарушено. Когда больше чем одно ограничение нарушено, ε представляет худший случай мягкое нарушение ограничений (масштабируемый значениями ECR для каждого ограничения).
Чтобы включить этот порт, выберите параметр Slack variable.
nlp.status
— Состояние OptimizationСостояние Optimization, выход как одно из следующего:
Положительное Целое число — Решатель сходился к оптимальному решению
0 — Максимальное количество итераций, достигнутых, не сходясь на оптимальное решение
Отрицательное целое число — Решатель перестал работать
Чтобы включить этот порт, выберите параметр Optimization status.
mv.seq
— Оптимальная переменная последовательность, которой управляют,Оптимальная переменная последовательность, которой управляют, возвращенная как матричный сигнал с p +1 строка и столбцы Nmv, где p является горизонтом предсказания и Nmv, является количеством переменных, которыми управляют.
Первые строки p mv.seq содержат расчетные оптимальные значения переменных, которыми управляют, с текущего времени k ко времени k +p-1. Первая строка mv.seq содержит текущие значения переменных, которыми управляют (выход mv). Поскольку контроллер не вычисляет перемещения оптимального управления во время k +p, итоговые две строки mv.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal control sequence.
x.seq
— Оптимальная модель предсказания утверждает последовательностьОптимальная модель предсказания утверждает последовательность, возвращенный как матричный сигнал с p +1 столбец строк и Nx, где p является горизонтом предсказания и Nx, является количеством состояний.
Первая строка x.seq содержит текущие предполагаемые значения состояния, или от встроенного средства оценки состояния или от пользовательского входа x[k|k] блока оценки состояния. Следующие строки p x.seq содержат расчетные оптимальные значения состояния со времени k +1 ко времени k +p.
Чтобы включить этот порт, выберите параметр Optimal state sequence.
y.seq
— Оптимальная последовательность выходной переменнойОптимальная последовательность выходной переменной, возвращенная как матричный сигнал с p +1 строка и столбцы Ny, где p является горизонтом предсказания и Ny, является количеством выходных переменных.
Первые строки p y.seq содержат расчетные оптимальные выходные значения с текущего времени k ко времени k +p-1. Первая строка y.seq вычисляется на основе текущих предполагаемых состояний и текущих измеренных воздействий (первая строка входа md). Поскольку контроллер не вычисляет оптимальные выходные значения во время k +p, итоговые две строки y.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal output sequence.
Nonlinear MPC Controller
— Объект Controllernlmpc
имя объектаНеобходимо обеспечить nlmpc
объект, который задает нелинейный контроллер MPC. Для этого введите имя nlmpc
объект в рабочем пространстве MATLAB.
Параметры блоков:
nlmpcobj |
Ввод: строка, вектор символов |
Значение по умолчанию:
"" |
Use prediction model sample time
— Отметьте для использования шага расчета модели предсказанияВыберите этот параметр, чтобы запустить контроллер, использующий тот же шаг расчета в качестве его модели предсказания. Чтобы использовать различный шаг расчета контроллера, очистите этот параметр и задайте шаг расчета с помощью параметра Make block run at a different sample time.
Чтобы ограничить количество переменных решения и повысить вычислительную эффективность, можно запустить контроллер с шагом расчета, который отличается от горизонта предсказания. Например, рассмотрите случай нелинейного контроллера MPC, достигающего 10 Гц. Если соответствие шагов расчета объекта и контроллера, предсказывая поведение объекта в течение десяти секунд требует горизонта предсказания длины 100, который производит большое количество переменных решения. Чтобы сократить количество переменных решения, можно использовать шаг расчета объекта 1 секунды и горизонт предсказания длины 10.
Параметры блоков:
UseObjectTs |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"on" |
Make block run at a different sample time
— Шаг расчета контроллераЗадайте этот параметр, чтобы запустить контроллер, использующий различный шаг расчета из его модели предсказания.
Чтобы включить этот параметр, очистите параметр Use prediction model sample time.
Параметры блоков:
TsControl |
Ввод: строка, вектор символов |
Значение по умолчанию:
"" |
Use MEX to speed up simulation
— Отметьте для симуляции MEX-функции использования контроллераВыберите этот параметр, чтобы симулировать контроллер, использующий сгенерированное использование MEX-функции buildMEX
. Выполнение так уменьшает время симуляции контроллера. Чтобы задать имя MEX-функции, используйте параметр Specify MEX function name.
Параметры блоков:
UseMEX |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Specify MEX function name
— Имя MEX-функции контроллераИспользуйте этот параметр, чтобы задать имя MEX-функции, чтобы использовать в процессе моделирования. Чтобы создать MEX-функцию, используйте buildMEX
функция.
Чтобы включить этот параметр, выберите параметр Use MEX to speed up simulation.
Параметры блоков:
mexname |
Ввод: строка, вектор символов |
Значение по умолчанию:
"" |
Measured disturbances
— Добавьте измеренный входной порт воздействияЕсли ваш контроллер измерил воздействия, необходимо выбрать этот параметр, чтобы добавить выходной порт md в блок.
Параметры блоков:
md_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Targets for manipulated variables
— Добавьте переменный целевой входной порт, которым управляют,Выберите этот параметр, чтобы добавить входной порт mv.target в блок.
Параметры блоков:
mvtarget_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Model parameters
— Добавьте входной порт параметров моделиЕсли ваш диспетчер использует дополнительные параметры, необходимо выбрать этот параметр, чтобы добавить выходной порт params в блок.
Для получения дополнительной информации о создании сигнала шины параметра смотрите createParameterBus
.
Параметры блоков:
param_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal cost
— Добавьте оптимальный выходной порт стоимостиВыберите этот параметр, чтобы добавить выходной порт cost в блок.
Параметры блоков:
cost_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal control sequence
— Добавьте выходной порт последовательности оптимального управленияВыберите этот параметр, чтобы добавить выходной порт mv.seq в блок.
Параметры блоков:
mvseq_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal state sequence
— Добавьте оптимальный выходной порт последовательности состоянияВыберите этот параметр, чтобы добавить выходной порт x.seq в блок.
Параметры блоков:
stateseq_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimal output sequence
— Добавьте оптимальный выходной выходной порт последовательностиВыберите этот параметр, чтобы добавить выходной порт y.seq в блок.
Параметры блоков:
ovseq_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Slack variable
— Добавьте слабый переменный выходной портВыберите этот параметр, чтобы добавить выходной порт slack в блок.
Параметры блоков:
slack_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Optimization status
— Добавьте выходной порт состояния оптимизацииВыберите этот параметр, чтобы добавить выходной порт nlp.status в блок.
Параметры блоков:
status_enabled |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Lower OV limits
— Добавьте минимальный ограничительный входной порт OVВыберите этот параметр, чтобы добавить входной порт ov.min в блок.
Параметры блоков:
ov_min |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Upper OV limits
— Добавьте максимальный ограничительный входной порт OVВыберите этот параметр, чтобы добавить входной порт ov.max в блок.
Параметры блоков:
ov_max |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Lower MV limits
— Добавьте минимальный ограничительный входной порт мВВыберите этот параметр, чтобы добавить входной порт mv.min в блок.
Параметры блоков:
mv_min |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Upper MV limits
— Добавьте максимальный ограничительный входной порт мВВыберите этот параметр, чтобы добавить входной порт mv.max в блок.
Параметры блоков:
mv_max |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Lower MVRate limits
— Добавьте минимальный ограничительный входной порт уровня мВВыберите этот параметр, чтобы добавить входной порт dmv.min в блок.
Параметры блоков:
mvrate_min |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Upper MVRate limits
— Добавьте максимальный ограничительный входной порт уровня мВВыберите этот параметр, чтобы добавить входной порт dmv.max в блок.
Параметры блоков:
mvrate_max |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Lower state limits
— Добавьте минимальный ограничительный входной порт состоянияВыберите этот параметр, чтобы добавить входной порт x.min в блок.
Параметры блоков:
state_min |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Upper state limits
— Добавьте максимальный ограничительный входной порт состоянияВыберите этот параметр, чтобы добавить входной порт x.max в блок.
Параметры блоков:
state_max |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
OV weights
— Добавьте OV настраивающийся входной порт весовВыберите этот параметр, чтобы добавить входной порт y.wt в блок.
Параметры блоков:
ov_weight |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
MV weights
— Добавьте мВ, настраивающий входной порт весовВыберите этот параметр, чтобы добавить входной порт mv.wt в блок.
Параметры блоков:
mv_weight |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
MVRate weights
— Добавьте уровень мВ, настраивающий входной порт весовВыберите этот параметр, чтобы добавить входной порт dmv.wt в блок.
Параметры блоков:
mvrate_weight |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
ECR weight
— Добавьте ECR настраивающийся входной порт весаВыберите этот параметр, чтобы добавить входной порт ecr.wt в блок.
Параметры блоков:
ecr_weight |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Initial guess
— Добавьте входные порты исходного предположенияВыберите этот параметр, чтобы добавить mv.init, x.init и входные порты e.init с блоком.
Примечание
По умолчанию блок Nonlinar MPC Controller использует расчетные оптимальные переменные и траектории состояния, которыми управляют, от одного контрольного интервала как исходные предположения для следующего контрольного интервала.
Включите порты исходного предположения, только если это необходимо для вашего приложения.
Параметры блоков:
nlp_initialize |
Ввод: строка, вектор символов |
Значения:
"off" on |
Значение по умолчанию:
"off" |
Указания и ограничения по применению:
Поддержки блока Nonlinear MPC Controller, генерирующие код только для нелинейных контроллеров MPC, которые используют значение по умолчанию fmincon
решатель с алгоритмом SQP.
Когда используется для генерации кода, нелинейные контроллеры MPC не поддерживают выражение функций модели предсказания, подготавливают функции стоимости или ограничительные функции как анонимные функции.
Если ваш диспетчер использует дополнительные параметры, необходимо также сгенерировать код для блока Bus Creator, соединенного с входным портом params. Для этого поместите Nonlinear MPC Controller и блоки Bus Creator в подсистеме, и сгенерируйте код для той подсистемы.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.