Набор опций для nlmpcmove функция
Чтобы задать опции для nlmpcmove function, использовать nlmpcmoveopt набор опций.
Используя этот набор опций, можно задать значения во время выполнения для подмножества свойств контроллера, таких как веса настройки и ограничения. Если вы не задаете значение для одного из nlmpcmoveopt свойства, соответствующее значение, заданное в nlmpc вместо этого используется объект контроллера.
создает набор опций по умолчанию для options = nlmpcmoveoptnlmpcmove функция. Чтобы изменить значения свойств, используйте запись через точку.
OutputWeights - Выходные переменные веса настройки[] (по умолчанию) | вектор-строка | матрицаВыход весов настройки переменных, которые заменяют Weights.OutputVariables свойство контроллера во время исполнения, заданное как вектор-строка или матрица неотрицательных значений.
Чтобы использовать те же веса на горизонте предсказания, задайте вектор-строку Ny длины, где Ny количество переменных выходов.
Чтобы изменить веса настройки над горизонтом предсказания от времени k + 1 до времени k + p, задайте массив с Ny столбцами и до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит выходные переменные веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса в последней строке используются для остальных шагов горизонта предсказания.
MVWeights - Манипулируемые переменные веса настройки[] (по умолчанию) | вектор-строка | матрицаМанипулируемые веса настройки переменных, которые заменяют Weights.ManipulatedVariables свойство контроллера во время исполнения, заданное как вектор-строка или матрица неотрицательных значений.
Чтобы использовать те же веса на горизонте предсказания, задайте вектор-строку длины Nmv, где Nmv количество манипулируемых переменных.
Чтобы варьировать веса настройки по горизонту предсказания от времени k времени k + p -1, задайте массив с Nmv столбцами и до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит манипулированные переменные веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса в последней строке используются для остальных шагов горизонта предсказания.
MVRateWeights - Манипулируемые веса настройки переменной скорости[] (по умолчанию) | вектор-строка | матрицаМанипулируемые веса настройки переменной скорости, которые заменяют Weights.ManipulatedVariablesRate свойство контроллера во время исполнения, заданное как вектор-строка или матрица неотрицательных значений.
Чтобы использовать те же веса на горизонте предсказания, задайте вектор-строку длины Nmv, где Nmv количество манипулируемых переменных.
Чтобы варьировать веса настройки по горизонту предсказания от времени k времени k + p -1, задайте массив с Nmv столбцами и до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит управляемые веса настройки переменной скорости для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса в последней строке используются для остальных шагов горизонта предсказания.
ECR Weight - Шлак переменного веса настройки[] (по умолчанию) | положительная скалярная величинаУменьшите вес настройки переменной, который заменяет Weights.ECR свойство контроллера во время исполнения, заданное как положительная скалярная величина.
OutputMin - Выходные переменные нижние границы[] (по умолчанию) | вектор-строка | матрицаВыход переменные нижние границы, заданные как вектор-строка длины Ny или матрица с Ny столбцами, где Ny - количество переменных выходов. OutputMin(:,i) заменяет OutputVariables(i).Min свойство контроллера во время исполнения.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
OutputMax - Выходные верхние границы переменной[] (по умолчанию) | вектор-строка | матрицаВыход верхние границы, заданные как вектор-строка длины Ny или матрица с Ny столбцами, где Ny - количество переменных выходов. OutputMax(:,i) заменяет OutputVariables(i).Max свойство контроллера во время исполнения.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
MVMin - Манипулирование нижними границами переменной[] (по умолчанию) | вектор-строка | матрицаМанипулируемые нижние границы переменной, заданные как вектор-строка длины Nmv или матрица с Nmv столбцами, где Nmv - количество манипулируемых переменных. MVMin(:,i) заменяет ManipulatedVariables(i).Min свойство контроллера во время исполнения.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
MVMax - Манипулируемые верхние границы переменной[] (по умолчанию) | вектор-строка | матрицаМанипулируемые верхние границы переменной, заданные как вектор-строка длины Nmv или матрица с Nmv столбцами, где Nmv - количество манипулируемых переменных. MVMax(:,i) заменяет ManipulatedVariables(i).Max свойство контроллера во время исполнения.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
MVRateMin - Манипулирование нижними границами переменной скорости[] (по умолчанию) | вектор-строка | матрицаМанипулируемые нижние границы переменной скорости, заданные как вектор-строка длины Nmv или матрица с Nmv столбцами, где Nmv - количество манипулируемых переменных. MVRateMin(:,i) заменяет ManipulatedVariables(i).RateMin свойство контроллера во время исполнения. MVRateMin ограничения должны быть непозитивными.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
MVRateMax - Манипулируемые верхние границы переменной скорости[] (по умолчанию) | вектор-строка | матрицаМанипулируемые верхние границы переменной скорости, заданные как вектор-строка длины Nmv или матрица с Nmv столбцами, где Nmv - количество манипулируемых переменных. MVRateMax(:,i) заменяет ManipulatedVariables(i).RateMax свойство контроллера во время исполнения. MVRateMax границы должны быть неотрицательными.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
StateMin - Нижние границы состояния[] (по умолчанию) | вектор-строка | матрицаНижние границы состояния, заданные как вектор-строка длины Nx или матрица с Nx столбцами, где Nx - количество состояний. StateMin(:,i) заменяет States(i).Min свойство контроллера во время исполнения.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
StateMax - Верхние границы состояния[] (по умолчанию) | вектор-строка | матрицаВерхние границы состояния, заданные как вектор-строка длины Nx или матрица с Nx столбцами, где Nx - количество состояний. StateMax(:,i) заменяет States(i).Max свойство контроллера во время исполнения.
Чтобы использовать те же границы между горизонтом предсказания, задайте вектор-строку.
Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные границы используются для остальных шагов горизонта предсказания.
MVTarget - Манипулируемые переменные цели[] (по умолчанию) | вектор-строка | матрицаМанипулируемые переменные цели, заданные как вектор-строка длины Nmv или матрица с Nmv столбцами, где Nmv - количество манипулируемых переменных.
Чтобы использовать те же манипулируемые переменные цели через горизонт предсказания, задайте вектор-строку.
Чтобы изменять цели над горизонтом предсказания (предварительный просмотр) время k от времени k + p -1, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит цели для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные цели используются для остальных шагов горизонта предсказания.
Parameters - Значения параметров{} (по умолчанию) | вектор камерыЗначения параметров, используемые моделью предсказания, пользовательской функцией стоимости и пользовательскими ограничениями, заданные как вектор камеры с длиной, равной Model.NumberOfParameters свойство контроллера. Если у контроллера нет параметров, то Parameters должен быть {}.
Контроллер, nlmpcobj, передает эти параметры в:
Моделируйте функции в nlmpcobj.Model (StateFcn и OutputFcn)
Функции затрат nlmpcobj.Optimization.CustomCostFcn
Функции ограничения в nlmpcobj.Optimization (CustomEqConFcn и CustomIneqConFcn)
Якобианские функции в nlmpcobj.Jacobian
Порядок параметров должен совпадать с порядком, заданным для этих функций.
X0 - Начальные догадки для оптимальных решений состояния[] (по умолчанию) | вектор | матрицаНачальные догадки для оптимальных решений состояния, заданные как вектор-строка длины Nx или матрица с Nx столбцами, где Nx - количество состояний.
Чтобы использовать те же начальные предположения по горизонту предсказания, задайте вектор-строку.
Чтобы изменить начальные догадки над горизонтом предсказания от времени k + 1 до времени k + p, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит начальные предположения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные догадки используются для остальных шагов горизонта предсказания.
Если X0 является []начальными предположениями по умолчанию являются текущие состояния модели предсказания (x входной параметр в nlmpcmove).
В целом, во время симуляции с обратной связью вы не задаете X0 сам. Вместо этого при вызове nlmpcmove, верните opt выходной аргумент, который является nlmpcmoveopt объект. opt.X0 содержит вычисленные оптимальные траектории состояний в качестве начальных догадок. Затем можно пройти opt в качестве options входной параметр в nlmpcmove для следующего контрольного интервала. Эти шаги являются наилучшей практикой, даже если вы не задаете никаких других опций во время выполнения.
MV0 - Начальные предположения для оптимальных манипулированных переменных решений[] (по умолчанию) | вектор | матрицаНачальные догадки для оптимальных манипулированных переменных решений, заданные как вектор-строка длины Nmv или матрица с Nmv столбцами, где Nmv - количество манипулированных переменных.
Чтобы использовать те же начальные предположения по горизонту предсказания, задайте вектор-строку.
Чтобы варьировать начальные догадки над горизонтом предсказания от времени k времени k + p -1, задайте матрицу с до p строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит начальные предположения для одного шага горизонта предсказания. Если вы задаете меньше p строк, конечные догадки используются для остальных шагов горизонта предсказания.
Если MV0 является []начальные догадки по умолчанию являются управляющими сигналами, используемыми на объекте в предыдущем контрольном интервале (lastmv входной параметр в nlmpcmove).
В целом, во время симуляции с обратной связью вы не задаете MV0 сам. Вместо этого при вызове nlmpcmove, верните opt выходной аргумент, который является nlmpcmoveopt объект. opt.MV0 содержит вычисленные оптимальные манипулированные переменные траектории в качестве начальных догадок. Затем можно пройти opt в качестве options входной параметр в nlmpcmove для следующего контрольного интервала. Эти шаги являются наилучшей практикой, даже если вы не задаете никаких других опций во время выполнения.
Slack0 - Начальное предположение для переменной slack в решении[] (по умолчанию) | неотрицательной скаляром Начальное предположение для переменной slack в решении, заданное как неотрицательный скаляр. Если Slack0 является []начальное предположение по умолчанию является 0.
В целом, во время симуляции с обратной связью вы не задаете Slack0 сам. Вместо этого при вызове nlmpcmove, верните opt выходной аргумент, который является nlmpcmoveopt объект. opt.Slack содержит вычисленную переменную slack как начальное предположение. Затем можно пройти opt в качестве options входной параметр в nlmpcmove для следующего контрольного интервала. Эти шаги являются наилучшей практикой, даже если вы не задаете никаких других опций во время выполнения.
nlmpcmove | Вычислите оптимальное действие управления для нелинейного контроллера MPC |
Создайте nlmpcmoveopt по умолчанию набор опций.
options = nlmpcmoveopt;
Задайте значения времени выполнения для параметров модели предсказания контроллера. В данном примере предположим, что контроллер имеет следующие необязательные параметры, которые являются входными параметрами для всех функций модели предсказания и пользовательских функций контроллера.
Шаг расчета модели, заданный как одно числовое значение. Задайте значение 0.25.
Коэффициенты усиления, заданные как двухэлементный вектор-строка. Задайте значение [0.7 0.35].
Порядок, в котором вы задаете параметры, должен совпадать с порядком, заданным в списках аргументов пользовательской функции. Кроме того, размерности параметров должны совпадать с размерностями, ожидаемыми пользовательскими функциями.
options.Parameters = {0.25,[0.7 0.35]};Чтобы использовать эти параметры при вычислении необязательных действий управления для нелинейного контроллера MPC, передайте options на nlmpcmove функция.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.