Опция установлена для nlmpcmove
функция
Задавать опции для nlmpcmove
функция, используйте 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
— Исходное предположение для слабой переменной в решении[]
(значение по умолчанию) | неотрицательный скаляр Исходное предположение для слабой переменной в решении в виде неотрицательного скаляра. Если Slack0
[]
, исходным предположением по умолчанию является 0
.
В общем случае во время симуляции с обратной связью, вы не задаете Slack0
самостоятельно. Вместо этого при вызове nlmpcmove
, возвратите opt
выходной аргумент, который является nlmpcmoveopt
объект. opt.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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.