В данной статье рассмотрен процесс исследования и реализации рекуррентных алгоритмов параметрической идентификации (на примере алгоритма Левенберга-Маркварда) в программной среде Unity Pro XL с использованием средств промышленной автоматики, в том числе — программируемых логических контроллеров Schneider Electric. В частности, в статье приведена разработка алгоритма итерационного поиска обратной матрицы с применением алгоритма Шульца.
Ключевые слова:параметрическая идентификация, рекуррентные алгоритмы идентификации, итерационного алгоритма Шульца, ПЛК, Schneider Electric.
Введение
В настоящее время предложено достаточно много методов и алгоритмов идентификации [1–4]. Большинство из них основано на методе наименьших квадратов и его модификациях. В условиях неопределённости широкое применение получили итерационные методы, обладающие рядом преимуществ: простота реализации, большое быстродействие, возможность получения состоятельных оценок. Некоторые конструктивные особенности в итерационные алгоритмы вносятся в процессе непосредственной реализации их в системах управления программируемых логических контроллеров (ПЛК), что связано с особенностями и свойствами исследуемого процесса или объекта.
Алгоритмы рекуррентной параметрической идентификации
Практически все рассматриваемые алгоритмы рекуррентной параметрической идентификации представляют собой нелинейные функции, поэтому получение аналитических оценок для большинства алгоритмов вызывает значительные трудности. Кроме того, для практических приложений важными являются такие параметры модели объекта, как высокий порядок дифференциального или разностного уравнения и произвольное количество входов. Поэтому сравнение алгоритмов выполнялось численным моделированием. Для получения достоверных убедительных результатов на основе численного моделирования необходимо с одной стороны иметь возможность получать достаточно разнообразные входные сигналы и возможность рассматривать различные типы параметрической нестационарности. С этой целью был создан программный пакет в среде Unity Pro XL v7.0 фирмы Schneider Electric, позволяющий выполнить поставленную задачу. В программном пакете предусмотрено моделирование входных сигналов по вероятностным распределениям: равномерное, нормальное, гамма, бета, экспоненциальное, Лапласа, Коши. Реализованы алгоритмы идентификации коэффициентов в авто регрессионном уравнении [1–5]: алгоритмы на основе P- и SP- подходов, алгоритмы Айзермана, Качмажа, Нагумо-Нода, МНК, РМНК, Аведьян, Растригин, алгоритмы Цыпкина, фильтр Калмана, алгоритм Фактор забывания, алгоритм Левенберга-Маркварда.
Схема адаптивной системы управления с идентификатором представлена на рис 1. В исследуемой системе под объектом идентификации, подразумевалась модель технологического процесса, которая описывается как многомерный односвязный объект с наблюдаемыми входами и выходом [5]:
Где — шаг идентификации, — статические параметры объекта управления, — динамические параметры объекта управления, — вектор наблюдаемых входов, — входы модели объекта управления (), — количество входов, — выход модели объекта управления, — приведенный аддитивный шум.
Рис. 1. Адаптивная система с идентификатором.
В рассматриваемой адаптивной системе (рис. 1) исследовалось применение различных рекуррентных алгоритмов в блоке идентификации. В частности, рассматривалось использование алгоритма Левенберг-Маркварда, как одного из наиболее эффективных.
В теории автоматического управления алгоритма Левенберг-Маркварда [2] (в векторной форме) для подстройки коэффициентов модели объекта управления выглядит следующим образом:
,
Где — идентифицируемые статические и динамические параметры (), — шаг идентификации, — вектор входов, — вектор выходов, — единичная матрица, — константа идентификации.
На рис.3 приведен пример реализации алгоритмов идентификации на языке функциональных блоков стандарта МЭК 61131–3 в программной среде Unity.Pro [7]. На рис.4 представлен тренд работы алгоритма идентификации — реальные и идентифицируемые параметры.
Рис. 2. Пример реализации алгоритмов идентификации в программной среде Unity.Pro.
Рис. 3. Параметры объекта (вертикальные тренды) и параметры модели.
Способы нахождения обратной матрицы
Как представлено выше, алгоритмы идентификации содержат требование нахождения обратной матрицы. Обратная матрица — это такая матрица , при умножении на которую исходная матрица даёт в результате единичную матрицу :
Квадратная матрица обратима тогда и только тогда, когда она невырожденная, то есть её определитель не равен нулю. В представленных выше алгоритмах идентификации поиск обратной матрицы осуществляется у заведомо квадратной матрицы (). Существуют точные (прямые) методы нахождения обратных матриц [6]:
- Метод Гаусса—Жордана. Сложность алгоритма — .
- С помощью матрицы алгебраических дополнений. Сложность алгоритма зависит от сложности алгоритма расчета определителя и равна — .
- Использование LU/LUP-разложения. Сложность алгоритма — .
Итерационные методы нахождения обратных матриц:
- Итерационный метод Шульца. Зависит от матрицы начального приближения. Сложность алгоритма — .
Поскольку рассматриваемые в этой статье алгоритмы идентификации обладают свойством рекуррентности и вычисляются итерационно — что наиболее удобно в программировании ПЛК и работе в режиме реального времени, то использование итерационного метода Шульца наиболее удобен в решение задачи поиска обратной матрицы. Этот алгоритм представляют собой рекуррентные соотношения, осуществляя которые мы получаем все более точное приближение к обратной матрице. В алгоритмах Гаусса и LU-разложения обратная матрица получается после фиксированного числа арифметических операций. А итерационный метод Шульца зависит от матрицы начального приближения, но, этот недостаток не так значителен, поскольку в любом случае мы получаем матрицу с элементами, точность которых ограничена вычислительной погрешностью.
Итерационный метод Шульца
Для квадратной невырожденной матрицы порядка можно найти обратную матрицу в результате последовательных приближений. Приближения также представляют собой квадратные матрицы — . и имеют обратные матрицы — [6].
Отклонение текущего приближения от искомой обратной матрицы можно оценивать величиной , где . Равенство нулю означает, что текущее приближение совпадает с обратной матрицей. Для оценки приближения к нулю необходимо ввести — малое положительное число. Доказательство сходимости последовательности матриц к представлено в теореме о сходимости итерационного метода Шульца [].
Порядок действий при вычислении итерационного метода Шульца:
1) Присвоить . Задать — начальное приближение обратной матрицы; — порядок метода.
2) Вычислить
3) Вычислить . Если , обратная матрица найдена . Иначе перейти к пункту 4.
4) Найти следующее приближение по формуле:
a.
5) и перейти к пункту 2.
На языке структурного текста МЭК61131–3 для ПЛК в программной среде Unity Pro XL v7.0 фирмы Schneider Electric, данный алгоритм будет выглядеть следующем образом:
k:=0;
REPEAT
FOR i:=0 TO size DO
FOR j:=0 TO size DO
F[i][j]:=Im[i][j] - A[i][j] * U[i][j];
END_FOR;
END_FOR;
FOR i:=0 TO size DO
FOR j:=0 TO size DO
U[i][j]:=U[i][j] * (Im[i][j] + F[i][j]);
END_FOR;
END_FOR;
norma:=0.0;
FOR i:=0 TO size DO
FOR j:=0 TO size DO
norma:=U[i][j] * U[i][j];
END_FOR;
END_FOR;
k:=k+1;
UNTIL
(k = 5000) OR (norma < E)
END_REPEAT;
Некоторые обозначения в коде управляющей программы для ПЛК: size — размер матрицы, Im [i] [j] — единичная матрица, U [i] [j] — приближение, A [i] [j] — матрица, обратную которой ищется в алгоритме, E — заданная точность обратной матрицы.
Заключение
Применение рекуррентных алгоритмов параметрической идентификации в адаптивных системах управления в режиме компьютерного моделирования, с физическими объектами и результатами измерений, требует значительные матричные вычисления, в том числе и нахождение обратной матрицы. Применение точных методов нахождения обратной матрицы не всегда приемлемо, поскольку точные методы сложны в программирование, а неточность итерационных методов компенсируется неточностью измерительных каналов, но обратная матрица может быть вычислена с любой заданной точностью. Использование итерационных методов позволяет разрабатывать алгоритмы, работающие в режиме реального времени.
Литература:
1. Isermann R. Identification of Dynamic Systems / R. Isermann, M. Munchhof: Springer, 2011.
2. Льюнг Л. Идентификация систем. Теория для пользователя. М.: Наука, 1991. — 432с.
3. Методы классической и современной теории автоматического управления: В 3 томах / под ред. К. А. Пупкова, Н. Д. Егупова, М.: Изд. МГТУ им. Н. Э. Баумана, 2004.
4. М. В. Жиров, В. В. Макаров, В. В. Солдатов. Идентификация и адаптивное управление технологическими процессами с нестационарными параметрами. М.: Изд-во МГТУ им. Н. Э. Баумана, 2011. — 203, с.
5. Жиров М. В., Макаров В. В., Куроткин В. А., Хохловский Т. В. Исследование и рациональный выбор рекуррентных алгоритмов идентификации в АСУТП. Материалы IХ Международной научно-технической конференции. Техника и технология пищевых производств. 25–26 апреля 2013 года. Республика Белорусь, г. Могилев
6. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, — М.: Вильямс, 2006.
7. Unity PRO. Control Block Library [Электронный ресурс]. 33002535.07. Schneider Electric 04/2009. — режим доступа к ресурсу: http://www.schneider-electric.com/.