exponenta event banner

Расчетный контроллер ПДК для идентифицированной модели установки

Можно определить внутреннюю модель завода прогнозирующего контроллера модели с помощью линейной модели, идентифицированной с помощью программного обеспечения System Identification Toolbox™. Модель установки и контроллер MPC можно определить в интерактивном режиме с помощью приложений или программно в командной строке. Дополнительные сведения об идентификации моделей растений см. в разделе Идентификация растений по данным.

Приложение идентификации системы не поддерживается в MATLAB ® Online™.

Контроллер проектирования для идентифицированной установки с помощью приложений

В этом примере показано, как интерактивно проектировать прогнозирующий контроллер модели с использованием идентифицированной модели растения. Сначала оцените модель установки на основе данных с помощью приложения System Identification app. Затем создайте контроллер MPC, импортировав идентифицированную установку в MPC Designer.

Загрузка входных/выходных данных

Загрузите входные и выходные данные для идентификации.

 load(fullfile(matlabroot,'examples','mpc','plantIO'))

Эта команда импортирует входной сигнал установки, u, выходной сигнал, yи время выборки, Ts, в рабочую область MATLAB.

Откройте приложение «Идентификация системы».

systemIdentification

В приложении «Идентификация системы» в разделе «Импорт данных» выберите Time domain data.

В диалоговом окне «Импорт данных» задайте время ввода, вывода и образца, используя данные из рабочего пространства MATLAB.

Также укажите имя данных как ioData и Время начала как 0.

Щелкните Импорт (Import). Приложение импортирует данные, создает iddata с указанными именем и свойствами сигнала и добавляет этот объект в область «Представления данных».

Данные предварительной обработки

Как правило, перед оценкой модели необходимо предварительно обработать идентификационные данные ввода-вывода. В этом примере следует удалить смещения из входного и выходного сигналов путем уменьшения объема данных. В приложении «Идентификация системы» в разделе «Препроцессы» выберите Remove trends.

Приложение создает объект данных, ioDatad, используя предварительно обработанные данные, и добавляет этот объект в область «Представления данных».

Дополнительные сведения об идентификационных данных предварительной обработки см. в разделе Данные предварительной обработки (панель инструментов идентификации системы).

Оценить линейную модель

Для использования искаженных данных ioDatadдля оценки модели сначала перетащите соответствующий объект данных из области «Представления данных» в область «Рабочие данные».

Чтобы оценить модель пространства состояния, в разделе Оценка (Estimate) выберите State Space Models.

В диалоговом окне «Модели пространства состояния» задайте свойства расчетной модели и параметры оценки. Для этого примера оцените дискретную модель второго порядка, оставив другие опции оценки на их значения по умолчанию.

Дополнительные сведения об оценке моделей пространства состояний см. в разделе Модели пространства состояний (System Identification Toolbox).

Щелкните Оценка (Estimate). Приложение оценивает модель состояния-пространства, ss1и добавляет модель в область «Виды модели».

Расчетная модель имеет один измеренный входной и один неизмеренный шумовой компонент.

Импорт идентифицированной установки в разработчик MPC

Использовать ss1 для конструкции элемента управления MPC сначала экспортируйте модель в рабочую область MATLAB.

Сопротивление ss1 из области Виды модели в рабочую область.

Откройте конструктор MPC. В командной строке MATLAB введите:

mpcDesigner

Чтобы импортировать идентифицированную модель, в конструкторе MPC щелкните Структура MPC (MPC Structure). В диалоговом окне «Определение структуры MPC путем импорта» выберите ss1 из таблицы.

Щелкните Определить (Define) и Импортировать (Import).

Совет

Можно также импортировать идентифицированную модель при открытии MPC Designer.

mpcDesigner(ss1)

При необходимости приложение преобразует идентифицированную установку в дискретную модель состояния-пространства и создает контроллер MPC по умолчанию. mpc1, в котором:

  • Измеренный вход идентифицированной установки является манипулируемой переменной.

  • Выход идентифицированной установки является измеренным выходом.

По умолчанию контроллер MPC отбрасывает неизмеренный компонент шума из идентифицированной модели. Чтобы настроить шумовые каналы как неизмеренные возмущения, необходимо сначала создать дополненную модель состояния-пространства из идентифицированной модели. Дополнительные сведения см. в разделе Настройка шумовых каналов как неизмеренных возмущений.

Примечание

Можно также импортировать идентифицированную линейную модель в существующую сессию MPC Designer. В MPC Designer щелкните Импорт завода. В диалоговом окне Импорт модели завода (Import Plant Model) выберите определенную модель из таблицы.

В диалоговом окне Импорт модели завода (Import Plant Model) отображаются только идентифицированные модели с конфигурацией ввода-вывода, совместимой с текущей структурой MPC. Если текущая структура ПДК включает неизмеренные возмущения, любые шумовые каналы из идентифицированной модели преобразуются в неизмеренные возмущения. В противном случае шумовые каналы отбрасываются.

Определение атрибутов ввода-вывода

Чтобы повысить производительность контроллера и упростить настройку контроллера, задайте следующие атрибуты для каждого входного и выходного сигнала:

  • Масштабный коэффициент (Scale Factor) - масштабировать каждый сигнал на коэффициент, аппроксимирующий его диапазон, который является разницей между его максимальным и минимальным значениями. Масштабирование упрощает настройку веса контроллера и улучшает численное кондиционирование контроллера. Дополнительные сведения см. в разделе Определение масштабных коэффициентов.

  • Номинальное значение (Nominal Value) - применить смещение к каждому сигналу, которое соответствует номинальным рабочим условиям, при которых были собраны идентификационные данные; это смещения, удаляемые путем сдерживания данных. При указании номинальных значений контроллер находится в той же рабочей точке, что и установка, что важно, когда установка является нелинейной системой.

В MPC Designer на вкладке MPC Designer щелкните Атрибуты ввода-вывода.

В диалоговом окне «Характеристики входного и выходного каналов» задайте номинальное значение и масштабный коэффициент для входных и выходных сигналов.

Нажмите кнопку ОК.

Контроллер по умолчанию хорошо отслеживает выходное опорное значение, однако первоначальный ответ контроллера является агрессивным.

Совет

Можно задать номинальное значение или масштабный коэффициент с помощью таких выражений, как mean(u) или max(y) - min(y) соответственно, где u и y сигналы ввода-вывода из рабочего пространства MATLAB.

Настройка сценария моделирования

В MPC Designer на вкладке Настройка щелкните Изменить сценарий > сценарий 1.

В диалоговом окне «Сценарий моделирования» задайте продолжительность моделирования, равную 5 секунд.

В разделе «Опорные сигналы» сохраните сигнал шага по умолчанию.

Нажмите кнопку ОК.

Контроллер настройки

Перед настройкой контроллера рекомендуется указать время выборки контроллера, горизонт прогнозирования и горизонт управления. Поскольку была определена модель завода с дискретным временем, контроллер автоматически извлекает время выборки из идентифицированной модели. В этом примере используются горизонты прогнозирования и управления по умолчанию. Дополнительные сведения см. в разделе Выбор времени образца и горизонтов.

Чтобы сделать контроллер менее агрессивным, на вкладке «Настройка» перетащите ползунок «Производительность замкнутого цикла» влево. Это увеличивает вес функции затрат на управляемую переменную скорость изменения и уменьшает вес выходной переменной.

Входной отклик теперь более консервативен. Компромиссы являются увеличенным перерасходом и более длительным временем урегулирования.

Дополнительные сведения о настройке весов контроллера см. в разделе Настройка весов.

Примечание

Если на предприятии известны физические ограничения или ограничения безопасности, ограничивающие диапазон выхода, диапазон ввода или скорость изменения входного сигнала, эти ограничения можно указать в контроллере MPC. Если да, определите ограничения перед настройкой веса контроллера. Дополнительные сведения см. в разделе Указание ограничений.

Контроллер проекта для идентифицированной установки в командной строке

В этом примере показано, как спроектировать прогнозирующий контроллер модели в командной строке с использованием идентифицированной модели установки.

Загрузите входные/выходные данные.

load plantIO

Эта команда импортирует входной сигнал установки, u, выходной сигнал установки, yи время выборки, Ts, в рабочую область MATLAB ®.

Создание iddata объект из входных и выходных данных.

mydata = iddata(y,u,Ts);

Предварительная обработка данных ввода-вывода путем удаления смещений (средних значений) из входного и выходного сигналов.

mydatad = detrend(mydata);

Можно также удалить смещения, создав ssestOptions и задав InputOffset и OutputOffset варианты.

Оценка линейной модели пространства состояния второго порядка с использованием данных ввода-вывода. Оценка модели дискретного времени путем указания времени выборки как Ts.

ss1 = ssest(mydatad,2,'Ts',Ts);

Расчетная модель имеет один измеренный входной и один неизмеренный шумовой компонент.

Создайте контроллер прогнозирования модели по умолчанию для идентифицированной модели, ss1.

mpcObj = mpc(ss1);
-->Converting linear model from System Identification Toolbox to state-space.
-->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).ScaleFactor = max(u) - min(u);
mpcObj.OV(1).ScaleFactor = max(y) - min(y);

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

nominalInput = mean(u);
nominalOutput = mean(y);
mpcObj.Model.Nominal.u = nominalInput;
mpcObj.Model.Nominal.y = nominalOutput;

Сконфигурируйте эталонный сигнал моделирования. Укажите опорный сигнал с пятисекундной длительностью и единичным шагом за одну секунду. Начальное значение опорного сигнала является номинальным значением выходного сигнала.

outputRef = [nominalOutput*ones(1/Ts,1); 
             (nominalOutput+1)*ones(4/Ts+1,1)];

Перед настройкой контроллера смоделируйте начальную производительность контроллера.

sim(mpcObj,[],outputRef)
-->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.

Figure contains an axes. The axes contains an object of type line. These objects represent Driving inputs, MPC response1.

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Driving inputs, MPC response1.

Контроллер по умолчанию хорошо отслеживает выходное опорное значение, однако первоначальный ответ контроллера является агрессивным.

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

beta = 0.37;
mpcObj.Weights.MVRate = mpcObj.Weights.MVRate/beta;
mpcObj.Weights.OV = mpcObj.Weights.OV*beta;

Смоделировать отклик настроенного контроллера

sim(mpcObj,[],outputRef)
-->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.

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Driving inputs, MPC response1.

Figure contains an axes. The axes contains an object of type line. These objects represent Driving inputs, MPC response1.

Входной отклик теперь более консервативен. Компромиссы являются увеличенным перерасходом и более длительным временем урегулирования.

Конфигурирование шумовых каналов в качестве неизмеренных возмущений

При создании MPC-контроллера с использованием идентифицированной модели программное обеспечение по умолчанию отбрасывает все шумовые каналы из модели. Можно сконфигурировать шумовые каналы как неизмеренные возмущения путем увеличения идентифицированной модели.

Дополнение идентифицированной модели шумовыми каналами

Чтобы преобразовать шумовые каналы в неизмеренные возмущения, сначала преобразуйте идентифицированную модель, ss1, в модель состояния-пространства с использованием 'augmented' вариант. В командной строке MATLAB введите:

ss2 = ss(ss1,'augmented');

Эта опция создает модель пространства состояния, ss2, со следующими входными группами:

  • Measured - входные каналы из идентифицированной модели.

  • Noise - Шумовые каналы из идентифицированной модели. Количество шумовых каналов соответствует количеству выходных каналов.

    Примечание

    Программа System Identification Toolbox предполагает, что входные данные Noise каналы являются единично-дисперсионным гауссовым шумом. Поэтому дополненная модель инкапсулирует любую динамику шума из идентифицированной модели, такую как интеграция в источнике возмущения.

Затем можно создать MPC-контроллер, используя дополненную модель состояния-пространства.

mpcObj = mpc(ss2);

Программное обеспечение настраивает Measured входные данные как управляемые переменные и Noise входы как неизмеренные нарушения.

Дополненную модель также можно импортировать в MPC Designer.

mpcDesigner(ss2)

Для просмотра конфигурации сигнала MPC в MPC Designer на вкладке MPC Designer щелкните MPC Structure.

В диалоговом окне View MPC Structure каналы шума отображаются как неизмеренные возмущения.

Настройка входной модели возмущения

При преобразовании идентифицированной модели в увеличенную модель состояния-пространства программа System Identification Toolbox предполагает, что источники шума являются гауссовым шумом единичной дисперсии. Однако по умолчанию контроллеры MPC моделируют неизмеренные входные возмущения как интегрированный гауссов шум. При проектировании геймпада можно:

  • Удалите интеграторы из модели входных возмущений, что упрощает работу контроллера. Используйте эту опцию, если экспериментальные идентификационные данные были собраны в условиях, близких к ожидаемым рабочим условиям установки. В этом случае дополненная модель состояния-пространства инкапсулирует любую динамику шума от идентифицированной системы.

  • Сохранить встроенную модель возмущения входного белого шума по умолчанию, что приводит к более агрессивному отклонению возмущения. Используйте эту опцию, если экспериментальные идентификационные данные были собраны в контролируемых условиях, которые могут не соответствовать ожидаемым условиям эксплуатации установки. В этом случае контроллер компенсирует динамику шума, которую дополненная модель не инкапсулирует.

Примечание

При использовании MPC Designer можно настроить свойства отклонения нарушения контроллера, настроив ползунок Оценка состояния. Дополнительные сведения см. в разделе Настройка отклонения нарушения.

Чтобы удалить интегратор из канала модели входного возмущения, настройте этот канал как статический единичный коэффициент усиления. Например, чтобы удалить интеграторы из всех каналов модели входных возмущений, установите модель входных возмущений в статическую единичную матрицу усиления. В командной строке MATLAB введите:

setindist(mpcObj,ss(eye(Nd)));

где Nd - количество неизмеренных нарушений.

Для установки модели возмущений для неизмеренного канала возмущений на коэффициент усиления статического блока с помощью MPC Designer:

  1. На вкладке «Настройка» выберите «Модели оценки» > «Модель входных возмущений».

  2. В диалоговом окне «Входная модель возмущения» в раскрывающемся списке «Обновить модель» выберите specifying a custom model channel by channel.

  3. В таблице Спецификации в раскрывающемся списке Возмущение выберите White Noise.

  4. Задание величины 1.

  5. Повторите шаги 3 и 4 для каждого неизмеренного нарушения.

  6. Чтобы применить изменения и обновить модель входного возмущения, нажмите кнопку ОК или Применить (Apply).

Дополнительные сведения об изменении входной модели возмущения см. в разделе Настройка моделей возмущения и шума.

Настройка сценария моделирования

Вы можете смоделировать контроллер MPC, используя сигналы неизмеренных возмущений гауссова шума с единичной дисперсией, как предполагается программным обеспечением System Identification Toolbox. Этот сценарий эмулирует экспериментальные условия, при которых данные были собраны для идентификации.

Чтобы настроить неизмеренные сигналы возмущения, создайте параметр моделирования MPC, установленный для вашего контроллера с помощью mpcsimopt. В командной строке MATLAB введите:

opt = mpcsimopt(mpcObj);

Сконфигурируйте UnmeasuredDisturbance опция с использованием randn.

opt.UnmeasuredDisturbance = randn(T,Nd);

где T - количество этапов моделирования и Nd - количество неизмеренных нарушений.

Смоделировать контроллер с помощью этого набора опций и выходного опорного сигнала, outputRef.

y = sim(mpcObj,T,outputRef,opt);

Чтобы настроить моделирование в MPC Designer:

  1. На вкладке Настройка в разделе Править сценарий выберите сценарий моделирования, который требуется изменить.

  2. В диалоговом окне «Сценарий моделирования» в разделе «Неизмеренные возмущения» в разделе «Сигнал» выберите Gaussian.

  3. Укажите размер 1, что соответствует единичной дисперсии.

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

  5. Повторите шаги 2-4 для каждого канала неизмеренного возмущения.

  6. Чтобы применить изменения и обновить графики ответов MPC Designer, нажмите кнопку ОК или Применить.

См. также

Приложения

Функции

  • | | | (панель инструментов идентификации системы)

Связанные темы