Опция установлена для mpcmove
функция
Задавать опции для mpcmove
, mpcmoveAdaptive
, и mpcmoveMultiple
функции, используйте mpcmoveopt
объект.
Используя этот объект, можно задать значения во время выполнения для подмножества свойств контроллера, такие как настраивающиеся веса и ограничения. Если вы не задаете значение для одного из mpcmoveopt
свойства, значение соответствующего параметра контроллера используется вместо этого.
создает набор по умолчанию опций для options
= mpcmoveoptmpcmove
функция. Чтобы изменить значения свойств, используйте запись через точку.
OutputWeights
— Настраивающие веса выходной переменной[]
(значение по умолчанию) | вектор | массивНастраивающие веса выходной переменной, которые заменяют Weights.OutputVariables
свойство контроллера во время выполнения в виде вектора или массива неотрицательных значений.
Чтобы использовать те же веса через горизонт предсказания, задайте вектор-строку из длины Ny, где Ny является количеством выходных переменных.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k +1 ко времени k +p, задайте массив со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающие веса выходной переменной для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, веса в итоговой строке используются для остающихся шагов горизонта предсказания.
Формат OutputWeights
должен совпадать с форматом Weights.OutputVariables
свойство объекта контроллера. Например, вы не можете задать постоянные веса через горизонт предсказания в объекте контроллера, и затем задать изменяющееся во времени использование весов mpcmoveopt
.
MVWeights
— Переменные настраивающие веса, которыми управляют,[]
(значение по умолчанию) | вектор | массивПеременные настраивающие веса, которыми управляют, которые заменяют Weights.ManipulatedVariables
свойство контроллера во время выполнения в виде вектора или массива неотрицательных значений.
Чтобы использовать те же веса через горизонт предсказания, задайте вектор-строку из длины Nmv, где Nmv является количеством переменных, которыми управляют.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, задайте массив со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит переменные настраивающие веса, которыми управляют, для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, веса в итоговой строке используются для остающихся шагов горизонта предсказания.
Формат MVWeights
должен совпадать с форматом Weights.ManipulatedVariables
свойство объекта контроллера. Например, вы не можете задать постоянные веса через горизонт предсказания в объекте контроллера, и затем задать изменяющееся во времени использование весов mpcmoveopt
.
MVRateWeights
— Настраивающие веса с плавающей ставкой, которыми управляют,[]
(значение по умолчанию) | вектор | массивНастраивающие веса с плавающей ставкой, которыми управляют, которые заменяют Weights.ManipulatedVariablesRate
свойство контроллера во время выполнения в виде вектора или массива неотрицательных значений.
Чтобы использовать те же веса через горизонт предсказания, задайте вектор-строку из длины Nmv, где Nmv является количеством переменных, которыми управляют.
Чтобы варьироваться настраивающиеся веса по горизонту предсказания со времени k ко времени k +p-1, задайте массив со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит настраивающие веса с плавающей ставкой, которыми управляют, для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, веса в итоговой строке используются для остающихся шагов горизонта предсказания.
Формат MVRateWeights
должен совпадать с форматом Weights.ManipulatedVariablesRate
свойство объекта контроллера. Например, вы не можете задать постоянные веса через горизонт предсказания в объекте контроллера, и затем задать изменяющееся во времени использование весов mpcmoveopt
.
ECRWeight
— Ослабьте переменный настраивающий вес[]
(значение по умолчанию) | положительная скалярная величинаОслабьте переменный настраивающий вес, который заменяет Weights.ECR
свойство контроллера во время выполнения в виде положительной скалярной величины.
OutputMin
— Нижние границы выходной переменной[]
(значение по умолчанию) | вектор-строка | матрицаНижние границы выходной переменной в виде вектора-строки из длины Ny или как матрица со столбцами Ny, где Ny является количеством выходных переменных.
Если вы не задавали OutputVariables(i).Min
свойство mpc
объект, затем задавая OutputMin
результаты по ошибке, когда вы выполняетесь mpcmove
.
Чтобы изменить границы по горизонту предсказания со времени k +1 ко времени k +p, задайте матрицу со столбцами Ny и до строк p. Здесь, Ny является количеством объекта выходные параметры, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке используются для остающихся шагов горизонта предсказания.
OutputMin(:,i)
заменяет OutputVariables(i).Min
свойство mpc
объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.
Скалярный OutputVariables(i).Min
в mpc
объект (константа, направляющаяся в i
объект th выход, который будет применен ко всем шагам предсказания)
OutputMin Размерность | Заменяющее поведение |
---|---|
Скалярный OutputMin (один выход, постоянный связанный) | OutputMin заменяет константу, связанную заданный в OutputVariables(i).Min |
Вектор-столбец OutputMin (один выход, изменяющийся во времени связанный) | OutputMin заменяет константу, связанную заданный в OutputVariables(i).Min со связанным изменяющимся во времени. |
Вектор-строка OutputMin (несколько выходных параметров, постоянных границ) | OutputMin(i) заменяет константу, связанную заданный в OutputVariables(i).Min |
Матричный OutputMin (несколько выходных параметров, изменяющихся во времени границ) | OutputMin(:,i) заменяет константу, связанную заданный в OutputVariables(i).Min со связанным изменяющимся во времени. |
Векторный OutputVariables(i).Min
в mpc
объект (изменяющееся во времени направляющееся в i
объект th выход с различными значениями на различных шагах предсказания)
OutputMin Размерность | Заменяющее поведение |
---|---|
Скалярный OutputMin (один выход, постоянный связанный) | OutputMin заменяет первую конечную запись в OutputVariables.Min и остающиеся записи в OutputVariables.Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables.Min вектор. |
Вектор-столбец OutputMin (один выход, изменяющийся во времени связанный) | OutputMin заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Min , и исходный связанный профиль отбрасывается. |
Вектор-строка OutputMin (несколько выходных параметров, постоянных границ) | OutputMin(i) заменяет первую конечную запись в OutputVariables(i).Min и остающиеся записи в OutputVariables(i).Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables(i).Min вектор. |
Матричный OutputMin (несколько выходных параметров, изменяющихся во времени границ). | OutputMin(:,i) заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Min , и исходный связанный профиль отбрасывается. |
OutputMax
— Верхние границы выходной переменной[]
(значение по умолчанию) | вектор-строка | матрицаВерхние границы выходной переменной в виде вектора-строки из длины Ny или как матрица со столбцами Ny, где Ny является количеством выходных переменных.
Если вы не задавали OutputVariables(i).Max
свойство mpc
объект, затем задавая OutputMax
результаты по ошибке, когда вы выполняетесь mpcmove
.
Чтобы изменить границы по горизонту предсказания со времени k +1 ко времени k +p, задайте матрицу со столбцами Ny и до строк p. Здесь, Ny является количеством объекта выходные параметры, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке используются для остающихся шагов горизонта предсказания.
OutputMax(:,i)
заменяет OutputVariables(i).Max
свойство mpc
объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.
Скалярный OutputVariables(i).Max
в mpc
объект (константа, направляющаяся в i
объект th выход, который будет применен ко всем шагам предсказания)
OutputMax Размерность | Заменяющее поведение |
---|---|
Скалярный OutputMax (один выход, постоянный связанный) | OutputMax заменяет константу, связанную заданный в OutputVariables(i).Max |
Вектор-столбец OutputMax (один выход, изменяющийся во времени связанный) | OutputMax заменяет константу, связанную заданный в OutputVariables(i).Max со связанным изменяющимся во времени. |
Вектор-строка OutputMax (несколько выходных параметров, постоянных границ) | OutputMax(i) заменяет константу, связанную заданный в OutputVariables(i).Max |
Матричный OutputMax (несколько выходных параметров, изменяющихся во времени границ) | OutputMax(:,i) заменяет константу, связанную заданный в OutputVariables(i).Max со связанным изменяющимся во времени. |
Векторный OutputVariables(i).Max
в mpc
объект (изменяющееся во времени направляющееся в i
объект th выход с различными значениями на различных шагах предсказания)
OutputMax Размерность | Заменяющее поведение |
---|---|
Скалярный OutputMax (один выход, постоянный связанный) | OutputMax заменяет первую конечную запись в OutputVariables.Max и остающиеся записи в OutputVariables.Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables.Max вектор. |
Вектор-столбец OutputMax (один выход, изменяющийся во времени связанный) | OutputMax заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Max , и исходный связанный профиль отбрасывается. |
Вектор-строка OutputMax (несколько выходных параметров, постоянных границ) | OutputMax(i) заменяет первую конечную запись в OutputVariables(i).Max и остающиеся записи в OutputVariables(i).Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным OutputVariables(i).Max вектор. |
Матричный OutputMax (несколько выходных параметров, изменяющихся во времени границ). | OutputMax(:,i) заменяет изменяющееся во времени, связанное заданный в OutputVariables(i).Max , и исходный связанный профиль отбрасывается. |
MVMin
— Переменные нижние границы, которыми управляют,[]
(значение по умолчанию) | вектор-строка | матрицаПеременные нижние границы, которыми управляют, в виде вектора-строки из длины Nmv или как матрица со столбцами Nmv, где Nmv является количеством выходных переменных.
Если вы не задавали ManipulatedVariables(i).Min
свойство mpc
объект, затем задавая MVMin
результаты по ошибке, когда вы выполняетесь mpcmove
.
Чтобы изменить границы по горизонту предсказания со времени k ко времени k +p-1, задайте матрицу со столбцами Nmv и до строк p. Здесь, Nmv является количеством переменных, которыми управляют, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке используются для остающихся шагов горизонта предсказания.
MVMin(:,i)
заменяет ManipulatedVariables(i).Min
свойство mpc
объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.
Скалярный ManipulatedVariables(i).Min
в mpc
объект (константа, направляющаяся в i
th управлял переменной, которая будет применена ко всем шагам предсказания),
MVMin Размерность | Заменяющее поведение |
---|---|
Скалярный MVMin (один выход, постоянный связанный) | MVMin заменяет константу, связанную заданный в ManipulatedVariables(i).Min |
Вектор-столбец MVMin (один выход, изменяющийся во времени связанный) | MVMin заменяет константу, связанную заданный в ManipulatedVariables(i).Min со связанным изменяющимся во времени. |
Вектор-строка MVMin (несколько выходных параметров, постоянных границ) | MVMin(i) заменяет константу, связанную заданный в ManipulatedVariables(i).Min |
Матричный MVMin (несколько выходных параметров, изменяющихся во времени границ) | MVMin(:,i) заменяет константу, связанную заданный в ManipulatedVariables(i).Min со связанным изменяющимся во времени. |
Векторный ManipulatedVariables(i).Min
в mpc
объект (изменяющееся во времени направляющееся в i
th управлял переменной с различными значениями на различных шагах предсказания),
MVMin Размерность | Заменяющее поведение |
---|---|
Скалярный MVMin (один выход, постоянный связанный) | MVMin заменяет первую конечную запись в ManipulatedVariables.Min и остающиеся записи в ManipulatedVariables.Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables.Min вектор. |
Вектор-столбец MVMin (один выход, изменяющийся во времени связанный) | MVMin заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Min , и исходный связанный профиль отбрасывается. |
Вектор-строка MVMin (несколько выходных параметров, постоянных границ) | MVMin(i) заменяет первую конечную запись в ManipulatedVariables(i).Min и остающиеся записи в ManipulatedVariables(i).Min переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables(i).Min вектор. |
Матричный MVMin (несколько выходных параметров, изменяющихся во времени границ). | MVMin(:,i) заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Min , и исходный связанный профиль отбрасывается. |
MVMax
— Переменные верхние границы, которыми управляют,[]
(значение по умолчанию) | вектор-строка | матрицаПеременные верхние границы, которыми управляют, в виде вектора-строки из длины Nmv или как матрица со столбцами Nmv, где Nmv является количеством выходных переменных.
Если вы не задавали ManipulatedVariables(i).Max
свойство mpc
объект, затем задавая MVMax
результаты по ошибке, когда вы выполняетесь mpcmove
.
Чтобы изменить границы по горизонту предсказания со времени k ко времени k +p-1, задайте матрицу со столбцами Nmv и до строк p. Здесь, Nmv является количеством переменных, которыми управляют, k является текущим временем, и p является горизонтом предсказания. Каждая строка содержит границы для одного шага горизонта предсказания. Если вы задаете меньше, чем строки p, границы в итоговой строке используются для остающихся шагов горизонта предсказания.
MVMax(:,i)
заменяет ManipulatedVariables(i).Max
свойство mpc
объект во время выполнения. Заменяющее поведение зависит от размерностей обеих переменных.
Скалярный ManipulatedVariables(i).Max
в mpc
объект (константа, направляющаяся в i
th управлял переменной, которая будет применена ко всем шагам предсказания),
MVMax Размерность | Заменяющее поведение |
---|---|
Скалярный MVMax (один выход, постоянный связанный) | MVMax заменяет константу, связанную заданный в ManipulatedVariables(i).Max |
Вектор-столбец MVMax (один выход, изменяющийся во времени связанный) | MVMax заменяет константу, связанную заданный в ManipulatedVariables(i).Max со связанным изменяющимся во времени. |
Вектор-строка MVMax (несколько выходных параметров, постоянных границ) | MVMax(i) заменяет константу, связанную заданный в ManipulatedVariables(i).Max |
Матричный MVMax (несколько выходных параметров, изменяющихся во времени границ) | MVMax(:,i) заменяет константу, связанную заданный в ManipulatedVariables(i).Max со связанным изменяющимся во времени. |
Векторный ManipulatedVariables(i).Max
в mpc
объект (изменяющееся во времени направляющееся в i
th управлял переменной с различными значениями на различных шагах предсказания),
MVMax Размерность | Заменяющее поведение |
---|---|
Скалярный MVMax (один выход, постоянный связанный) | MVMax заменяет первую конечную запись в ManipulatedVariables.Max и остающиеся записи в ManipulatedVariables.Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables.Max вектор. |
Вектор-столбец MVMax (один выход, изменяющийся во времени связанный) | MVMax заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Max , и исходный связанный профиль отбрасывается. |
Вектор-строка MVMax (несколько выходных параметров, постоянных границ) | MVMax(i) заменяет первую конечную запись в ManipulatedVariables(i).Max и остающиеся записи в ManipulatedVariables(i).Max переключите или вниз с той же суммой смещения, чтобы сохранить профиль, заданный исходным ManipulatedVariables(i).Max вектор. |
Матричный MVMax (несколько выходных параметров, изменяющихся во времени границ). | MVMax(:,i) заменяет изменяющееся во времени, связанное заданный в ManipulatedVariables(i).Max , и исходный связанный профиль отбрасывается. |
CustomConstraint
— Пользовательские смешанные ограничения ввода/вывода[]
(значение по умолчанию) | структураПользовательские смешанные ограничения ввода/вывода в виде структуры со следующими полями. Эти ограничения заменяют смешанные ограничения ввода/вывода ранее использование набора setconstraint
.
E
— Переменное, постоянное ограничение, которым управляютПеременное ограничение, которым управляют, постоянное в виде Nc-by-Nmv массив, где Nc является количеством ограничений и Nmv, является количеством переменных, которыми управляют.
F
— Управляемое выходное постоянное ограничениеУправляемое выходное ограничение, постоянное в виде Nc-by-Ny массив, где Ny является количеством управляемых выходных параметров (измеренный и неизмеренный).
G
— Смешанное постоянное ограничение ввода/выводаСмешанное ограничение ввода/вывода, постоянное в виде вектор-столбца длины Nc.
S
— Измеренное постоянное ограничение воздействияИзмеренное ограничение воздействия, постоянное в виде Nc-by-Nmd массив, где Nmd является количеством измеренных воздействий.
OnlyComputeCost
— Отметьте указание, вычислить ли последовательность оптимального управления
(значение по умолчанию) | 1
Отметьте указание, вычислить ли последовательность оптимального управления в виде одного из следующего:
0 — Контроллер возвращает предсказанные перемещения оптимального управления в дополнение к величине затрат целевой функции.
1 — Контроллер возвращает стоимость целевой функции только, которая экономит вычислительные усилия.
MVused
— Значения переменных, которыми управляют, используются на объекте во время предыдущего контрольного интервала[]
(значение по умолчанию) | вектор-строкаЗначения переменных, которыми управляют, использовали на объекте во время предыдущего контрольного интервала в виде вектора-строки из длины Nmv, где Nmv является количеством переменных, которыми управляют. Если вы не задаете MVused
, mpvmove
использует LastMove
свойство его токового контроллера утверждает входной параметр, x
.
MVTarget
— Переменные цели, которыми управляют,[]
(значение по умолчанию) | вектор-строкаПеременная, которой управляют, предназначается в виде вектора-строки из длины для Nmv, где Nmv является количеством переменных, которыми управляют. MVTarget(i)
заменяет ManipulatedVariables(i).Target
свойство контроллера во время выполнения.
PredictionHorizon
— Горизонт предсказания[]
(значение по умолчанию) | положительное целое числоГоризонт предсказания, который заменяет PredictionHorizon
свойство контроллера во время выполнения в виде положительного целого числа. Если вы задаете PredictionHorizon
, необходимо также задать ControlHorizon
.
Определение PredictionHorizon
изменяется:
Количество строк в оптимальных последовательностях, возвращенных mpcmove
и mpcmoveAdaptive
функции
Максимальные размерности Plant
и Nominal
входные параметры mpcmoveAdaptive
Этот параметр проигнорирован mpcmoveMultiple
функция.
ControlHorizon
— Управляйте горизонтом[]
(значение по умолчанию) | положительное целое число | вектор из положительных целых чиселУправляйте горизонтом, который заменяет ControlHorizon
свойство контроллера во время выполнения в виде одного из следующего:
Положительное целое число, m, между 1
и p, включительно, где p равен PredictionHorizon
. В этом случае контроллер вычисляет m свободные перемещения управления, происходящие во времена k через k +m-1, и содержит контроллер выход, постоянный для остающихся шагов горизонта предсказания от k +m через k +p-1. Здесь, k является текущим контрольным интервалом. Для оптимальной траектории, планируя устанавливает m, равный p.
Вектор из положительных целых чисел, [m 1, m 2, …], где сумма целых чисел равняется горизонту предсказания, p. В этом случае контроллер вычисляет блоки M свободных перемещений, где M является длиной ControlHorizon
вектор. Первое свободное перемещение применяется ко временам k через k +m1-1, второе свободное перемещение применяет со времени k +m1 через k +m1+m2-1 и так далее. Используя перемещения блока может улучшить робастность вашего контроллера по сравнению со случаем по умолчанию.
Если вы задаете ControlHorizon
, необходимо также задать PredictionHorizon
.
Этот параметр проигнорирован mpcmoveMultiple
функция.
mpcmove | Вычислите действие оптимального управления и обновите состояния контроллера |
mpcmoveAdaptive | Вычислите оптимальное управление с обновлением модели предсказания |
mpcmoveMultiple | Вычислите действие MPC управления табличного управления в один момент времени |
Варьируйтесь переменная верхняя граница, которой управляют, во время симуляции.
Задайте объект, который включает 4-секундную входную задержку. Преобразуйте в без задержек, дискретное, модель в пространстве состояний с помощью 2-секундного контрольного интервала. Создайте соответствующий контроллер по умолчанию и задайте границы мВ в +/-2.
Ts = 2;
Plant = absorbDelay(c2d(ss(tf(0.8,[5 1],'InputDelay',4)),Ts));
MPCobj = mpc(Plant,Ts);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10. -->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2. -->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000. -->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000. -->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.
MPCobj.MV(1).Min = -2; MPCobj.MV(1).Max = 2;
Создайте пустой mpcmoveopt
объект. В процессе моделирования можно установить свойства объекта задать параметры контроллера.
options = mpcmoveopt;
Предварительно выделите устройство хранения данных и инициализируйте состояние контроллера.
v = []; t = [0:Ts:20]; N = length(t); y = zeros(N,1); u = zeros(N,1); x = mpcstate(MPCobj);
-->Assuming output disturbance added to measured output channel #1 is integrated white noise. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Используйте mpcmove
симулировать следующее:
Ссылка (заданное значение) ступенчатое изменение от начального условия r = 0 к r = 1 (ответ сервомотора)
Верхняя граница мВ продвигается уменьшение от 2 до 1, происходя в t = 10
r = 1; for i = 1:N y(i) = Plant.C*x.Plant; if t(i) >= 10 options.MVMax = 1; end [u(i),Info] = mpcmove(MPCobj,x,y(i),r,v,options); end
Когда цикл выполняется, значение options.MVMax
сбрасывается к 1 для всех итераций, которые происходят после t = 10. До той итерации, options.MVMax
isempty. Поэтому значение диспетчера для MVMax
используется, MPCobj.MV(1).Max = 2
.
Постройте результаты симуляции.
[Ts,us] = stairs(t,u); plot(Ts,us,'b-',t,y,'r-') legend('MV','OV') xlabel(sprintf('Time, %s',Plant.TimeUnit))
Из графика можно заметить, что исходная верхняя граница мВ активна до t = 4. После входной задержки 4 секунд выходная переменная (OV) перемещается гладко в свою новую цель r = 1. достижение цели в t = 10. Новый мВ, связанный наложенный в t = 10, становится активным сразу. Это обеспечивает OV ниже его цели, после того, как входная задержка протечет.
Теперь примите, что вы хотите наложить верхнюю границу OV в заданном местоположении относительно цели OV. Рассмотрите следующую ограничительную команду проекта:
MPCobj.OV(1).Max = [Inf,Inf,0.4,0.3,0.2];
Это - варьирующееся по горизонту ограничение. Известная входная задержка лишает возможности контроллер удовлетворять ограничению OV до третьего шага горизонта предсказания. Поэтому конечное ограничение во время первых двух шагов было бы плохой практикой. В иллюстративных целях предыдущее ограничение также уменьшается от 0,4 на шаге 3 к 0,2 на шаге 5 и после этого.
Следующие команды приводят к тем же результатам, показанным в предыдущем графике. Ограничение OV никогда не активно, потому что оно варьируется совместно с заданным значением, r.
x = mpcstate(MPCobj);
-->Assuming output disturbance added to measured output channel #1 is integrated white noise. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
OPTobj = mpcmoveopt; for i = 1:N y(i) = Plant.C*x.Plant; if t(i) >= 10 OPTobj.MVMax = 1; end OPTobj.OutputMax = r + 0.4; [u(i),Info] = mpcmove(MPCobj,x,y(i),r,v,OPTobj); end
Скалярное значение r + 0,4 замены первое конечное значение в MPCobj.OV(1).Max
вектор и остающиеся конечные значения настраивают, чтобы обеспечить исходный профиль, то есть, числовое различие между этими значениями неизменно. r = 1 для симуляции, таким образом, предыдущее использование mpcmoveopt
объект эквивалентен команде
MPCobj.OV(1).Max = [Inf, Inf, 1.4, 1.3, 1.2];
Однако использование mpcmoveopt
объект включает намного меньше вычислительных издержек.
Если переменная неограничена в первоначальном проекте контроллера, вы не можете ограничить его использование mpcmoveopt
. Контроллер игнорирует любые такие технические требования.
Вы не можете удалить ограничение из переменной, которая ограничивается в первоначальном проекте контроллера. Однако можно измениться, это к большому (или маленький) оценивает таким образом, что это вряд ли станет активным.
mpc
| mpcmove
| setconstraint
| setterminal
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.