Идентификация параметров модели в Simulink

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

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

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

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

С математической точки зрения, идентификация параметров - это задача оптимизации. Пусть u(t) - воздействие, которое подавалось на реальный физический объект управления, a y(t) - измеренная при этом реакция на его выходе. Заметим, что u(t) и y(t) - экспериментальные данные, которые несут в себе частное поведение объекта управления.

Пусть имеется модель объекта управления Р с набором параметров (Ai, Л2, ...Ап) = Л. При подаче на вход модели сигнала u(t) (того же, что подавался и на реальный физический объект), на выходе модели мы получаем реакцию y(t), которая зависит от параметров модели Л. Отсюда, можно сформулировать задачу минимизации разности между откликом модели y(t) и измеренным откликом реального объекта y(t) на одном и том же входном сигнале u(t):

где Т - время за которое осуществлялось измерение выхода объекта управления.

Решая численно задачу минимизации функции Ф(А) относительно вектора Л, получаем параметры модели Л, минимизирующие целевую функцию и наиболее соответствующие экспериментальным данным.

В Simulink встроено средство для идентификации параметров модели Simulink Design Optimization, делающее этот процесс максимально простым и прозрачным для пользователя.

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

k = 1; а = 1;

и нажать клавишу Enter на клавиатуре.

После чего переменные а и к появятся в рабочем пространстве MATLAB (Workspace) и могут использоваться в моделях Simulink. Значения переменных из рабочего пространства отображаются и доступны для изменения справа в основном окне MATLAB на панели Workspace.

Теперь можно указать созданные переменные в параметрах модели. Для этого введем в свойствах блока Gainl параметр Gain: 1/а, а в свойствах блока Gain2 параметр Gain: к.

Simulink Design Optimization поддерживает различные источники данных для идентификации моделей. В том числе, зависимости u(t) и y(t) могут быть получены прямо с измерительного оборудования, поддерживаемого MATLAB (например, осциллографов фирмы Tektronix) и подключенного к компьютеру, на котором запущен MATLAB.

1

Параметры модели в рабочем пространстве MATLAB

Рисунок 2.12. Параметры модели в рабочем пространстве MATLAB.

Рассмотрим самый простой способ, когда экспериментальные данные записаны в текстовых файлах. В данном случае, результаты измерений мощности нагревателя, температуры внутри помещения и на улице записывались каждые 3 минуты с новой строки в текстовых файлах P.txt, Ti.txt и To.txt, соответственно. Кроме того, в отдельный текстовый файл t.txt записывалось время каждого измерения, выраженное в часах.

По собранным данным за 48 часов необходимо определить параметры а и к модели. Прежде чем приступить к идентификации параметров, необходимо модифицировать модель, а именно - заменить все блоки генерации воздействий и отображения сигналов на специальные компоненты, представляющие вход и выход модели: [1]

  • • блок Constant аналогично заменяется на Simulink / Commonly Used Blocks / Ini или Simulink / Sources / Ini, назовем блок именем сигнала То;
  • • блок Scope заменяется на Simulink / Commonly Used Blocks / Outl или Simulink / Sinks / Outl, назовем блок именем сигнала Ti;

Также введем интервал моделирования модели - 48, подразумевая, что единицей модельного времени является час. В результате получаем модель, подготовленную к процессу идентификации параметров (рисунок 2.13).

Модель системы, модифицированная для идентификации параметров

Рисунок 2.13. Модель системы, модифицированная для идентификации параметров.

Для того, чтобы приступить к идентификации параметров, необходимо запустить Control and Estimation Tools Manager из меню Simulink: Tools / Parameter Estimation..., в результате появится окно средства идентификации параметров и синтеза регуляторов, показанное на рисунке рисунок 2.14.

Окно Control and Estimation Tools Manager

Рисунок 2.14. Окно Control and Estimation Tools Manager.

Далее щелкаем в дереве слева по Transient Data и вводим данные измерений, указывая соответствующие файлы. Для начала нажимаем справа кнопку New, что создает новый набор данных с именем по умолчанию New Data. Выбирая созданный набор данных New Data слева в дереве под Transient Data, получаем доступ справа к таблице, в которой указываются данные для всех входов и выходов модели.

Выбираем клетку в колонке Data справа под названием порта модели Р и нажимаем кнопку Import. Выбираем в открывшемся окне в списке Import from: ASCII file - импорт из текстового файла, в списке Select delimiter character: tab - разделитель между данными разных колонок таблицы в файле, нажимаем кнопку Browse и выбираем файл с данными мощности P.txt. Щелкаем по заголовку колонки таблицы А, чтобы выделить все считанные из файла данные, и нажимаем кнопку Import (рисунок 2.15). Чтобы закрыть окно, нажимаем кнопку Close.

Импорт данных мощности нагревателя Р

Рисунок 2.15. Импорт данных мощности нагревателя Р.

Теперь необходимо импортировать отметки времени из файла t.txt, в которые были произведены соответствующие измерения мощности нагревателя. Выделяем ячейку в колонке Time / Ts под названием порта модели Р. Далее действуем совершенно аналогично, только выбираем файл t.txt при нажатии кнопки Browse в окне Data Import.

Выделяя соответствующие ячейки под названием порта модели То, и выбирая при импорте файлы To.txt и t.txt, аналогично загружаем для идентификации данные температуры на улице. В результате проделанных действий вкладка Input Data приобретет вид, показанный на рисунке 2.16.

Входные данные модели

Рисунок 2.16. Входные данные модели: мощность Р и температура

на улице То.

Загруженные зависимости от времени можно визуализировать, выделив какую-нибудь ячейку с данными и нажав кнопку Plot...

Далее специфицируем данные измерений внутренней температуры Ti, которые соответствуют выходу модели. Для этого перейдем на следующую вкладку Output Data и выделяя ячейки под колонками Data и Time / Ts укажем файлы соответственно Ti.txt и t.txt, в полной аналогии как это было сделано для мощности и наружной температуры. В результате проделанных действий вкладка Output Data приобретет вид, показанный на рисунке 2.17.

Выходные данные модели

Рисунок 2.17. Выходные данные модели: температура в помещении

Ti.

Следующий шаг процесса идентификации - спецификация всех параметров модели, значения которых могут быть подобраны в процессе оптимизации. Для этого необходимо выделить в дереве слева пункт Variables, справа нажать кнопку Add..., в открывшемся окне Select Parameters выделить в таблице переменные а и к, которые до этого были объявлены в рабочем пространстве MATLAB и нажать кнопку ОК (рисунок 2.18).

Добавление параметров модели

Рисунок 2.18. Добавление параметров модели.

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

На вкладке Data Sets необходимо установить флажок в списке наборов данных, где указан созданный ранее набор New Data - это означает, что данный набор используется для идентификации параметров (рисунок 2.19).

Выбор набора данных для идентификации

Рисунок 2.19. Выбор набора данных для идентификации.

Далее необходимо перейти на следующую вкладку Parameters и установить галочки напротив идентифицируемых параметров (рисунок 2.20). Также можно указать их начальные значения.

После того, как все настроено, можно перейти на последнюю вкладку Estimation и нажать кнопку Start для запуска процесса оптимизации параметров. На каждой итерации оптимизационной процедуры будут выводится значения шага изменения параметров и целевой функции. Процедура оптимизации автоматически завершится в случае достижения локального минимума целевой функции или после заданного числа итераций (по умолчанию - после 100). Нажав кнопку Estimation Options можно настроить разные параметры процесса идентификации, например, выбрать алгоритм и критерии завершения оптимизации.

Выбор идентифицируемых парамтров

Рисунок 2.20. Выбор идентифицируемых парамтров.

В рассматриваемом случае оптимизация параметров завершится с результатами, которые выводятся в текстовом поле рядом на вкладке Estimation:

Performing transient estimation...

Active experiments: New Data

Estimated parameters: a, k Solver stopped prematurely.

lsqnonlin stopped because it exceeded the iteration limit, options. Maxlter = 100 (the selected value).

Это означает, что алгоритм не сошелся к локальному оптимуму за 100 итераций. Поскольку актуальные значения параметров находятся очень далеко от их начальных приближений, то имеет смысл запустить процесс оптимизации еще раз. Нажав еще раз на кнопку Start, через некоторое время дожидаемся завершения процесса оптимизации с нахождением локального оптимума (рисунок 2.21):

Performing transient estimation...

Active experiments: New Data Estimated parameters: a, k Local minimum found.

Optimization completed because the size of the gradient is less than the selected value of the function tolerance.

Завершение идентификации параметров

Рисунок 2.21. Завершение идентификации параметров.

После того, как процесс идентификации закончен, можно сравнить измеренные данные внутренней температуры и данные, полученные в результате моделирования. Для этого необходимо слева выделить пункт Estimation / Views и нажать справа кнопу New, что создаст новое семейство графиков с именем по умолчанию New View. Выделив в дереве New View под пунктом Estimation / Views, получим справа таблицу графиков (рисунок 2.22), в первой строке которой в колонке Plot Туре выберем Measured and simulated, а также отметим флажком в Options пункт New Estimation. Это приведет к построению двух наложенных графиков измеренной и промоделированной по идентифицированным параметрам температуры.

Построение графиков для анализа результатов идентификации

Рисунок 2.22. Построение графиков для анализа результатов идентификации.

График можно посмотреть, нажав на кнопку Show Plots (рисунок 2.23). На графике серым изображены измеренные значения температуры, а синим - полученные по модели. В целом, оба графика почти совпадают, отличаясь лишь малым. Отсюда можно сделать вывод, что параметры модели подобраны верно.

Для того, чтобы вывести их значения, полученные в результате идентификации, необходимо просто набрать имена переменных в командной строке MATLAB и нажать Enter.

Измеренная температура в помещении и результат

Рисунок 2.23. Измеренная температура в помещении и результат

моделирования.

» а а =

  • 1.8010е+006 » к к =
  • 2.4108е+006

  • [1] блок Step заменяется на Simulink / Commonly Used Blocks / Iniили Simulink / Sources /Ini, назовем блок именем сигнала Р;
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >