Автор работы: Пользователь скрыл имя, 05 Октября 2011 в 18:52, дипломная работа
Современный электропривод представляет собой конструктивное единство электромеханического преобразователя энергии (двигателя), силового преобразователя и устройства управления. Он обеспечивает преобразование электрической энергии в механическую в соответствии с алгоритмом работы технологической установки. Сфера применения электрического привода в промышленности, на транспорте и в быту постоянно расширяется. В настоящее время уже более 60% всей вырабатываемой в мире электрической энергии потребляется электрическими двигателями. Следовательно, эффективность энергосберегающих технологий в значительной мере определяется эффективностью электропривода. Разработка высокопроизводительных, компактных и экономичных систем привода является приоритетным направлением развития современной техники.
Введение 6
1 Анализ объекта управления 8
1.1 Основные требования к объекту управления 8
1.2 Принцип работы БДПТ 10
1.3 Управление шаговым двигателем 14
1.4 Описание объекта управления 17
1.5 Анализ целей управления 17
2 Обзорный анализ существующих аналогов СУ 18
3 Построение структурной схемы СУ 20
4 Проектирование принципиальной схемы СУ 22
4.1 Выбор управляющего микроконтроллера 22
4.1.1 Основные требования к микроконтроллеру 22
4.1.2 Анализ аппаратных ресурсов микроконтроллера и обоснование их использования 23
4.1.3 Модуль микроконтроллера 24
4.2 Проектирование силовой части схемы 25
4.2.1 Устройство сопряжения и транзисторный ключ 25
4.2.2 Датчики положения ротора 27
4.2.3 Оптический энкодер 29
4.2.4 Разработка принципиальной схемы блока питания 32
4.3 Проектирование интерфейса пользователя 32
4.3.1 Модуль ЖК-дисплея 32
4.3.2 Устройство сброса микроконтроллера 34
5 Синтез алгоритма СУ 35
5.1 Разработка алгоритма микроконтроллера 35
5.2 Процедура инициализации 36
5.3 Основной цикл программы 38
5.4 Обработка прерывания QEI 38
5.5 Отладка программы микроконтроллера в среде MPLAB 39
5.6 Настройка параметров среды программирования 40
5.7 Создание нового проекта 40
5.8 Создание основного файла проекта 41
5.9 Подключение дополнительных файлов проекта 41
6 Технологическая часть 42
6.1 Программирование микроконтроллера 42
6.2 Разработка печатной платы 43
6.2.1 Общие сведения о системе проектирования печатных плат ACCEL P-CAD 2002 44
6.2.2 Технология изготовления печатных плат 44
6.2.3 Разработка печатных плат системы управления и силовой части 46
7 Экономическая часть 51
7.1 Расчет стоимости опытного образца 51
7.1.1 Расчет стоимости основных материалов 51
7.1.2 Расчет стоимости покупных изделий 52
7.2 Расчет стоимости проектирования и изготовления устройства 54
7.2.1 Расчет основной заработной платы 54
7.2.2 Расчет дополнительной заработной платы 54
7.2.3 Отчисления на социальные нужды 54
7.2.4 Общая стоимость проектирования и изготовления устройства 55
7.3 Общехозяйственные расходы. 55
7.4 Расчет полной стоимости устройства 56
7.5 Экономический эффект от создания устройства 56
8 Охрана труда и окружающей среды 57
8.1 Охрана труда 57
8.1.1 Разработка системы управления 57
8.1.2 Изготовление печатных плат системы управления и силовой части 60
8.1.3 Эксплуатация и обслуживание системы управления 63
8.2 Охрана окружающей среды 64
8.2.1 Охрана окружающей среды при работе на ПЭВМ 65
8.2.2 Охрана окружающей среды при работах по пайке и лужению 65
8.2.3 Экономия ресурсов и утилизация прибора 66
Заключение 68
Список литературы 69
Приложение А 70
Приложение Б 71
Приложение В 73
Приложение Г 74
Приложение Д 92
void LCD_ERror(void)
{
LATFbits.LATF2 = 1; // А0 = 1 - вывод данных
for( i=0; i<2000 ; i++);
LCD_WriteNibble(6); //
Продолжение приложения Г
LCD_WriteNibble(15); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(12); //
LCD_WriteNibble(1); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(11); //
LCD_WriteNibble(8); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(11); //
LCD_WriteNibble(2); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(11);
LCD_WriteNibble(10); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(6);
LCD_WriteNibble(1); //
for( i=0;
i<2000 ; i++); //задержка 2мс
}
/*****************************
вывод на ЖК - дисплей сообщение "разгон"
******************************
void LCD_Razgon(void)
{
LATFbits.LATF2 = 1; // А0 = 1 - вывод данных
for( i=0; i<2000 ; i++);
LCD_WriteNibble(7); //
LCD_WriteNibble(0); //
Продолжение приложения Г
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(6); //
LCD_WriteNibble(1); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(11); //
LCD_WriteNibble(7); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(11); //
LCD_WriteNibble(4); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(6);
LCD_WriteNibble(15); //
for( i=0;
i<2000 ; i++); //задержка 2мс
LCD_WriteNibble(11);
LCD_WriteNibble(13); //
for( i=0;
i<2000 ; i++); //задержка 2мс
}
/*****************************
установка адреса для вывода символа
******************************
void LCD_setDDRAM(unsigned char set)
{
LATFbits.LATF2 = 0; // А0 = 0 - запись команд
for( i=0; i<2000 ; i++);
LATFbits.LATF3 = 1; // E-разрешает запись команды/данных
for( i=0; i<2000
; i++);
Продолжение приложения Г
LATCbits.LATC13 = 1; // DB7 = 1
if(set & 0x040)
LATBbits.LATB2 = 1; // DB6
else
LATBbits.LATB2 = 0;
if(set & 0x020)
LATBbits.LATB1 = 1; // DB5
else
LATBbits.LATB1 = 0;
if(set & 0x010)
LATBbits.LATB0 = 1; // DB4
else
LATBbits.LATB0 = 0;
LATFbits.LATF3 = 0; // E=0
for( i=0; i<2000
; i++);
LCD_WriteNibble(set);
LATFbits.LATF2
= 1; // А0 = 1
}
/*****************************
инициализация ЖК дисплея, на который выводится информация о частоте вращения заготовки
******************************
void InitLCD(void)
{
DelayNmSec(700);
LATFbits.LATF2 = 0; // А0=0 - запись команд
for( i=0; i<1000
; i++);
Продолжение приложения Г
LCD_WriteNibble(3); //
DelayNmSec(20);
LCD_WriteNibble(3); //
DelayNmSec(20);
LCD_WriteNibble(3); //
DelayNmSec(100);
// устанавливаем разряд интерфейса - 4 бита
LCD_WriteNibble(2); //
DelayNmSec(100);
//включили дисплей
LCD_WriteNibble(0); //
LCD_WriteNibble(12); //
DelayNmSec(20);
// очистили индикатор
LCD_WriteNibble(0); //
LCD_WriteNibble(1); //
DelayNmSec(20);
LATFbits.LATF2 = 1; // A0=1
}
/*****************************
******************************
void InitMCPWM(void)
{
PTPER
= FCY/FPWM - 1;
PWMCON1 = 0x0700; // disable PWMs
OVDCON = 0x0000; // allow control using OVD
PDC1 = 100; // init PWM 1, 2 and 3 to 100
PDC2 = 100;
PDC3 = 100;
SEVTCMP = PTPER;
PWMCON2 = 0x0F00; // 16 postscale values
Продолжение приложения Г
PTCON = 0x8000; // start PWM
}
/*****************************
Таймер используется для определения скорости вращения заготовки
******************************
void InitTMR3(void)
{
T3CON = 0x0030; // internal Tcy/256 clock
TMR3 = 0;
PR3 = 0xFFFF;
}
/*****************************
******************************
void DelayNmSec(unsigned int N)
{
unsigned int j;
while(N--)
for(j=0;j < MILLISEC;j++);
}
Рисунок
ПД.1 Печатная плата системы управления
Продолжение приложения Д
Рисунок
ПД.2 Печатная плата силовой части