Симулируйте нелинейные прогнозирующие контроллеры модели
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
- Управляющие сигналы, используемые на объекте в предыдущем контрольном интервалеУправляющие сигналы, используемые в объекте в предыдущем контрольном интервале, задаются как векторный сигнал длины Nmv, где Nmv - количество манипулируемых переменных.
Примечание
Подключите last_mv к сигналам СН, фактически примененным к объекту в предыдущем контрольном интервале. Обычно эти сигналы СН являются значениями, генерируемыми контроллером, хотя это не всегда так. Например, если ваш контроллер работает в автономном режиме и работает в режиме отслеживания; то есть контроллер выход не приводит объект в действие, тогда подача фактического управляющего сигнала на last_mv может помочь достичь бесшумной передачи, когда контроллер переключается назад в оперативном режиме.
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 строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.
Чтобы включить этот порт, выберите параметр OV weights.
mv.wt
- Манипулируемые переменные веса настройкиЧтобы задать управляемые во время выполнения веса настройки переменных, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariables
свойство его объекта контроллера. Эти веса настройки штрафуют отклонения от целей СН.
Чтобы использовать те же веса настройки над горизонтом предсказания, соедините mv.wt с сигналом вектора-строки с Nmv элементами, где Nmv количество манипулируемых переменных. Каждый элемент задает неотрицательную настройку веса для манипулируемой переменной. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.
Чтобы варьировать веса настройки над горизонтом предсказания от времени k времени k + p -1, соедините mv.wt с матричным сигналом с Nmv столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.
Чтобы включить этот порт, выберите параметр MV weights.
dmv.wt
- Манипулируемые веса настройки переменной скоростиЧтобы задать управляемые во время выполнения веса настройки переменной скорости, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariablesRate
свойство его объекта контроллера. Эти веса настройки штрафуют большие изменения в движениях управления.
Чтобы использовать те же веса настройки над горизонтом предсказания, соедините dmv.wt с сигналом вектора-строки с Nmv элементами, где Nmv количество манипулируемых переменных. Каждый элемент задает неотрицательную настройку веса для управляемой переменной скорости. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.
Чтобы варьировать веса настройки над горизонтом предсказания от времени k времени k + p -1, соедините dmv.wt с матричным сигналом с Nmv столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.
Чтобы включить этот порт, выберите параметр MVRate weights.
ecr.wt
- Шлак переменного веса настройкиЧтобы задать коэффициент настройки переменной задержки во время выполнения, включите этот входной порт и соедините скалярный сигнал. Если этот порт отключен, блок использует настройочный вес, указанный в Weights.ECR
свойство его объекта контроллера.
Вес настройки переменной slack не имеет эффекта, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения 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
- Начальное предположение для переменной slack в решенииЧтобы задать начальное предположение для переменной slack в решении, включите этот входной порт и соедините неотрицательный скалярный сигнал. Если этот порт отключен, блок использует начальное предположение 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
- Переменная SlackОслабьте переменную, ε, используемый в ограничительном смягчении, произведите как 0
или положительная скалярная величина значение.
.r= 0 - Все мягкие ограничения выполняются на протяжении всего горизонта предсказания.
.r> 0 - нарушается по крайней мере одно мягкое ограничение. Когда больше чем одно ограничение нарушено, ε представляет худший случай мягкое нарушение ограничений (измеренный значениями ECR для каждого ограничения).
Чтобы включить этот порт, выберите параметр Slack variable.
nlp.status
- Состояние оптимизацииСтатус оптимизации, выход как один из следующих:
Положительное целое число - решатель сходился к оптимальному решению
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 - количество состояний.
Первые p строки x.seq содержат вычисленные оптимальные значения состояний от текущего времени k до времени k + p -1. Первая строка x.seq содержит текущие оцененные значения состояния. Поскольку контроллер не вычисляет оптимальные состояния в момент времени k + p, последние две строки x.seq идентичны.
Чтобы включить этот порт, выберите параметр 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
- Объект контроллераnlmpc
имя объектаВы должны предоставить 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 выходной порт к блоку.
Параметры блоков:
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Выберите этот параметр, чтобы добавить mv.wt входной порт к блоку.
Параметры блоков:
mv_weight
|
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
MVRate weights
- Добавьте входной порт настроек скорости MVВыберите этот параметр, чтобы добавить 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.