Методические указания к решению задачи 2
В большинстве систем ЧПУ одной из основных задач является обеспечение движения инструмента относительно детали по заданной траектории. Траектория движения аппроксимируется набором отрезков прямых и окружностей. Расчёт текущих значений координат при решении геометрической задачи управления называется интерполяцией.
Дискретность перемещения по координатам hx, hy, hz определяется конструкцией станка и составляет единицы или десятки мкм.
Задание приращений по двум осям координат при hx = hy еще не определит заданного прямолинейного движения инструмента между точками.
Если координаты существенно неравны (например, х = 13мм, y = 5мм при hx = hy = 0,01 мм), то по одной координате в кадре необходимо выдать 1300 импульсов, а по другой - 500. При этом время движения по оси Х не будет равно времени движения поY и заданная траектория будет искажена (как показано на рисунке).
Если по технологии недопустимо отклонение от заданной траектории (∆ велико), то приблизить фактическую траекторию к заданной можно введением дополнительных опорных точек или применять алгоритмы интерполяции.
Алгоритмы интерполяции можно разделить на алгоритмы единичных приращений: метод цифро-дифференциальных анализаторов, оценочной функции и алгоритмы равных времен: методы цифрового интегрирования, итерационно-табличные методы, прогноза и коррекции [4;6].
По алгоритму оценочной функции следует с определенной частотой, зависящей от скорости перемещения, анализировать знак оценочной функции и в зависимости от него выдавать сигнал изменения на один квант по одной или другой координате. Согласно этому методу моделируется алгебраическое уравнение воспроизводимой кривой. Оценочная функция при линейной интерполяции имеет вид:
Fi = yi·X - xi·Y,
где
, – требуемые перемещения в кадре.При проведении интерполяции осуществляют либо обычный алгоритм, либо – усовершенствованный. При обычном алгоритме расчеты значений оценочной функции осуществляют так:
- если сделан шаг по оси Х, то
Fi+1 = yi·X – (xi + 1)·Y = yi·X – xi·Y – Y = Fi – Y,
- если сделан шаг по оси Y
Fi+1 = (yi + 1)·X – xi·Y = yi·X + X – xi·Y = Fi + X.
При усовершенствованном алгоритме:
- если сделан шаг одновременно вдоль оси Х и Y
Fi+1 = (yi + 1)·X – (xi + 1)·Y = yi·X + X – xi·Y – Y = Fi + X – Y.
Таким образом, вычисление нового значения оценочной функции опирается на сохраняемые предыдущие значения.
Пример.
Пусть необходимо осуществить приращение в кадре в абстрактных машинных единицах ∆α = 6; ∆β = 4. Расчетные значения сведены в таблицу 9.
Таблица 9
Такт i | Шаг по осям | Текущее значение | Оценочная функция | ||
α | β | αi | βi | Fi = Fi – Δβ ≥ 0 (α) Fi = Fi + ∆α – Δβ < 0 (α и β) | |
0 | - | - | 0 | 0 | F0 = 0 |
1 | 1 | - | 1 | 0 | F1 = 0 – 4 = - 4 |
2 | 1 | 1 | 2 | 1 | F2 = - 4 + 6 – 4 = - 2 |
3 | 1 | 1 | 3 | 2 | F3 = - 2 + 6 – 4 = 0 |
4 | 1 | 0 | 4 | 2 | F4 = 0 – 4 = - 4 |
5 | 1 | 1 | 5 | 3 | F5 = - 4 + 6 – 4 = - 2 |
6 | 1 | 1 | 6 | 4 | F6 = - 2 + 6 – 4 = 0 |
При расчете использован усовершенствованный алгоритм, фактическая траектория движения и тактовая диаграмма показана на рисунке.
Погрешность отработки траектории по методу оценочной функции не превышает значения дискретности перемещения по координате для станка с ЧПУ. Важным достоинством метода оценочной функции является простота стыковки с шаговыми и сервоприводами и небольшая требуемая разрядность системы ЧПУ, определяемая максимальным значением координатных перемещений. Недостатком является небольшая контурная скорость:
,где h – дискретность перемещения по координате;
Тк – время реализации алгоритма (период квантования);
к – число одновременно работающих координат.
Задача 3. Используя метод оценочной функции при круговой интерполяции, построить интерполяционную траекторию при движении из точки с координатами А0 (10, 0) в точку Ак (0, 10).
Методические указания к решению задачи 3
При круговой интерполяции следует использовать оценочную функцию вида:
Fi = xi2 + yi2 – R2.
При отработке траектории в 1 квадранте против часовой стрелки, если применяется обычный алгоритм интерполяции, то расчетные соотношения примут вид:
· если Fi ≥ 0 (нахождение за пределом радиуса окружности), то шаг делается вдоль отрицательного направления оси х, т. е. хi+1 = xi – 1
Fi+1 =(xi – 1)2 +yi2 – R2 = Fi – 2xi + 1,
· если Fi < 0, то шаг делается в положительном направлении оси у, т. е. yi+1 = yi + 1
Fi+1 =xi2 + (yi +1)2 – R2 = Fi + 2yi + 1.
При применении усовершенствованного алгоритма рекомендуется разбить квадрант пополам (π/4). При изменении угла от φ = 0, до φ =π/4 и при Fi ≥ 0 выдача шагов осуществляется по обеим координатам:
Fi+1 =(xi – 1)2 +(yi +1)2 – R2 = Fi – 2(xi – yi) + 2,
а при Fi < 0 только по ведущей координате (уi)
Fi+1 = Fi + 2yi + 1.
При изменении угла от π/4 до π/2 и Fi < 0 выдача шагов производится по обеим координатам, а при Fi ≥ 0 только по ведущей координате (хi)
Fi+1 = Fi – 2xi + 1.
Следует отметить, что при усовершенствованном алгоритме интерполяции затрачивается меньшее число тактов, что приводит к увеличению контурной скорости отработки траектории.
Если перемещение должно осуществляться в других квадрантах в выбранном направлении (по часовой стрелке или против часовой стрелки), то аналогично рассмотренному выше можно получить необходимые расчетные соотношения для Fi+1.
Приведенный ниже алгоритм предназначен для реализации метода оценочной функции во всех 4 квадрантах при движении в любом направлении [5]:
Принятые обозначения: I, J – координаты центра дуги;
r – радиус дуги;
τ – такт;
F – скорость подачи, мм/ мин;
d = h – дискретность системы ЧПУ, мм;
ун, хн – начальная точка;
ук, хк – конечная точка.
CIR: if TAKT > 1 then go to CYCLE
read xн , ун , хк ,ук , I, J, ±F
r = sqr((xн – I)2 + (ун - J)2)
x = xн ; y = ун ; codx = x; cody = y; f = 0
U= int(F*τ/(60*d));
if xн = I and ун > J then αн = π/2
if xн = I and ун < J then αн = 3*π/2
if xн > I then αн = atn((ун – J)/( xн – I))
if xн < I then αн = π + atn((ун – J)/( xн – I))
if xк = I and ук > J then αк = π/2
if xк = I and ук < J then αк = 3*π/2
if xк > I then αк = atn((ук – J)/( xк – I))
if xк < I then αк = π + atn((ук – J)/( xк – I))
if sgn(αн - αк) = sgn(U) then ∆α = abs(αн - αк)
else ∆α = 2π - abs(αн - αк)
L = 4 * r * ∆α/π ; l = 0
CYCLE: X = x – I; Y = y – J;
if abs(X) >= abs(Y) and sgn(f*sgn(X)*sgn(Y)) = sgn(U)
then(y = y – U*sgn(X); f = f – 2*Y*sgn(X) + U; go to END);
if abs(X) < abs(Y) and sgn(f*sgn(X)*sgn(Y) < > sgn(U)
then (X = X + U*sgn(Y); f = f + 2*X*sgn(Y) + U; go to END);
x = x + U*sgn(Y); y = y – U*sgn(X);
f = + 2*(abs(X) – abs(Y))*sgn(Y) + 2*U;
END: l = l + abs(X – codx) + abs(y – cody);
codx = x; cody = y;
if l < L then TAKT = TAKT + 1
else TAKT = 1
RETURN
Ниже приводится листинг программы на языке Си, которая реализует алгоритм оценочной функции, приведенный выше, с небольшими модификациями. Скорость подачи принята 1 шаг за один цикл алгоритма, направление движения по окружности зависит от введенных координат центра, начальной и конечной точек.