
- •Кдос. П.
- •1 Работа.
- •Цифровое Обработка Связь с Диагностика
- •Показатели качества, основные характеристики
- •Организация в однопроцессорном учпу.
- •Методы и средства программного
- •Классификация методов интерполяции
- •Обобщённая схема алгоритма интерполяции
- •Запрос на прерывание о
- •Метод двойной рекурсии
- •Методы и алгоритмы интерполяции
- •Алгоритм линейной интерполяции с оценочной
- •Круговая интерполяция с использованием
- •Обработка по идля
- •Расчёт эквидистантного
- •Ошибки воспроизведения типовых участков
- •При воспроизведении прямой под углом
- •Искажение геометрических форм
- •Влияние «неидеальностей» кинематических цепей
- •Символы с необязательным семантическим
- •Структурное программирование
- •Автоматизация программирования процессов
- •Обобщённая структура арт – образных
Круговая интерполяция с использованием
оценочной функции.
I
квадрант.
F(,)>0
R
F(,)=0
решение
траектории
движения изображающей
F(,)<0
точки
Если дуга окружности в других квадрантах, то
|
Направление | |||
|
| |||
х |
у |
Х |
у | |
2 3 4 |
- - |
- - |
- - |
- - |
F(,)=2+2-R2
Пересчёт значений F(,) для движения по часовой стрелке ().
а) При шаге по (если (F(i,i)0))
F (i+1, i) = (i+1)2+i2-R2=F(i,i)+2i+1
F
б) При шаге по (если F(i,i)>0)
F(i,
i+1)=i2+(i-1)2-R2=F(i,i)
- 2i
+ 1
F
Для повышения скорости движения алгоритм пересчёта F(,) можно усовершенствовать с учётом того, что:
а) При 0<<45 (1 участок) – ведущая координата.
б) При 4590 (2 участок) - ведущая координата.
Тогда: F(i+1, i+1) = F(i+1,i-1) = F(i,i) + 2(i - i) + 2
F
Приращением 1 соответствует элемент движения F по и на dz.
Fi – частота шагов (определяет контурную скорость).
Если fi=const, то движение по окружности будет с Vk=var (переменным), что нежелательно с технологической точки зрения.
Поэтому: fi+1=fiVk/R
Где «+» – для первого полуквадранта,
«-» для второго полуквадранта.
Тогда Vk – const.
Алгоритм круговой интерполяции.
Начало
(2
участок) Нет
Да (1 участок)
i-i
Нет Да
Нет Да
Fi0
Fi0
Fi+1=Fi+2
Fi+1=Fi+
Fi+1=Fi+
Fi+1=Fi-
2(i+i)+2
+2(i-i)+2
-2i+1
Шаг по i+1=i-1 i+1=i+1 Шаг по
fi+1=fi-Vk/R fi+1=fi+Vk/R
i+1=i+1
Шаг по
i+1=i-1
Шаг по
Обработка по идля
окончательного
раннего кадра
движения УП
Конец
Если заданная дуга окружности расположена в нескольких квадрантах, то её разбивают на соответствующее число устройств, и каждый из них записывается в данный кадр.
Достоинства: Простота реализации.
Недостаток: Vk (скорость) мала. Контурная скорость ограничена из-за необходимости отработки приводами элементарных приращений с частотойfi.
В современных ЧПУ – такие алгоритмы применяются редко (NC типа) – с жёсткой реализацией алгоритма и дискретными приводами с шаговыми двигателями.
Более широкое применение в СNC – типах систем находят методы интерполяции в кодовых приращениях (определяютсяхтиут, а в абстрактныхтит) за времяTk – период квантования управляющих воздействий. Процедура их расчёта базируется на моделировании движений изображающей точки с оценочной функцией в ускоренном масштабе времени начиная с большего шага:
H0>>dz (пои) и заканчивается шагом.
Hm = dz, где k=0,1,2,...,m– номер шага.
1 этап: вычисление т, т
2 этап: их выдача i=i+т
i=i+т
Методы интерполяции «цифра за цифрой».
Здесь числа рассматриваются как композиции цифр с основанием q, зависящим от использования системы счисления. Для двоичных системq=2.
n
В общем, виде x = (iq-i)
i=1
число
где Ai{0,1,2,...,q-1}
Алгоритмы этих методов мы используют итерационную процедуру: U[k+1] = f{u[k]}, однократное применение которой даёт одну достоверную цифру результата, аn – кратное –n – верных результатов (цифр).
Такие методы появились в начале ХVIIвека.
а) Работы 2-х авторов Вагдер и Меджер.
Ими были разработаны алгоритмы для вычисления:
элементов f(x) (показательных, прямых и обратных тригонометрических, логарифмических, гиперболических).
множительно – делительные (х/yz).
корневые хi у , 3х/у...
векторных преобразований.
Основные положения метода.
Если U(x) – заданная функция,X – аргумент.
U0(x) – известные начальные значения.
Иерархическая формула:
U[k+1] = U[k] + i[k]
i –скаляр (величина шага итерации).
+1
[k] = -1 направления движения
i[k]=U[k] –приращение.
При этом i изменится вq – раз (напримерq=2) при получении очередной верной функции искомой функции.
Алгоритмы этих методов 2-х этапные.
а) На первом этапе формируются последовательные значения [к]
[1][2]...[kmax]
Kmax зависит от разрядности представленных используемых чисел (x, u(x))
б) Строится итерационный процесс и определяется последовательность
[1] [1] n
U[0]= U[1]= u[kmax]
[1] [2] n
0
для разных
u0(x) = 1 U(x) свои случаи
C0 – некоторая константа
Отличительной особенностью алгоритмов этих методов является наличие в них только коротких операций (сложение, вычитание сдвигов влево, вправо).
Примеры рекуррентных выражений для вычисленных функций sin иcos .
1 этап:
Qk+1=Qk - karctg (q -i)
табличное значение
k = sign (Qk)
k=0,1,...kmax
Начальное условие: Q0=0
Определяем знаки К-ые, Кmax – зависит от требуемой точности вычислений.
2 этап: yk+1=yk-kxkq-i - дляsin
xk+1=xk+kykq-i - дляcos
Начальное условие у0=0, х0=1/
где =1,646 – масштабный коэффициент.
При к=m ym = -sin
Хm = cos
Алгоритм круговой интерполяции по методу «цифра за цифрой» Меджита.
(q=2, замена переменнойqi yi=zi)
x = R cos ; y = R sin
Для 1 – го этапа:
Qi+1
= 2
( Qi
- i
2-i
arctg 2-i )
i = sign Qi
*.
вычисление тригонометрических функций cos , sin .
___
где Q0=; i=0,n – гдеn – число достоверных разрядов.
Для 2-го этапа
Zi-1=2-1(Zi+Xi)
Xi-1=Xi - i-12-2(i-1)Zi
где i=n, n-1, ... 0
Начало
1
Хn=R/M;
0,
0=arctg(Iнач/Xнач)
i=0; Q0 =VkTk/R
приращение угла
2
i = sign Qi
3
И запоми - Да Нет
наемi
4 i<0
5
Qi+1=Qi+
Qi+1=Qi-
+2iarctg2-i
-2iarctg2-i
6
Qi+1=Qi+1/2
. . . . Блок 1-7 результирует
i=i+1 1 этап алгоритма
Нет 7
i=n
Да
Да
8 Нет
i<0
9 10
Zi-1=(Zi-Xi)/2 Zi-1=(Zi+Xi)/2
Да
11
I<n/2
12
Zc=Zi2-2(i-1)
Да 13 Нет
14 i<0
15
Xi-1=Xi+Zc Xi-1=Xi-Zc
16
i = i-1 Блоки 8-17
реализуют
2 этап
17
алгоритма.
Нет
i = 0
Да
Конец
Назначение блока № 11: при i>n/2 Zcвыходит за разрядную сетку, что позволяет сократить время счёта.
Межтактовые приращения вычисляются по значениям х0и у0для соответствующих шагов интерполяции.
хт[к]=х0[k-1]x0[k]
yт[k]=y0[k-1]y0[k]
где х0[k], x0[k-1], y0[k], y0[k-1] – вычисленные по приведённому выше алгоритму (на соседних шагах) верхние знаки («-» и «+») соответствуют движениям против часовой стрелки, нижним – по часовой.
Алгоритм линейной интерполяции по методу «цифра за цифрой» Меджита – аналогичен предыдущему, но:
а) в блоке № 1 хn = L/M гдеL=VkTk – приращение пути заTk.
б) в блоках 4 и 5 таблицы констант заменяются на единичное значение arctg (yкон/xкон)
в) Вычисляем значения x0 и у0являются приращениями констант заTk.
x[k]=x0[k]; y[k]=y0[k]
Оценка требуемой разрядности n.
При линейной интерполяции.
а) Lmax=Vk max, max[inf Tk] = 10 м/c*0,01 c =0,1 м
inf – максимальное значение из минимального, т. е.inf Tk –нижняя граница Тk.
Lmax 0,1
Следовательно: = = 105, то есть 1666 бит< 211-1
min dz 10-6
или n=11.
2) При круговой интерполяции.
а) Rmax = 10 m
б) min dz = 10-6 m min = (min dz)/(Rмах)=10-6/10=10-72-24 илиn=24
т. о. Rmax=224dz
Вывод: методы «цифра за цифрой» позволяют минимизировать временные затраты на реализацию алгоритмов с учётом типа интерполяции.
Время вычисления sin (илиcos ).
а) на К580 6 мс
К1810 1,5 мс.
Таблично – аналитические методы интерполяции (4-я группа).
Чисто табличные методы не применяются.
f(x)
2n – для указанных операций,n – разрядных операндов.
22n – для бинарных операций.
Объём ПЗУ в словах.
XПЗУ f(x) – значение(двоичный код)
f(x)
адрес
(двоичный код)
Пример: R=10 м, dz=1 мкм
22n 1,7*106 – 24 разрядных слов
требуется ПЗУ объёмом 5,1*104 Кбайт = 51 МБ для хранения значенийsin c точностьюdz.
Достоинства: Отсутствует накапливающееся погрешность. Упрощаются итерационные процедуры.
В качестве аппроксимирующей функции используют итерационные полиномы Лагранжа, Ньютона, а в зависимости от числа учитывающего табличные значения применяют линейную, параболическую, кубическую аппроксимацию.
Кусочно-линейная аппроксимация (интерполяция) по формуле Ньютона:
f(x) = f(xi)+(f(xi+1) - f(xi))/(xi+1-xi)(x-xi) = f(xi+kix)
где f(xi); f(xi+1) – табличные значения.
xi+1-xi=xi – итог таблицы.
Шаг таблицы, конечно, оценивается требуемой погрешностью аппроксимации:
хi [d2f(x)/dx2при х=хi -1а]1/2
где d2f(x)/dx2-1- обратная величина модуля второй производной.
а– максимальное значение ошибки аппроксимации х[хi, xi+1]
Для ф-й sin иcos приsin =cos =1
___
= - постоянный шаг в таблице (на апроксимации для табличных значенийsin иcos ).
. . . .
.
Так какsin = sin sin max = 1
. . . . .
cos = cos cos max = 1
Чтобы избежать в последующих (операциях) вычислениях операций умножения и деления, заменив их на операции сдвига кодов, а также чтобы использовать коды значений аргумента в количестве адресов, по которым хранятся коды значений аргумента в количестве адресов, по которым хранятся коды значений функции необходимо шаг по аргументу выбрать равным целой степени основания систем счислений.
хi+1 = xi+1 – хi = q-(n-r) =2-(n-r)
шаг по аргументу
где (n-r) – разрядность, кода старшей части аргумента xi(являющейся адресом, «грубые» значения функций в таблице ПЗУ).
Для таблицы sin и cos шаг:
2–(n-r)
Оценка объёма ПЗУ (пример). Если таблица содержит 25 – разрядные значения функции, то есть n = 25, a(n-r) = 12 разрядов адреса, тогда при R = 10 м и dz = 1 мкм для хранения опорных точек на дуге окружности первого квадранта требуется N = 3835 опорных точек, так как N = R/4Rarcsin(22dz/2/R) = R/(2N+1dz) – это отношение длины дуги (R/2) к длине дуги, стягиваемой аппроксимированной хордой объём ПЗУ Q = 2(N-1)*225 бит =
= 23963 байт = 24 кБ
Другой способ представления таблиц:
не в абсолютных значениях sin и cos , а в приращениях их смежных значений:
хi = xi – xi-1= R(cos i – cos i-1) = R cos i
yi = yi – yi-1= R(sin i – sin i-1) = R sin i
Это позволяет вдвое уменьшить объём таблиц.
Вычисление поправок (к табличным значениям функции) – это типичная интерполяционная задача, которая может решаться любым
рассматриваемым ранее методом.
Учитывая разнообразие форм представления таблиц и разнообразие алгоритмов вычисления поправок, становится понятным, что группа табличных алгоритмов является наиболее многочисленной.
Обобщённая схема алгоритма линейно – круговой интерполяции таблица алгоритмического типа.
Начало
вычисление
sin
,
cos
1 этап
xi
= Rcos
yi = Rsin
xт
= xi-1 –
xi
2 этап
Только yт = yi-1 – yi
при
круговой
=
+
интерпо-
ляции
Конец
Здесь R = - радиус при круговой интерполяции.
- угол
наклона прямой
=
- центробежный угол окружности