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

Синтез микропроцессорных алгоритмов вычислений разложений трансцендентных функций в степенные ряды Текст научной статьи по специальности «Математика»

CC BY
88
41
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Синтез микропроцессорных алгоритмов вычислений разложений трансцендентных функций в степенные ряды»

УДК 681.3:519.6

О.Н.Пьявченко

СИНТЕЗ МИКРОПРОЦЕССОРНЫХ АЛГОРИТМОВ ВЫЧИСЛЕНИЙ РАЗЛОЖЕНИЙ ТРАНСЦЕНДЕНТНЫХ ФУНКЦИЙ В СТЕПЕННЫЕ РЯДЫ

В микропроцессорных системах реального времени (МПС РВ) распространены алгебраические и трансцендентные преобразования

У = Б[Х(1)] (1)

считываемых с датчиков физических величин Х(1)

На практике вычисления трансцендентных функций часто осуществляются в результате расчетов их разложений в ряды [1]. При этом обобщенная запись микропроцессорных алгоритмов представляется в виде

^бм = ^м[Хм1] ( 1 = О,1,2,3,---), (2)

где ?§м- ряд степени Б, использованный для аппроксимации функции Б, индекс М отражает масштабирование переменных, а черточки показывают, что значение масштабированных переменных представлены целыми числами и, следовательно, используется целочисленная арифметика.

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

£Р% + £Бц + £Бр. (3)

Как было отмечено выше,

£Бх ^ £Б . (4)

Это условие выполняется, если

£бц + £бр ^ £Бцв = £б - £Fv. (5)

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

После выбора датчика переменной Х(1) оценивается предельно допустимая трансформированная погрешность £^ [3]. Затем выбирается ряд (х) для соответствующей трансцендентной функции. При этом значение степени ряда Б оп-

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

£Бц < £цр. (6)

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

Если ограничение на инструментальную погрешность

£бр < £б^р - £бц (7)

не выполняется, то разрядность АЦП увеличивается.

Затем для перехода к целочисленным данным производится масштабирование ряда fs(x) и строятся микропроцессорные алгоритмы вычисления Г§м1.

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

Б(Х) = еХ (8)

с предельно допустимой погрешностью £Б = 10 при изменении переменной Х в диапазоне

Х Е [2-МАЦП ,1]. (9)

Допустим, что выбран датчик с погрешностью £д = 0,2 -10-3. Тогда предельно допустимая трансформированная погрешность

£FV = е • £д = 2,12 • 0,2 -10-3 = 0,544 -10-3 , а предельно допустимая суммарная погрешность

£бцР = £б — £FV = 0,456 •Ю 3.

Для вычислений функции (8) воспользуется разложением в ряд V 'У'2 V3 V 4 "у-5 V6 'У'7 ^8

Х Х Х Х Х Х Х Х

f(X) = 1 + — +-----+ — +----+-----+-----+----+ — + ... . (10)

1! 2! 3! 4! 5! 6! 7! 8!

Исходя из условия (6) выбираем количество членов ряда (10), равным шести (Б=6). При этом предельно допустимая погрешность метода полиномиальной аппроксимации, равная величине отброшенных членов ряда, составит

£бц = 0,2 -10 3.

В этом случае из (7) следует, что предельно допустимая инструментальная погрешность вычислений значений ряда должна удовлетворять условию

£бр < 0,456 -10-3 — 0,2 -10-3 = 0,256 -10-3. (11)

Для оценки погрешности, вносимой в вычисления при представлении значений Х { КАцП-разрядами, воспользуемся дифференциалом шести членов ряда

(10)

1 2 1 3 Х4 Х5

ёЦХ) = ёХ + ХёХ + -Х2ёХ + -Х3ёХ +----------ёХ +-----ёХ .

2 6 24 120

Полагая Х=1 и ёХ = АХ = £Хр, найдем

% р =(2+1+1+24 + !20)£ ХР *2,72£ хР ’

а с учетом значения еХр = 2 N АЦП (9) получим

- N

&рр = 2,72 • 2 м АЦП . (12)

В результате подстановки (12) в (11), определим количество разрядов

Мацп > 14 (13)

и запишем ряд (10) в виде

X у2 у3 х 4 — 5 — 6

ДХ,) = 1 + —1- + —1- + —1- + —1- + —1- + —1- 1 = 1,2,3,..., (14)

1 1! 2! 3! 4! 5! 6!

где черточка показывает, что значение переменной Х1 представляются М\щ> 14-разрядными правильными двоичными дробями.

В большинстве случаев микропроцессоры работают с целыми числами. Поэтому для синтеза реализуемых на них алгоритмов следует заметить в ряде (14) дробные числа на целые.

При переходе к целочисленной арифметике рекомендуется придерживаться следующих действий:

1) выбирать масштабный коэффициент МХ поступающей с датчика переменной Х;

2) заменить переменную Х масштабированной переменной ХМ;

3) для сведения к минимуму количества операций деления привести слагаемые к общему знаменателю;

4) в результате умножения и деления на коэффициент 2с (с > 1,2,3...) заменить деление на общий знаменатель умножением на целое число и сдвигом на соответствующее количество двоичных разрядов;

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

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

- N

Масштабный коэффициент выбирается равным 2 АЦП ,

Мх = 2 -М АЦП (15)

и целочисленные значения переменной ХМ изменяются в диапазоне

Хм € [1, 2мАЦП ]. (16)

При введении масштабного коэффициента выражение (14) преобразуется к

виду

Х ^\г2 х"3 х"4 :уг5 ^6

!М(ХМ) = МХ + —М + -^ + -^1- + -^1- + ^М- + ^- . (17)

1! 2!Мх 3!МХ 4!МХ 5!МХ 6!МХ

После приведения (17) к общему знаменателю и преобразований получим

рекуррентную формулу

^М(Х М1 ) =

6МХ )хМ1 + 30МХ ))- + 120М

Хм1 + 360М?

X уМх Ху

V

М1 + 720М?

МХ

Х

X ^

—М^ + 720МХ

Мх у 720МХ

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

С учетом значений коэффициентов в формуле (18) микропроцессорный алгоритм имеет вид

Иб = Хмі; Ик = (ик+1 + Ок^к, к = 5,0; ^ (Хмі) = ио, (19)

где

с5 = бМХ, с4 = 30МХ, с3 = 120МХ, с2 = ЗбОМХ, с1 = 720МХ, с0 = 720МХ;

§5 = ХМі , §4 = ЙЗ = ё2 = 81 =

Й0

1

720М,

Вычисления по схеме (19) вплоть до значения и сводятся к выполнению операции умножения, сложения и сдвига. Операция сдвига данных вправо на КАцП разрядов замещает все операции деления на Мх = 2мАЦП , что имеет важное значение, когда микропроцессоры не содержат в составе команд операцию деления и для ее программной реализации требуются значительные затраты времени.

Расчет значения и0 включает деление на коэффициент 720. Однако воз-

можна замена деления на умножение на целое число, Е

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

720

и на операцию

сдвига на с разрядов вправо.

Недостатком микропроцессорного алгоритма (19) является использование для представления промежуточных результатов вычислений до (2КАцП + 11) разрядов. Такое количество разрядов избыточно и мало оправдано, т.к. инструментальная погрешность содержится в (КАщ+11) младших разрядах суммы. Поэтому целесообразно сокращение количества разрядов суммы за счет части младших неточных разрядов.

Такое сокращение может быть получено, если урезать количество разрядов каждого произведения ХМик+1 (к = 4,0) на КАцП разрядов. Достигается это при представлении формулы (18) в виде

Ґм(Хмі) =

+ 720М,

и организации вычислений по алгоритму

1 2 о

2с 720 ]

_ _ _ _ _ х 1 85 _ 84 _ 83 _ 82 _ 81 _ хм , 8о

Мх

с ~с N 2с

720

иб _ Хм1, ик _ (ик+1 + ск)8к, к _ 5,0, ио _ fм(Xмi), где

С5 _ бМх, С4 _ 30Мх, С3 _ 120Мх, С2 _ 3б0Мх, С1 _ С0 _ 720Мх и (21)

\_

2с .

В алгоритме (21) в разрядную сетку длиной (КАцП + 11) укладываются после сдвига на КАцП разрядов значения всех промежуточных произведений, а также значения сумм ик.

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

1. Попов Б.А., Теслер Г.С. Вычисление функций на ЭВМ. Справочник. К.: Наукова думка. 1984. б00 с.

2. Строганов Р.П. Управляющие машины и их применение. Учеб. пособие для студентов спец. "Автоматика и телемеханика". 2-е изд., перераб. и доп. М.: Высш. шк. 1989. 304 с.: ил.

3. Пьявченко О.Н. Алгоритмические основы выполнения математических операций в микрокомпьютерах: Учебное пособие. Таганрог: Изд-во ТРТУ. 1998.-190с.

i Надоели баннеры? Вы всегда можете отключить рекламу.