Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
«0» готовности управляющих
4 Преры - устройств приводов,
Вание принять задаваемые данные.
«1» А также проверка условий
5 окончания обработки отре-
Выдача задающих зка программой траектории,
Воздействий на задание данных в кадре
приводы управления программой.
Конец
Методы и алгоритмы интерполяции,
основанные на численном решении.
ДУ (1 группа).
Задача линейной интерполяции (постановка).
Y
К
Yкон
Yнач Н
0 Х
Хнач Хкон
Составим ДУ описывающее движение:
а) каноническое уравнение прямой.
Х – Хнач Y - Yнач
¾¾¾¾ = ¾¾¾¾¾¾
Хкон – Хнач Yкон – Yнач
б) Продифференцировав по у:
dy Хкон – Хнач dx dy A(Хкон - Хнач)
¾ = ¾¾¾¾¾¾ ¾ · ¾ = ¾¾¾¾¾¾¾ (1)
dy Yкон – Yнач dy dt A(Yкон – Yнач)
dy
¾ = А(Хкон – Хнач)
dx
(2)
dy
¾ = A(Yкон – Yнач)
dt
где А найдём из условия:
______________
Vk = Ö (dx/dt)2 + (dy/dt)2 А = Vk/DL
_______________________
Dl = Ö (Хкон – Хнач)2 + (Yкон – Yнач)2
г) Перейдём к приращениям dx ® Dх, dy ®Dy, dt®Tk.
Vк
DXт = ¾ (Xкон – Xнач) – Тк
DL
(3)
Vk
DYт = ¾ (Yкон – Yнач) - Tk
DL
где DХт, DYт – кодовые приращения координат за Тк.
(3) - алгоритм для CNC системы.
д) Для NC – системы (3) и (4) – для аппаратной реализации на
Ц. Д. А.
DL
Dtx = ¾¾¾¾¾¾ · DХт
Vk(Хкон – Хнач)
DL
Dty = ¾¾¾¾¾¾¾¾ ·DYт
Vk(Yкон – Yнач)
Программная реализация алгоритма линейной кодовой интерполяции (в форме 3).
1) На этапе подготовки данных в кадре УП рассчитывается приращение D Хт и D Yт с учётом циклического переноса начала отрезка (Xнач, Yнач) в начале координат, то есть
Хнач = 0, Yнач = 0.
Следовательно,
Vk × Xкон Yk × Yкон
DХт = ¾¾¾¾¾ · Tk, DYt = ¾¾¾¾
________ _______
ÖХк2 + Yk2 ÖXk2 + Yk2
2) В оперативной (основной) части периода дискретности вычисляется текущее значение координат на К – той шкале.
к
а) Х[к] = å DХт [i] Y[к] = å DYт [i]
i=1
где i ® t1 = i×Tк
к ® tк = к×Тк
б) Задающие воздействия на приводы.
X3[K] = int {X[k]}
, где int {... } – выделение целой части.
Y3[K] = int {Y[k]}
в) остатки (дробная часть) переносятся в (к+1)-й итог, то есть накапливаются.
Х [ k+1 ] = x3[k] + Dxт + {х [ k ] } д
Y [ k+1 ] = y3[k] + Dyт + {y [ k ] } д д – дробная часть.
г) Контроль остатков пути.
Хост = Хкон – Х [ к ]
Yост = Yкон – Y [ k ]
Он необходим, т. к. DХт, DYт могут не укладываться целое число раз DL.
int Ñ x(k), если ½Хост½> DХт
DX3[k] =
int ½Хост½, если ½Хост½£ DХт
int Ñ y [ k ], если ½Yост½ > DYт
DY3[ k ] =
int ½Yост½, если ½ Yост ½ £ DYт
где int Ñ х [k] = int х [к] – int х [k –1]
int Ñ y [ к ] = int y [ к ] – int y [ k – 1 ]
Обеспечивается отсутствие погрешности в задающих воздействиях на последнем итоге интерполяции России. Алгоритм линейной интерполяции называется базовым. Его особенностью является отсутствие длинных операций. Распределение целой и дробной части кодового представления операндов x [k] и y [k].
x [ k ] = int { x [ k ] + {x [ k ]} д
код целая дробная
Определяется требованиями ISO.
Например: при dz = 1 мкм = 10 -6 м
и Хmax = Ymax = 10 м = 107 мкм имеем
Хmax = 107 dz = 224 dz
Следовательно: nint = 24, кодов х [к], у [к].
Необходимая разность дробной части определяется на основе анализа погрешности интерполяции Þ nд = 24 (не меньше).
Таким образом, операнды в базовом алгоритме линейной интерполяции должны иметь предел с разрядностью.
n = nint + nд = 24 + 24 = 48 разрядными кодами.
y
x [ k ]
y [ k ]
R x [ k + 1 ]
Dj y [ k + 1 ]
jr
х
х [k] = R cosj0
y [k] = R sinj0
при Vk = const
m0 за Tk – приращение угла.
Vk
Dj = wTk = ¾ Tk
R
X [ k + 1 ] = R cos (j0 + Dj)
Y [ k + 1 ] = R sin (j0 + Dj)
а) Базовый алгоритм круговой интерполяции. Его вывод:
х [ k +1 ] = R cos j0 cos Dj - R sin j0 sin Dj =
= (cos Dj) × x [ k ] – (sin Dj) × y [ k ]
y [ k +1 ] = R sin j0 cos j0 + R cos j0 sin Dj =
= (sin Dj) × y [ k ] + (cos Dj) × x [ k ]
или x[k+1]=a×x[k]-b×y[k]
y[k+1]=b×x[k]-a×y[k] (1)
где a=cos(Vk/R×Tk)=const
b=sin(Vk/R×Tk[А.М.1])=const
Таким образом, основным недостатком алгоритма (1) является:
- 4 операции умножения.
- Коэффициенты a, b – тригонометрические функции.
На практике применяют более простые модификации.
Классическая модификация алгоритма круговой
интерполяции.
Каноническое уравнение окружности (х+х0)2+(у+у0)2=R2
где:
х0, у0 – координаты центра окружности.
После дифференцирования по х:
2(х+х0)+2(у+у0)dy/dx=0
Перейдём к системе ДУ:
dx/dy = -w(y+y0) dy/dt = w(x+x0) ] (*)
где w = Vk/R – круговая частота.
Решая (*) методом Эйлера получаем:
x[k+1] = x[k] - Vk/R Tk y[k]
(**)
y[k+1] = y[k] + Vk/R Tk x[k]
const
+ 1) только 2 операции *.
2) не требуется вычислять sin и cos.
По условиям точности данный алгоритм так же требует 48 разрядов представления операндов.
Метод (алгоритм) последовательного вычисления координат (другое модифицирование алгоритма круговой интерполяции), классический.
Из первого уравнения алгоритма (**).
x[k]=x[k+1]+Vk/RTky[k]
Подставив x[k] во 2-е уравнение получим:
x[k+1]=x[k]-Vk/RTky[k]
y[k+1]=y[k]-Vk/RTk{x[k+1]+Vk/RTky[k]}=
=y[k]+Vk/RTkx[k+1]
Так как (Vк/RTк)2y[k]=Dj2y[k] – мало Dj<<1
Дата публикования: 2014-11-28; Прочитано: 277 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!