Научная статья на тему 'Следящая система механизма подачи станка с ЧПУ с использованием “Arduino Uno”'

Следящая система механизма подачи станка с ЧПУ с использованием “Arduino Uno” Текст научной статьи по специальности «Механика и машиностроение»

CC BY
351
181
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЧПУ / СЛЕДЯЩАЯ СИСТЕМА / CNC / FEEDER SYSTEM

Аннотация научной статьи по механике и машиностроению, автор научной работы — Боос Глеб Олегович, Гордеев Алексей Сергеевич, Просоедов Роман Александрович

В данной статье представлено моделирование следящей системы механизма подачи станка с ЧПУ с использованием “Arduino Uno”.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SERVO SYSTEM FEED MECHANISM CNC MACHINES USING “ARDUINO UNO”

This article presents a simulation of the servo system feeder CNC machine using “Arduino Uno”.

Текст научной работы на тему «Следящая система механизма подачи станка с ЧПУ с использованием “Arduino Uno”»

СЛЕДЯЩАЯ СИСТЕМА МЕХАНИЗМА ПОДАЧИ СТАНКА С ЧПУ С ИСПОЛЬЗОВАНИЕМ "ARDUINO UNO"

Боос Глеб Олегович

лаборант-исследователь, Южно-Уральский Государственный Университет,

РФ, г. Челябинск E-mail: glebboos@mail.ru Гордеев Алексей Сергеевич лаборант-исследователь, Южно-Уральский Государственный Университет,

РФ, г. Челябинск Просоедов Роман Александрович лаборант-исследователь, Южно-Уральский Государственный Университет,

РФ, г. Челябинск

SERVO SYSTEM FEED MECHANISM CNC MACHINES USING

"ARDUINO UNO"

Boos Gleb

assistant researcher, South Ural State University, Russia, Chelyabinsk

Gordeev Alexey

assistant researcher, South Ural State University, Russia, Chelyabinsk

Prosoedov Roman

assistant researcher, South Ural State University, Russia, Chelyabinsk

АННОТАЦИЯ

В данной статье представлено моделирование следящей системы механизма подачи станка с ЧПУ с использованием "Arduino Uno".

ABSTRACT

This article presents a simulation of the servo system feeder CNC machine using "Arduino Uno".

Ключевые слова: ЧПУ; Следящая система. Keywords: CNC; feeder system.

Введение

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

^ created by free version of

S DociFreezer

приводится микроконтроллер Arduino Uno, с помощью которого осуществляется перемещение исполнительного механизма с продольной подачей станка с ЧПУ. В процессе эксплуатации возникает необходимость разгона, торможения, реверса электропривода, а также поддержание требуемой величины перемещения.

На данный момент существует несколько способов управления Автоматические системы управления электроприводами (АСУ ЭП):

• стабилизирующее

• программное

• следящее

Объектом нашего внимания являются программные АСУ ЭП, управляющие положением исполнительного органа по заранее заданной программе.

Описание системы

Для хорошей работоспособности нашей системы применяется принцип подчиненного управления электропривода. Его суть состоит в том, что для управления током якоря и угловой скоростью используется отдельный регулятор и отрицательная обратная связь по каждой координате. Контуры регулирования настраиваются на фильтр Баттерворта 2 порядка и имеют хорошие переходные процессы. Такое построение позволяет произвести оптимальную настройку с заданным качеством каждого контура и одновременно подчинить работу всех внутренних контуров регулированию основной выходной координаты системы

Рисунок 1. Общая функциональная схема

^ created by free versión of

é DociFreezer

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

Для изучения данной задачи выберем необходимый нам устройства:

• электропривод ЭТ-6

• двигатель постоянного тока 2ПН160КГУХЛ4

• датчик положения ВЕ178

• микроконтроллер Arduino Uno

Рисунок 2. Функциональная схема выбранной системы

Рисунок 3. Структурная схема системы без учета нелинейностей

хзад — входное воздействие;

x

ДП — выход с датчика положения; Дх — ошибка по контуру положения;

иРП — выход с регулятора положения;

идс — выход с датчика скорости;

— ошибка по контуру скорости;

ирс — выход с регулятора скорости;

и ДТ — выход с датчика тока;

— ошибка по контуру тока; иРТ — выход с регулятора тока; 1дв — ток якоря двигателя постоянного тока (ДПТ); ®дв — угловая скорость вращения вала ДПТ; Фдв — угол поворота вала ДПТ;

Так же учтем наши нелинейности и метод управления микроконтроллером в системе. У нас нет аналогового выхода у микроконтроллера, но можно управлять с помощью ШИМ.

Регуляторы тока и скорости и дополнительное усилительное звено с выхода ШИМ реализованы на операционных усилителях и их выходы не могут превосходить напряжения насыщения, поэтому нужно учитывать ограничение выходных сигналов этих регуляторов (в нашем случае ограничение будет происходить на величинах -10 В и +10 В). 8-ти разрядный ШИМ вносит квантование по уровню, поэтому выходное напряжение может принимать только одно из значений кратное единице младшего разряда ЦАП

иед - — « 0,005в ед 1024

Частота ШИМ: 30.52 Гц

Датчик положения также вносит квантование по уровню и времени. Квантование по уровню:

2п

рвир 0,025рад

Квантование по времени датчика : г - °-°°5с Определено из условия частоты опроса дискретного входа: ? - 200Гц Полученная нами система представлена в программе У1б81ш

^ сгеа!ес1 Ьу ^ее уетоп

д РооРгеегег

Рисунок 4. Модель системы в программе VisSim

Рисунок 5. Реакция системы на единичное ступенчатое воздействие модели системы в программе VisSim

Время регулирования — 0,47 с. Перерегулирование — 4 %.

Для правильной работы микроконтроллера, необходимо его запрограммировать. Листинг программы с кратким описанием представлен ниже.

Листинг программы работы микроконтроллера Arduino Uno

#include <PID_v1.h> double Setpoint, Input, Output;

PID myPID(&Input, &Output, &Setpoint,1,0,0, DIRECT);

int pulse = 0; // число пульсаций

int fadeAmount = 1; // шаг пульсаций

unsigned long currentTime;

unsigned long loopTime;

^ created by free version of

S DociFreezer

const int pin_A = 12; // pin 12 const int pin_B = 11; // pin 11 unsigned char encoder_A; unsigned char encoder_B; unsigned char encoder_A_prev=0; void setup() {

TCCR1B = TCCR1B & 0b11111000 | 0x05;// Частота ШИМ на ногах 9 и 10 при //делителе 1024 и частоте 30,52 Гц pinMode(pin_A, INPUT); pinMode(pin_B, INPUT); currentTime = millis(); loopTime = currentTime; Setpoint = 10;

myPID. SetMode(AUTOMATIC);

}

void loop() { currentTime = millis();

if(currentTime >= (loopTime + 5)){ // проверяем каждые 5мс (200 Гц) encoder_A = digitalRead(pin_A); // считываем состояние выхода А энкодера encoder_B = digitalRead(pin_B); // считываем состояние выхода B энкодера if((!encoder_A) && (encoder_A_prev)){ // если состояние изменилось с положительного к нулю if(encoder_B) {

// выход В в полож. сост., значит вращение по часовой стрелке // увеличиваем число пульсаций

if(pulse + fadeAmount) brightness += fadeAmount;

}

else {

// выход В в 0 сост., значит вращение против часовой стрелки // уменьшаем пульсации,

^ created by free version of

S DociFreezer

if(pulse - fadeAmount) brightness -= fadeAmount; }

}

encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла

Input = pulse *0.00783550168; myPID. Compute();

if (brightness>0) {

analogWrite(9,0utput); }

Заключение.

В данной статье мы привели пример использования нашего микроконтроллера Arduino Uno в следящей системе. Мы получили неплохие результаты и проверили работоспособность системы в программе VisSim.

Список литературы:

1. Бессекерский В.А. Теория систем автоматического регулирования/В.А. Бессекерский, Е.П. Попов, 3-е изд. М. Наука, 1975.

2. Павловска О.О. Теория автоматического управления: учебное пособие / О.О. Павловская, И.В. Чернецкая .изд. Челябинск: ИздательствоЮУрГУ,

else

{

analogWrite(10,0utput); }

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

loopTime = currentTime;

} }

2010. — 93 с.

ociFreezer

created by free version of

i Надоели баннеры? Вы всегда можете отключить рекламу.