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

Искусственный интеллект в системе управления ГПА

Новости АСУТП, анонсы, а также отчёты о выполненных работах
Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 13:05
Ф.И.О.: Миних Владимир Анатольевич
Контактная информация:

Искусственный интеллект в системе управления ГПА

Сообщение minikh » 22 окт 2014, 11:45

Изображение
Несколько лет назад, когда я работал в фирме по разработке систем автоматизации технологических процессов, мне была поставлена интересная задача: в режиме реального времени автоматически производить расчет расхода газа через нагнетатель ГПА (газоперекачивающий агрегат). На основании этого расчета необходимо построить систему защиты нагнетателя от помпажа.

Помпаж — неустойчивая работа компрессора характеризуемая резкими колебаниями напора и расхода перекачиваемой среды.

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

Обычно для такого расчета используют датчик перепада давления газа на конфузоре нагнетателя, но его не оказалось. В наличии были только ГДХ (газодинамичские характеристики) нагнетателя 1973 года выпуска снятые при трех различных входных давлениях газа.

Изображение
Рисунок 1. Газодинамическая характеристика ГПА.

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

И вот теперь необходимо написать программу для автоматического расчета расхода газа.

В аспирантуре тема моей диссертации была «Применение методов искусственного интеллекта в управлении производством этилового спирта». И там я решал схожую задачу построения математической модели с применением нейронных сетей.

Но начальство сразу же отмело мою идею, посчитав это "слишком непонятной темой".

Начал пробовать решить задачу разными путями:
1. Построение линейно-кусочной зависимости исходных графиков. Этот метод давал большие погрешности, к тому же графиков было три, и аппроксимировать необходимо было слои, которые находятся между этих графиков. Получалась такая трехмерная задача.
2. Построение полинома графиков. На одном графике все работало хорошо, но для трех графиков появлялись большие погрешности.
3. Постараться свести все три графика к одному, который будет приведен к нормальным или стандартным условиям. Но у меня не хватало времени для реализации данного решения в сжатые сроки.
4. И тогда на свой страх и риск я решил вернуться к реализации с помощью нейронных сетей.

Оцифрованные графики я сделал еще тогда, когда пытался решить задачу первым способом.
Изображение
Рисунок 2. Часть таблицы с данными.

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

Далее в MatLab построил трехслойную нейронную сеть (многослойный персептрон) с 3-мя нейронами во входном слое, 10-ю нейронами в скрытом слое и одним нейроном в выходном слое. На нейроны входного слоя подаем Рвх, Рвых и Nн, а на выходном слое получаем коммерческую производительность.

Изображение
Рисунок 3. Скрипт для создания и обучения нейронной сети.

В качестве функции активации для скрытого слоя выбрана функция гиперболического тангенса, а для выходного слоя -линейная функция.

Запустил алгоритм обучения нейронной сети на данных полученных с графиков.

Изображение
Рисунок 4. Процесс обучения нейронной сети.

После обучения получил весовые коэффициенты каждого нейрона.

Изображение
Рисунок 5. Результаты обучения сети в графическом виде.

После этого для контроллера Fanuc Rx7i на языке С написал программу CalcQ.c и ввел туда полученные коэффициенты. Потом прогнал программу на тестовом множестве (которое не использовалось в обучении).

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

В итоге, показав результаты изысканий руководителю и убедив в простоте и надежности расчетов, мы внедрили мой алгоритм на одном из ПХГ.

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

Минусы данного решения в том, что при изменении характеристик нагнетателя необходимо заново строить ГДХ и переобучать сеть. Но ГДХ никто не снимал с момента выпуска данного нагнетателя в эксплуатацию, и так как сами операторы оценивают расход по старым характеристикам, то решение можно считать вполне приемлемым.

Исходный код нейронной сети для контроллера Fanuc Rx7i: CalcQ.c https://github.com/minikh/NeuroNet

Текст оригинальной статьи http://vmsystems.ru/neuronet-gpa.shtml

Всем спасибо за внимание! Если есть критика или предложения - пишите, буду рад обсудить.


thekekc
новенький
новенький
Сообщения: 2
Зарегистрирован: 21 окт 2014, 09:34
Ф.И.О.: Меркурьев В. В.

Re: Искусственный интеллект в системе управления ГПА

Сообщение thekekc » 23 окт 2014, 10:40

А как Вы выбирали конфигурацию сети? Исходя из чего?

Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 13:05
Ф.И.О.: Миних Владимир Анатольевич
Контактная информация:

Re: Искусственный интеллект в системе управления ГПА

Сообщение minikh » 23 окт 2014, 11:06

thekekc писал(а):А как Вы выбирали конфигурацию сети? Исходя из чего?


На самом деле нет четкого правил определения количества слоев и количество нейронов в слое.
Обычно, если функция определена на конечном множестве точек, достаточно одного скрытого слоя.

Для определения количества нейронов в слое есть эмпирическая формула:
k=sqrt(n*m),
где k - количество нейронов, n - количество входов сети, m - количество выходов.
А далее начинаем проверять на тестовом множестве. Если точность устраивает, то процесс обучения закончен. Если не устраивает, то прибавляем еще один нейрон.
Но дело в том, что при большом количестве нейронов в слое уменьшается быстродействие сети.
Я остановился на 10 нейронах. Тесты показали наименьшую ошибку на таком количестве.

Аватара пользователя

VADR
администратор
администратор
Сообщения: 2405
Зарегистрирован: 25 июл 2008, 06:12
Ф.И.О.: Диев Александр Васильевич
Благодарил (а): 19 раз
Поблагодарили: 25 раз

Re: Олимпийская ТЭЦ

Сообщение VADR » 23 окт 2014, 12:26

Интересная тема. Практическая реализация таких вот теоретических вещей (совсем недавно - исключительно теоретических) всегда интересна. Наверное, как когда-то (тоже не так уж давно) были интересны первые ПИД-регуляторы.
Кстати, вопрос по этим самым нейросетям. Как-нибудь можно прицепить их к техпроцессу с использованием не только моментальных измерений, но и архивных за довольно приличное время? К примеру - реальный техпроцесс. Сырьё поступает в установку, где находится в одной зоне с определёнными параметрами (давление, температура) в течение некоторого времени (время может меняться в зависимости от текущей производительности установки). Затем переходит в другую зону с другими параметрами, в третью... Везде - длительное время (суммарно - до 8 часов), везде предыдущее течение техпроцесса оказывает влияние на текущую зону. В конце - лаборантка берёт анализ (ещё около 2 часов) и получает оценку качества всего техпроцесса. Вот ко всему этому можно ли прицепить нейросеть, чтобы предсказывать результаты анализа по измеренным характеристикам?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.

Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 13:05
Ф.И.О.: Миних Владимир Анатольевич
Контактная информация:

Re: Искусственный интеллект в системе управления ГПА

Сообщение minikh » 23 окт 2014, 20:11

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


Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 945
Зарегистрирован: 25 июл 2008, 22:23
Ф.И.О.: Бондарев Михаил Владимирович
Поблагодарили: 1 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение Бондарев Михаил » 23 окт 2014, 22:02

Минусы данного решения в том, что при изменении характеристик нагнетателя необходимо заново строить ГДХ и переобучать сеть. Но ГДХ никто не снимал с момента выпуска данного нагнетателя в эксплуатацию


А если вы возьмете сеть с обратным распространением ошибки, то вам будет достаточно первичного обучения, а дальше сеть сама будет подстраиваться под изменение параметров (возможно даже циклическое).

были интересны первые ПИД-регуляторы

Да! в 19 веке было много интереснейших вещей!)

но и архивных за довольно приличное время?

Наоборот! Чем больше данных, тем лучше (в общем случае), главное чтобы все влияющие факторы были зарегистрированы (или оставались постоянными для известных отрезков времени.)

Вот ко всему этому можно ли прицепить нейросеть, чтобы предсказывать результаты анализа по измеренным характеристикам?

Конечно! В этом классе задач нейросети работают даже лучше, чем в задачах динамического регулирования.


Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 945
Зарегистрирован: 25 июл 2008, 22:23
Ф.И.О.: Бондарев Михаил Владимирович
Поблагодарили: 1 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение Бондарев Михаил » 23 окт 2014, 22:10

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

см. нейросети с обратным распространением ошибки.

Но алгоритм обучения не получится впихнуть в ПЛК, т.к. для этого необходим мощный процессор.

1. Тут многое зависит от реализации.
2. Есть очень мощные ПЛК, с процессором на уровне десктопов трехлетней давности.
3. Есть ПЛК, способные интегрировать модели из матлаба!
4. Есть Лабвью, который не только может интегрировать модель и крутить ее на процессоре, но и имеет ФПГА и крутить нейросеть можно там! ЭТО ОЧЕНЬ БЫСТРО!

Аватара пользователя

VADR
администратор
администратор
Сообщения: 2405
Зарегистрирован: 25 июл 2008, 06:12
Ф.И.О.: Диев Александр Васильевич
Благодарил (а): 19 раз
Поблагодарили: 25 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение VADR » 23 окт 2014, 22:19

Бондарев Михаил писал(а):
были интересны первые ПИД-регуляторы

Да! в 19 веке было много интереснейших вещей!)

Об чём я и говорю: всегда такие вот новые вещи интересны. И ПИД в промышленном применении - я бы не сказал, что это был 19-й век. Скорее, 20-й, причём ближе к середине. Хотя может быть, я и ошибаюсь.
Бондарев Михаил писал(а):
Вот ко всему этому можно ли прицепить нейросеть, чтобы предсказывать результаты анализа по измеренным характеристикам?

Конечно! В этом классе задач нейросети работают даже лучше, чем в задачах динамического регулирования.

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

Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 13:05
Ф.И.О.: Миних Владимир Анатольевич
Контактная информация:

Re: Искусственный интеллект в системе управления ГПА

Сообщение minikh » 23 окт 2014, 22:51

VADR писал(а):В моём случае влияние параметров на выход сказывается через некоторое время, причём не всегда одинаковое. И сказывается не только моментальное значение параметра, но и его поведение в течение некоторого периода. Если я буду на входной слой вводить состояние какого-либо параметра каждую минуту (т.е. раскладывать тренд на минутные участки и делать количество нейронов входного слоя соответствующим количеству минут), эта сеть будет просто гигантской, и будет ли в этом толк - непонятно.


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

Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 13:05
Ф.И.О.: Миних Владимир Анатольевич
Контактная информация:

Re: Искусственный интеллект в системе управления ГПА

Сообщение minikh » 23 окт 2014, 22:58

Бондарев Михаил писал(а):см. нейросети с обратным распространением ошибки.


А разве это не название алгоритма обучения нейронной сети? Я же когда говорил о необходимости повторного обучения сети при износе оборудования и изменениях в технологическом процессе имел ввиду то, что эти изменения меняют саму модель процесса. То есть нейросеть уже не будет точно описывать объект и ее следует дообучить с учетом новых переходных характеристик.
Но может я и ошибаюсь.

Аватара пользователя

Автор темы
minikh
здесь недавно
здесь недавно
Сообщения: 25
Зарегистрирован: 19 окт 2014, 13:05
Ф.И.О.: Миних Владимир Анатольевич
Контактная информация:

Re: Искусственный интеллект в системе управления ГПА

Сообщение minikh » 23 окт 2014, 23:00

Бондарев Михаил писал(а):1. Тут многое зависит от реализации.
2. Есть очень мощные ПЛК, с процессором на уровне десктопов трехлетней давности.
3. Есть ПЛК, способные интегрировать модели из матлаба!
4. Есть Лабвью, который не только может интегрировать модель и крутить ее на процессоре, но и имеет ФПГА и крутить нейросеть можно там! ЭТО ОЧЕНЬ БЫСТРО!


А вот это уже интересно! Когда я 6 лет назад занимался диссертацией, такого кажется еще не было.


Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 945
Зарегистрирован: 25 июл 2008, 22:23
Ф.И.О.: Бондарев Михаил Владимирович
Поблагодарили: 1 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение Бондарев Михаил » 23 окт 2014, 23:44

К примеру - реальный техпроцесс.

Установка работает циклически или (как я понимаю именно так) - непрерывно, с постоянной загрузкой сырья?

С мгновенными значениями по схеме вроде как всё просто:

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

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


Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 945
Зарегистрирован: 25 июл 2008, 22:23
Ф.И.О.: Бондарев Михаил Владимирович
Поблагодарили: 1 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение Бондарев Михаил » 24 окт 2014, 00:03

А разве это не название алгоритма обучения нейронной сети?

Да, и он может работать онлайн ( параллельно с работой сети ). Как раз получается скомпенсировать прецессию и уход параметров.

А вот это уже интересно!

4. Лабвью уже был на тот момент, но это довольно дорого ( в масшатабах студенческой задачи ). В масштабах пром.автоматики нормальная цена, за нормальное железо, хотя есть вопросы по софту. Если форм-фактор ПЛК не критичен - у них есть отличные одноплатные (в базе), модульные системы (форм-фактор типа пром-РС).
3.Например B&R позволяет сделать это непосредственно. Кроме этого у них существуют пром ПК (Сименс их использовал на своих ветряках (!))
2. Опять же B&R, плюс топопвые брэндовые ПЛК ( в матлабе есть конвертер в SCL, дающий сразу оптимизированный код), плюс всякие мощные тайваньские железки (программирование на С).
1. Кроме уже упомянутого конвертера из матлаба, есть несколько способов радикально ускорить вычисления :
- оптимизация работы с массивами;
- оптимизация вычисления функции активации ( или ее упрощение, аппрокисмация ) ;
- оптимизация структуры и объема сети (тут можно позамерять скорости обсчета различных конфигураций сети).

Аватара пользователя

VADR
администратор
администратор
Сообщения: 2405
Зарегистрирован: 25 июл 2008, 06:12
Ф.И.О.: Диев Александр Васильевич
Благодарил (а): 19 раз
Поблагодарили: 25 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение VADR » 24 окт 2014, 00:07

Бондарев Михаил писал(а):
К примеру - реальный техпроцесс.

Установка работает циклически или (как я понимаю именно так) - непрерывно, с постоянной загрузкой сырья?

Непрерывно. Я говорю о непрерывной варке целлюлозы. По ходу варочного котла есть зона, где щепа пропаривается, зона (или 2-3), где идёт собственно варка (подаётся и откачивается горячий щёлок под давлением - получается то, что называется "варочная циркуляция"), далее по ходу - промывная циркуляция. Время хода - в зависимости от текущей производительности установки (т.е. скорости движения всей этой массы сверху вниз) может достигать 8 часов. На выходе - лабораторные анализы, выдающие небольшой набор характеристик качества целюлозы (если не ошибаюсь, всего две: жёсткость, она же "каппа" и непровар), процедура анализа длится около 2 часов. Каждый участок влияет на следующий и на итоговый результат, стабильность параметров в пределах одной зоны также влияет на многое. В отчёте лаборантки видим, какая целлюлоза была 2 часа назад, из-за того, что она 4 часа назад промывалась, 6 часов назад варилась... регулировать такой процесс - не самая простая задача.
Бондарев Михаил писал(а):
С мгновенными значениями по схеме вроде как всё просто:

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

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

То есть в любом случае - временные ряды поточечно на вход, разница только в квантовании. Понятно. Вроде как :)
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.


Бондарев Михаил
почётный участник форума
почётный участник форума
Сообщения: 945
Зарегистрирован: 25 июл 2008, 22:23
Ф.И.О.: Бондарев Михаил Владимирович
Поблагодарили: 1 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение Бондарев Михаил » 24 окт 2014, 00:10

Что почитать:
- вот нагуглилось http://habrahabr.ru/post/154369/
- есть большая, скорее энциклопедия, чем учебник за авторством Хайкина. Но тут нужно быть осторожным
http://www.neuropro.ru/memo41.shtml

- из того что я читал мне запомнился учебник Осовского "нейросети" издательства Финансы и статистика.
- шикарнейшая книга Сигеру Омату "нейроуправление и его приложения" ( правда, она в разрезе применения к динамическим системам, зато все на пальцах ) http://www.twirpx.com/file/185773/ - за качество не ручаюсь, тк сам читал с бумаги

Аватара пользователя

VADR
администратор
администратор
Сообщения: 2405
Зарегистрирован: 25 июл 2008, 06:12
Ф.И.О.: Диев Александр Васильевич
Благодарил (а): 19 раз
Поблагодарили: 25 раз

Re: Искусственный интеллект в системе управления ГПА

Сообщение VADR » 24 окт 2014, 00:21

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


Вернуться в «Новости и отчётность»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей