Системы цифрового управления многокоординатными следящими электроприводами. Гусев Н.В - 148 стр.

UptoLike

Составители: 

Circle.X1=0; // Координата первой точки окружности по оси
X, мкм
Circle.Y1=0; // Координата первой точки окружности по оси
Y, мкм
Circle.X2=0; // Координата второй точки окружности по оси
X, мкм
Circle.Y2=0; // Координата первой точки окружности по оси
Y, мкм
Circle.Plane=1; // Плоскость интерполирования XY
Circle.a_c=1000; // Контурное ускорение, мкм/с2
Circle.V1=1000; // Начальная контурная скорость, мкм/с
Circle.V2=0; // Начальная контурная скорость, мкм/с
Circle.Direction=0; // Направление движения по часовой стрелке
Как и в случае с линейной интерполяцией количество тактов в общем
случае определяется геометрией траектории движения, заданными контурными
скоростями и ускорениями, а также частотой квантования в контуре положе-
ния.
Частота вызова функции определяется периодом квантования в контуре
положения. При первом вызове функции производится расчет базовых пара-
метров интерполятора и выполняется расчет задания по положению для ука-
занных в структуре Circle осей. При дальнейшем вызове функции интерполято-
ра выполняется расчет лишь задания по положению. Базовые параметры хра-
нятся в структуре Circle.
Рис. 4.29. Круговая интерполяция (Line.X_out, Line.Y_out, Line.Z_out, Line.K_outсигнал за-
дания на ЦАП либо на контур положения в зависимости от настроек сервомодуля)
Помимо базовых параметров на каждом такте интерполяции используют-
ся величины заданий полученные на предыдущем такте интерполяции. Пере-
менные, хранящиеся в структуре Circle, описаны ниже.
Структура кадра круговой интерполяции «Circle».
typedef struct
{ float Xc,Yc,Zc; //Координаты центра окружности;
148