Оценка параметров модели на основе эксперимента

MeL
12.08.2013 14:24:40
Приветствую Вас.

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

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

По части Matlab/Simulink смотрите здесь– http://www.mathworks.com/discovery/parameter-estimation.html.


О чем будет идти речь ниже – можно посмотреть в коротком видео здесь –
Загрузка плеера



В целом алгоритм оценки получается почти такой «классический»:
1. Набрать экспериментальные данные.
2. Определить модель и параметры модели, которые требуют оценки.
3. Настроить параметры процесса оценки и провести саму оценку.
4. Проверить адекватность модели на тестовых наборах данных.

Теперь более подробно про наш случай. Имеется двигатель постоянного тока, модель которого известна и реализована в Simulink средствами SimScape (физическое моделирование). Вообще что и чем реализовано в Simulink не суть. Главное есть модель. Параметры вместо конкретных значений заданы в маске модели переменными из Matlab, как это показано на рисунке.




У нас всего 5 параметров – 3 для электрической части и 2 для механической. Дальше все просто – запускаем специальный инструмент из Simulink Design Optimization, Parameter Estimation в меню Analysis, указываем что хотим оценивать, откуда брать экспериментальные данные. Т.к. задача у нас оптимизационная (и требует еще установленного Optimization Toolbox), то указываем метод оптимизации, критерий, условия остановки оптимизации и прочее. Помимо этого необходимо задать начальные значения, границы поиска по каждому параметру, что в процессе оценки может помочь приблизить нашу модель по параметрам к реальному объекту (может существовать множество наборов параметров модели, которые по результатам симуляции могут подходить под имеющиеся экспериментальные данные) и ускорить процесс оценки. Задать значения можно, например, по паспорту двигателя, откуда знаем, что сопротивление и индуктивность лежат в таких-то пределах.

Теперь все готово - запускаем процесс оценки (он же процесс оптимизации) и спокойно наблюдаем в интерактивном режиме, как работают оптимизационный алгоритм, изменяет параметры нашей модели, на каждом шаге запускается симуляция с новыми параметрами и результаты моделирования подбираются все ближе и ближе к экспериментальным данным. Если вы видите, что результат моделирования вас устраивает, а условия остановки еще не выполнены, то вы можете остановить оценку вручную. При этом стоит помнить, что вы получили модель, которая хорошо описывает именно те данные, которые участвовали в процессе оценки. Что бы быть уверенными при других случаях, то можно проверить адекватность полученной модели на других тестовых наборах данных, т.н. Validation.

Если кому интересно, то хороший и подробный пример по схожей тематике на английском вот здесь Improve the Fidelity of Your Simulink Models Using Test Data and Parameter Estimation. В результате всех действий быстро и удобно получили точную модель. Стоит так же отметить, что Simulink Design Optimization инструмент с большими возможностями, помимо оценки параметров модели, можно так же проводить:

• Оптимизацию отклика системы по заданным требованиям.
• Разработку систем управления на базе методов оптимизации.
• Оценку значений таблиц подстановки по экспериментальным данным.

Кое-что об этом в следующий раз.







Просмотров: 2209
Комментариев: 0
Добавить комментарий