Проектирование технологического процесса (ТП) ковки является сложной инженерной задачей, в решении которой участвуют различные специалисты отдела главного металлурга машиностроительного предприятия (технолог, термист, нормировщик). Основная проблема создания САПР ТП ковки связана со слабой формализацией предметной области. Каждое предприятие опирается на собственные традиции и производственный опыт, поэтому разрабатываются системы, ориентированные на конкретное предприятие. Повышая интеллектуальность системы, можно решить проблему улучшения ее адаптации к условиям разных предприятий. Пример тому – САПР МАЛАХИТ, созданная как экспертная продукционная систе- ма [1]. Она может дополняться знаниями непосредственно на предприятии с помощью новых модулей, написанных на проблемно-ориентированном языке СТЕП. Еще один пример – САПР ВАЛ, при ее разработке применялся объектно-ориентированный подход для построения интеллектуальной САПР ТП ковки валов [2].
Авторами данной статьи предлагается использовать агентно-ориентированную парадигму [3] к построению САПР ТП ковки коротких поковок. Согласно данной парадигме, система представляется в виде агентов, являющихся автономными программными сущностями, способными взаимодействовать друг с другом или окружающей средой в интересах достижения поставленных целей. Агенты аккумулируют знания о предметной области, и их набор определяет возможности системы. Агенты могут свободно вводиться и выводиться из системы, благодаря чему достигаются ее высокая функциональная масштабируемость и адаптируемость. В отличие от объектно-ориентированного подхода, рассматривающего объекты и их взаимоотношения, агентно-ориентированный подход оперирует агентами, формирующими собственное поведение и находящимися на более высоком уровне сложности по отношению к традиционным объектам в объектно-ориентированном программировании [4].
Агенты системы
В состав САПР ТП ковки коротких поковок входят следующие основные агенты: Управляющий агент, Проектирование, Внешние источники данных, Графический редактор (рис. 1).
К задачам Управляющего агента относятся: ввод исходных данных о детали, ведение архивов деталей, поковок и технологических процессов ковки, изменение нормативной информации, предоставление пользователю возможности управления ходом проектирования. Агент Проектирование выполняет проектирование поковки, проектирование технологии ковки (выбор технологических параметров), выбор режимов термообработки и нормирование работ. Агент Внешние источники данных отвечает за предоставление данных из внешних источников, которыми могут являться файловые архивы, БД, системы документооборота. Графический редактор отвечает за ввод и корректировку геометрической информации о детали и поковке.
Все основные агенты, в свою очередь, являются мультиагентными системами. Например, агент Внешние источники данных объединяет агентов, работающих с конкретными источниками информации. Такими агентами являются MSSQLDB, OracleDB, FileSystem, предназначенные для работы, соответственно, с СУБД MS SQL Server, СУБД Oracle и файловой системой. Набор данных агентов зависит от информационной инфраструктуры предприятия.
Наиболее важным является агент Проектирование, поскольку он выполняет основную задачу системы – проектирование ТП ковки. Данный агент объединяет агентов, участвующих в отдельных этапах проектирования, а именно Поковка, Технология, Нормирование, Термообработка, Молот, Подкладной инструмент и др.
Агент Поковка выполняет проектирование поковки, включающее в себя назначение припусков на термическую и механическую обработку и назначение технологических напусков разного рода, упрощающих контур детали. Кроме того, агент Поковка объединяет агентов проектирования отдельных типов поковок. Для САПР ТП ковки коротких поковок такой набор может включать агентов Диск, Кольцо, Цилиндр, Втулка с уступом, которые проектируют соответствующие поковки.
Агент Технология содержит набор таких агентов, как Осадка, Прошивка, Раскатка, Высадка, Раздача, Отходы, Технико-экономические параметры, отвечающих за расчет параметров ТП и его операций. Набор данных агентов зависит от проектируемых типов поковок, а поведение агентов – от традиций и опыта конкретного предприятия.
Базовая конфигурация системы (базовый набор агентов) расширяема, в нее могут быть добавлены новые агенты. Состав агентов САПР может изменяться как до, так и после запуска системы в эксплуатацию. Созданные новые агенты в состоянии решать новые задачи (например, ведение архива документации), а также дополнять или уточнять функции существующих агентов за счет расширения номенклатуры изделий и оборудования. Например, агент Пресс необязательно изначально может быть заложен разработчиком в базовую конфигурацию системы. Если же на предприятии существует необходимость в этом виде оборудования, то соответствующие агенты проектирования могут быть разработаны и включены в систему без модернизации базовых агентов.
Применение платформы JADE для разработки САПР ковки
При создании САПР ковки коротких поковок использована платформа JADE [5] (Java Agent Development Framework), поддерживающая FIPA-стандарты (The Foundation for Intelligent Physical Agents). Данная платформа (рис. 2) содержит библиотеку объектов для разработки агентов, среду выполнения агентов, набор графических утилит для администрирования и наблюдения за жизнедеятельностью активных агентов. Платформа JADE ориентирована на язык программирования Java, однако есть реализации и для других языков высокого уровня, в том числе для C#.
Работа мультиагентной системы строится на основе обмена сообщениями между агентами. Механизм передачи сообщений реализуется самой платформой JADE. Формат данных сообщений определяется протоколом коммуникации агентов (языками коммуникации). К наиболее широко используемым языкам коммуникации относятся FIPA-ACL и KQML. В разрабатываемой САПР применяется FIPA-ACL, так как он может использовать различные языки описания содержимого сообщения и протоколы взаимодействия, в то время как KQML использует только язык описания знаний KIF (Knowledge Interchange Format). Согласно протоколу FIPA-ACL, сообщение состоит из набора полей, таких как Отправитель, Получатель, Действие, Содержание, Язык содержания, Онтология, и дополнительных полей организации диалога. Пример заполнения полей сообщения приведен в таблице.
Поле
|
Значение
|
Комментарий
|
Отправитель
|
PokovkaDisk
|
Отправитель – агент Проектирование поковки
|
Получатель
|
SQLDB
|
Получатель – агент Внешний источник информации БД
|
Действие
|
GetPripusk
|
Запрос значений припусков на механообработку
|
Содержание
|
D=350&H=100
|
Размеры детали
|
Язык содержания
|
ExternDataLan
|
Язык запросов к БД
|
Онтология
|
DefaultOnt
|
Онтология всей системы
|
Поля коммуникаций
|
null
|
Дополнительные коммуникации отсутствуют
|
Следует отметить, что обязательным к заполнению является только поле Действие. Как правило, посылка сообщения является призывом к действию или запросом данных, таким как начать проектирование, назначить припуски или напуски на поковку, рассчитать заготовку, назначить технологические переходы и др.
Поскольку агенты являются автономными сущностями и могут входить в состав разных систем, необходимо согласовать понятия, ко- торыми они оперируют при общении. Для интерпретации передаваемых данных используется онтология. Авторами статьи онтология определяется как совокупность понятий предметной области и отношений между ними. В мультиагентной системе может быть одна онтология, охватывающая всех агентов, или несколько онтологий для отдельных частей системы. В данной работе использован первый вариант онтологии (фрагмент показан на рисунке 3).
Кроме основных агентов, имеются служебные, создаваемые JADE. К ним относятся AMS (Agent Management System) и DF (Directory Facilitator). Агент AMS обеспечивает службу имен, гарантирующую уникальность имени каждого агента на платформе. С помощью агента DF агенты системы могут искать друг друга по параметру предоставляемой услуги.
Для примера рассмотрим проектирование технологии ковки втулки с уступами (рис. 4). Управляющий агент запрашивает у агента DF перечень агентов, способных выполнить проектирование технологии для втулки с уступом. Ковку втулки можно осуществить несколькими способами: без подкладного инструмента, в подкладном кольце, в двух подкладных кольцах и в подкладном штампе. За каждый из этих вариантов отвечает отдельный агент проектирования технологии, поэтому Управляющий агент получит перечень из нескольких агентов проектирования технологии ковки. Каждому из проектирующих агентов будет отправлено сообщение с призывом на проектирование технологии ковки и с исходными данными для проектирования. В этой ситуации агенты конкурируют за возможность предоставить свой вариант дальнейшего проектирования. Они в автоматическом режиме проводят проектирование ТП. При этом им необходимо решить ряд задач: выбор молота, расчет заготовки, назначение технологических напусков на поковку и др. Некоторые из этих задач, например, назначение технологических напусков, затрагивают агента Поковка. Соответственно, для назначения напусков агенту Поковка посылается сообщение, у которого в качестве Действия указывается Назначение напусков, а поле Содержание заполняется информацией о геометрии поковки с технологическими ограничениями.
Получив ответы от всех проектных агентов с результатами о параметрах ТП, Управляющий агент собирает данные результаты в таблицу и предоставляет ее пользователю. Пользователь может выбрать или рекомендуемый системой вариант проектирования, или любой другой. Рекомендации системы основываются, например, на критерии наименьшего расхода металла.
При организации проектирования технологии ковки с применением мультиагентной парадигмы возникли две проблемы взаимодействия агентов, связанные с зацикливанием диалога агентов и синхронизацией этапов проектирования. Зацикливание возникает из-за итеративности процесса проектирования. Из рисунка 5 видно, что агенты Подкладной инструмент и Молот взаимодействуют с агентом Поковка в процессе выбора подкладного инструмента. Они назначают технологи- ческие напуски на поковку, чтобы обеспечить возможность ковки при некотором выбранном варианте молота и подкладного инструмента. Такая коллективная работа агентов продолжается до тех пор, пока не будет найден совокупный вариант {Пi, Мi, ПИi}, состоящий из поковки (Пi), молота (Мi) и подкладного инструмента (ПИi), который устроил бы всех участников диалога. Может возникнуть ситуация, при которой процесс поиска переходит от некоторого набора {Пk, Мk, ПИk} к набору {Пj, Мj, ПИj} и обратно, что приведет к зацикливанию процесса поиска решения. При возникновении данной ситуации необходимо исключать из набора доступных молотов использованные ранее варианты. При этом число итераций будет конечным в силу ограниченности количества молотов в перечне ковочного оборудования.
Проблема синхронизации этапов проектирования связана с тем, что пользователь может переходить с одного этапа на другой, при этом должны меняться параметры технологии. Для решения этой проблемы введено понятие состояния агентов, которое характеризует то, чем он занимается в текущий момент проектирования. Агент опрашивает других агентов об их состояниях, чтобы определить свои дальнейшие действия. Например, если агент Поковка находится в состоянии назначения припусков, Графический редактор блокирует возможность редактирования геометрии детали. Если пользователь вернется на этап ввода исходной информации, Графический редактор отследит это действие и предоставит пользователю возможность редактирования геометрии детали.
Повышение интеллектуальности САПР ТП ковки позволяет создавать гибкие и масштабируемые программные решения для промышленных предприятий. Применение агентно-ориентированной парадигмы к разработке САПР является эффективным инструментом для повышения ее интеллектуальности. Платформа JADE позволяет разработчикам сосредоточиться на создании самих агентов, а не обслуживающих их служб за счет готовых реализаций службы доставки сообщений, службы поиска агентов, унификации имен и среды выполнения.
Литература
1. Чесноков В.С. [и др.]. Разработка и применение программного обеспечения для автоматизированного проектирования и моделирования процессов ковки и горячей штамповки // Кузнечно-штамповочное производство. 2009. № 9. С. 3.
2. Коновалов А.В. [и др.]. Новые принципы разработки САПР ТП ковки // Кузнечно-штамповочное производство. 2007. № 1. С. 42–47.
3. Люгер Д.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е изд.; [пер. с англ.]. М.: Издат. дом «Вильямс», 2003. 864 с.
4. Швецов А.Н. Агентно-ориентированные системы: от формальных моделей к промышленным приложениям // EDU.RU: Всеросс. конкурс. отбор обзор.-аналит. ст. по приоритет. направл.: Информационно-телекоммуникационные системы. URL: http://window.edu.ru/window/library?p_rid=56179 (дата обращения: 28.05.2010).
5. Fabio Bellifemine Developing multi-agent systems with JADE / Printed and bound in Great Britain by Antony Rowe Ltd., Chippenham, Wiltshear, 2007, p. 303.