WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 | 2 || 4 | 5 |

Netzwerk 1: Вызов функции FC1 для управления светофором FCCALL Элементы КОР для FC1 имеют вид:

Netzwerk 1: Есть ли запрос на зеленый свет для пешеходов М0.Т6 TЕ0.Е0.М0.Netzwerk 2: Зеленая фаза для автомобилей А0.М0.Netzwerk 3: Пуск таймера желтой фазы для автомобилей ТM0.S S5T#3S Netzwerk 4: Желтая фаза для автомобилей А0.М0.0 ТТNetzwerk 5: Красная фаза для автомобилей А0.М0.0 ТNetzwerk 6: Пуск таймера зеленой фазы для пешеходов ТА0.S S5T#10S Далее допишите оставшиеся сети для реализации алгоритма или циклограммы.

Контрольное задание №Задача 1. Шаговый электропривод, управляемый целыми шагами °[град] и имеющий частоту приемистости fпр [кГц], должен отработать требуемое перемещение [рад] за время кадра tк с предельным быстродействием.

Сделать вывод о работоспособности системы электропривода (возможности решения задачи позиционного управления) и определить требуемое количество выдаваемых системой управления импульсов на этапе разгона, движения с постоянной скоростью и торможения.

Данные для расчетов сведены в таблицу 6.

Таблица Номер последней °[град] fпр [кГц] [рад] tк [c] цифры шифра 0 1 1,0 1000 1 2 1,5 1500 2 1,8 0,5 500 3 1,5 2,0 700 4 0,5 0,7 1200 5 0,8 1,2 2000 6 1,6 1,8 1600 7 1,2 0,9 1900 8 0,9 1,0 800 9 3 2,0 600 Методические указания к решению задачи Для позиционного электропривода траектория рабочего органа может быть произвольной, а задается начальное и конечное положение и точность позиционирования. Тип траектории выбирается обычно из минимума времени отработки заданного перемещения и ограничения на максимальное значение скорости wmax и ускорения max. Оптимальная по быстродействию тахограмма для позиционного электропривода имеет трапецеидальный вид [1]:

з w* max Qп Qт t t1 t2 tкадра 1 – имеет зону движения с постоянной скоростью * = const.

2 – треугольная тахограмма без зоны движения с постоянной скоростью.

Для кривой 1 выполняется соотношение:

з max Qзм >, max где Qзм – заданное угловое перемещение.

В условиях задачи задана трапецеидальная тахограмма движения, тогда з max > max Q зм Предельную скорость шагового электропривода зmax = * можно рассчитать, используя соотношение:

* = [рад]* fпр [Гц], т.е. для ° = 1° ; fпр = 1кГц = 1o 103 = 17,4 рад с.

360o 2 17,4 рад з max > = = 0,max Q 1000 с зм при заданном угловом перемещении = 1000 рад.

Из тахограммы движения с постоянной скоростью можно получить:

1 2 1 = + (t2 - t1)+, 2 max max (t2 - t1) = откуда – время движения с постоянной max скоростью;

tк = t1 + (t2 – t1) + (tк – t2) – полное время кадра.

Время разгона t1 = (tк – t2) = * / max.

При решении задачи выберите необходимое max для обеспечения t2 – t1 > 0, так, чтобы суммарное время не превосходило время отработки кадра tк.

Путь, пройденный на участке пуска и торможения, можно 1 1 = 3 = определить из соотношения:

2 max, а на участке движения с постоянной скоростью:

2 = (t2 - t1).

= 1 + 2 + При этом Количество импульсов управления, необходимое для выдачи на каждом из участков, равно:

i Ni = [рад], где – шаг двигателя.

Частота выдачи импульсов определяется так:

Ni fi = ti Для работоспособности привода частота выдачи импульсов на всех участках пуска, движения с постоянной скоростью и торможения не должна превышать частоты приемистости шагового электропривода. В случае невозможности отработки заданной траектории в соответствии с параметрами вашего задания, предложить вариант его изменения для обеспечения отработки заданного перемещения в установленное время.

Задача 2. Составить алгоритм метода оценочной функции при осуществлении линейной интерполяции по координатам, для выхода в точку А с координатами (к,к). Построить фактическую траекторию отработки перемещения и нарисовать тактовую диаграмму подачи импульсов на соответствующие координаты. Расчетные данные свести в таблицу 7.

Таблица Значение оценочной Номер шага Шаг по осям Текущие функции Fi I значения i i Данные для расчетов представлены в таблице 8.

Таблица Номер последней к к цифры шифра 0 10 1 8 2 12 3 10 4 12 5 14 6 10 7 10 8 8 9 12 Расчеты произвести для обычного и усовершенствованного алгоритма оценочной функции. Дискретность по координатам и одинакова и составляет h = h = 1мм/имп.

Методические указания к решению задачи В большинстве систем ЧПУ одной из основных задач является обеспечение движения инструмента относительно детали по заданной траектории. Траектория движения аппроксимируется набором отрезков прямых и окружностей. Расчёт текущих значений координат при решении геометрической задачи управления называется интерполяцией.

Дискретность перемещения по координатам hx, hy, hz определяется конструкцией станка и составляет единицы или десятки мкм.

Задание приращений по двум осям координат при hx = hy еще не определит заданного прямолинейного движения инструмента между точками.

Если координаты существенно неравны (например, х = 13мм, y = 5мм при hx = hy = 0,01 мм), то по одной координате в кадре необходимо выдать 1300 импульсов, а по другой - 500. При этом время движения по оси Х не будет равно времени движения поY и заданная траектория будет искажена (как показано на рисунке).

У 2 реальная A (xк, yк) кривая 1 заданная кривая 500 1000 1300 1500 Х Если по технологии недопустимо отклонение от заданной траектории ( велико), то приблизить фактическую траекторию к заданной можно введением дополнительных опорных точек или применять алгоритмы интерполяции.



Алгоритмы интерполяции можно разделить на алгоритмы единичных приращений: метод цифро-дифференциальных анализаторов, оценочной функции и алгоритмы равных времен: методы цифрового интегрирования, итерационно-табличные методы, прогноза и коррекции [4;6].

По алгоритму оценочной функции следует с определенной частотой, зависящей от скорости перемещения, анализировать знак оценочной функции и в зависимости от него выдавать сигнал изменения на один квант по одной или другой координате. Согласно этому методу моделируется алгебраическое уравнение воспроизводимой кривой. Оценочная функция при линейной интерполяции имеет вид:

Fi = yi·X - xi·Y, X - X Yк - Yн к н X = = где – требуемые перемещения в кадре.

hx, Y hy При проведении интерполяции осуществляют либо обычный алгоритм, либо – усовершенствованный. При обычном алгоритме расчеты значений оценочной функции осуществляют так:

- если сделан шаг по оси Х, то 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.

Таким образом, вычисление нового значения оценочной функции опирается на сохраняемые предыдущие значения.

A (к, к) Fi Fi < Пример.

Пусть необходимо осуществить приращение в кадре в абстрактных машинных единицах = 6; = 4. Расчетные значения сведены в таблицу 9.

Таблица Такт i Текущее Шаг по осям Оценочная функция значение i i Fi = Fi – 0 () Fi = Fi + – < 0 ( и ) 0 - - 0 0 F0 = 1 1 - 1 0 F1 = 0 – 4 = - 2 1 1 2 1 F2 = - 4 + 6 – 4 = - 3 1 1 3 2 F3 = - 2 + 6 – 4 = 4 1 0 4 2 F4 = 0 – 4 = - 5 1 1 5 3 F5 = - 4 + 6 – 4 = - 6 1 1 6 4 F6 = - 2 + 6 – 4 = При расчете использован усовершенствованный алгоритм, фактическая траектория движения и тактовая диаграмма показана на рисунке.

(y) А О 1 2 3 4 5 6 7 8 (х) t (такты) t Погрешность отработки траектории по методу оценочной функции не превышает значения дискретности перемещения по координате для станка с ЧПУ. Важным достоинством метода оценочной функции является простота стыковки с шаговыми и сервоприводами и небольшая требуемая разрядность системы ЧПУ, определяемая максимальным значением координатных перемещений. Недостатком является небольшая контурная скорость:

h U = к к max Tк, где h – дискретность перемещения по координате;

Тк – время реализации алгоритма (период квантования);

к – число одновременно работающих координат.

Задача 3. Используя метод оценочной функции при круговой интерполяции, построить интерполяционную траекторию при движении из точки с координатами А0 (10, 0) в точку Ак (0, 10).

Методические указания к решению задачи При круговой интерполяции следует использовать оценочную функцию вида:

Fi = xi2 + yi2 – R2.

При отработке траектории в 1 квадранте против часовой стрелки, если применяется обычный алгоритм интерполяции, то расчетные соотношения примут вид:

• если Fi 0 (нахождение за пределом радиуса окружности), то шаг делается вдоль отрицательного направления оси х, т. е. хi+1 = xi – Fi+1 =(xi – 1)2 +yi2 – R2 = Fi – 2xi + 1, • если Fi < 0, то шаг делается в положительном направлении оси у, т. е. yi+1 = yi + Fi+1 =xi 2 + (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 – дискретность системы ЧПУ, мм;

ун, хн – начальная точка;

ук, хк – конечная точка.

у ун R ук J хн I хк х 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 = U= int(F*/(60*d));

if xн = I and ун > J then н = /if xн = I and ун < J then н = 3*/if xн > I then н = atn((ун – J)/( xн – I)) if xн < I then н = + atn((ун – J)/( xн – I)) if xк = I and ук > J then к = /if xк = I and ук < J then к = 3*/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 = 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 + else TAKT = RETURN Ниже приводится листинг программы на языке Си, которая реализует алгоритм оценочной функции, приведенный выше, с небольшими модификациями. Скорость подачи принята 1 шаг за один цикл алгоритма, направление движения по окружности зависит от введенных координат центра, начальной и конечной точек.

#include /* Подключение библиотеки стандартных функций ввода-вывода */ #include /* Подключение библиотеки математических функций */ #define PI 3.1415 /* Определение числа */ #define SGN(a) (((a) >= 0) 1 : -1) /* Определение макроса для вычисления знака переменной; макрос возвращает 1, если значение переменной 0 и возвращает -1, если значение переменной <0 */ int x_n, y_n, x_k, y_k, I, J; /* Объявление целочисленных входных переменных для алгоритма: x_n – начальная точка по оси X, y_n – начальная точка по оси Y, x_k – конечная точка по оси X, y_k – конечная точка по оси Y, I – координата центра по оси X, J – координата центра по оси Y */ int x, y, r, codx, cody, f, L, l, X, Y; /* Объявление целочисленных внутренних переменных алгоритма: x, y – текущие координаты, r – радиус дуги, codx, cody – переменные для передачи координат исполнительному устройству, f – значение оценочной функции, L – полная длина пути по дуге, l – текущая пройденная длина, X, Y – разница между текущими координатами и центром окружности */ float a_n, a_k, da; /* Объявление вещественных внутренних переменных алгоритма: a_n – начальный угол в радианах, a_k – конечный угол в радианах, da – отрабатываемый по дуге угол (a_k – a_n) */ /* Определение функции инициализации алгоритма */ void init() { printf("Введите x_n, y_n, x_k, y_k, I, J: "); /* Вывод сообщения с просьбой ввести значения входных переменных */ scanf("%d %d %d %d %d %d", &x_n, &y_n, &x_k, &y_k, &I, &J);

/* Ввод входных переменных пользователем */ r = sqrt((x_n - I)*(x_n - I) + (y_n - J) * ( y_n - J));

/* Вычисление радиуса дуги */ x = x_n;

y = y_n;

codx = x;

cody = y;

f = 0; /* Установка начальных значений внутренних переменных */ /* Вычисление начального угла по значениям x_n, y_n, I, J */ if(x_n == I && y_n > J) a_n = PI / 2;

if(x_n == I && y_n < J) a_n = 3 * PI / 2;

if(x_n > I) a_n = atan((y_n - J) / (x_n - I));

if(x_n < I) a_n = PI + atan((y_n - J) / (x_n - I));

/* Вычисление конечного угла по значениям x_k, y_k, I, J */ if(x_k == I && y_k > J) a_k = PI / 2;

if(x_k == I && y_k < J) a_k = 3 * PI / 2;

if(x_k > I) a_k = atan((y_k - J) / (x_k - I));

if(x_k < I) a_k = PI + atan((y_k - J) / (x_k - I));

da = a_n - a_k; /* Вычисление угла поворота */ L = floor(4 * r * fabs(da) / PI + 0.5); /* Вычисление длины пути по дуге */ l = 0; /* Установка текущей длины пути в 0 */ printf("init: r=%d, a_n=%f, a_k=%f, da=%f, L=%d\n", r, a_n, a_k, da, L); /* Вывод на экран результатов инициализации */ } /* Функция расчета очередного шага алгоритма оценочной функции */ void circle() { /* Вычисление разницы между текущими координатами и центром окружности */ X = x – I;

Y = y - J;

/* Вычисление нового значения оценочной функции и перемещение по соответствующим осям в зависимости от текущих координат и текущего значения оценочной функции */ if(abs(X) >= abs(Y) && SGN(f) * SGN(X) * SGN(Y) == SGN(da)) { y = y - SGN(X) * SGN(da); /* Изменение координаты y */ f = f - 2 * Y * SGN(X) * SGN(da) + 1; /* Изменение значения оценочной функции */ } else if(abs(X) < abs(Y) && SGN(f) * SGN(X) * SGN(Y) != SGN(da)) { x = x + SGN(Y) * SGN(da); /* Изменение координаты x */ f = f + 2 * X * SGN(Y) * SGN(da) + 1; /* Изменение значения оценочной функции */ } else { x = x + SGN(Y) * SGN(da); /* Изменение координаты x */ y = y - SGN(X) * SGN(da); /* Изменение координаты y */ /* Изменение значения оценочной функции */ f = f +2 * (abs(X) - abs(Y)) * SGN (Y) * SGN(X) * SGN(da)+ 2 * 1;

} l = l + abs(x - codx) + abs(y - cody); /* Изменение пройденного пути */ codx = x; cody = y; /* Установка переменных для передачи исполнительному устройству */ printf("f=%d\tcodx=%d\tcody=%d\tl=%d\n", f, codx, cody, l);

/* Вывод результатов очередного шага алгоритма на экран */ } /* Главная функция программы, с нее начинается выполнение */ int main() { /* Вызов функции инициализации алгоритма оценочной функции */ init();

/* В этом месте можно передать начальные координаты cod_x и cod_y (равные x_n и y_n) на исполнительное устройство */ /* Организация циклического вызова функции расчета очередного шага оценочной функции до тех пор пока текущий пройденный путь меньше полной длины пути по дуге */ while(l < L) { circle();

/* В этом месте можно передать рассчитанные координаты cod_x и cod_y на исполнительное устройство */ } return 0; /* Завершение главной функции программы */ } Контрольное задание № Задача 1. Найти Z-преобразование, если передаточная функция непрерывной части имеет вид, представленный в таблице 10.

Pages:     | 1 | 2 || 4 | 5 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.