Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 УДК 621.01 Э.Е. ПЕЙСАХ СТРУКТУРНЫЙ СИНТЕЗ ЗАМКНУТЫХ КИНЕМАТИЧЕСКИХ ЦЕПЕЙ (ЦЕПЕЙ ГРЮБЛЕРА). Часть 2 Введение В части 1 статьи [21] был представлен обзор исследований (в историческом аспекте) в области структурного синтеза цепей Грюблера и приведены сведения о современном состоянии данной проблемы; предложена новая классификация цепей (основные классификационные признаки – число звеньев и разряд); дано определение понятия "цепь Грюблера" (более точное, чем известные определения); сформулированы условия, которые базируются на указанном определении и которые предполагается использовать при создании алгоритмов для структурного синтеза цепей Грюблера; намечены основные этапы алгоритма синтеза цепей в соответствии предлагаемым методом; представлена методика получения всех возможных разрядов для цепей Грюблера с заданным числом звеньев (первый этап синтеза), а также приведены соответствующие результаты для цепей с числом звеньев до 16. В части 2 статьи будут рассмотрены следующие вопросы: структурная матрица; проблема изоморфизма структур; вычислительные аспекты структурного синтеза кинематических цепей; алгоритм перечисления структур (второй этап синтеза); идентификационный структурный код (ИСК) для цепей Грюблера; алгоритм идентификации цепей и формирования ИСК; алгоритм отбора неизоморфных цепей Грюблера (третий этап синтеза); формирование электронных каталогов цепей Грюблера с заданным числом звеньев; структурный синтез десятизвенных цепей. Структурная матрица При разработке алгоритмов структурного синтеза возникает необходимость в адекватном символьном представлении синтезируемых кинематических цепей, а также в создании идентификационного структурного кода для каждой из цепей Грюблера. В качестве указанного символьного представления цепей будем использовать структурную матрицу. Структурную матрицу для n-звенной кинематической цепи введём в виде квадратной матрицы S {aij } размера n n . Номер i строки, как и номер j столбца, совпадает с порядковым номером звена ( i, j 1, 2, ..., n ). Элементам aij матрицы S присваиваются значения 0 или 1 по такому правилу: aij 1 , если звено i образует кинематическую пару со звеном j; aij 0 в противном случае. Из сказанного следует, что aii 0 ; a ji aij , если j i ( i, j 1, 2, ..., n ). Значит, матрица S является симметрической. При формировании матрицы S достаточно присвоить значения 0 или 1 только тем элементам, которые расположены справа от главной диагонали, то есть элементам aij , где i 1, 2, ..., n 1 ; i j n . Что касается элементов, расположенных слева от главной диагонали, то их значения устанавливаются автоматически в силу симметрии матрицы S. Структурная матрица отображает все свойства рассматриваемой структуры: число звеньев; число кинематических пар; число двухпарных, трёхпарных и т.д. звеньев. Из матрицы S видно, какие именно звенья образуют между собой кинематические пары. Анализируя структурную матрицу, можно определить число степеней свободы цепи; Теория Механизмов и Машин. 2008. № 2. Том 6. 3 Структура механизмов проверить, обеспечивается ли относительная подвижность всех звеньев цепи; проверить, является ли данная цепь цепью Грюблера. Все такие процедуры поддаются алгоритмизации и могут быть выполнены в автоматическом режиме без участия человека. Структурные матрицы механизмов или кинематических цепей содержат сведения о структуре этих объектах в "чистом" виде, что выгодно отличает их от традиционного графического изображения структур. В последнем всегда присутствует информация, не относящаяся только к структуре, поскольку звеньям присваиваются какие-то определённые размеры, звенья располагаются определённым образом одно относительно другого. Одна и та же структура может быть изображена совершенно по-разному (с пересечением или без пересечения звеньев, с разным количеством чисел звеньев, образующих взаимно независимые замкнутые контуры [5, 22], и т. д.). Вследствие этого, при визуальном сравнении графических изображений двух структурных объектов с числом звеньев 8 или более обычно бывает трудно ответить на вопрос, являются ли они топологически одинаковыми или нет. Структурные же матрицы двух указанных объектов позволяет дать ответ на этот вопрос. При всех описанных выше достоинствах, структурная матрица кинематической цепи не может выступать в роли её идентификационного структурного кода (ИСК). Между кинематической цепью и её ИСК должно иметь место взаимно однозначное соответствие: одна цепь – один ИСК и обратно. Что касается структурных матриц, то каждой структурной матрице соответствует одна конкретная кинематическая цепь, но для одной и той же цепи можно составить много различных структурных матриц. Дело в том, что вид структурной матрицы S зависит от выбранного порядка нумерации звеньев n-звенной цепи при помощи чисел от 1 до n. Каждому варианту выбора номеров звеньев одной и той же цепи Грюблера соответствует, как правило, своя структурная матрица S. Вместе с тем, достаточно часто встречаются случаи, когда одна и та же структурная матрица, вследствие некоторой структурной симметрии рассматриваемой кинематической цепи, отвечает двум или более вариантам нумерации звеньев (см. ниже). Если не вводить ограничений на порядок нумерации звеньев, то число вариантов выбора номеров для одной цепи будет равно n! (так, при n 10 получаем 3628800 вариантов). С учётом упомянутой структурной симметрии, фактическое число различных структурных матриц, которые можно составить для одной и той же цепи, во многих случаях будет меньше чем n!. Дополнительного уменьшения числа структурных матриц можно добиться, если заранее условиться о некотором едином принципе нумерации звеньев для всех замкнутых кинематических цепей (см. ниже). Проблема изоморфизма В соответствии с описываемой здесь методикой структурного синтеза цепей Грюблера, разработанный алгоритм последовательно генерирует структурные матрицы n-звенных кинематических цепей, принадлежащих заданному разряду R. Этот алгоритм будем называть алгоритмом перечисления структур. Результатом работы алгоритма перечисления является некоторый набор структурных матриц. Обозначим через N S общее число структурных матриц в этом наборе, а через N ц – число неизоморфных (не повторяющихся) цепей Грюблера, соответствующих этим структурным матрицам. В результате работы алгоритма перечисления мы находим все структурные матрицы, в то время как наша цель – найти все неизоморфные цепи Грюблера. Между тем, ситуация такова, что всегда N ц << N S . Это означает, что среди N S найденных цепей имеется большое число изоморфных (повторяющихся) структур. Поэтому возникает проблема выявления всех N S N ц изоморфных цепей и их исключения из общей базы данных, после чего в базе данных останутся только неизоморфные цепи. Эта проблема (проблема изоморфизма) решается на третьем этапе структурного синтеза цепей Грюблера. 4 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 В чём же состоит причина появления изоморфных цепей в базе данных после завершения алгоритма перечисления? Причина кроется в отмеченной выше особенности структурных матриц: для одной и той же кинематической цепи, в зависимости от выбранного порядка нумерации звеньев, можно составить большое число различных структурных матриц. Вычислительные аспекты Возможность реализации программ структурного синтеза цепей Грюблера на современных ЭВМ (с учётом их быстродействия и объёма памяти) зависит от общего числа N S структурных матриц, генерируемых алгоритмом перечисления. Дадим некоторые предварительные оценки, обратившись, в качестве примера, к синтезу десятизвенных цепей Грюблера ( n 10 ). Как известно [913], общее число таких цепей равно 230. Выше отмечалось, что число вариантов выбора номеров звеньев для одной десятизвенной цепи равно 10! = 3628800. Тогда для всех 230 цепей мы получаем 834 624 000 вариантов. Если бы каждая из генерируемых структурных матриц соответствовала одному варианту, то общее число матриц было бы тоже равно указанному значению. Такое количество структурных матриц размера 1010 заняло бы на жёстком диске несколько сот гигабайт памяти. С учётом же упомянутой выше структурной симметрии некоторых из цепей, фактическое число различных структурных матриц будет меньше указанного значения. Но всё равно, объём необходимого дискового пространства будет чрезмерно велик. При этом надо иметь в виду, что здесь речь идёт только о памяти, необходимой для хранения одного набора структурных матриц, но не о всей программе перечисления структур, которая потребовала бы многократно большего дискового пространства, огромной оперативной памяти и весьма высокого быстродействия ЭВМ. Выход из ситуации можно искать на различных направлениях. Одно из них – последовательный синтез n-звенных цепей отдельно для каждого из их возможных разрядов R (при n 10 существует семь разрядов [21]). Второе направление – сокращение числа генерируемых структурных матриц за счёт применения некоторой особой системы нумерации звеньев для всех замкнутых кинематических цепей. Третье направление – разделение всего массива обрабатываемых данных на несколько частей (быть может, на 10 или более) и последовательное решение задачи для каждой части в отдельности с суммированием итоговых результатов. Четвёртое направление – использование высокопроизводительных многопроцессорных вычислительных систем, позволяющих выполнять параллельные вычисления. Не исключена и комбинация указанных направлений. В описываемом здесь алгоритме введены некоторые ограничения на порядок нумерации звеньев, а именно: двухпарные звенья имеют номера от 1 до n2; трёхпарные звенья – номера от ( n2 1 ) до ( n2 n3 ); …; k-парные звенья – номера от ( n2 n3 ... nk 1 1 ) до n. Напомним, что n2, n3, …, nk – это число двухпарных, трёхпарных, …, k-парных звеньев; k n 2 [21]. При использования указанной системы нумерации число различных вариантов выбора номеров звеньев равно V0 n2 ! n3!... nk ! , то есть оно существенно меньше числа n!. Сравнение чисел V0 и n! дадим на примере десятизвенных цепей Грюблера для всех семи возможных разрядов таких цепей. Из табл. 6 видно, что коэффициент 1 10! V0 зависит от разряда цепи. Таблица 6 R (n2 n3 n4 n5 ) (8 0 0 2) (7 0 3 0) (7 1 1 1) Теория Механизмов и Машин. 2008. № 2. Том 6. (6 3 0 1) (6 2 2 0) (5 4 1 0) (4 6 0 0) 5 Структура механизмов V0 n2!n3!n4 !n5! 80640 30240 5040 4320 2880 2880 17280 1 10! V0 45 120 720 840 1260 1260 210 Что касается числа структурных матриц, которые можно составить на базе одной цепи, то это число равно V0 только для 87 из 230 десятизвенных цепей Грюблера. Для других 143 десятизвенных цепей число матриц меньше чем V0 , что обусловлено наличием упомянутой выше структурной симметрии этих цепей. В результате реализации программы структурного синтеза установлено, что для всех десятизвенных цепей N S = 889380, N ц = 230. Отсюда следует, что в среднем на одну цепь приходится Vср N S N ц = 3867 структурных матриц, что в 938 раз меньше чем 10! . Соответственно уменьшается и объём требуемого дискового пространства: он составляет теперь несколько сот мегабайт для размещения полного набора структурных матриц. Если же учитывать, что синтез цепей выполняется отдельно для каждого разряда, то будет необходим в каждом случае меньший объём памяти. Всё же он остаётся достаточно большим, вследствие чего, при использовании персонального компьютера приходится для некоторых из разрядов разделять весь массив обрабатываемых данных на несколько частей и последовательно решать задачу для каждой части в отдельности, суммируя затем итоговые результаты. Радикальное разрешение возникающих проблем, связанных с объёмом памяти и временем вычислений, возможно при использовании многопроцессорных вычислительных систем. Алгоритм перечисления Алгоритм перечисления предназначен для последовательного формирования структурных матриц для всех возможных цепей Грюблера с заданным числом звеньев и заданного разряда R. Исходными данными при синтезе структурных матриц являются: n – число звеньев цепи; p – число кинематических пар; n2, n3, …, nk – число двухпарных, трёхпарных, …, k-парных звеньев в цепи. Здесь: n чётное число ( n 4 ); p 3(n 2) 2 ; k n / 2 . Предполагается, что для всех синтезируемых кинематических цепей используется единый принцип нумерации звеньев (см. предыдущий раздел). Результатом работы алгоритма перечисления является некоторый набор структурных матриц. Все матрицы в указанном наборе являются разными, совокупность матриц отображает информацию о всех n-звенных цепях Грюблера, принадлежащих заданному разряду R, в наборе не содержатся структурные матрицы, не относящиеся к указанным цепям. Что касается промежуточных стадий процедуры генерирования структурных матриц, то там могут появляться матрицы, не относящиеся к синтезируемым цепям, но они должны отбраковываться в процессе реализации алгоритма. Процедура формирования структурных матриц составлена таким образом, что все кинематические цепи, соответствующие этим матрицам, удовлетворяют указанным выше числовым параметрам, то есть имеют заданные значения n, p, k, n2, n3, …, nk . Кроме того, в алгоритме перечисления учтено дополнительно одно важное условие, которому должны удовлетворять цепи Грюблера: любое из звеньев цепи должно иметь относительную подвижность по отношению к любому другому её звену [21]. В компьютерной базе данных сохраняются только такие генерируемые программой структурные матрицы, которые удовлетворяют этому условию. В алгоритме перечисления структурные матрицы S размера n n формируются построчно: сначала генерируется первая строка, затем к ней присоединяется вторая строка, потом к двум первым строкам присоединяется третья строка и т. д. Предварительно формируются все возможные варианты первой строки, второй строки, …, n-й строки. 6 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 Задаваемые величины n2, n3, …, nk устанавливают число элементов, равных 1, в каждой из строк матрицы: первые n2 строк имеют по два таких элемента, следующие n3 строк– по три элемента, …, последние nk строк – по k n / 2 элементов, равных 1. Из формул (3), (4), (5) и (6) [21] видно, что для всех цепей Грюблера n2 4 , так что, по крайней мере, первые четыре строки содержат только по два элемента, равных 1 (остальные n 2 элементов равны 0). Вид первой строки зависит от выбора варианта размещения двух цифр 1 среди n элементов этой строки. Число возможных вариантов V1 такого размещения равно числу сочетаний из n 1 элементов по 2, то есть равно 1 (n 1)( n 2) . Так, при n 10 получаем: 2 V1 =36. Во второй строке тоже нужно разместить две цифры 1 среди n элементов. Но при этом следует учитывать, что первый элемент a21 второй строки не может быть выбран произвольно (из двух значений – 0 или 1), поскольку a21 a12 . Следовательно, число возможных вариантов V2 второй строки зависит от значения элемента a12 первой строки, то есть V2 V2 (a12 ) . Нетрудно показать, что V2 (0) 1 (n 2)( n 3) , V2 (1) n 2 . При 2 n 10 находим: V2 (0) 28 ; V2 (1) 8 . В результате объединения двух первых строк мы формируем прямоугольную матрицу размера 2 n . Все возможные варианты такой матрицы получаются путём сочетания возможных вариантов для первой и второй строк. Число всех вариантов матрицы 2 n обозначим через V1 2 . При n 10 получаем: V1 2 848 . В третье строке размещаются две цифры 1 среди n элементов с учётом равенств: a31 a13 , a32 a23 . Следовательно, число возможных вариантов V3 третьей строки зависит от значений двух элементов a13 и a23 , расположенных в третьем ряду матрицы 2 n , то есть V3 V3 (a13 , a23 ) . В результате объединения трёх первых строк мы формируем прямоугольную матрицу размера 3 n . Все возможные варианты такой матрицы получаются путём сочетания возможных вариантов для матрицы 2 n и третьей строки. Число всех вариантов матрицы 3 n обозначим через V1 3 . При n 10 получаем: V1 3 12496 . Формирование четвёртой строки структурной матрицы, а также четырёх первых строк, пятой строки, а также пяти первых строк, и т. д. производится аналогичным образом. Выше изложена упрощённая методика формирования структурных матриц по строкам. В алгоритме перечисления используется более развитая методика, предусматривающая проверку на каждом шаге алгоритма различных условий (выраженных в математической форме) и отбраковку непригодных вариантов в случае невыполнения этих условий. Проверке подвергаются данные, содержащиеся как в отдельных строках, так и в промежуточных прямоугольных матрицах. Благодаря такому контролю промежуточных результатов удаётся многократно (в некоторых случаях – до двух порядков) сократить количество вариантов, обрабатываемых на каждом этапе алгоритма перечисления по сравнению со случаем, когда все необходимые проверки производились бы для всего массива структурных матриц по завершению их формирования. Рассмотрим теперь сформулированное выше условие: любое из звеньев цепи Грюблера должно иметь относительную подвижность по отношению к любому другому её звену. Теория Механизмов и Машин. 2008. № 2. Том 6. 7 Структура механизмов Предположим, что несколько шарнирно связанных друг с другом звеньев, входящих в состав рассматриваемой n-звенной кинематической цепи с W 4 , не имеют относительной подвижности. Это означает, что данная группа звеньев представляет собой статически определимую ферму (так называемую ферму Баранова [20] ), а рассматриваемая структура не является n-звенной цепью Грюблера. Отсюда следует, что указанное выше условие может быть сформулировано по-другому: замкнутая n-звенная кинематическая цепь не должна содержать в своей структуре n -звенную подцепь, представляющую собой ферму Баранова. Здесь: n n . Как известно, фермы Баранова имеют нечётное число звеньев (начиная с 3). Значит, в структуре замкнутых n-звенных кинематических цепей не должно быть ферм Баранова с числом звеньев 3, 5, …, n 3 . Если хотя бы одна такая ферма существует внутри проверяемой кинематической цепи, то последняя не является n-звенной цепью Грюблера и должна быть отбракована. При отсутствии всех указанных ферм в структуре рассматриваемой цепи последняя является цепью Грюблера и сохраняется в компьютерной базе данных. Если в структуре n-звенной кинематической цепи имеется n -звенная ферма Баранова, то остальные звенья цепи образуют открытую кинематическую подцепь с n n n звеньями. Эта подцепь обладает подвижностью по отношению к n -звенной ферме. Отсюда следует, что проверку наличия n -звенной фермы Баранова можно заменить на проверку наличия открытой кинематической подцепи с n n n звеньями, которая обладает подвижностью по отношению ко всем остальным n звеньям цепи. Отметим, что такую замену имеет смысл производить только при n n / 2 . Так, например, при n n 3 , вместо поиска n -звенной фермы Баранова в структуре цепи, можно решать более лёгкую задачу, а именно – поиск трёхзвенной подцепи, содержащей три двухпарных звена. Если такая подцепь существует, то рассматриваемую цепь нужно исключить из базы данных. Проверку кинематических цепей, генерируемых при их синтезе, на предмет наличия в их структуре указанных выше подцепей можно формализовать и представить в виде соответствующего алгоритма. Объём вычислений, необходимых для такой проверки, зависит от числа n звеньев цепи. При n 6 и n 8 объём вычислений получается сравнительно небольшим, но он быстро возрастает по мере увеличения числа n. Так, при n 6 нужно только проверить, нет ли в рассматриваемой цепи трёхзвенной фермы, то есть трёх звеньев, образующих замкнутый контур. При n 8 требуется исключить варианты, в которых имеется замкнутый контур, состоящий из трёх звеньев, а также варианты с трёхзвенной подцепью, содержащей три двухпарных звена. При n 10 нужно выявить и исключить варианты, в которых встречается трёхзвенный замкнутый контур, или трёхзвенная подцепь, содержащая три двухпарных звена, или пятизвенная ферма Баранова (см. пример, приведённый на рис. 3 в статье [21]). Отметим, что алгоритм перечисления структурных матриц цепей Грюблера выполняется программой в автоматическом режиме, без участия пользователя. Идентификационный структурный код (ИСК) кинематической цепи Как отмечалось ранее, структурная матрица является простым и эффективным средством символьного представления цепей Грюблера на этапе генерирования их структурных схем (то есть в алгоритме перечисления). Но вид структурной матрицы для одной и той же цепи зависит от порядка нумерации её звеньев. Поэтому при поиске неизоморфных цепей (третий этап структурного синтеза) возникает необходимость во введении другого их символьного представления. Это новое символьное представление будем называть идентификационным структурным кодом (ИСК) кинематической цепи Грюблера. 8 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 Сформулируем требования, которым должен удовлетворять ИСК. Этот код должен полноценно отображать структурное строение цепи и, в отличие от структурной матрицы, не должен зависеть от порядка нумерации звеньев цепи. Между самой цепью и её ИСК должно иметь место взаимно однозначное соответствие. Это означает, что, зная ИСК цепи, можно изобразить её структурную схему, а по известной структурной схеме цепи можно единственным образом составить её структурный код. Мы исходим из того, что символьное представление цепей Грюблера, удовлетворяющее указанным требованиям, в принципе существует и нужно только найти его. В данной статье предлагается ИСК для цепей Грюблера и описан алгоритм его формирования. Структурный код для n-звенной цепи представляет собой прямоугольную n 2 , элементами которой являются целые неотрицательные 2 числа (наибольшее из которых не превышает n). Матрица M получается из структурной матрицы S при помощи некоторой сходящейся процедуры (см. ниже). Из всех структурных матриц S, составленных для одной и той же цепи Грюблера при различном порядке нумерации звеньев, получается одна и та же матрица M. матрицу M размера n В качестве примера рассмотрим одну из десятизвенных цепей Грюблера, а именно: цепь 10ЦГ2 (индекс цепи соответствует системе индексации, принятой в разработанном автором электронном каталоге десятизвенных цепей Грюблера). На рис. 4 и 5 показаны: цепь 10ЦГ2 (она изображена дважды – для первого и для второго вариантов нумерации звеньев); две структурные матрицы S этой цепи, составленные для двух указанных вариантов нумерации звеньев; ИСК рассматриваемой цепи (то есть матрица M); изображение цепи 10ЦГ2, в котором, вместо номеров звеньев, указаны их ранги (номера рангов звеньев фигурируют в первом столбце матрицы M). Отметим, что цепь 10ЦГ2 относится к разряду (8 0 0 2). Всего существует 8!2! 80640 вариантов нумерации звеньев данной цепи при помощи чисел от 1 до 10 (при соблюдении правила: восемь двухпарных звеньев имеют номера от 1 до 8, а два пятипарных звена – номера 9 и 10). В силу структурной симметрии рассматриваемой цепи, число различных структурных матриц S, которые можно составить для этой цепи, меньше чем 80640 и равно 3360. Из каждой из 3360 структурных матриц после соответствующих преобразований получается одна и та же матрица M, то есть единственный ИСК для цепи 10ЦГ2. Рассмотрим строение матрицы M, обозначив её элементы через mij ( i 1, 2, ..., n ; j 1, 2, ..., k 2 ; k n / 2 ). Для удобства описания матрицы M разобьём её условно на три прямоугольных подматрицы: первая подматрица – это первый столбец матрицы M; вторая подматрица состоит из столбцов матрицы M с номерами 2, 3, …, k 1 ; третья подматрица – это последний столбец матрицы M. Элементами первой подматрицы являются ранги звеньев (РЗ) кинематической цепи. В строках второй подматрицы фигурируют списки рангов присоединяемых звеньев (СРПЗ). Третья подматрица содержит информацию о числе изменяемых замкнутых контуров, образуемых звеньями кинематической цепи; причём, в первой строке подматрицы указывается число четырёхзвенных контуров, во второй строке – число пятизвенных контуров и т. д. Разъясним смысл двух упомянутых выше терминов – РЗ и СРПЗ. Ранг звена (РЗ) вводится с целью установить некоторую шкалу приоритетов для звеньев цепи. Для количественной оценки РЗ будем использовать целое положительное число r. Число r есть порядковый номер в списке звеньев, расположенных в порядке убывания их ранга. Число r может принимать значения от 1 до rmax , где rmax n ; n – число звеньев цепи Грюблера. Значение r 1 отвечает наиболее высокому рангу, а значение r rmax самому низкому рангу. Встречаются случаи, когда два или более звеньев цепи Теория Механизмов и Машин. 2008. № 2. Том 6. 9 Структура механизмов имеют одинаковый ранг. В этих случаях rmax n . Если же все звенья имеют разные ранги, то rmax n . Значения r рангов звеньев цепи получаются в результате выполнения некоторой сходящейся итерационной процедуры, которая будет описана в следующем разделе статьи. Рис. 4. Десятизвенная цепь 10ЦГ2 и её структурная матрица (при двух вариантах нумерации звеньев) М 10 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 Рис. 5. Десятизвенная цепь 10ЦГ2 и её идентификационный структурный код Теория Механизмов и Машин. 2008. № 2. Том 6. 11 Структура механизмов Список рангов присоединяемых звеньев (СРПЗ) содержит перечень рангов всех тех звеньев цепи, которые образуют кинематические пары с данным звеном. Номера r рангов присоединяемых звеньев располагаются в списке СРПЗ в порядке увеличения числа r, т. е. в порядке убывания ранга звеньев. Число элементов в списке СРПЗ равно числу U r пар, образуемых соответствующим звеном ранга r с другими звеньями цепи (напомним, что U r может принимать значения от 2 до k [21]). Если U r k , то список СРПЗ занимает все k элементов соответствующей строки второй подматрицы. Если же U r k , то список СРПЗ занимает только U r первых элементов этой строки; остальные элементы строки принимаются равными нулю. Информация, содержащаяся в столбцах матрицы M с номерами 1, 2, …, k 1 , то есть в первой и второй подматрицах, как правило, обеспечивает идентификацию цепей Грюблера. Но при n 10 (где n – число звеньев цепи) могут встретиться особые случаи, когда этой информации недостаточно для надёжной идентификации. Поэтому, с целью получения гарантированно правильного результата, в идентификационный структурный код цепи, то есть в матрицу M, дополнительно введён ( k 2) -й столбец, содержащий сведения о числе изменяемых замкнутых контуров, образуемых звеньями цепи. Отметим, что при n 10 в упомянутых особых случаях достаточно указать только число четырёхзвенных контуров (первый элемент ( k 2) -го столбца). Но для большей уверенности в достоверности результатов идентификации, в матрицу M введено также число пятизвенных контуров (второй элемент ( k 2) -го столбца). Остальные элементы ( k 2) -го столбца, имеющие номера от 3 до n, при n 10 принимаются равными нулю. Заметим, что при подсчёте числа изменяемых замкнутых контуров учитываются все контуры, а не только взаимно независимые. Процедура идентификации Алгоритм формирования идентификационного структурного кода (ИСК) для цепей Грюблера будем называть процедурой идентификации. На входе эта процедура использует структурную матрицу S рассматриваемой цепи. На выходе, после нескольких итераций, мы получаем ИСК в виде матрицы M. Описание процедуры идентификации будем иллюстрировать двумя примерами. В первом примере обратимся к цепи 10ЦГ2, рассмотренной в предыдущем разделе статьи (см. рисунки 4, 5 и таблицу 7). Второй пример относится к десятизвенной цепи 10ЦГ16, принадлежащей к разряду R = (6 3 0 1) (см. рис. 6, 7 и табл. 8). На начальной стадии процедуры идентификации производится анализ структурной матрицы S, в результате которого определяется число ui кинематических пар, образуемых каждым из звеньев 1, 2, …, n с другими звеньями (колонка 2 в табл. 7 и 8). Алгоритм формирования матрицы M включает в себя несколько шагов, на каждом из которых назначаются ранги звеньев (РЗ) и составляются списки рангов присоединяемых звеньев (СРПЗ). На первом шаге ранги звеньев назначаются по следующему правилу (см. колонку 3 в табл. 7 и 8): ранг 1 присваивается звену, имеющему наибольшее значение ui , ранг 2 – звену, имеющему второе по величине значение ui , ранг 3 – звену, имеющему третье по величине значение ui , и т. д.; всем звеньям, имеющим одинаковое значение ui , присваивается один и тот же ранг r. Затем для каждого звена составляется список СРПЗ (см. колонку 4 в табл. 7 и 8) на основании структурной матрицы S (см. рис. 4 и 6). 12 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 Таблица 7 # u РЗ СРПЗ РЗ СРПЗ РЗ СРПЗ РЗ СРПЗ 1 2 3 4 5 6 7 8 9 10 1 2 2 1, 2 3 1, 3 3 1, 3 1 2, 2, 3, 3, 3 2 2 2 1, 1 2 1, 1 2 1, 1 1 2, 2, 3, 3, 3 3 2 2 1, 1 2 1, 1 2 1, 1 2 1, 1 4 2 2 1, 2 3 1, 3 3 1, 3 2 1, 1 5 2 2 1, 2 3 1, 3 3 1, 3 3 1, 3 6 2 2 1, 2 3 1, 3 3 1, 3 3 1, 3 7 2 2 1, 2 3 1, 3 3 1, 3 3 1, 3 8 2 2 1, 2 3 1, 3 3 1, 3 3 1, 3 9 5 1 2, 2, 2, 2, 2 1 2, 2, 3, 3, 3 1 2, 2, 3, 3, 3 3 1, 3 10 5 1 2, 2, 2, 2, 2 1 2, 2, 3, 3, 3 1 2, 2, 3, 3, 3 3 1, 3 Рис. 6. Десятизвенная цепь 10ЦГ16 и её структурная матрица Таблица 8 # u РЗ СРПЗ РЗ СРПЗ РЗ СРПЗ РЗ СРПЗ РЗ СРПЗ 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 2, 3 8 3, 6 8 3, 6 9 3, 6 1 2, 3, 5, 6, 7 2 2 3 1, 3 6 1, 8 6 1, 8 6 1, 9 2 1, 4, 8 3 2 3 2, 3 8 4, 6 9 4, 6 10 4, 7 3 1, 8, 9 4 2 3 1, 3 6 1, 8 6 1, 9 7 1, 10 4 2, 5, 10 5 2 3 2, 2 7 2, 3 7 2, 3 8 2, 3 5 1, 4 6 2 3 1, 2 5 1, 4 5 1, 4 5 1, 4 6 1, 9 7 3 2 1, 3, 3 3 1, 7, 8 3 1, 7, 8 3 1, 8, 9 7 1, 10 8 3 2 2, 3, 3 4 2, 5, 8 4 2, 5, 9 4 2, 5, 10 8 2, 3 9 3 2 1, 2, 3 2 1, 4, 7 2 1, 4, 7 2 1, 4, 8 9 3, 6 10 5 1 2, 2, 3, 3, 3 1 2, 3, 5, 6, 6 1 2, 3, 5, 6, 6 1 2, 3, 5, 6, 7 10 4, 7 Теория Механизмов и Машин. 2008. № 2. Том 6. 13 Структура механизмов М Рис. 7. Идентификационный структурный код (матрица M) для цепи 10ЦГ16 Второй и все последующие шаги выполняются по однотипному алгоритму. На каждом из них, кроме последнего шага, уточняются ранги звеньев, а также корректируются списки рангов присоединяемых звеньев. При переходе от ( j 1) -го шага алгоритма к j-му шагу число звеньев с одинаковым рангом, как правило, уменьшается. Итерационный процесс завершается в одном из двух случаев: 1) ранги звеньев и списки СРПЗ на некотором шаге получились такими же, как и на предыдущем шаге алгоритма, причём, имеются звенья с одинаковым рангом; 2) ранги всех n звеньев цепи оказались разными. В первом случае rmax n (см. цепь 10ЦГ2 и первый пример), во втором случае rmax n (см. цепь 10ЦГ16 и второй пример). Изменения рангов на j-том шаге алгоритма происходят у группы звеньев, имеющих одинаковый ранг на предыдущем, ( j 1) -м шаге. Указанные изменения производятся на основании анализа списков СРПЗ, составленных на ( j 1) -м шаге. Сравнение списков СРПЗ для двух звеньев с одинаковым рангом производится поэлементно: сначала сравниваются элементы (то есть ранги присоединяемых звеньев), стоящие на первой позиции, затем – элементы, стоящие на второй позиции, и т. д. Сравнение пар элементов выполняется до тех пор, пока не обнаружится первая пара несовпадающих элементов. Более высокий ранг присваивается тому из двух звеньев, в списке СРПЗ для которого первый несовпадающий элемент соответствует присоединяемому звену с более высоким рангом (то есть с меньшим значением числа r). Таким образом, среди списков СРПЗ устанавливается определённая шкала приоритетов. Поясним методику изменения рангов звеньев на очередном шаге алгоритма, обратившись ко второму примеру, конкретно – ко второму шагу (см. табл. 8 и рис. 6). Из табл. 8 (колонка 3) видно, что на первом шаге звенья 7, 8 и 9 имеют одинаковый ранг 2, а звенья 1, 2, …, 6 – одинаковый ранг 3. Именно эти звенья рассматриваются на втором шаге алгоритма на предмет изменения их ранга. Сначала анализируем списки СРПЗ для звеньев 7, 8 и 9, имеющих ранг 2 (см. колонку 4). Применяя описанное выше правило к трём соответствующим спискам (1, 3, 3), (2, 3, 3) и (1, 2, 3), мы видим, что они располагаются по шкале приоритетов в такой последовательности: (1, 2, 3), (1, 3, 3), (2, 3, 3). Следовательно, ранг 2 звена 9 остаётся без изменения, а ранги звеньев 7 и 8 изменяются: звену 7 присваивается ранг 3, а звену 8 – ранг 4. Теперь переходим к назначению новых рангов для шести звеньев 1, 2, …, 6, имеющих одинаковый ранг 3 на первом шаге. Прежде всего, необходимо номер 3 ранга этих звеньев заменить на номер 5, поскольку номера 3 и 4 оказались уже занятыми для рангов звеньев 7 и 14 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 8. После этого нужно анализировать соответствующие СРПЗ, то есть списки (2, 3), (1, 3), (2, 3), (1, 3), (2, 2), (1, 2) для шести указанных звеньев (см. колонку 4 в табл. 8). Мы видим, что эти списки располагаются по шкале приоритетов в такой последовательности: (1, 2) – для звена 6; (1, 3) – для звеньев 2 и 4; (2, 2) – для звена 5; (2, 3) – для звеньев 1 и 3. Следовательно, звену 6 присваивается ранг 5, звеньям 2 и 4 присваивается ранг 6, звену 5 – ранг 7, а звеньям 1 и 3 – ранг 8 (см. колонку 5 в табл. 8). Второй шаг алгоритма завершается соответствующей корректировкой списков СРПЗ (см. колонку 6). При корректировке списков уточняются номера рангов звеньев, присоединяемых к звеньям 1, 2, …, n, так как эти номера были изменены (см. колонку 5) по сравнению со старыми номерами (см. колонку 3). Отметим, что итерационный процесс быстро сходится, так что число шагов оказывается небольшим. Так, в первом примере потребовалось всего три шага, во втором примере – четыре шага (см. табл. 7 и 8 – слева от двойной вертикальной черты). На завершающей стадии алгоритма производится перестановка строк в двух последних столбцах таблицы результатов, расположенных слева от двойной вертикальной черты: строки сортируются в порядке убывания рангов звеньев, то есть в порядке возрастания значений r. В итоге формируются две последние колонки в табл. 7 и 8, расположенные справа от двойной вертикальной черты. По мере выполнения процедуры идентификации постепенно, от шага к шагу, утрачивается зависимость получаемой информации (то есть РЗ и СРПЗ) от структурной матрицы S рассматриваемой цепи, а значит, и от порядка нумерации звеньев цепи. Так, на первом шаге (колонки 3 и 4) мы непосредственно используем структурную матрицу при назначении рангов звеньев и составлении списков СРПЗ. На каждом из последующих шагов используются главным образом данные, относящиеся к предыдущему шагу. На последнем шаге алгоритма (см. колонки 9 и 10 в табл. 8) полученные числовые результаты в каждой строке не зависят от выбора номеров звеньев цепи, правда, сами строки расположены в соответствии с первоначально выбранным порядком нумерации звеньев. Что касается итоговых результатов идентификации (см. две последние колонки в табл. 7 и 8, расположенные справа от двойной вертикальной черты), то они никак не зависят от порядка нумерации звеньев данной цепи. При любом порядке нумерации звеньев мы получим одни и те же результаты. Итоговые результаты процедуры идентификации (значения РЗ и СРПЗ) используются для присвоения соответствующих значений элементам матрицы M, расположенным в столбцах с номерами 1, 2, …, k 1 . Как отмечалось выше, в последний, ( k 2) -й, столбец матрицы M вносятся данные о числе изменяемых замкнутых контуров, образуемых звеньями цепи (четырёхзвенных, пятизвенных и т. д.). Число этих контуров определяется только структурным строением цепи и не зависит от порядка нумерации её звеньев. Процедура идентификации кинематической цепи, включая определение числа четырёхзвенных, пятизвенных, … контуров, выполняется программой в автоматическом режиме, без участия пользователя. Идентификации подвергаются последовательно все структурные матрицы цепей, найденные при выполнении алгоритма перечисления. Структурный синтез всех неизоморфных цепей Грюблера сводится, таким образом, к поиску всех неповторяющихся ИСК этих цепей. Описанная выше процедура идентификации кинематических цепей имеет некоторое сходство с аналогичной процедурой, предложенной автором для идентификации рычажных механизмов [23], но между ними имеются и существенные отличия. Электронные каталоги цепей Грюблера В практическом плане важным результатом структурного синтеза является создание каталогов цепей Грюблера с заданным числом звеньев. С точки зрения хранения и использования информации наиболее удобным вариантом таких каталогов являются Теория Механизмов и Машин. 2008. № 2. Том 6. 15 Структура механизмов электронные каталоги. Но при сравнительно малом числе звеньев такие каталоги могут быть и на бумажных носителях. В электронном каталоге содержится информация о всех неизоморфных цепях Грюблера с заданным числом звеньев. Эта информация хранится в каталоге в символьной форме, а именно – в виде идентификационных структурных кодов (ИСК) цепей Грюблера. Напомним, что предложенный в данной статье ИСК имеет вид прямоугольной матрицы n 2 , где n – число звеньев цепи. Этот ИСК полноценно отображает 2 размера n структурное строение цепи и не зависит от порядка нумерации её звеньев; между самой цепью и её ИСК имеет место взаимно однозначное соответствие. Информация, хранящаяся в электронном каталоге, определённым образом систематизирована по различным классификационным признакам, например, по разрядам [21], на которые делятся n-звенные цепи Грюблера. Вывод информации из электронного каталога возможен на экран компьютера или на печать. При этом цепи Грюблера могут быть представлены в двух формах – символьной (в виде ИСК) или графической. В последнем случае необходимо предусмотреть в программе блок визуализации, в котором символьная форма преобразуется в привычную для человека графическую форму, то есть в структурную схему кинематической цепи с общепринятым изображением звеньев и шарниров. Структурный синтез десятизвенных цепей Грюблера Применим предлагаемую методику структурного синтеза n-звенных цепей Грюблера и разработанную компьютерную программу к синтезу десятизвенных цепей. Исходными данными для структурного синтеза десятизвенных цепей Грюблера являются: n 10 , p 13 , k 5 . На первом этапе синтеза определяются все возможные разряды R десятизвенных цепей. Всего существует семь разрядов [21]: R (n2 , n3 , ..., nk ) = (8 0 0 2), (7 0 3 0 ), (7 1 1 1), (6 3 0 1), (6 2 2 0), (5 4 1 0), (4 6 0 0). Далее производится синтез цепей отдельно для каждого из семи разрядов (второй и третий этапы синтеза). На втором этапе определяются структурные матрицы S для всех цепей Грюблера данного разряда на основе алгоритма перечисления, описанного выше. В общем массиве получаемых структурных матриц каждой из цепей Грюблера соответствует большое число матриц S, так как алгоритмом перечисления генерируются структурные матрицы для всех возможных вариантов нумерации звеньев десятизвенной цепи при помощи чисел от 1 до 10 (см. раздел "Проблема изоморфизма"). На третьем этапе синтеза каждая из найденных структурных матриц "пропускается" в программе через процедуру идентификации, описанную выше в данной статье. В результате этого определяется идентификационный структурный код (ИСК) для кинематической цепи, соответствующей исследуемой структурной матрице. ИСК имеет вид прямоугольной матрицы размера 10 7 . Все полученные ИСК сравниваются друг с другом, и среди них отбираются только неповторяющиеся ИСК. Тем самым определяются все неизоморфные цепи Грюблера данного разряда. В табл. 9 приведены некоторые численные данные, характеризующие процесс вычислений и полученные результаты структурного синтеза десятизвенных цепей Грюблера. 16 http://tmm.spbstu.ru Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 2 Таблица 9 R N1 N2 N3 N4 N5 N6 N7 (8 0 0 2) 15 149 817 2265 3951 5190 5460 (7 0 3 0 ) 21 288 2241 10233 33453 73350 112140 (7 1 1 1) 21 288 2241 10233 33453 57180 78540 (6 3 0 1) 26 436 4272 27360 133056 269520 222060 (6 2 2 0) 26 436 4272 27360 116175 350625 332160 (5 4 1 0) 30 575 6700 55200 305220 1071540 1340550 (4 6 0 0) 33 693 7510 98460 654990 1818774 2396556 172 2865 28053 231111 1280298 3646179 4487466 Всего Таблица 9 (продолжение) R N8 N10 NS Nц Vср 10 ! Vср rmax (8 0 0 2) 5040 5040 5040 2 2520 1440 2, 3 (7 0 3 0) 46620 34020 34020 3 11340 320 5, 6, 9 (7 1 1 1) 37800 18900 16380 8 2048 1772 7, 8, 9 (6 3 0 1) 84960 43560 34560 15 2304 1575 5, …, 10 (6 2 2 0) 167520 95140 85500 57 1500 2419 3, …, 10 (5 4 1 0) 849570 229800 209520 95 2206 1645 6, …, 10 (4 6 0 0) 1613250 530820 504360 50 10087 360 3, …, 10 2804760 957280 889380 230 3867 938 Всего В табл. 9 приняты следующие обозначения: N i число прямоугольных матриц размера i 10 , полученных в результате формирования первых i строк структурной матрицы S на промежуточных стадиях реализации алгоритма перечисления ( i 1, 2, ..., 8 ; 10); N S число структурных матриц S размера 1010 , полученных по завершении алгоритма перечисления для цепей данного разряда; N ц число неизоморфных цепей Грюблера данного разряда, полученных в результате реализации процедуры идентификации; Vср N S N ц отношение числа структурных матриц S к числу неизоморфных цепей Грюблера данного разряда; 10 ! Vср отношение 10! = 3628800 (число вариантов выбора номеров звеньев для одной десятизвенной цепи) к Vср ; rmax наибольшее значение числа r для цепей Грюблера, принадлежащих данному разряду (r номер ранга звена рассматриваемой цепи). Теория Механизмов и Машин. 2008. № 2. Том 6. 17 Структура механизмов В строке "Всего" табл. 9 фигурируют следующие данные: N i для i 1, 2, ..., 8 и 10; N S ; N ц ; V ср N S N ц = 3867; 10! V ср = 938. Число rmax характеризует "степень" структурной симметрии соответствующей кинематической цепи. При малых значениях rmax цепи обладают высокой степенью структурной симметрии; при rmax 10 структурная симметрия отсутствует. Степень структурной симметрии можно оценивать при помощи коэффициента 2 , равного отношению V0 к V, где: V0 см. раздел "Вычислительные аспекты" и табл. 6; V число различных структурных матриц, которые можно составить для всех возможных вариантов нумерации звеньев этой цепи. При rmax 10 имеем: V V0 и 2 1 . Из табл. 9 видно, что общее число найденных неизоморфных десятизвенных цепей Грюблера равно 230, что совпадает с известным результатом. При формировании первых i строк структурной матрицы S на промежуточных стадиях реализации алгоритма перечисления ( i 1, 2, ..., 8 ; 10) учитываются все условия задачи синтеза, кроме одного условия – цепи Грюблера не должны содержать в своей структуре подцепь, представляющую собой пятизвенную ферму Баранова. Условие, касающееся пятизвенной фермы Баранова, учитывается на завершающей стадии алгоритма перечисления, когда формируется итоговый массив структурных матриц S для цепей данного разряда (число таких матриц в массиве равно N S ). В электронном каталоге десятизвенных цепей для каждой из них приводится порядковый номер, или индекс (от 10ЦГ1 до 10ЦГ230), идентификационный структурный код M и структурная матрица S, составленная для одного из возможных вариантов нумерации звеньев цепи. Десятизвенные цепи расположены в каталоге в определённой последовательности (см. табл. 10). Таблица 10 Разряды (8 0 0 2) (7 0 3 0) (7 1 1 1) Индексы цепей 10ЦГ1 10ЦГ2 10ЦГ3 10ЦГ5 10ЦГ6 10ЦГ13 (6 3 0 1) (6 2 2 0) (5 4 1 0) (4 6 0 0) 10ЦГ14 10ЦГ29 10ЦГ86 10ЦГ181 10ЦГ28 10ЦГ85 10ЦГ180 10ЦГ230 СПИСОК ЛИТЕРАТУРЫ 21. Пейсах Э.Е. Структурный синтез замкнутых кинематических цепей (цепей Грюблера). Часть 1. // Теория механизмов и машин. 2008. № 1(11). Том 6. C. 4-14. 22. Пейсах Э.Е. Классификация плоских групп Ассура. // Теория механизмов и машин. 2007. № 1(9). Том 5. C. 5-17. 23. Пейсах Э.Е. Метод идентификации структурных схем рычажных механизмов. // Проблемы машиностроения и надежности машин. 1995. № 5. С. 18-23. Поступила в редакцию 28.12.2007 После доработки 28.03.2008 18 http://tmm.spbstu.ru