арифметическое устройство

Классы МПК:G06F7/544 для нахождения значений функций путем вычислений
Автор(ы):, ,
Патентообладатель(и):Новороссийская государственная морская академия (RU)
Приоритеты:
подача заявки:
2004-04-21
публикация патента:

Изобретение относится к цифровой вычислительной технике и может быть использовано в качестве периферийного процессора для выполнения операций вращения вектора в трехмерном пространстве. Техническим результатом является повышение точности и увеличение шага вращения, а также возможность решения задач в реальном масштабе времени, что достигается за счет вращения вектора методом численного интегрирования по Стилтьесу по формуле трапеций. Указанный результат достигается за счет того, что устройство содержит двенадцать регистров, три элемента задержки, три трехвходовых сумматора-вычитателя, девять сумматоров-вычитателей, шесть блоков умножения, шесть дешифраторов, блок управления, интерфейсную шину. 1 ил. арифметическое устройство, патент № 2268482

арифметическое устройство, патент № 2268482

Формула изобретения

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

Описание изобретения к патенту

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

В известных устройтвах (например, авт. св. СССР №1460720, кл. G 06 F 7/544, 1989 г., бюл.№7) поворот вектора (кватернионное преобразование) осуществляется вокруг равнонаклоненной оси вращения, что ограничивает разновидность ортогональных преобразований.

Наиболее близким по технической сущности (прототипом) является устройство преобразования координат (авт. св. СССР №1472902, кл. G 06 F 7/544, 1989 г., бюл.№14), содержащее с первого по шестой регистры, с первого по шестой сумматоры-вычитатели, с первого по шестой блоки умножения и блок управления, причем первые выходы первого, второго и третьего регистров соединены с входами первых операндов соответственно первого, второго и третьего сумматоров-вычитателей, выходы которых соединены с входами первых операндов соответственно четвертого, пятого и шестого сумматоров-вычитателей, выходы которых соединены с первыми входами соответственно первого, второго и третьего регистров, первые выходы четвертого, пятого и шестого регистров соединены соответственно с объединенными попарно первыми входами первого и второго, третьего и четвертого, пятого и шестого блоков умножения, выходы которых подключены к входам вторых операндов одноименных сумматоров-вычитателей, вторые входы (выходы) первого, второго и третьего регистров соединены двухнаправленными связями с интерфейсной шиной, к которым подключены также входы четвертого, пятого и шестого регистров, а объединенные попарно входы оператора направления вращения первого и второго, третьего и четвертого, пятого и шестого сумматоров-вычитателей соединены соответственно с первым, вторым и третьим выходами блока управления.

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

Технический результат предлагаемого решения заключается в повышении точности и увеличении шага вращения вектора.

В предлагаемом устройстве приращение арифметическое устройство, патент № 2268482 вектора арифметическое устройство, патент № 2268482 , вращаемого с угловой скоростью арифметическое устройство, патент № 2268482 на интервале времени арифметическое устройство, патент № 2268482t, описывается интегралом Стилтьеса

арифметическое устройство, патент № 2268482

который представляется в виде

арифметическое устройство, патент № 2268482

где арифметическое устройство, патент № 2268482

В проекциях на оси координат трехмерного пространства интеграл (2) преобразуется к выражениям

арифметическое устройство, патент № 2268482

Каждый из интегралов системы (3) вычисляется по формуле трапеций

арифметическое устройство, патент № 2268482

арифметическое устройство, патент № 2268482

Неизвестные координаты rk(i+1), входящие в правые части приращений (4) заменяются их экстраполированными значениями

арифметическое устройство, патент № 2268482

и окончательное выражение для приращений (4), то есть для каждого из интегралов (3) имеет вид

арифметическое устройство, патент № 2268482

Точкам i-1, i, i+1,... соответствует значение времени ti-1, ti, ti+1,..., причем шаг арифметическое устройство, патент № 2268482t=const.

Суммируя попарно приращения интегралов (3), каждый из которых арифметическое устройство, патент № 2268482r р=арифметическое устройство, патент № 2268482r(k,l) вычисляется по алгоритму (6) с соответствующими индексами k и l, и присваивая интегралам оператор направления вращения арифметическое устройство, патент № 2268482 l, получим окончательные выражения для приращения координат

арифметическое устройство, патент № 2268482

Соответственно, текущие значения координат вектора арифметическое устройство, патент № 2268482 равны

арифметическое устройство, патент № 2268482

При соответствующем задании значений арифметическое устройство, патент № 2268482 1={+1,0-1} выполняются все возможные ортогональные преобразования вектора в трехмерном пространстве, включая обратные преобразования прямоугольных координат в сферические.

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

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

- 1-6, 25, 26, 27, 31, 32, 33 - регистры;

- 7, 8, 9 - элементы задержки;

- 10, 11, 12 - трехвходовые сумматоры-вычитатели;

- 13-18, 28, 29, 30 - сумматоры-вычитатели;

- 19-24 - блоки умножения;

- 34-39 - дешифраторы;

- 40 - блок управления;

- 41-46 - внутренние связи выходов дешифраторов с одноименными входами блока управления;

- 47-52 - внутренние связи выходов блока управления с одноименными входами сумматоров-вычитателей;

- 53 - интерфейсная шина.

При преобразованиях координат по алгоритмам (7), (8) с учетом (6) устройство работает следующим образом. Перед началом вычислений (i=0) в регистры 1, 3, 6 и 25, 26, 27 записываются координаты хо, уо, zo и приращения углов арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482 x, соответственно. На последующих итерациях при вычислениях в реальном времени перед каждым шагом (i+1) в регистры 25, 26, 27 заносятся текущие приращения углов арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z(i+1), арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 y(i+1), арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 х(i+1). При преобразованиях в ускоренном масштабе времени (например, проигрывании маневра судна) и решении задач, не связанных со шкалой времени, приращения углов целесообразно задавать постоянными на всех итерациях до полной отработки углов арифметическое устройство, патент № 2268482 х, арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482 z.

Операторы направления вращения арифметическое устройство, патент № 2268482 x (49), арифметическое устройство, патент № 2268482 у (48) и арифметическое устройство, патент № 2268482 z (47), задающие вид операции сумматоров-вычитателей 13-18, в данном случае принимаются равными "1", если вращение по соответствующему углу арифметическое устройство, патент № 2268482 х, арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482 z выполняется, и "0" в противном случае. Направление вращения по соответствующему углу арифметическое устройство, патент № 2268482 x, арифметическое устройство, патент № 2268482 y, арифметическое устройство, патент № 2268482 z определяется знаками приращений арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 x.

В текущей итерации координата xi из регистра 1 через элемент задержки 7 (2хi) поступает на первый суммирующий вход и непосредственно на второй суммирующий вход сумматора-вычитателя 10, а на его вычитающий вход из регистра 2 поступает координата xi-1. В результате получается величина (3хi-xi-1). Аналогичным образом на сумматорах-вычитателях 11 и 12 вычисляются величины (3у i-yi-1) и (3zi-zi-1). При параллельной обработке информации элементы задержки 7, 8, 9 исключаются и умножение на "2" операндов хi , yi, zi осуществляется соответствующей перекоммутацией разрядов между регистрами 1, 3, 6 и сумматорами-вычитателями 10, 11, 12 соответственно. На блоках умножения 19 и 20 вычисляются удвоенные значения алгоритма (6)

арифметическое устройство, патент № 2268482

арифметическое устройство, патент № 2268482

разность которых с операторами арифметическое устройство, патент № 2268482 z и арифметическое устройство, патент № 2268482 у дает удвоенное значение приращения арифметическое устройство, патент № 2268482x i+1 (первой строки алгоритма (7)). Умножение выражений (9) и (10) на коэффициент 1/2 осуществляется соответствующей перекоммутацией разрядов произведений между блоками умножения 19, 20 и сумматорами-вычитателями 13, 14 соответственно. На сумматоре-вычитателе 13 вычисляется величина

арифметическое устройство, патент № 2268482 ,

а на сумматоре-вычитателе 14 - координата

арифметическое устройство, патент № 2268482 ,

записываемая в регистр 1 с одновременной перезаписью из регистра 1 в регистр 2 координаты хi.

Аналогичным образом в канале координаты у (регистры 3, 4, элемент задержки 8, сумматоры-вычитатели 11, 15, 16 и блоки умножения 21, 22) вычисляются значения yi+1, а в канале координаты z (регистры 5, 6, элемент задержки 9, сумматоры-вычитатели 12, 17, 18 и блоки умножения 23, 24) вычисляется значение zi+1 .

Операторы вращения арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 z (50), арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 y (51), арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 x (52) при вращении вектора по текущим приращениям углов арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 x равны нулю. Сумматоры-вычитатели 28, 29, 30 и дешифраторы 34-39 не работают.

При повороте вектора на заданные углы арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482 x их значения вносятся в регистры 31, 32, 33 соответственно. Для одновременного приведения вектора в конечную точку по всем трем углам шаги вращения задаются следующим образом. Максимальный шаг арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 l определяется из погрешности, обусловленной остаточным членом формулы трапеций, и с этим шагом отрабатывается максимальный угол арифметическое устройство, патент № 2268482 l. Шаги оставшихся двух углов будут равны

арифметическое устройство, патент № 2268482 (j-1).

Шаги арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 l, l=[z,y,x} имеют знаки углов арифметическое устройство, патент № 2268482 l и заносятся соответственно в регистры 25, 26, 27. Операторы арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 l=1, если арифметическое устройство, патент № 2268482 lарифметическое устройство, патент № 22684820 и на сумматорах-вычитателях вычисляются текущие значения отрабатываемых углов

арифметическое устройство, патент № 2268482

перезаписываемые в регистры 31, 32, 33. Вычисление текущих координат xi+1, уi+1, zi+1 выполняются по вышеприведенному описанию вращения вектора по текущим приращениям арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 l.

Дешифраторы 37, 38, 39 фиксируют нулевые значения соответствующих углов арифметическое устройство, патент № 2268482 l. При этом арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 l=0 и вращение завершается.

Приведенное описание вращения вектора остается неизменным при любых его преобразованиях. Частные случаи вращения задаются операторами арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 l. При арифметическое устройство, патент № 2268482 x=арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 x=арифметическое устройство, патент № 2268482 y=арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 y=арифметическое устройство, патент № 2268482 z=арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482 z=1, как описано выше, имеет место кватернионное преобразование. При задании двух любых операторов единицами, а третьего - нулю ось вращения кватернионного преобразования будет лежать в плоскости единичных операторов. При последующем задании нулевого оператора единичным, а единичных - нулями третий поворот выполняется в плоскости нулевых операторов вокруг оси единичного оператора. При последовательном задании одного из операторов единицей, а остальных - нулями будут выполнятся последовательные (плоские) повороты вокруг осей единичных операторов.

При обратных преобразованиях вычисляются модуль вектора и его угловое положение или его проекция на любую из плоскостей трехмерного пространства и угловое положение этой проекции в данной плоскости. Текущие координаты х, у, z вычисляются по алгоритмам (7) и (8) с учетом (9) и (10), а углы - по алгоритму (11), как описано выше. Отличие состоит лишь в задании операторов направления вращения арифметическое устройство, патент № 2268482 l.

При задании арифметическое устройство, патент № 2268482 х=арифметическое устройство, патент № 2268482 у=0, а

арифметическое устройство, патент № 2268482

вектор вращается вокруг оси z (по углу арифметическое устройство, патент № 2268482 z). При исходных координатах х0, у 0, z0 и достижении условия арифметическое устройство, патент № 2268482 z=0 получим проекцию вектора на плоскость хоу

арифметическое устройство, патент № 2268482

Одновременно задавая арифметическое устройство, патент № 2268482 z0=0 и шаг арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z при арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482z =0 на сумматоре-вычитателе 28 (в регистре 31) получим угол между проекцией (13) и осью у: арифметическое устройство, патент № 2268482 z=(i+1)арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482z арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z, равный

арифметическое устройство, патент № 2268482

После выполнения описанного поворота проекция (13) совмещается с осью у, координата х=0, а z=z0. Задавая по аналогии с (12) операторы арифметическое устройство, патент № 2268482 х, арифметическое устройство, патент № 2268482 у и арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482х , арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482у , получим соответственно проекции вектора на плоскости yoz и хоу вида (13) и углы арифметическое устройство, патент № 2268482 x, арифметическое устройство, патент № 2268482 у вида (14).

После любого из описанных плоских вращений можно выполнить поворот в плоскости, образованной осью предыдущего вращения, и осью, с которой совмещена проекция предыдущего вращения. Например, задаваясь после получения преобразования (13), (14) операторами арифметическое устройство, патент № 2268482 , а арифметическое устройство, патент № 2268482

получим вращение вокруг оси х (по углу арифметическое устройство, патент № 2268482 х). При достижении условия арифметическое устройство, патент № 2268482 х=0 получим проекцию исходного вектора арифметическое устройство, патент № 2268482 на ось z

арифметическое устройство, патент № 2268482

Одновременно, задавая арифметическое устройство, патент № 2268482 x0=0 и шаг арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 x,получим угол между вектором арифметическое устройство, патент № 2268482 и осью z: арифметическое устройство, патент № 2268482 x=(i+1)арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482x арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 x, равный

арифметическое устройство, патент № 2268482

Окончание вращения по соответствующему углу (арифметическое устройство, патент № 2268482 x=0, или арифметическое устройство, патент № 2268482 у=0, или арифметическое устройство, патент № 2268482 z=0) фиксируется соответствующими дешифраторами 34, 35, 36. Координаты х, у, z фиксируются в регистрах 1, 3, 5, а углы арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482 y, арифметическое устройство, патент № 2268482 x - в регистрах 31, 32, 33 соответственно.

Логика работы блока управления 40 (формирования операторов арифметическое устройство, патент № 2268482 l, арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482l ) такова:

- при отработке приращений арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 у, арифметическое устройство, патент № 2268482арифметическое устройство, патент № 2268482 x

арифметическое устройство, патент № 2268482

арифметическое устройство, патент № 2268482 арифметическое устройство, патент № 2268482l =0;

- при отработке углов арифметическое устройство, патент № 2268482 z, арифметическое устройство, патент № 2268482 y, арифметическое устройство, патент № 2268482 x

арифметическое устройство, патент № 2268482

- при обратных преобразованиях

арифметическое устройство, патент № 2268482

Вид преобразования (код операции) заносится в блок управления 40 с интерфейсной шины 53.

Класс G06F7/544 для нахождения значений функций путем вычислений

способ создания представления результата вычисления, линейно зависимого от квадрата значения -  патент 2375743 (10.12.2009)
арифметические операции в системе обработки данных -  патент 2225638 (10.03.2004)
устройство для вычисления собственных значений матриц -  патент 2168760 (10.06.2001)
времяимпульсный квадратичный преобразователь -  патент 2149449 (20.05.2000)
кодирующий времяимпульсный преобразователь -  патент 2141721 (20.11.1999)
устройство для вычисления функции близости текущих и эталонных признаков объектов с адаптацией к условиям обстановки -  патент 2112271 (27.05.1998)
устройство для вычисления модуля m-мерного вектора -  патент 2080650 (27.05.1997)
устройство для определения модуля трехмерного вектора -  патент 2040039 (20.07.1995)
устройство для вычисления модуля m-мерного вектора -  патент 2029356 (20.02.1995)
устройство для приведения функций к мультипликативному алгоритму вычислений -  патент 2028659 (09.02.1995)
Наверх