Секция микропроцессорных систем
УДК 681.3:519.6
О.Н. Пьявченко СИНТЕЗ МИКРОПРОЦЕССОРНЫХ АЛГОРИТМОВ ВЫЧИСЛЕНИЙ РАЗЛОЖЕНИЙ ТРАНСЦЕНДЕНТНЫХ ФУНКЦИЙ В СТЕПЕННЫЕ РЯДЫ
В микропроцессорных системах реального времени (МПС РВ) распространены алгебраические и трансцендентные преобразования
У = Б[Х(1)] (1)
считываемых с датчиков физических величин Х(1).
На практике вычисления трансцендентных функций часто осуществляются в
[1]. -ропроцессорных алгоритмов представляется в виде
= £ш[Хм,] ( * = ол^3,..), (2)
где /ш - ряд степени 8, использованный для аппроксимации функции Б, индекс М
отражает масштабирование переменных, а черточки показывают, что значение масштабированных переменных представлены целыми числами и, следовательно, используется целочисленная арифметика.
При проектировании МПС РВ решается задача синтеза микропроцессорных , -грешностью еР и приемлемыми вычислительной сложностью и затратами памяти. В основу синтеза кладется постулат, согласно которому на точность результата преобразования (1) влияют трансформированная погрешность датчика V, методическая погрешность полиномиальной аппроксимации ц и инструментальная погрешность в, возникающая из-за ограниченной разрядности данных [2]. Предельно допустимое значение вычислительной погрешности оценивается как сумма предельно допустимых значений указанных погрешностей
£бх = + £рц + £рр. (3)
Как было отмечено выше,
£Бх ^ . (4)
Это условие выполняется, если
£рц + £рр ^ £рцр = £б - £^. (5)
Для выполнения условия (5) предлагается следующая итерационная процеду-, -.
После выбора датчика переменной Х(1) оценивается предельно допустимая трансформированная погрешность [3]. Затем выбирается ряд ^ (х) для соответ-
ствующей трансцендентной функции. При этом значение степени ряда 8 определя-
,
ограничением
£бц < £цр- (6)
Далее рассчитывается разрядность МАЦП аналого-цифрового преобразователя ( ) -
грешности, которая формируется из-за использования при вычислении ряда ^(х) данных с разрядностью МАЦП.
Если ограничение на инструментальную погрешность
ЕбР < £рцр - £бц (7)
, .
Затем для перехода к целочисленным данным производится масштабирование ряда ^(х) и строятся микропроцессорные алгоритмы вычисления fsмi .
Рассмотрим особенности изложенной процедуры синтеза микропроцессорных алгоритмов на примере вычисления функции
Б(Х) = еХ (8)
с предельно допустимой погрешностью еР = 10-3 при изменении переменной X в диапазоне
Х е[2-^,1]. (9)
Допустим, что выбран датчик с погрешностью ед = 0,2 10-3. Тогда предельно допустимая трансформированная погрешность
£ру = е • £д = 2,12 • 0,2 -10'3 = 0,544 -10'3 , а предельно допустимая суммарная погрешность
£рцр = £б - £Fv = 0,456 -10"3.
(8)
^ Х Х2 Х3 Х4 Х5 Х6 Х7 Х8
f(X) = 1 + — +----------+-------+-------+-------+------+-------+-------+...
1! 2! 3! 4! 5! 6! 7! 8!
(10)
(6) (10),
(8=6). -, ,
£бц = 0,2 -10-3.
(7) ,
погрешность вычислений значений ряда должна удовлетворять условию
£бр < 0,456 -10'3 - 0,2 -10'3 = 0,256 -10'3. (11)
Для оценки погрешности, вносимой в вычисления при представлении значений X; МАЦГГр^рядами, воспользуемся дифференциалом шести членов ряда (10)
1 2 1 3 Х4 Х5
а^Х)=аХ + ХаХ +- Х2аХ +- Х3аХ +—аХ + — аХ.
2 6 24 120
Полагая Х=1 и аХ = АХ = £хр, найдем
^ 1 1 1 1ч
£бр = (2 +--------------1-1-1-)£хр ~ 2,72£хр ,
Б ^ 2 6 24 120^ —р Хр
а с учетом значения £хр = 2 А1Щ (9) получим
£бр = 2,72 • 2 "^п . (12)
В результате подстановки (12) в (11), определим количество разрядов
^ > 14 (13)
(10)
V V 2 у3 V 4 '\г5 лт~6
f(Xi) = 1 + —1 + —- + —^ + + —^ + —- i = 1,2,3,., (14)
1! 2! 3! 4! 5! 6!
где черточка показывает, что значение переменной ^ представляются МАЦГ1> 14-
разрядными правильными двоичными дробями.
В большинстве случаев микропроцессоры работают с целыми числами. По-
(14)
дробные числа на целые.
При переходе к целочисленной арифметике рекомендуется придерживаться следующих действий:
1) мХ -
менной X;
2) заменить переменную X масштабированной переменной Хм;
3) -гаемые к общему знаменателю;
4) в результате умножения и деления на коэффициент 2е (с > 1,2,3.) заменить деление на общий знаменатель умножением на целое число и сдвигом на соответствующее количество двоичных разрядов;
5) , -
;
6) , . Масштабный коэффициент выбирается, равным 2
- млци
мх = 2-(15)
и целочисленные значения переменной Хм изменяются в диапазоне
Xмi е [1, 2 ^ ]. (16)
(14)
виду
X ^2 л73 лг4 476
^(Хм) = мХ + + —м^ + —м^ + —м^ + —+ —м^ . (17)
1! 2!м— 3!м— 4!м— 5!м— 6!м—
куррентную формулу
ґм(ХМі) =
(Мі + 6МХ )хмі + 30м| )Хм^ + 120Мх]Хм^ + 360М|]Х;М^ + 720МІ
и
Мх
Мх
Мх
(18)
х
—+ 720МХ
мх у
1
720М,
в которой все данные - целые числа, и операции над ними осуществляются в целочисленной арифметике.
С учетом значений коэффициентов в формуле (18) микропроцессорный алгоритм имеет вид
и6 = ХМі ; = (ик+1 + ск)8Ъ к = 5,0 , fм ( Хмі ) = ^, (19)
С5=6Мх, С4=30мХ, Сэ=120МХ , С2=360М2Х ,
С1=720М2Х , С0=720М2Х ;
84 = 8з = 82 = 81 = ХМі , 80 =___1__.
МУ
720М,
Вычисления по схеме (19), вплоть до значения иь сводятся к выполнению операции умножения, сложения и сдвига. Операция сдвига данных вправо на МАЦП разрядов замещает все операции деления на м— = 2Кацп , что имеет важное значе-
,
для ее программной реализации требуются значительные затраты времени.
и0 720.
замена деления на умножение на целое число,
Е
720
и на операцию сдвига на с
.
Недостатком микропроцессорного алгоритма (19) является использование для представления промежуточных результатов вычислений до (2^цп + 11) разрядов. Такое количество разрядов избыточно и мало оправдано, т.к. инструментальная погрешность содержится в (N^+11) младших разрядах суммы. Поэтому целесообразно сокращение количества разрядов суммы за счет части младших не.
Такое сокращение может быть получено, если урезать количество разрядов каждого произведения Хмик+1 (к = 4,0) на ^цп разрядов. Достигается это при представлении формулы (18) в виде
^м(хмі)
+ 720М
х
1 Ґ2е>|
2 I720;
(20)
2
и организации вычислении по алгоритму
И = хМі, И = (ик+1 + Ск)8к, к = 5,0 , и = ґм( хм1),
где
с5 = 6Мх, с4 = 30Мх, с3 = 120Мх, с2 = 360Мх, с = с0 = 720Мх и (21)
85 = 84 = 83 = 82 = 81 = хмі _і
Мх
2е
V720/
2е
В алгоритме (21) в разрядную сетку длиной ^АЦГ1 + 11) укладываются после сдвига на ^цп разрядов значения всех промежуточных произведений, а также значения сумм ик.
В заключение заметим, что описанная методика проектирования может быть использована для синтеза микропроцессорных алгоритмов вычисления трансцендентных функций не только в результате их разложений в степенные ряды, а также при их интерполировании параболами 2 и более высокой степени и т.п. Кроме того, она пригодна при разработке алгоритмов численного интегрирования, дифференцирования и др.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. По пов Б А., Теслер Г. С. Вычисление ф ункций на ЭВМ. Справочник. - К.: Наукова думка. 1984. - 600 с.
2. Строганов Р.П. Управляющие машины и их применение. Учеб. пособие для студентов спец. "Автоматика и телемеханика". 2-е изд., перераб. и доп. - М.: Высш. шк. 1989. -304 с.: ил.
3. Пьявченко ОМ. Алгоритмические основы выполнения математических операций в микрокомпьютерах: Учебное пособие. - Таганрог: Изд-во ТРТУ. 1998.-190 с.
УДК 681.533
С.И. Клевцов ПРОСТРАНСТВЕННАЯ ЛИНЕАРИЗАЦИЯ ГРАДУИРОВОЧНОЙ ХАРАКТЕРИСТИКИ ИНТЕЛЛЕКТУАЛЬНОГО ДАТЧИКА
Для упрощения вычислений в микроконтроллере и минимизации методической погрешности предложен метод пространственной линеаризации градуировочной характеристики интеллектуального датчика, предназначенного для измерения медленно меняющегося физического сигнала, например, для измерения давления или разности давлений в жидкой или газообразной среде. Метод базируется на представлении градуировочной характеристики в виде системы плоскостей в пространстве Р*ихТ измеряемых значений физического сигнала (давления), выходного сигнала чувствительного элемента датчика (напряжение или ток) и внешнего
( ).
Для построения градуировочной характеристики область и*Т разбивается на к2 прямоугольных участков. На каждом произвольном участке Вп т (Ш [и1п,
и2п], Тє [Т1т, Т2т]), используя экспериментальные данные, представляющие зависимость Р=Р(и,Т), методом наименьших квадратов определяются уравнения двух скрещивающихся в пространстве Р*и*Т прямых р '(цср) и р '(и,тср^)