Điều khiển vận tốc động cơ DC servo

12 567 3
Điều khiển vận tốc động cơ DC servo

Đ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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ ĐIỀU KHIỂN VẬN TỐC ĐỘNG CƠ DC SERVO Nhóm I.Giới thiệu Điều khiển động DC servo ứng dụng vi điều khiển Các linh kiện sử dụng project: DC servo, PIC16F877A, L298, LCD, ma trận phím I.Giới thiệu DC servo: 12V-encoder 300xung vòng PIC16F877A: dùng timer0,timer2,PWM (ở ta không dùng PWM bắn trực tiếp cho động mà thông qua diver L298) Ma trận phím: sử dụng keypad có sẵng proteus I.Giới thiệu Mạch chia làm phần : Mạch điều khiển:PIC để vận hành giải thuật PID, nhập xuất Mạch động lực: II.Giải thuật PID Chọn thông số PID ban đầu kp=, ki= ,kd= (try error) Thời gian lấy mẫu 25ms Ta có giải thuật PID: Err = dSpeed - rpm; P =(kp*Err); I =I +(ki*Err*sampling_time); D =kd*(Err - pre_Err)/sampling_time; PID += P + I +D; II.Giải thuật PID Tính toán thời gian ngắt timer2               Chọn tần số PWM bắn cho động 5KHz Ta có thời gian ngắt timer2 (precale=4) × × ( + TMR ) T= = 1/ 5000 20 MHz ⇒ TMR = 249 III.Mô #include #include #use delay (clock = 20M) #define LCD_ENABLE_PIN PIN_D2 #define LCD_RS_PIN PIN_D0 #define LCD_RW_PIN PIN_D1 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 #include #include #define sampling_time 25 // thoi gian lay mau la 25ms #define inv_sampling_time 40 // 1/thoi gian lay mau float kp = 25, ki = 0.05,kd = 0.08; unsigned int32 dSpeed = 0; signed int32 P = 0,I = 0, PID=0, D = 0, Err = 0,pre_Err = 0,rSpeed=0; float rpm = 0.0; float pulse=0.0, pre_pulse=0.0; int8 counter = 0; void Motor_speed_pid(void) { rSpeed=pulse-pre_pulse; // xung/25ms pre_pulse=pulse; //luu lai gia tri Err = 0.125*dSpeed - abs(rSpeed); //(dSpeed*300*0.025/60) xung/25ms - pulse xung/25ms P =kp*Err; I +=ki*Err*sampling_time/1000; D =kd*(Err - pre_Err)*inv_sampling_time; PID += P + I +D; if(PID > 249) PID = 250; if(PID ...I.Giới thiệu Điều khiển động DC servo ứng dụng vi điều khiển Các linh kiện sử dụng project: DC servo, PIC16F877A, L298, LCD, ma trận phím I.Giới thiệu DC servo: 12V-encoder 300xung... tiếp cho động mà thông qua diver L298) Ma trận phím: sử dụng keypad có sẵng proteus I.Giới thiệu Mạch chia làm phần : Mạch điều khiển: PIC để vận hành giải thuật PID, nhập xuất Mạch động lực:... + I +D; II.Giải thuật PID Tính toán thời gian ngắt timer2               Chọn tần số PWM bắn cho động 5KHz Ta có thời gian ngắt timer2 (precale=4) × × ( + TMR ) T= = 1/ 5000 20 MHz ⇒ TMR = 249

Ngày đăng: 07/01/2016, 16:12

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Cảm ơn thầy và các bạn đã lắng nghe

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan