Измените неизмеренное входное возмущение
setindist(MPCobj,'model',model)
setindist(MPCobj,'integrators')
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
— Custom[]
(значение по умолчанию) | объект 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
| getoutdist
| mpc
| setEstimator
| setindist
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.