Лекция: Запрос на прерывание о

«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.

 

 
 

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

 

 

еще рефераты
Еще работы по информатике