5.3. Разработка ПО АРМ

Приведем несколько программных модулей низшего уровня из ПО АРМ, записанных на алгоритмическом языке, встроенном в MathCAD 2001 /12/.

Программный модуль RV(k) выполняет расчет возможных сочетаний многопарных звеньев ФЦ по заданному числу контуров k. Результаты расчета по программе RV( ) для k = 1 ¸ 3 представлены в табл. 5.2. Каждая ее строка содержит набор многопарных звеньев, из которого можно создать форму цепи с заданным числом контуров. В последнем ее столбце указано В – число многопарных звеньев такого набора.

Таблица 5.2.

Возможные сочетания многопарных звеньев ФЦ

k

2×mф

SP3

SP4

SP5

SP6

B

2

4

0

1

0

0

1

2

6

2

0

0

0

2

3

6

0

0

0

1

1

3

8

1

0

1

0

2

3

8

0

2

0

0

2

3

10

2

1

0

0

3

3

12

4

0

0

0

4

Программный модуль RV(k) представлен на рис. 5.11.

Рис. 5.11. Программный модуль RV(k).

Синтез ФЦ на основе теории графов выполняется в несколько этапов:

- сначала осуществляется преобразование входного формата D(2k,i) в выходной формат Pre(D,i) с помощью модуля Pre( ), показанного на рис. 5.12. Модуль имеет два последовательных цикла: в первом создается одномерный массив masp, где 0 £ p £ 2×m, содержащий полный перечень вершин графа, во втором masp преобразуется в матрицу из двух строк, которая далее рассматривается как исходная форма цепи, из которой путем перестановок можно создавать множество изоморфных форм цепей;

- затем осуществляется создание множества изоморфных графов с помощью модуля FS1(A), представленного на рис. 5.13. Входными параметрами является матрица А, созданная модулем Pre(D,i). Алгоритм его работы следующий:

Рис. 5.12. Программный модуль Pre(D,i)

Рис.5.13. Программный модуль FS1(A)

- сначала организуется внешний цикл 0 £ k £ n — 1, где n – число столбцов матрицы А, затем создаются два вложенных внутренних цикла по 0 £ i £ 1 и 0 £ j £ n — 1 для выборки всех элементов матрицы А.  В теле внутреннего цикла матрица А копируется в рабочую В, где осуществляются следующие перестановки:

- в элемент B0,k записывается элемент Bi,j

- в элемент Bi,j записывается элемент A0,k.

Полученное новое соединение элементов матрицы В запоминается в строке матрицы С. Таким образом создается множество графов Г. Приведен пример расчета и один фрагмент из этого множества.

Созданное множество Г будет содержать как изоморфные (структурно-одинаковые), так и неизоморфные (структурно-различные) графы. Выделим из множества Г подмножество неизоморфных графов (Н), где НÎГ. Для этой цели воспользуемся модулями FS2( ) и FS3( ).

Модуль FS2( ) создает критерий оценки каждого созданного графа Гi. Он заключается в создании списка соединений многопарных звеньев между собой, например для графа

список соединений будет иметь вид  

SH = {1-2, 1-3, 1-3, 2-3, 2-3},

то есть из записи убираются номера вершин:

Рис.5.14. Программный модуль FS2(A) (начало)

Рис.5.14. Программный модуль FS2(A) (окончание)

На рис 5.15 показан фрагмент графа Г и его критерия после обработки модулем FS2(A). Производится сортировка записей с целью отыскания дублирующих записей.

Рис. 5.15. Фрагмент графа Г (матрица с) и его критерия (матрица y)

На рис. 5.16 приведен модуль FS3(с,y). Он удаляет из матрицы с дублируемые строки и уплотняет ее:

Рис. 5.16. Программный модуль FS3().

Аналогично можно выполнить разработку других компонентов проектируемого АРМ.