Статья опубликована в рамках: XLV Международной научно-практической конференции «Технические науки - от теории к практике» (Россия, г. Новосибирск, 28 апреля 2015 г.)
Наука: Технические науки
Секция: Информатика, вычислительная техника и управление
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
Статья опубликована в рамках:
Выходные данные сборника:
СЛЕДЯЩАЯ СИСТЕМА МЕХАНИЗМА ПОДАЧИ СТАНКА С ЧПУ С ИСПОЛЬЗОВАНИЕМ “ARDUINO UNO”
Боос Глеб Олегович
лаборант-исследователь, Южно-Уральский Государственный Университет, РФ, г. Челябинск
E -mail:
Гордеев Алексей Сергеевич
лаборант-исследователь, Южно-Уральский Государственный Университет, РФ, г. Челябинск
Просоедов Роман Александрович
лаборант-исследователь, Южно-Уральский Государственный Университет, РФ, г. Челябинск
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.
Введение
В наши дни автоматизация развивается все с более высокими оборотами, что позволяет двигать прогресс человечества вперед. Так как большинство производственных машин включают в себя электропривод, то необходима задача его управления, что выполняют микроконтроллеры. В данной статье приводится микроконтроллер Arduino Uno, с помощью которого осуществляется перемещение исполнительного механизма с продольной подачей станка с ЧПУ. В процессе эксплуатации возникает необходимость разгона, торможения, реверса электропривода, а также поддержание требуемой величины перемещения.
На данный момент существует несколько способов управления Автоматические системы управления электроприводами (АСУ ЭП):
· стабилизирующее
· программное
· следящее
Объектом нашего внимания являются программные АСУ ЭП, управляющие положением исполнительного органа по заранее заданной программе.
Описание системы
Для хорошей работоспособности нашей системы применяется принцип подчиненного управления электропривода. Его суть состоит в том, что для управления током якоря и угловой скоростью используется отдельный регулятор и отрицательная обратная связь по каждой координате. Контуры регулирования настраиваются на фильтр Баттерворта 2 порядка и имеют хорошие переходные процессы. Такое построение позволяет произвести оптимальную настройку с заданным качеством каждого контура и одновременно подчинить работу всех внутренних контуров регулированию основной выходной координаты системы
Рисунок 1. Общая функциональная схема
В общем случае настройка контуров и выбор параметров регуляторов координат производятся по техническому оптимуму.
Для изучения данной задачи выберем необходимый нам устройства:
· электропривод ЭТ-6
· двигатель постоянного тока 2ПН160LГУХЛ4
· датчик положения ВЕ178
· микроконтроллер Arduino Uno
Рисунок 2. Функциональная схема выбранной системы
Рисунок 3. Структурная схема системы без учета нелинейностей
— входное воздействие;
— выход с датчика положения;
— ошибка по контуру положения;
— выход с регулятора положения;
— выход с датчика скорости;
— ошибка по контуру скорости;
— выход с регулятора скорости;
— выход с датчика тока;
— ошибка по контуру тока;
— выход с регулятора тока;
— ток якоря двигателя постоянного тока (ДПТ);
— угловая скорость вращения вала ДПТ;
— угол поворота вала ДПТ;
Так же учтем наши нелинейности и метод управления микроконтроллером в системе. У нас нет аналогового выхода у микроконтроллера, но можно управлять с помощью ШИМ.
Регуляторы тока и скорости и дополнительное усилительное звено с выхода ШИМ реализованы на операционных усилителях и их выходы не могут превосходить напряжения насыщения, поэтому нужно учитывать ограничение выходных сигналов этих регуляторов (в нашем случае ограничение будет происходить на величинах -10 В и +10 В). 8-ти разрядный ШИМ вносит квантование по уровню, поэтому выходное напряжение может принимать только одно из значений кратное единице младшего разряда ЦАП
.
Частота ШИМ: 30.52 Гц
Датчик положения также вносит квантование по уровню и времени.
Квантование по уровню:
Квантование по времени датчика : Определено из условия частоты опроса дискретного входа: Полученная нами система представлена в программе VisSim
Рисунок 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;
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 сост., значит вращение против часовой стрелки
// уменьшаем пульсации,
if(pulse - fadeAmount) brightness -= fadeAmount;
}
}
encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла
Input = pulse *0.00783550168;
myPID.Compute();
if (brightness>0)
{
analogWrite(9,Output);
}
else
{
analogWrite(10,Output);
}
loopTime = currentTime;
}
}
Заключение.
В данной статье мы привели пример использования нашего микроконтроллера Arduino Uno в следящей системе. Мы получили неплохие результаты и проверили работоспособность системы в программе VisSim.
Список литературы:
1.Бессекерский В.А. Теория систем автоматического регулирования/В.А. Бессекерский, Е.П. Попов, 3-е изд. М. Наука, 1975.
2.Павловска О.О. Теория автоматического управления: учебное пособие / О.О. Павловская, И.В. Чернецкая .изд. Челябинск: ИздательствоЮУрГУ, 2010. — 93 с.
дипломов
Оставить комментарий