Границы явных параметров закона управления MPC
создает структуру границ параметров на основе традиционного (неявного) объекта контроллера MPC. Структура диапазона предназначена для использования в качестве входного аргумента для Range = generateExplicitRange(MPCobj)generateExplicitMPC. Как правило, начальные значения диапазона, возвращаемые generateExplicitRange не подходят для создания явного контроллера MPC. Поэтому используйте точечную нотацию для установки значений структуры диапазона перед вызовом generateExplicitMPC.
Создание явного MPC-контроллера на основе традиционного MPC-контроллера для установки двойного интегратора.
Определите установку двойного интегратора.
plant = tf(1,[1 0 0]);
Создайте традиционный (неявный) контроллер MPC для этого завода с временем выборки 0,1, горизонтом прогнозирования 10 и горизонтом управления 3.
Ts = 0.1; p = 10; m = 3; MPCobj = mpc(plant,Ts,p,m);
-->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.
Чтобы создать явный MPC-контроллер, необходимо указать диапазоны параметров, таких как значения состояния и управляемые переменные. Для этого создайте структуру диапазона. Затем измените значения в структуре на требуемые диапазоны параметров.
range = generateExplicitRange(MPCobj);
-->Converting the "Model.Plant" property of "mpc" object to state-space. -->Converting model to discrete time. Assuming no disturbance added to measured output channel #1. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
range.State.Min(:) = [-10;-10]; range.State.Max(:) = [10;10]; range.Reference.Min = -2; range.Reference.Max = 2; range.ManipulatedVariable.Min = -1.1; range.ManipulatedVariable.Max = 1.1;
Используйте более надежный метод сокращения для вычислений. Использовать generateExplicitOptions чтобы создать набор параметров по умолчанию, а затем изменить polyreduction вариант.
opt = generateExplicitOptions(MPCobj); opt.polyreduction = 1;
Создайте явный контроллер MPC.
EMPCobj = generateExplicitMPC(MPCobj,range,opt)
Explicit MPC Controller --------------------------------------------- Controller sample time: 0.1 (seconds) Polyhedral regions: 1 Number of parameters: 4 Is solution simplified: No State Estimation: Default Kalman gain --------------------------------------------- Type 'EMPCobj.MPC' for the original implicit MPC design. Type 'EMPCobj.Range' for the valid range of parameters. Type 'EMPCobj.OptimizationOptions' for the options used in multi-parametric QP computation. Type 'EMPCobj.PiecewiseAffineSolution' for regions and gain in each solution.
MPCobj - Традиционный контроллер MPCТрадиционный контроллер MPC, указанный как объект контроллера MPC. Используйте mpc для создания традиционного контроллера MPC.
Range - Границы параметровГраницы параметров для генерации явного контроллера MPC из MPCobj, возвращено как структура.
Первоначально минимальные и максимальные границы каждого параметра идентичны. Все такие параметры считаются фиксированными. При создании явного контроллера любые фиксированные параметры должны быть постоянными при работе контроллера. Это вряд ли произойдет вообще. Таким образом, необходимо указать допустимые границы для всех параметров. Используйте точечную нотацию для установки значений структуры диапазона в соответствии с системой.
Ниже приведены поля структуры диапазона.
State - Границы значений состояния контроллераГраницы значений состояния контроллера, указанные как структура, содержащая поля Min и Max. Каждый из Min и Max - вектор длины nx, где nx - число состояний контроллера. Range.State.Min и Range.State.Max содержат минимальное и максимальное значения, соответственно, всех состояний контроллера. Например, предположим, что вы проектируете контроллер с двумя состояниями. Вы определили, что диапазон первого состояния контроллера [-1000,1000], и состояние второго контроллера [0,2*pi]. Установите эти границы следующим образом:
Range.State.Min(:) = [-1000,0]; Range.State.Max(:) = [1000,2*pi];
Состояния контроллера MPC включают в себя состояния из модели установки, модели возмущения и модели шума в этом порядке. Установка диапазона переменной состояния иногда затруднена, когда состояние не соответствует физическому параметру. В этом случае для сбора данных, отражающих диапазоны состояний, рекомендуется многократное моделирование установки с разомкнутым контуром с типичными опорными сигналами и сигналами возмущения.
Reference - Границы значений опорного сигнала контроллераГраницы значений опорного сигнала контроллера, указанные как структура, содержащая поля Min и Max. Каждый из Min и Max - вектор длины ny, где ny - количество выходов установки. Range.Reference.Min и Range.Reference.Max содержат минимальное и максимальное значения, соответственно, всех значений опорного сигнала. Например, предположим, что вы проектируете контроллер для установки с двумя выходами. Вы определили, что диапазон первого производства завода составляет [-1000,1000], а выход второй установки равен [0,2*pi]. Установите эти границы следующим образом:
Range.Reference.Min(:) = [-1000,0]; Range.Reference.Max(:) = [1000,2*pi];
Обычно известен практический диапазон эталонных сигналов, используемых в номинальной рабочей точке установки. Диапазоны, используемые для создания явного контроллера MPC, должны быть по крайней мере такими же, как и практический диапазон.
MeasuredDisturbance - Границы по измеренным значениям возмущенийГраницы по измеренным значениям возмущений, указанным как структура, содержащая поля Min и Max. Каждый из Min и Max - вектор длины nmd, где nmd - количество измеренных возмущений. Если система не имеет измеренных возмущений, оставьте сгенерированные значения этого поля без изменений.
Range.MeasuredDisturbance.Min и Range.MeasuredDisturbance.Max содержат минимальное и максимальное значения, соответственно, всех измеренных сигналов возмущения. Например, предположим, что вы проектируете контроллер для системы с двумя измеренными возмущениями. Вы определили, что диапазон первого возмущения составляет [-1,1], а для второго возмущения - [0,0.1]. Установите эти границы следующим образом:
Range.Reference.Min(:) = [-1,0]; Range.Reference.Max(:) = [1,0.1];
Обычно известен практический диапазон измеряемых сигналов возмущения, используемых в номинальной рабочей точке установки. Диапазоны, используемые для создания явного контроллера MPC, должны быть по крайней мере такими же, как и практический диапазон.
ManipulatedVariable - Границы для обрабатываемых значений переменныхГраницы для обрабатываемых значений переменных, указанных как структура, содержащая поля Min и Max. Каждый из Min и Max - вектор длины nu, где nu - число манипулируемых переменных. Range.ManipulatedVariable.Min и Range.ManipulatedVariable.Max содержат минимальное и максимальное значения, соответственно, всех управляемых переменных. Например, предположим, что система имеет две управляемые переменные. Диапазон первой манипулируемой переменной: [-1,1], а значение второй переменной равно [0,0.1]. Установите эти границы следующим образом:
Range.ManipulatedVariable.Min(:) = [-1,0]; Range.ManipulatedVariable.Max(:) = [1,0.1];
Если управляемые переменные ограничены, диапазоны, используемые для создания явного контроллера MPC, должны быть по крайней мере такими же, как эти пределы.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.