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

МАТЕМАТИКА

УДК 681.3:621.01

СЧЕТЧИКИ С ВЫКЛЮЧАЕМЫМИ РАЗРЯДАМИ И ИЗМЕНЯЕМЫМ ОСНОВАНИЕМ СИСТЕМЫ СЧИСЛЕНИЯ В КОМПЬЮТЕРНЫХ ПРОЦЕДУРАХ,

РЕАЛИЗУЮЩИХ МЕТОД ПРОСТОГО ПЕРЕБОРА

А. В. Степанов

COUNTERS WITH SWITCHED-OFF CATEGORIES AND CHANGEABLE BASIS OF NUMERAL SYSTEM IN COMPUTER PROCEDURES REALIZING THE METHOD OF SIMPLE SEARCH

A. V. Stepanov

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

The paper considers some issued of program realization of counters with the changeable basis of a numeral system and switched-off categories in the computer procedures realizing the method of simple search. Their use allowed to create a method of calculatinf the structure of kinematic chains for a set number of links, based on search of integer decisions of a three equations system. One of the equations represents the developed sum of links of various complexity necessary for creation of a chain, the second - the sum of kinematic couples introduced by links in a chain, and the third equation is V. V. Dobrovolsky's formula connecting the mobility of a chain with nomenclature of kinematic couples.

Ключевые слова: счетчик, система счисления, кинематическая цепь, звено, кинематическая пара, компьютерная процедура.

Keywords: counter, basis of a numeral system, kinematic chain, link, kinematic couple, computer procedure.

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

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

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

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

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

Профессор Л. Т. Дворников для определения состава кинематических цепей предложил так называемую универсальную структурную систему [1], которая более двадцати лет не решалась с помощью компьютерных средств из-за отсутствия соответствующих методов. Это система трех уравнений, первое из которых представляет собой развернутую сумму числа кинематических пар цепи, второе -сумму звеньев различной сложности, не превы-

46

А. В. Степанов, 2014

МАТЕМАТИКА

шающей заданную, а третьим уравнением системы является формула В. В. Добровольского:

' 5

ЕРк = т + (г-1) иг_1+...+ in + ...+2n2 +Ui,

к=т1

< n=1+nT-1 +...+ni +...+n2 + n1,

5

W=(6 - m) n - E(k _ m) pk,

^ k=mf1

Сложность звена в этой системе отождествляется с числом кинематических пар, привносимых звеном в кинематическую цепь. Исходными данными для расчета состава цепи являются: подвижность -W, число общих связей, наложенных на систему -т, максимально допустимая сложность звеньев - т и общее их число n. Целочисленные решения этой системы представляют собой числа звеньев различной сложности - ni и числа кинематических пар различных классов - pk. В этой системе уравнений всего три, а количество неизвестных, чаще всего значительно больше.

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

система имеет вид:

'

Е Р5 = 3 + 2n2 + щ,

5 = 1 + n2 + n1,

1 = 15 - 2p5.

ч.

В ней всего три неизвестных: nj, n2 и р5. Решения системы находятся исключительно просто. Однако для девятизвенных пространственных кинематиче-

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

5

Е Р к = 5 + 4 n 4 + 3 n з + 2 n 2 + n 1,

к = 1

< 9 = 1 + n 4 + n 3 + n 2 + n 1,

1 = 54 _ Р1 _ 2 Р 2 _ 3 Р 3 _ 4 Р 4 _ 5 Р 5.

Классические методы целочисленного решения системы уравнений оказываются здесь неработоспособными. При небольшом количестве звеньев цепи решения системы могут быть получены вручную путем несложных математических преобразований. При увеличении количества звеньев и максимально допустимой их сложности ручные расчеты становятся уже непосильными. Для автоматизации процесса поиска целочисленных решений системы был разработан метод, алгоритм и компьютерные программы, позволяющие определять состав структурных схем любых механических систем [2]. Основой метода является поисковая процедура, осуществляющая направленное движение по узлам двух дискретных пространств (пространства звеньев и пространства кинематических пар). Первое из пространств имеет размерность, на единицу меньшую максимально допустимой сложности звеньев. Размерность второго пространства равна числу разрешенных к применению классов кинематических пар. Структура поискового алгоритма была получена на основе объектно-ориентированного подхода и представлена на рисунке 1.

Рис. 1. Структурная схема поисковой процедуры

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

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

Вестник Кемеровского государственного университета, 2014 № 3 (59) Т. 1

47

МАТЕМАТИКА

кинематических пар, а число разрядов - равным числу классов кинематических пар, разрешенных к применению.

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

ni[1]++; // добавление единицы в младший разряд счетчика,

for (int i = 1; i <= tau; i++) if (ni[i] == n) ‘

{

ni[i] = 0; i реализация переносов

ni[i+1]++;

}

В данном примере исходного кода в качестве счетчика с основанием системы счисления n + 1 используется массив ni, содержащий tau разрядов.

Реальные расчеты состава кинематических цепей с помощью компьютерных программ, подобных описанным в [3], показали, что при имеющейся структурной классификации пространство получаемых решений может быть достаточно велико. Деление механизмов на семейства оказалось грубым, особенно это касается механизмов нулевого, первого и второго семейств. Профессором Л. Т. Дворниковым было предложено разбивать семейства на подсемейства [3]. В качестве отличительного признака подсемейств было предложено принять совокупность классов кинематических пар, разрешенных к применению. Кроме того, желание обойтись без использования аппарата виртуализации, изложенного в [4], привело к необходимости

изменения системы уравнений, которая приняла следующий вид:

Т

п = X П

i=2

5 т

X Pk = (X i • П + vix) / 2

k=1 i=2

5—m

W = (6 — m)n — X (6 — m — k) pk

k=1

В этой системе:

n2 - число двухпарных звеньев, n3 - число трехпарных звеньев и т. д.; р1 - число одноподвижных пар, р2 - число двухподвижных пар и т. д.; vix - число выходов цепи.

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

Функциональность такого счетчика для генератора наборов звеньев обеспечивается следующим исходным кодом на языке C#:

int nom = 0;

ni[2]++; // добавление единицы в младший разряд счетчика for

if

{

ni[i] = 0; nom = i;

do nom++; while (mzv[nom] == 0);

ni[nom]++;

}

реализация сквозного переноса

Здесь используется дополнительная переменная nom, значение которой определяет номер ближайшего рабочего старшего разряда для организации сквозного переноса.

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

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

В этом окне пользователь вводит исходные данные: количество подвижных звеньев цепи и число

48 | Вестник Кемеровского государственного университета, 2014 № 3 (59) Т. 1

МАТЕМАТИКА

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

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

Рис. 2. Вид рабочего окна счетчика

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

Рис. 4. Вид окон программы при расчете состава пятизвенных плоских кинематических цепей с одноподвижными вращательными парами

Литература

1. Дворников Л. Т. Начала теории структуры механизмов. Новокузнецк: СибГГМА, 1994. 102 с.

2. Степанов А. В. Решение универсальной структурной системы проф. Л. Т. Дворникова // Вестник КузГТУ. 2007. № 3(61). С. 43 - 47.

3. Дворников Л. Т., Степанов А. В. К вопросу о классификации механизмов // Известия ТПУ. Математика и механика. Физика. 2009. Т. 314. № 2. С. 31 - 34.

4. Степанов А. В. Виртуализация в задачах компьютерного синтеза структур механизмов // Вестник КузГТУ. 2007. № 3(61). С. 47 - 50.

Вестник Кемеровского государственного университета, 2014 № 3 (59) Т. 1

49

МАТЕМАТИКА

Информация об авторе:

Степанов Александр Васильевич - доктор технических наук, доцент, профессор кафедры систем автоматизации управления Новокузнецкого института (филиала) КемГУ, stepal@rdtc.ru.

Alexander V. Stepanov - Doctor of Technical Science, Associate Professor, Professor at the Department of Systems of Administration Automation, Novokuznetsk Institute (branch) оf Kemerovo State University.

Статья поступила в редколлегию 15.07.2014 г.

50 | Вестник Кемеровского государственного университета, 2014 № 3 (59) Т. 1