exponenta event banner

nlmpcmoveopt

Набор опций для nlmpcmove функция

Описание

Задание параметров для nlmpcmove функция, используйте nlmpcmoveopt набор опций.

С помощью этого набора опций можно задать значения времени выполнения для подмножества свойств контроллера, таких как вес настройки и ограничения. Если не указано значение для одного из nlmpcmoveopt свойства, соответствующее значение, определенное в nlmpc вместо него используется объект контроллера.

Создание

Синтаксис

Описание

пример

options = nlmpcmoveopt создает набор параметров по умолчанию для nlmpcmove функция. Для изменения значений свойств используйте точечную нотацию.

Свойства

развернуть все

Выходные веса настройки переменных, заменяющие Weights.OutputVariables свойство контроллера во время выполнения, указанное как вектор строки или матрица неотрицательных значений.

Чтобы использовать одни и те же веса по горизонту прогнозирования, укажите вектор строки длиной Ny, где Ny - количество выходных переменных.

Чтобы изменить веса настройки по горизонту прогнозирования от времени k + 1 до времени k + p, укажите массив со столбцами Ny и до строк p. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит веса настройки выходной переменной для одного шага горизонта прогнозирования. Если указано меньше p строк, веса в последней строке используются для оставшихся шагов горизонта прогнозирования.

Управляемые веса настройки переменных, которые заменяют Weights.ManipulatedVariables свойство контроллера во время выполнения, указанное как вектор строки или матрица неотрицательных значений.

Чтобы использовать одни и те же веса по горизонту прогнозирования, укажите вектор строки длиной Nmv, где Nmv - количество манипулируемых переменных.

Чтобы изменять веса настройки по горизонту прогнозирования от времени k до времени k + p-1, укажите массив со столбцами Nmv и до строк p. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит управляемые веса настройки переменной для одного шага горизонта прогнозирования. Если указано меньше p строк, веса в последней строке используются для оставшихся шагов горизонта прогнозирования.

Манипулируемые веса настройки переменной скорости, которые заменяют Weights.ManipulatedVariablesRate свойство контроллера во время выполнения, указанное как вектор строки или матрица неотрицательных значений.

Чтобы использовать одни и те же веса по горизонту прогнозирования, укажите вектор строки длиной Nmv, где Nmv - количество манипулируемых переменных.

Чтобы изменять веса настройки по горизонту прогнозирования от времени k до времени k + p-1, укажите массив со столбцами Nmv и до строк p. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит манипулированные веса настройки переменной скорости для одного шага горизонта прогнозирования. Если указано меньше p строк, веса в последней строке используются для оставшихся шагов горизонта прогнозирования.

Слабый переменный настроечный вес, заменяющий Weights.ECR свойство контроллера во время выполнения, указанное как положительный скаляр.

Нижняя граница выходной переменной, заданная как вектор строки длиной Ny или матрица со столбцами Ny, где Ny - количество выходных переменных. OutputMin(:,i) заменяет OutputVariables(i).Min свойства контроллера во время выполнения.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменить границы по горизонту прогнозирования от времени k + 1 до времени k + p, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Верхние границы выходных переменных, заданные как вектор строки длиной Ny или матрица со столбцами Ny, где Ny - количество выходных переменных. OutputMax(:,i) заменяет OutputVariables(i).Max свойства контроллера во время выполнения.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменить границы по горизонту прогнозирования от времени k + 1 до времени k + p, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Нижние границы манипулируемой переменной, задаваемые как вектор строки длиной Nmv или матрица со столбцами Nmv, где Nmv - количество манипулируемых переменных. MVMin(:,i) заменяет ManipulatedVariables(i).Min свойства контроллера во время выполнения.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменять границы по горизонту прогнозирования от времени k до времени k + p-1, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Верхние границы манипулируемых переменных, заданные как вектор строки длиной Nmv или матрица со столбцами Nmv, где Nmv - количество манипулируемых переменных. MVMax(:,i) заменяет ManipulatedVariables(i).Max свойства контроллера во время выполнения.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменять границы по горизонту прогнозирования от времени k до времени k + p-1, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Нижние границы манипулируемой переменной скорости, заданные как вектор строки длиной Nmv или матрица со столбцами Nmv, где Nmv - количество манипулируемых переменных. MVRateMin(:,i) заменяет ManipulatedVariables(i).RateMin свойства контроллера во время выполнения. MVRateMin границы должны быть непозволительными.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменять границы по горизонту прогнозирования от времени k до времени k + p-1, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Верхние границы манипулируемой переменной скорости, заданные как вектор строки длиной Nmv или матрица со столбцами Nmv, где Nmv - количество манипулируемых переменных. MVRateMax(:,i) заменяет ManipulatedVariables(i).RateMax свойства контроллера во время выполнения. MVRateMax границы должны быть неотрицательными.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменять границы по горизонту прогнозирования от времени k до времени k + p-1, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Нижние границы состояния, заданные как вектор строки длиной Nx или матрица со столбцами Nx, где Nx - число состояний. StateMin(:,i) заменяет States(i).Min свойства контроллера во время выполнения.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменить границы по горизонту прогнозирования от времени k + 1 до времени k + p, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Верхние границы состояния, заданные как вектор строки длиной Nx или матрица со столбцами Nx, где Nx - число состояний. StateMax(:,i) заменяет States(i).Max свойства контроллера во время выполнения.

Чтобы использовать те же границы по горизонту прогнозирования, укажите вектор строки.

Чтобы изменить границы по горизонту прогнозирования от времени k + 1 до времени k + p, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные границы используются для оставшихся шагов горизонта прогнозирования.

Управляемые переменные цели, определяемые как вектор строки длиной Nmv или матрица со столбцами Nmv, где Nmv - количество управляемых переменных.

Чтобы использовать одни и те же управляемые переменные цели по всему горизонту прогнозирования, укажите вектор строки.

Чтобы изменять цели по горизонту прогнозирования (предварительный просмотр) от времени k до времени k + p-1, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит цели для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные цели используются для оставшихся шагов горизонта прогнозирования.

Значения параметров, используемые моделью прогнозирования, функцией пользовательских затрат и пользовательскими ограничениями, заданными как вектор ячейки с длиной, равной Model.NumberOfParameters свойства контроллера. Если у контроллера нет параметров, то Parameters должно быть {}.

Контроллер, nlmpcobj, передает эти параметры в:

  • Функции модели в nlmpcobj.Model (StateFcn и OutputFcn)

  • Функция затрат nlmpcobj.Optimization.CustomCostFcn

  • Функции ограничения в nlmpcobj.Optimization (CustomEqConFcn и CustomIneqConFcn)

  • Якобиан функционирует в nlmpcobj.Jacobian

Порядок параметров должен соответствовать порядку, определенному для этих функций.

Начальные догадки для решений оптимального состояния, заданные как вектор строки длиной Nx или матрица со столбцами Nx, где Nx - число состояний.

Чтобы использовать одни и те же начальные догадки для всего горизонта прогнозирования, укажите вектор строки.

Чтобы изменить начальные догадки по горизонту прогнозирования от времени k + 1 до времени k + p, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит начальные догадки для одного шага горизонта прогнозирования. Если указано меньше p строк, последние предположения используются для оставшихся шагов горизонта прогнозирования.

Если X0 является [], начальные догадки по умолчанию - это текущие состояния модели прогнозирования (x входной аргумент для nlmpcmove).

Как правило, при моделировании с замкнутым контуром не указывается X0 себя. Вместо этого при вызове nlmpcmove, вернуть opt выходной аргумент, который является nlmpcmoveopt объект. opt.X0 содержит рассчитанные оптимальные траектории состояния в качестве начальных предположений. Затем вы можете пройти opt в качестве options входной аргумент для nlmpcmove для следующего интервала управления. Эти шаги являются оптимальными, даже если не указаны другие параметры времени выполнения.

Начальные предположения для оптимальных решений с управляемыми переменными, определяемые как вектор строки длиной Nmv или матрица со столбцами Nmv, где Nmv - количество манипулируемых переменных.

Чтобы использовать одни и те же начальные догадки для всего горизонта прогнозирования, укажите вектор строки.

Чтобы варьировать начальные догадки по горизонту прогнозирования от времени k до времени k + p-1, укажите матрицу, содержащую до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит начальные догадки для одного шага горизонта прогнозирования. Если указано меньше p строк, последние предположения используются для оставшихся шагов горизонта прогнозирования.

Если MV0 является [], начальные догадки по умолчанию - управляющие сигналы, используемые в установке на предыдущем интервале управления (lastmv входной аргумент для nlmpcmove).

Как правило, при моделировании с замкнутым контуром не указывается MV0 себя. Вместо этого при вызове nlmpcmove, вернуть opt выходной аргумент, который является nlmpcmoveopt объект. opt.MV0 содержит рассчитанные оптимальные траектории манипулируемых переменных в качестве начальных предположений. Затем вы можете пройти opt в качестве options входной аргумент для nlmpcmove для следующего интервала управления. Эти шаги являются оптимальными, даже если не указаны другие параметры времени выполнения.

Начальное предположение для переменной слабости в решении, определяемое как неотрицательный скаляр. Если 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 функция.

Представлен в R2018b