Введение
Компьютерная симуляция промышленных роботов является актуальным направлением, призванным достичь повышения эффективности разработки управляющих программ, применяемых в робототехнике [3]. В работах [6-10] представлено теоретическое описание интеллектуальной системы симуляции, опирающейся на факты двух типов – первичные и вторичные.
Цель
В данной работе создаётся специальное информационное устройство, названное генератором фактов. Оно необходимо для объединения уже созданных блоков компьютерной симуляции и экспертной системы в единую интеллектуальную информационную систему. Благодаря этому устройству станет возможным получение значений первичных фактов экспертной системы в ходе симуляции промышленного робота. Оперируя первичными и вторичными фактами, экспертная система сможет рассуждать согласно доступной ей базе знаний и делать заключения о ходе процесса симуляции.
Материалы и методы
Математическая модель выходных данных объекта управления, а также базы фактов и знаний о выбранном роботизированном технологическом процессе представлены в [7]. Однако, согласно принятому в предыдущих работах формату продукционной модели, правила базы знаний не могут делать заключения об истинности или ложности первичных фактов. Эти факты называются «первичными», так как являются следствиями значений числовых параметров вектора выходных данных виртуального робота. Для получения значений первичных фактов необходимо разработать и внедрить в систему соответствующее информационное устройство, способное делать заключения на основе данных вектора s(ts) [7]. Данное информационное устройство решено назвать «Генератор первичных фактов» или просто «Генератор фактов». Опишем математическую модель генератора фактов R в виде совокупности (1).
R = <C, F, D, <M, EF, FD>> (1)
где i – номер текущего такта симуляции;
k - количество условий генератора. Для данной системы k=12;
j – номер условия. ;
n – количество максимально допустимых тактов симуляции;
С – матрица [n*k] выполненных условий;
F –матрица [n*k] подтверждённых фактов;
D –матрица [n*k] опровергнутых фактов;
M – множество текстовых шаблонов, по образцу которых формируются первичные факты, M = {m1, m2, …, mj, mj+1, …, mk};
EF – множество счётчиков подтверждения, EF = {, , …, , …, };
ED – множество счётчиков опровержения, ED = {, , …, , …, }.
Под тактом симуляции понимается обновление значений числовых данных симуляции, совершаемое циклически, с определённым временным интервалом [7].
Приведём условия вычисления значений элементов матрицы C в таблице 1.
Таблица 1. Принцип вычисления значений элементов матрицы С и соответствующие шаблоны М
j |
Выражения сi.j |
Шаблоны фактов mj |
1 |
|
Схват в участке 1 кратность |
2 |
|
Схват в участке 2 кратность |
3 |
|
Схват в участке 3 кратность |
4 |
|
Схват в участке 4 кратность |
5 |
|
Схват в участке 5 кратность |
6 |
|
Схват в участке 6 кратность |
7 |
|
Схват в участке 7 кратность |
8 |
|
Схват в участке 8 кратность |
9 |
|
Схват в участке 9 кратность |
10 |
|
Разжатиесхвата кратность |
11 |
|
Сжатие схвата кратность |
12 |
|
Ожидание кратность |
В таблице 1:
– значение времени симуляции на текущем (i–ом) такте;
– значение времени симуляции на предыдущем (i-1 –ом) такте;
– выходное значение функции координаты Х конечного звена робота в момент времени ;
– выходное значение функции координаты Yконечного звена робота в момент времени ;
, – параметры Х – ближнее и Х – дальнее, разделяющие зону обслуживания робота по оси Х так, что от начала координат до точки расположены ближние участки (1, 4, 7), от – средние участки (2, 5, 8) и от – дальние участки (3, 6, 9);
, – параметры Y – нижнее и Y – верхнее, разделяющие зону обслуживания робота по оси Y так, что от начала координат до точки расположены нижние участки (1, 2, 3), от – средние участки (4, 5, 6) и от – верхние участки (7, 8, 9);
– выходное значение функции состояния рабочего органа (схвата) робота в момент времени .
Подробнее данные закономерности рассмотрены в [7].
Таким образом, на основании зависимостей в таблице 1, можно вычислить значение каждого элемента матрицы С. Значения этих элементов, в свою очередь, ложатся в основу вычисления матриц F и D, отражающих подтверждение или опровержение каждого уникального факта. Элементы матрицы F вычисляются согласно (2)
(2)
Элементы матрицы D вычисляются согласно (3)
(3)
Множество счётчиков подтверждения EF представляет собой группу числовых значений, где каждый элемент выражает кратность последнего из подтверждённых фактов для соответствующего ему шаблона mj. Аналогично, каждый элемент матрицы опровержений ED выражает кратность последнего из опровергнутых фактов, заданных шаблоном mj.
Зададим формулу (4) вычисления значения элемента на i-м такте симуляции.
(4)
где i – номер некоторого такта симуляции.
Аналогично, сформулируем зависимость (5) для вычисления значений элементов множества ED.
(5)
Таким образом, принцип действия генератора фактов следующий. Каждый раз, когда для некоторого такта симуляции под номером i и некоторого условия под номером j значение соответствующего элемента матрицы F становится равным 1, производится вычисление значения счётчика для шаблона mj. Далее определяется текстовое выражение подтверждённого факта, путём последовательного объединения шаблона mj и значения счётчика , и точная копия полученного факта, хранящаяся во множестве первичных фактов, подтверждается как истинная. Аналогично, для каждого i и j, в случае принятия элементом значения 1, вычисляется значение , затем формулируется текстовое выражение факта путём последовательного объединения mj и в виде текста, и идентичный полученному экземпляру факт во множестве первичных фактов устанавливается как ложный.
Результаты и их обсуждение
Таким образом, в результате теоретических исследований получено математическое описание генератора фактов, задачей которого является формирование первичных фактов на основе изменяющихся во времени значений симуляции промышленного робота. Эти факты помещаются в рабочую память экспертной системы и в дальнейшем используются в процессе рассуждения механизма логического вывода.
Порядок работы с генератором фактов и экспертной системой следующий. По согласованию с инженером-программистом робототехники инженер по знаниям формирует базу знаний технологического процесса промышленного робота так, чтобы её правила использовали как факты, отражающие состояние робота, его узлов, составных частей во времени (первичные факты), так и факты, определяющие ход технологического цикла, совершаемые операции роботом (вторичные факты). Далее, инженер-программист и инженер по знаниям должны спроектировать генератор фактов. Необходимо установить математические закономерности вычисления значений матрицы C и определить соответствующие текстовые шаблоны М первичных фактов.
Таким образом, интеллектуальный симулятор будет обладать требуемыми возможностями. В процессе симуляции генератор фактов будет анализировать состояние робота относительно заданных математических зависимостей и на этом основании формировать текстовые выражения первичных фактов, которые он будет добавлять в рабочую память экспертной системы или удалять из неё. После обновления значений первичных фактов в рабочей памяти экспертной системы будет выполняться программная процедура логических рассуждений. Используя общую рабочую память, хранящую в себе как первичные, так и вторичные факты, механизм логического вывода будет осуществлять перебор и выполнение правил базы знаний экспертной системы. В итоге становится возможным получение интеллектуальных заключений о ходе и результате процесса симуляции робота, которые будут сделаны экспертной системой на основании имеющихся у неё знаний, данных и принципов логического вывода.
Используя данную математическую модель, осуществим программную реализацию генератора фактов экспертной системы на языке программирования C#, и частично представим результат в листинге 1.
Листинг 1. Программная реализация генератора фактов
if (x4 >Xhigh&&y4 >Yhigh)
cur_c[8] = 1;
else
cur_c[8] = 0;
if (r)
cur_c[9] = 1;
else
cur_c[9] = 0;
for (j = 0; j< 12; j++)
{
if (cur_c[j] == 1 &&prev_c[j] == 0)
{
N[j] ++;
Facts[M[j] + " " + N[j].ToString()] = 1;
}
else if(cur_c[j] == 0 &&prev_c[j] == 1)
{
if (N[j] > 1)
{
n_minus_1 = N[j] - 1;
Facts[M[j] + " " + n_minus_1.ToString()] = 0;
}
}
}
В данном исходном коде, в первом условии if (x4 >Xhigh&&y4 >Yhigh), производится проверка условия Сi.9 генератора фактов, согласно которому определяется, находится ли в данный момент конечное звено робота в участке номер 9 зоны обслуживания. Как видно, в случае положительного исхода, т.е. при значениях координат Xи Y больше чем Xд и Yв соответственно, в переменную cur_c[8] вносится единичное значение. В противном случае эта переменная принимает нулевое значение. Следующий блок условий if (r) производит проверку значения матрицы Ci.10, отражающего состояние схвата робота в данный момент симуляции.
Далее в программе выполняется цикл, проверяющий для каждого j значения Ci.jиCi-1.j. Это осуществляется с помощью проверок условий if (cur_c[j] == 1 &&prev_c[j] == 0) и elseif(cur_c[j] == 0 &&prev_c[j] == 1). Соответственно, в случае срабатывания первого условия генератор формирует текстовое выражение первичного факта, который должен быть добавлен в рабочую память экспертной системы, а в случае срабатывания второго формулирует факт, который должен быть из рабочей памяти удалён. На основании этих сведений программа устанавливает определённый первичный факт истинным с помощью команды Facts[M[j] + " " + N[j].ToString()] = 1, или ложным, выполняя инструкцию Facts[M[j] + " " + n_minus_1.ToString()] = 0. Словарь Facts, относящийся к типу Dictionary языка C#, хранит рабочую память экспертной системы. Переменные N[j] и n_minus_1используются для хранения параметров и , соответственно.
Заключение
Авторами был разработан генератор фактов, являющийся связующим звеном компьютерного симулятора и экспертной системы, которые таким образом представляют собой единую интеллектуальную информационную систему. Созданная в итоге интеллектуальная система симуляции промышленного робота способна самостоятельно, без участия оператора или любого другого специалиста, анализировать функционирование объекта управления с помощью встроенной экспертной системы. Благодаря этому станет возможным существенно повысить эффективность разработки управляющих программ для промышленных роботов путём их испытания на симуляторе, без использования реального робототехнического оборудования.
Рецензенты:
Ключко В.И., д.т.н., профессор кафедры Инновационных систем и прогнозирования, ФГБОУ ВПО «Кубанский государственных технологический университет», г. Краснодар.
Видовский Л.А., д.т.н., профессор, зав. кафедрой Инновационных систем и прогнозирования, ФГБОУ ВПО «Кубанский государственных технологический университет», г. Краснодар.