Измените неизмеренное входное возмущение
setindist(
устанавливает входное возмущение на его значение по умолчанию. Используйте этот синтаксис, если вы ранее устанавливаете пользовательское входное возмущение, и вы хотите возвратиться к модели по умолчанию. Для получения дополнительной информации о входном возмущении по умолчанию смотрите, что MPC Моделирует.MPCobj
,'integrators')
Задайте модель объекта управления без прямого сквозного соединения.
plant = rss(3,4,4); plant.D = 0;
Установите первый входной сигнал как переменную, которой управляют, и остающиеся входные параметры как входные воздействия.
plant = setmpcsignals(plant,'MV',1,'UD',[2 3 4]);
Создайте контроллер MPC для заданного объекта.
MPCobj = mpc(plant,0.1);
-->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. for output(s) y1 and zero weight for output(s) y2 y3 y4
Задайте возмущения, таким образом что:
Введите воздействие 1, случайный белый шум с величиной 2
.
Введите воздействие 2, случайный подобный шагу шум с величиной 0.5
.
Введите воздействие 3, случайный подобный пандусу шум с величиной 1
.
mod1 = tf(2,1); mod2 = tf(0.5,[1 0]); mod3 = tf(1,[1 0 0]);
Создайте входное возмущение с помощью вышеупомянутых передаточных функций. Используйте отдельный шумовой вход в каждом входном воздействии.
indist = [mod1 0 0; 0 mod2 0; 0 0 mod3];
Установите входное возмущение в контроллере MPC.
setindist(MPCobj,'model',indist)
Просмотрите входное возмущение контроллера.
getindist(MPCobj)
ans = A = x1 x2 x3 x1 1 0 0 x2 0 1 0 x3 0 0.1 1 B = Noise#1 Noise#2 Noise#3 x1 0 0.05 0 x2 0 0 0.1 x3 0 0 0.005 C = x1 x2 x3 UD1 0 0 0 UD2 1 0 0 UD3 0 0 1 D = Noise#1 Noise#2 Noise#3 UD1 2 0 0 UD2 0 0 0 UD3 0 0 0 Sample time: 0.1 seconds Discrete-time state-space model.
Контроллер преобразует модель передаточной функции непрерывного времени, indist
, в модель в пространстве состояний дискретного времени.
Задайте модель объекта управления без прямого сквозного соединения.
plant = rss(3,4,4); plant.D = 0;
Установите первый входной сигнал как переменную, которой управляют, и остающиеся входные параметры как входные воздействия.
plant = setmpcsignals(plant,'MV',1,'UD',[2 3 4]);
Создайте контроллер MPC для заданного объекта.
MPCobj = mpc(plant,0.1);
-->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. for output(s) y1 and zero weight for output(s) y2 y3 y4
Получите входное возмущение по умолчанию от диспетчера.
distMod = getindist(MPCobj);
-->Converting model to discrete time. -->The "Model.Disturbance" property of "mpc" object is empty: Assuming unmeasured input disturbance #2 is integrated white noise. Assuming unmeasured input disturbance #3 is integrated white noise. Assuming unmeasured input disturbance #4 is integrated white noise. -->Assuming output disturbance added to measured output channel #1 is integrated white noise. Assuming no disturbance added to measured output channel #2. Assuming no disturbance added to measured output channel #3. Assuming no disturbance added to measured output channel #4. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Удалите интегратор из второго входного воздействия. Создайте новое входное возмущение, удалив второй входной канал и установив эффект на втором выходе другими двумя входными параметрами обнулить.
distMod = sminreal([distMod(1,1) distMod(1,3); 0 0; distMod(3,1) distMod(3,3)]);
setindist(MPCobj,'model',distMod)
При удалении интегратора из входного возмущения таким образом, используйте sminreal
сделать пользовательскую модель структурно минимальной.
Просмотрите входное возмущение.
tf(getindist(MPCobj))
ans = From input "UD1-wn" to output... 0.1 UD1: ----- z - 1 UD2: 0 UD3: 0 From input "UD3-wn" to output... UD1: 0 UD2: 0 0.1 UD3: ----- z - 1 Sample time: 0.1 seconds Discrete-time transfer function.
Интегратор был удален из второго канала. Первые и третьи каналы входного возмущения остаются в их значениях по умолчанию как интеграторы дискретного времени.
Задайте модель объекта управления без прямого сквозного соединения.
plant = rss(2,2,3); plant.D = 0;
Установите вторые и третьи входные сигналы как входные воздействия.
plant = setmpcsignals(plant,'MV',1,'UD',[2 3]);
Создайте контроллер MPC для заданного объекта.
MPCobj = mpc(plant,0.1);
-->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. for output(s) y1 and zero weight for output(s) y2
Установите входное возмущение на усиление единицы для обоих каналов.
setindist(MPCobj,'model',tf(eye(2)))
Восстановите входное возмущение по умолчанию.
setindist(MPCobj,'integrators')
MPCobj
— Прогнозирующий контроллер моделиПрогнозирующий контроллер модели, заданный как контроллер MPC объект. Чтобы создать контроллер MPC, используйте mpc
.
model
— Пользовательское входное возмущение[]
(значение по умолчанию) | ss
возразите | tf
возразите | zpk
объектПользовательское входное возмущение, заданное как пространство состояний (ss
), передаточная функция (tf
), или нули, полюса и усиление (zpk
) модель. Контроллер MPC преобразует модель в дискретное время, без задержек, модель в пространстве состояний. Исключение model
или определение model
как []
эквивалентно использованию setindist(MPCobj,'integrators')
.
Входное возмущение имеет:
Модульное отклонение белые шумовые входные сигналы. Для пользовательских входных возмущений количество входных параметров является вашим выбором.
Выходные параметры nd, где nd является количеством неизмеренных входных параметров воздействия, заданных в MPCobj.Model.Plant
. Каждое возмущение выход отправляется в соответствующий объект неизмеренный вход воздействия.
Эта модель, в сочетании с выходным возмущением (если таковые имеются), управляет, как хорошо контроллер компенсирует неизмеренные воздействия и ошибки прогноза. Для получения дополнительной информации о моделировании воздействия в MPC и о модели, используемой во время оценки состояния, смотрите, что MPC Моделирует и Оценка состояния Контроллера.
setindist
не проверяет пользовательские входные возмущения на нарушения наблюдаемости состояния. Эта проверка выполнена позже в процессе проектирования MPC, когда средство оценки внутреннего состояния создается с помощью команд, таких как sim
или mpcmove
. Если состояния контроллера не полностью заметны, эти команды генерируют ошибку.
Этот синтаксис эквивалентен MPCobj.Model.Disturbance = model
.
Чтобы просмотреть текущее входное возмущение, используйте getindist
команда.
getEstimator
| getindist
| getoutdist
| mpc
| setEstimator
| setoutdist
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.