1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế driver cho DC servo

116 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • MỤC LỤC

  • TÓM TẮT

  • CHƯƠNG 1: TỔNG QUAN

    • 1.1. Tìm hiểu về động cơ DC servo

    • 1.2. Ứng dụng của động cơ DC servo

  • CHƯƠNG 2: ĐỘNG CƠ DC SERVO

    • 2.1. Mô hình toán học động cơ DC kích từ độc lập

      • 2.1.1. Thiết lập vật lý:

      • 2.1.2. Mô hình toán học:

        • 2.1.2.1. Những phương pháp mô tả toán học hệ thống

        • 2.1.2.2. Mô tả toán học hệ thống theo từng phương pháp

    • 2.2. Mô hình điều khiển động cơ DC SERVO

      • 2.2.1. Mô hình

      • 2.2.2.Sơ đồ mạch điều khiển:

      • 2.2.3. Phần mềm:

      • 2.2.4. Quỹ đạo vận tốc của hệ thống:

      • 2.2.5. Các vấn đề khi điều khiển động cơ DC SERVO:

        • 2.2.5.1.Đặc tính kỹ thuật của động cơ DC SERVO

        • 2.2.5.2.Các vấn đề gặp phải:

    • 2.3.Giới thiệu một số bộ điều khiển động cơ DC Servo:

      • 2.3.1. Bộ điều khiển DC SERVO dùng vi điêu khiển:

      • 2.3.2. Bộ điều khiển DC SERVO dùng vi điều khiển AVR:

  • CHƯƠNG 3: PHƯƠNG PHÁP ĐIỀU KHIỂN VÀ MÔ PHỎNG MATLAB

    • 3.1. Phương pháp điều khiển PID

    • 3.2. Phương pháp xác định tham số bộ điều khiển PID:

    • 3.3. Áp dụng thuật toán điều khiển:

    • 3.4. Mô phỏng matlab:

  • CHƯƠNG 4: TÍNH TOÁN THIẾT KẾ HỆ THỐNG

    • 4.1.Thiết kế hệ thống chuyền động:

      • 4.1.1.Sơ đồ động:

      • 4.1.2.Chọn động cơ:

      • 4.1.3.Khớp nối:

        • 4.1.3.1. Dữ liệu ban đầu:

        • 4.1.3.2. Chọn khớp nối:

      • 4.1.4.Bộ truyền động thanh trượt tịnh tiến:

      • 4.1.5.Trục vitme–đai ốc bi:

      • 4.1.6.Ổ lăn:

    • 4.2. Thiết kế hệ thống điều khiển:

      • 4.2.1. Thiết kế hệ thống mạch động lực:

        • 4.2.1.1. Nguồn nuôi động cơ

        • 4.2.2.2. Mạch công suất H – Bridge:

        • 4.2.2.3. Mạch điều chế độ rọng xung.

        • 4.2.2.4. Mạch cách ly điện áp cao với vi điều khiển.

        • 4.2.2.5. Mạch giới hạng điện áp cao.

        • 4.2.2.6. Mạch đo lường dòng điện.

        • 4.2.2.7. Mạch lấy tính hiệu ENCODER.

      • 4.2.2. Thiết bị mạch điều khiển (DRIVER).

    • 4.3.Các giải pháp điều khiển:

      • 4.3.1. Giải pháp đo tốc độ và điều khiển chiều quay:

      • 4.3.2. Giải pháp đo vị trí

      • 4.3.4.giải pháp điều khiển chế độ rộng xung (pulse width modulation)

      • 4.3.5.Giải pháp đo dòng điện

      • 4.3.6.Giải thuật phần mêm chọ hệ thống.

      • 4.3.7.Giải thuật phần mêm chọ các chế độ điều khiển

    • 4.4.Chương trình phần mềm nạp cho PIC:

  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.

    • 5.1. Kết luận.

    • 5.2. Hướng phát triển

  • TÀI LIỆU THAM KHẢO

  • Phụ Lục

Nội dung

ĐỒN THANH NIÊN CỘNG SẢN HỒ CHÍ MINH BAN CHẤP HÀNH TP HỒ CHÍ MINH CƠNG TRÌNH DỰ THI GIẢI THƯỞNG SINH VIÊN NGHIÊN CỨU KHOA HỌC EURÉKA LẦN THỨ XX NĂM 2018 TÊN CƠNG TRÌNH: THIẾT KẾ DRIVER CHO DC SERVO LĨNH VỰC NGHIÊN CỨU: KỸ THUẬT CƠNG NGHỆ CHUN NGÀNH: ĐIỆN, ĐIỆN TỬ Mã số cơng trình: …………………………… i MỤC LỤC MỤC LỤC i TÓM TẮT CHƯƠNG 1: TỔNG QUAN 1.1 Tìm hiểu động DC servo 1.2 Ứng dụng động DC servo CHƯƠNG 2: ĐỘNG CƠ DC SERVO 2.1 Mơ hình tốn học động DC kích từ độc lập 2.1.1 Thiết lập vật lý: 2.1.2 Mơ hình tốn học: 2.1.2.1 Những phương pháp mơ tả tốn học hệ thống 2.1.2.2 Mô tả toán học hệ thống theo phương pháp 2.2 Mơ hình điều khiển động DC SERVO 12 2.2.1 Mơ hình 12 2.2.2.Sơ đồ mạch điều khiển: 14 2.2.3 Phần mềm: 15 2.2.4 Quỹ đạo vận tốc hệ thống: 15 2.2.5 Các vấn đề điều khiển động DC SERVO: 16 2.2.5.1.Đặc tính kỹ thuật động DC SERVO 16 2.2.5.2.Các vấn đề gặp phải: 16 2.3.Giới thiệu số điều khiển động DC Servo: 17 2.3.1 Bộ điều khiển DC SERVO dùng vi điêu khiển: 17 2.3.2 Bộ điều khiển DC SERVO dùng vi điều khiển AVR: 18 CHƯƠNG 3: PHƯƠNG PHÁP ĐIỀU KHIỂN VÀ MÔ PHỎNG MATLAB 22 3.1 Phương pháp điều khiển PID 22 3.2 Phương pháp xác định tham số điều khiển PID: 24 3.3 Áp dụng thuật toán điều khiển: 25 ii 3.4 Mô matlab: 30 CHƯƠNG 4: TÍNH TỐN THIẾT KẾ HỆ THỐNG 35 4.1.Thiết kế hệ thống chuyền động: 36 4.1.1.Sơ đồ động: 36 4.1.2.Chọn động cơ: 36 4.1.3.Khớp nối: 38 4.1.3.1 Dữ liệu ban đầu: 38 4.1.3.2 Chọn khớp nối: 39 4.1.4.Bộ truyền động trượt tịnh tiến: 40 4.1.5.Trục vitme–đai ốc bi: 42 4.1.6.Ổ lăn: 43 4.2 Thiết kế hệ thống điều khiển: 47 4.2.1 Thiết kế hệ thống mạch động lực: 48 4.2.1.1 Nguồn nuôi động 48 4.2.2.2 Mạch công suất H – Bridge: 49 4.2.2.3 Mạch điều chế độ rọng xung 50 4.2.2.4 Mạch cách ly điện áp cao với vi điều khiển 51 4.2.2.5 Mạch giới hạng điện áp cao 52 4.2.2.6 Mạch đo lường dòng điện 53 4.2.2.7 Mạch lấy tính hiệu ENCODER 54 4.2.2 Thiết bị mạch điều khiển (DRIVER) 55 4.3.Các giải pháp điều khiển: 61 4.3.1 Giải pháp đo tốc độ điều khiển chiều quay: 61 4.3.2 Giải pháp đo vị trí 65 4.3.4.giải pháp điều khiển chế độ rộng xung (pulse width modulation) 65 4.3.5.Giải pháp đo dòng điện 68 4.3.6.Giải thuật phần mêm chọ hệ thống 70 4.3.7.Giải thuật phần mêm chọ chế độ điều khiển 74 4.4.Chương trình phần mềm nạp cho PIC: 77 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78 5.1 Kết luận 78 iii 5.2 Hướng phát triển 81 TÀI LIỆU THAM KHẢO 82 Phụ Lục 84 TÓM TẮT Động DC Servo động chiều kích từ độc lập có encoder ứng dụng rộng rãi nhiều lĩnh vực thực tiễn, có nhiều đề tài thiết kế điều khiển cho động DC Servo đề cập nhiều sách báo, tạp trí internet Việc ứng dụng động DC vào sản xuất nghiên cứu khoa học mang lại thành tựu định Tuy nhiên để động DC hoạt động tốt ta phải thiết kế cho điều khiển giúp cho động hoạt động cách linh hoạt Hiện có nhiều điều khiển làm tốt việc đó, sau khoảng thời gian tìm hiểu nghiên cứu Nhóm thống dùng phương pháp kinh điển điều khiển PID, điều khiển PID đáp ứng tốt yêu cầu việc điều khiển động DC servo, điều khiển ứng dụng rộng rãi điều khiển đơn giản lại linh hoạt áp dụng cho nhiều loại động cơ, nhóm chọn đề tài nhằm tìm hiểu kĩ cách hoạt động động DC servo thiết kế điều khiển cho động DC servo Để thực đề tài, nhóm thực theo thứ tự sau: khảo sát chọn giải pháp ứng dụng động cơ, sau tính tốn thiết kế, mơ khí điều khiển phần mềm Matlab, Solidworks, Altium, sau thi cơng mơ hình viết code điều khiển, cuối kiểm tra hiệu chỉnh ĐẶT VẤN ĐỀ Lý chọn đề tài: Trên giới, cách mạng máy tính điện tử có tác động lớn vào sản xuất công nghiệp Đặc biệt, ngành công nghiệp chế tạo khuôn mẫu đại, công nghệ thông tin (CNTT) ứng dụng rộng rãi, để nhanh chóng chuyển đổi trình sản xuất theo kiểu truyền thống sang sản xuất cơng nghệ cao (CNC); nhờ giai đoạn thiết kế chế tạo khôn mẫu bước tự động hố (CAD/CAM - đó: CAD thiết kế với trợ giúp máy tính điện tử; CAM sản xuất với trợ giúp máy tính điện tử, cịn gọi gia cơng điều khiển số) Bên cạnh đó, ngồi việc đầu tư máy móc cơng nghệ mới, nhiều thành tựu khoa học kĩ thuật nâng cao đời sống tiện ích xã hội Vì thế, để đáp ứng nhu cầu ngày cao xã hội sản xuất đòi hỏi người kĩ sư phải khơng ngừng tìm tịi sáng tạo công nghiệp 4.0 Với tư sinh viên trường, để tổng hợp kiến thức làm quen với mơi trường nghiên cứu, mục đích chúng em thực đề tài Mục đích Nghiên cứu đề tài: Đề tài “Định vi tuyến tính dùng DC Servo” dùng vi điều khiển nhằm đặt mục tiêu giải tổng thể vấn đề điều khiển động DC servo từ phần thiết kế điều khiển chế tạo driver điều khiển số mơ hình thực tế Ngun cức kết hợp kiến thức lĩnh vực lý thuyết điều khiển tự động, truyền động điện, điện tử công suất, kỹ thuật vi điều khiển gia cơng khí để thực ứng dụng cụ thể Đối tượng nghiên cứu : Tính tốn thiết kế Driver điều khiển động servo ứng dụng Phạm vi nghiên cứu:  Nghiên cứu mô hình tốn học động điện chiều DC  Cấu hình điều khiển DC servo  Lựa chọn phương pháp điều khiển thích hợp, tính tốn chọn điều khiển  Thiết kế phần điều khiển DC servo sở vi điều khiển thích hợp Ý nghĩa khoa học ý nghĩa thực tiễn, quy mô phạm vi áp dụng:  Làm mơ hình học tập cho học sinh, sinh viên nhằm kích thích phát triển khả xây dựng mơ hình tự động hóa khác  Thiết kế chế tạo mơ hình kiểm nghiệm thực tế  Bản vẽ chi tiết tính tốn chi tiết máy CHƯƠNG 1: TỔNG QUAN 1.1 Tìm hiểu động DC servo Động DC động bước vốn hệ hồi tiếp vòng hở ─ ta cấp điện để động quay chúng quay không biết, kể động bước động quay góc xác định tùy vào xung nhận Việc thiết lặp hệ thống điều khiển để xác định ngăn cản chuyển động quay động làm động không quay không dễ dàng Mặt khác, động servo thiết kế cho hệ thống hồi tiếp vịng kín Tín hiệu ngõ động nối với mạch điều khiển Nếu có lí ngăn cản chuyển động quay động cơ, cấu hồi tiếp nhận thấy tín hiệu chưa đạt vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động đạt điểm xác 1.2 Ứng dụng động DC servo Động servo có nhiều kiểu dáng kích thước, sử dụng nhiều máy khác Sau số ứng dụng động servo vào công nghiệp: Trong hệ thống băng tải, dây chuyền đóng gói phân loại sản phẩm hệ thống servo cần thiết để thực cơng việc địi hỏi việc xác nhằm đồng sản phẩm Hình 1.0: Băng tải rong dây truyền sản xuất xe Maxda Trong hệ thống tay máy hay robot công nghiệp, chuyển động bậc tự hay chuyển động tịnh tuyến đến vị trí xác cao động servo thực Các điều khiển lấy thông tin phản hồi từ động servo để tính toán đưa giải thuật điều khiển động thực quỹ đạo cho trước Đây vấn đề mà đề tài muốn hướng đến phát triển Hình 1.1: Robot Servo trục Cơng Nghiệp Trong hệ thống truyền động quay angten parabol, động servo dùng để quay xác đến hướng dò kênh Các hướng lưu nhớ thộng qua góc quay vị trì mà hồi tiếp đưa cho vi xử lý Hình 1.2: angten parabol 98 int8 CheDo=0; // int16 value=0; //+++++++++++++++++++++++++++++++++++++++++ //xxxxxxxxxxxxxx LCD xxxxxxxxxxxxxxxxxxxxx #define LCD_ENABLE_PIN PIN_D0 #define LCD_RS_PIN PIN_D1 #define LCD_RW_PIN PIN_D2 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 //+++++++++++++++++++++++++++++++++++++++++ //xxxxxxxxxxxxxx- input -xxxxxxxxxxxxxx #define P4 input(PIN_A0) #define P3 input(PIN_A1) #define P2 input(PIN_A2) #define P1 input(PIN_A3) #define P5 input(PIN_A4) #define P6 input(PIN_E0) //+++++++++++++++++++++++++++++++++++++++++ //xxxxxxxxxxxxx encoder xxxxxxxxxxxxxxxxx //unsigned int16 Counter=0; long int16 SoXungDoDuoc=0; //dem so lan tran//unsigned 99 //, SoXungVanToc=0 #define KENH_A input(PIN_B0) #define KENH_B input(PIN_C0) // -//xxxxxxxxxxxxxxxx PWM -CONTROL - OUTPUTxxxxxxxxxxxxx #bit N1 = 0x06.5 //RB5 #bit T1 = 0x06.4 //RB4 #bit N2 = 0x06.3 //RB3 #bit T2 = 0x06.2 //RB2 #bit trisINB5 = 0x86.5 #bit trisINB4 = 0x86.4 #bit trisINB3 = 0x86.3 #bit trisINB2 = 0x86.2 // - cac bien PID -//Dinh nghia cac duong dieu khien motor #define Sampling_time #define inv_Sampling_time #define period 75 //thoi gian lay mau (ms) 0.75 // 1/Sampling_time 700 // gia tri max PWM (chu ky) signed int16 Output=0, pwm=0; float Kp=3 , Kd=1, Ki=0.02; //thanh phan PID float pPart=0, iPart=0, dPart=0; //thanh phan PID long int16 old_err=0; long int16 dodai=0, err=0, dodai2=0; 100 long int16 xung=0; //////////////////////////////////////////////////////////////////////////////////////////////////////////// /* BIEN TRUYEN NHAN UART */ int1 Enable_Uart = 0; //int8 check; /**********************************************************/ /* Ma dieu khien bo dieu khien 2*/ //int8 OK = 0x01; //int8 NotOK = 0x02; int8 KichHoatY = 0x03; int8 Vezero = 0x04; /**************************************************************/ int16 kk=0; 101 Chương trình cho PIC #include // dmmm #include int1 PID_EN; void _KhoiTaoTIMER1() // tinh timer ngat ngoai (25ms) { //cai dat TIMER //T1_INTERNAL: chon xung noi (xung he thong) lam nguon xung cho TIMER1 //T1_DIV_BY_1: chon ti le la 1:1 cho TIMER1 setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); set_timer1(18661);//cai gia tri dem ban dau cho TIMER1 la 49911 enable_interrupts(INT_TIMER1);//cho phep ngat TIMER1 //tinh thoi gian de hoan dem so cho TIMER1 //T = * (1/Fosc) * (Pres) //pres chon bo chia // = * (1/20000000) * = 1.6us //vay thoi gian de hoan 65536(gia tri max cua timer1) // se la: 1.6 * 65536 = ? //25ms = 25000us = (65536-value)*1.6us // 15625 = 65536-value // value = 65536-15625 // value = 49911 //=> 10ms = 59286 102 //=> 50ms = 14286 //=> 75ms = 18661 //! 1000ms = 64911=> 2000ms=64286 } void _KhoiTaoNgatNgoai() // tao su kien ngat ngoai { enable_interrupts(INT_EXT);//cho phep ngat ngoai hoat dong enable_interrupts(INT_EXT_H2L);//khi tin hieu chuyen tu cao xuong thap clear_interrupt(INT_EXT); } void Set_Do_Dai() { int8 tmp[2]; for(int i = 0; i < 2; i++) { while(!kbhit()); tmp[i] = (int8)getch(); } int16 buf; buf = ((int16)tmp[1]&0x00FF); buf = buf*256 + tmp[0]; dodai = buf; 103 xung = (dodai*100)/12.25; //xung = (dodai*100)/3; } void home() { if(cm==1) { PID_EN = 0; T1 = 0; N1 = 1; T2 = 0; N2 = 1; pwm=800; set_pwm1_duty(pwm); lcd_putc("\f"); lcd_gotoxy(1,1); printf(lcd_putc,"home "); } else { pwm=0; set_pwm1_duty(pwm); lcd_putc("\f"); lcd_gotoxy(1,1); 104 printf(lcd_putc,"finit"); lcd_gotoxy(1,2); printf(lcd_putc,"pwm=%ld",output); dodai=0; } } void CheckActive() { while(!kbhit()); active = (int8)getch(); if(active == KichHoatY ) { putchar(KichHoatY); PID_EN = 1; isDone = 0x00; } while(!kbhit()); active = (int8)getch(); if(active == Vezero) { cm=1; if(!P1||!P2) { cm=0; 105 } } else { PID_EN = 0; } } void Da_Chay_Xong() { putchar(OK); } /******************************/ #INT_TIMER1 void _NgatTIMER1(void)//chuong trinh phuc vu ngat TIMER1 { //viet chuoog trinh ngat o day set_timer1(18661);//thoi gian xay tran setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); if (PID_EN) { err = xung - SoXungDoDuoc; pPart=kp*err; iPart +=Ki*err*Sampling_time; dPart=kd*inv_Sampling_time*(err+old_err)/1000; 106 old_err=err; output += pPart + iPart + dPart; if (output >=period) output = period; if (output =0) { T1 = 1; // xac dinh chieu quay N1 = 0; T2 = 1; N2 = 0; pwm = output; // gan float -> 8bit } else { T1 = 0; N1 = 1; T2 = 0; N2 = 1; } if(pwm == 0) { putchar(isDone); } } if(err

Ngày đăng: 04/03/2021, 22:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w