Файл: Смолов, В. Б. Аналого-цифровые и цифро-аналоговые нелинейные вычислительные устройства.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.10.2024

Просмотров: 100

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

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

функций целесообразно выполнять путем указания первой Xj и последней

Xj граничной точки множества соседних наборов, для которых переключа­ тельная функция фу (х) = 1. Необходимо отметить, что такой способ задания

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

Описанный способ задания системы переключательных функций может быть реализован в машине следующим образом. Запишем все граничные точки функций системы в массив bn [1 : о], верхняя граница которого v

определяется при вводе данных в машину. Каждой переключательной функ­ ции отведем в этом массиве определенную область, а в первой ячейке каждой области запишем число множеств значений кода V / , на которых функция

обращается в единицу. При этом граничные точки этих множеств располо­ жим в массиве последовательно, начиная со второй ячейки области. Тогда

начало области aу с индексом у, соответствующей функции фу (х), может быть -определено путем суммирования размеров областей с индексами i < /':

/ -1

 

Oj—1 + 2

“Ь о*

;=1

 

Определение значений функций, перечисленных в массиве Ьп, для заданного набора кода х выполняется с помощью условного оператора, который проверяет условия х' < х и х < х " и присваивает функции значение, равное

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

Для описания связей между блоками модели предусмотрен массив Ik

[1 : Ы), размеры которого могут изменяться в зависимости от сложности схемы. При описании преобразователя для выхода каждого блока в этом массиве отводится один элемент, которому присваивается значение соответст­ вующей ему выходной переменной при каждом изменении входных сигналов. Принятый способ организации связи между блоками в программе модели­ рования, позволяет легко изменять связи между блоками путем изменения индексов элементов массива Ik, а также позволяет использовать модели ти­

повых блоков (например, линейных преобразователей кода в напряжение, операционных усилителей и т. п,), хранящихся в библиотеке стандартных процедур. В последнем случае за выходами типовых блоков закрепляются определенные элементы массива Ik. Заметим, что значения входных перемен­ ных также сохраняются в массиве Ik.

Описанная модель цифро-аналогового ФП позволяет проверять правиль­ ность работы подобных устройств путем вычисления значений выходных ве­ личин для различных значений входных переменных и оценивать точность

254


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

Для исследования влияния погрешностей,параметров схемы на точность ее работы в программе предусмотрены специальные массивы: массив пара­ метров р [1 : п) и массив текущих значений параметров pt [1 : я].

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

дерева для трех параметров, каждый из которых может иметь три значения приращения, приведен на рис. 11-1. Число ребер, исходящих из каждого узла дерева, определяется числом приращений соответствующего параметра, а число ярусов дерева — числом различных параметров. Если каждое ребро, входящее в узел »-го яруса, нагрузить приращением А;, а каждый узел этого яруса — значением параметра Pi + А*, то каждый путь, исходящий из на­

чального узла и заканчивающийся в одном из узлов последнего яруса, дает значение параметров с определенным сочетанием приращений. Если те­ перь обозначить число ярусов дерева р, а число ребер, исходящих из каждого узла'считать одинаковым и равным q, то число различных путей в таком де­ реве равно степени qP. Просмотр всех путей дерева приращений параметров

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

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

255


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

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

1)допускать просмотр любого заданного пути дерева приращений па­ раметров,

2)допускать просмотр всех путей, исходящих из заданного узла дерева приращений параметров,

Рис. 11-2. Связь между массивами программы моделирования

3)допускать возврат после просмотра указанных путей в исходный узел

дерева,

4)допускать использование приращений разной величины и разных

знаков,

5)допускать использование случайных приращений параметров с за­ данным законом распределения,

6)программа должна быть достаточно гибкой и работать согласно плану, задаваемому разработчиком схемы.

Рассмотрим один из возможных способов построения программы моде­ лирования, обладающей перечисленными свойствами. Работа такой про­ граммы происходит согласно плану, задаваемому управляющими массивами ol, о2, г1, г2, которые составляются разработчиком схемы и являются исход­ ными данными для работы программы. Кроме управляющих массивов, в

256


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

Основу программы моделирования' составляют два вложенных цикла, которые мы назовем внешним и внутренним. Внешний цикл программы обес­ печивает изменение одного параметра, группы параметров или нескольких групп параметров на величину ± Д,-, указанную в программе работы. Если при этом величину приращения выбрать пропорциональной целому числу шагов ДI, то изменения параметров, выполняемые циклом, соответствуют выбору определенного узла дерева приращений параметров. Работой этого цикла управляют элементы массива о1 и г\.

В массиве о1 элементы о1 [у, 1] и о1 [у, 2] определяют соответственно начало и конец группы строк массива г1, а элементы о1 [у, 3] и о1 [у, 4] за­ дают индексы начала и конца группы строк массива о2, определяющего план работы внутреннего цикла в текущем такте моделирования. Общее число так­ тов моделирования при этом определяется числом строк массива о. 1

Каждая строка массива г\ состоит из семи элементов. Первый элемент г\ [(, 1 ] определяет номер стандартной погрешности в массиве е, которая используется для формирования приращения Д*, и знак приращения в слу­ чае детерминированного значения Ду, или номер элемента массива значений дисперсий d при формировании случайных приращений. Элемент г1 [г, 2)- определяет способ формирования приращения и указывает тип закона рас­ пределения при случайном способе формирования. Элемент г\ [г, 3] исполь­ зуется как указатель необходимости восстановления значения параметра

после

выполнения текущего такта моделирования. Значения переменных

г1 [i,

4] и rl [г, 5] определяют соответственно первый и последний параметры

в группе, обрабатываемой в текущем такте.

Элементы r\ [i, 6] и г\ [/, 7] задают соответственно начало и конец

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

Внутренний цикл обеспечивает просмотр путей дерева приращений па­ раметров, исходящих из узла, заданного внешним циклом. Каждая строка массива о2, управляющего работой внутреннего цикла, состоит из двух эле­

ментов. Первый элемент о2 [/,

1 ]

определяет номер изменяемого параметра

в массиве pt, а второй элемент о2

[/,

2 ]— режим его изменения,

т. е. строку

в массиве г2.

 

 

 

 

Строки массива г2 состоят

из

четырех элементов, причем

первые три

элемента r2 [s2, 1 ], r2 [s2, 2], r2 [si, 3] определяют во внутреннем цикле те же величины, что и первые три элемента массива г1. Четвертый элемент r2 [s2, 4 ] задает количество приращений рассматриваемого параметра, т. е. число повторений внутреннего цикла.

Необходимо отметить, что различные элементы массива о2 могут указы­ вать на одни и те же строки массивов pt и г2. Возможность таких ссылок при­ водит к сокращению размеров массива г2.

Основные связи между управляющими массивами программы модели­ рования изображены на рис. 11-2. Основная часть программы моделирования, работающая с управляющими массивами, приводится ниже.

begin integer п ,

 

п \ ,

п 2 ,

 

т ,

m l ,

 

m2;

 

 

r e a d

(п , n l ,

п 2 ,

т ,

m

l ,

m2);

 

 

 

begin integer

i l ,

i ,

j ,

k ,

l ,

c l ,

c 2 ,

si, s2;

real w l ,

w 2 ;

[1 : n ] ,

 

 

[1 : m];

 

array p ,

p

t

e , d

 

[1 : ml, 1 : 2],

integer array

о 1

[1 :

n l ,

1

: 4],

o 2

,rl

[1 : n 2 ,

1

: 5],

r 2

[1

: m2,

1 : 4];

procedure

/p4;

 

 

 

 

 

 

 

procedure

l p 5 \

 

 

 

 

 

 

 

257


read (ol, o2, r\, r2);

read tape (p, e, d);

 

 

 

 

n

do pt

[i]

: =

p

 

[t 3;

 

 

 

 

for

i :

=

1

step

1 until

 

 

 

 

 

for

/ :

=

1

 

step

1

until

nl do

 

ol

[/,

2]

do

 

 

 

begin for

i

:

=

ol

[/,

1 ] step

1 until

 

 

 

 

begin cl : — rl

[r, 2];

 

 

1 until rl

 

 

 

 

5]

do

 

 

 

for

il

: =

rl

 

 

[i,

4] step

 

li,

 

 

 

 

 

begin w1

: =

 

if cl

=

1 then lp4 (i,

tl)

 

 

else

 

 

 

 

if cl

=

2

:

then lp5 (i,

tl) else e

labs (rl

1

li,

1 ])];

 

 

 

pt

 

[tl 1

 

=

p

[t'l ] X wl

X sign (rl

[/,

])+

 

 

 

pt

[tl ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

for l : — ol

 

[/,

3]

step

1 until ol

 

[/,

4]

do

 

 

 

 

2];

 

begin

si

: =

o2

[i,

 

1 ];

s2

: =

o2

 

[/,

2];

c2 : = r2 [s2,

 

 

w2 : = if

c2 =

 

1 then ip4 (s2, si) else

[s2,

1 ])];

 

 

 

if c2 =

2

then

/p5 (s2,

si)

else e

labs (r2

 

 

 

for

k : =

1 step 1 until r2 [s2, 4] do

 

 

 

 

 

 

 

begin

pt

[si ] : =

pt

[si ] +

P

Isl ] X w2 X

sign

 

 

(r2

 

[s2,

1 ]);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

comment здесь должны быть расположены про­

 

 

 

грамма создания входных сигналов и описание

 

 

 

модели;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

[s2,

3 1 = 1

 

then

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if r2

 

 

 

 

 

X w2 X

 

(r2

[s2,

 

 

pt

 

[si ] : =

pt

 

 

[si] — p [si]

sign

 

 

1 ]) -|- r2

[s2,

4]

 

2 then pM sl ] : =

p

[si ]

 

 

 

 

else if r2

[s2,

3]

=

 

 

 

end;

 

 

ol

[/,

1 ]

step 1

until

ol

I/,

2 ]

do

 

 

 

 

for

t : =

 

 

 

 

begin for il

: =

rl

 

[t,

4] step 1 until rl

[t,

5] do

 

 

 

 

if rl

 

li,

3] =

1

 

then

 

[il ]

X

 

 

 

 

(rl

[i,

1])] X

 

 

pt

[il]

: =

pt

[il ] — p

e

labs

 

 

sign

(rl

li,

1 ])

 

=

2 then

 

[il ] : =

p

[il ]

 

 

 

 

 

else

if rl

li,

3]

 

pt

 

 

 

 

end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end end

end

В программе моделирования первый оператор цикла с параметром выполняет пересылку значений параметров схемы из массива р, в массив те­ кущих параметров pt. Оператор цикла с параметром / осуществляет просмотр строк массива ol и управляет работой внешнего цикла программы. Следую­ щий за ним оператор с параметром цикла i выполняет изменения во внешнем цикле заданной группы схемы параметров.

• Оператор с параметром цикла I управляет работой внутреннего цикла программы, в котором производится последовательное изменение одного эле­ мента массива pt и последующее его восстановление. После окончания ра­ боты цикла с параметром I выполняется следующий оператор с параметром

258