Моделирование прогнозирующих контроллеров нелинейной модели
Панель инструментов управления прогнозом модели

Блок контроллера нелинейного MPC моделирует контроллер прогнозирования нелинейной модели. В каждом интервале управления блок вычисляет оптимальные движения управления путем решения задачи нелинейного программирования. Дополнительные сведения о нелинейном MPC см. в разделе Нелинейный MPC.
Для использования этого блока необходимо сначала создать nlmpc в рабочей области MATLAB ®.
Ни один из параметров блока Nonlinear MPC Controller не может быть настроен.
x - входТекущие состояния модели прогнозирования, заданные как векторный сигнал длиной Nx, где Nx - количество состояний модели прогнозирования. Поскольку нелинейный контроллер MPC не выполняет оценку состояния, необходимо измерить или оценить текущие состояния модели прогнозирования в каждом интервале управления.
ref - Исходные значения выходных данных моделиОпорные значения выходного сигнала установки, заданные как сигнал вектора строки или матричный сигнал.
Чтобы использовать одни и те же опорные значения по всему горизонту прогнозирования, соедините ссылку с сигналом вектора строки с элементами NY, где Ny - количество выходных переменных. Каждый элемент указывает ссылку на выходную переменную.
Чтобы изменить привязки по горизонту прогнозирования (предварительный просмотр) от времени k + 1 до времени k + p, подключите ссылку к сигналу матрицы со столбцами Ny и до строк p. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит ссылки для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные привязки используются для оставшихся шагов горизонта прогнозирования.
last_mv - Управляющие сигналы, используемые в установке на предыдущем интервале управленияУправляющие сигналы, используемые в установке на предыдущем интервале управления, определяемом как векторный сигнал lengthNmv, где Nmv - количество манипулируемых переменных.
Примечание
Подключите last_mv к сигналам СН, фактически подаваемым на установку в предыдущем интервале управления. Обычно эти сигналы СН являются значениями, генерируемыми контроллером, хотя это не всегда так. Например, если контроллер находится в автономном режиме и работает в режиме отслеживания; то есть выход контроллера не приводит в действие установку, тогда подача фактического управляющего сигнала в last_mv может помочь достичь безударной передачи, когда контроллер переключается обратно в оперативный режим.
md - входЕсли в модели прогнозирования контроллера измерены нарушения, необходимо включить этот порт и подключить к нему вектор строки или матричный сигнал.
Чтобы использовать одни и те же измеренные значения возмущений по горизонту прогнозирования, соедините md с сигналом вектора строки с элементами Nmd, где Nmd - количество манипулируемых переменных. Каждый элемент определяет значение измеренного возмущения.
Чтобы изменять возмущения по горизонту прогнозирования (предварительный просмотр) от времени k к времени k + p, подключите md к сигналу матрицы со столбцами Nmd и до p + 1 строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит возмущения для одного шага горизонта прогнозирования. Если указано меньше p + 1 строк, конечные возмущения используются для оставшихся шагов горизонта прогнозирования.
Для активизации этого порта выберите параметр Measured ristances.
params - Дополнительные параметрыЕсли контроллер использует дополнительные параметры в своей модели прогнозирования, пользовательскую функцию затрат или пользовательские функции ограничений, включите этот входной порт и подключите сигнал шины параметров к элементам Np, где Np - количество параметров. Для получения дополнительной информации о создании сигнала шины параметров см. createParameterBus. Контроллер передает эти параметры своим функциям модели, функции затрат, функции ограничений и функции якобиана.
Если контроллер не использует дополнительные параметры, необходимо отключить параметры.
Чтобы включить этот порт, выберите параметр Model parameters.
mv.target - Управляемые переменные целиЧтобы указать управляемые переменные цели, включите этот входной порт и подключите вектор строки или матричный сигнал. Чтобы данная управляемая переменная отслеживала заданное целевое значение, необходимо также указать ненулевой вес настройки для этой управляемой переменной.
Чтобы использовать те же манипулируемые переменные цели по всему горизонту прогнозирования, подключите mv.target к сигналу вектора строки с элементами Nmv, где Nmv - количество манипулируемых переменных. Каждый элемент определяет цель для управляемой переменной.
Чтобы изменять цели по горизонту прогнозирования (предварительный просмотр) от времени k до времени k + p-1, подключите mv.target к матричному сигналу со столбцами Nmv и до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит цели для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные цели используются для оставшихся шагов горизонта прогнозирования.
Чтобы включить этот порт, выберите параметр Targets for manufulated 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 - Вес переменной настройки SlackЧтобы задать переменный вес настройки провисания времени выполнения, включите этот входной порт и подключите скалярный сигнал. Если этот порт отключен, блок использует вес настройки, указанный в Weights.ECR свойство объекта контроллера.
Вес настройки переменной провисания не имеет эффекта, если объект контроллера не определяет мягкие ограничения, связанные со значениями ECR которых не равны нулю. При наличии мягких ограничений увеличение значения ecr.wt делает эти ограничения относительно более трудными. Затем контроллер придает более высокий приоритет минимизации величины прогнозируемого наихудшего нарушения ограничения.
Чтобы включить этот порт, выберите параметр веса ECR.
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 в решении, включите этот входной порт и подключите неотрицательный скалярный сигнал. Если этот порт отключен, блок использует начальное предположение 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 или положительное скалярное значение.
start= 0 - все мягкие ограничения удовлетворяются на всем горизонте прогнозирования.
start> 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 идентичны.
Для активизации этого порта выберите параметр Optimum control sequence.
x.seq - Оптимальная последовательность состояний модели прогнозированияОптимальная последовательность состояний модели прогнозирования, возвращаемая как сигнал матрицы с p + 1 строками и столбцами Nx, где p - горизонт прогнозирования, а Nx - количество состояний.
Первые p строк x.seq содержат вычисленные оптимальные значения состояния от текущего времени k до времени k + p-1. Первая строка x.seq содержит текущие оценочные значения состояния. Поскольку контроллер не вычисляет оптимальные состояния в момент времени k + p, последние две строки x.seq идентичны.
Для активизации этого порта выберите параметр Optimum state sequence.
y.seq - Оптимальная последовательность выходных переменныхОптимальная последовательность выходных переменных, возвращаемая в виде матричного сигнала с p + 1 строками и столбцами Ny, где p - горизонт прогнозирования, а Ny - количество выходных переменных.
Первые p строк y.seq содержат вычисленные оптимальные выходные значения от текущего времени k до времени k + p-1. Первая строка y.seq вычисляется на основе текущих оцененных состояний и текущих измеренных возмущений (первая строка входного сигнала md). Поскольку контроллер не вычисляет оптимальные выходные значения в момент времени k + p, последние две строки y.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimum output sequence.
Nonlinear MPC Controller - Объект контроллераnlmpc имя объектаВы должны предоставить nlmpc объект, определяющий нелинейный контроллер MPC. Для этого введите имя nlmpc в рабочей области MATLAB.
Параметр блока:
nlmpcobj |
| Тип: строка, символьный вектор |
По умолчанию:
"" |
Use prediction model sample time - Флаг для использования времени выборки модели прогнозированияВыберите этот параметр, чтобы запустить контроллер с тем же временем выборки, что и его модель прогнозирования. Чтобы использовать другое время выборки контроллера, очистите этот параметр и укажите время выборки с помощью параметра Make block run at the 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 parameter).
Параметр блока:
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 для ускорения моделирования.
Параметр блока:
mexname |
| Тип: строка, символьный вектор |
По умолчанию:
"" |
Measured disturbances - Добавление входного порта измеренного возмущенияЕсли контроллер измерил нарушения, необходимо выбрать этот параметр, чтобы добавить выходной порт md в блок.
Параметр блока:
md_enabled |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Targets for manipulated variables - Добавить управляемый целевой порт ввода переменнойВыберите этот параметр, чтобы добавить входной порт mv.target в блок.
Параметр блока:
mvtarget_enabled |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Model parameters - Добавить входной порт параметров моделиЕсли контроллер использует дополнительные параметры, необходимо выбрать этот параметр, чтобы добавить порт вывода параметров в блок.
Для получения дополнительной информации о создании сигнала шины параметров см. createParameterBus.
Параметр блока:
param_enabled |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Optimal 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_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 - Добавление входного порта ограничения минимальной скорости MVВыберите этот параметр, чтобы добавить входной порт dmv.min в блок.
Параметр блока:
mvrate_min |
| Тип: строка, символьный вектор |
Значения:
"off", "on" |
По умолчанию:
"off" |
Upper MVRate limits - Добавление входного порта ограничения максимальной скорости MVВыберите этот параметр, чтобы добавить входной порт 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 - Добавить входной порт настройки весов 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, подключенного к порту ввода параметров. Для этого поместите блоки Nonlinear MPC Controller и Bus Creator в подсистему и создайте код для этой подсистемы.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.



