Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 86 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
86
Dung lượng
1,22 MB
Nội dung
LVTN:điều khiển tốc độ động DC dùng VDK LỜI CẢM ƠN Em xin chân thành cảm ơn nhà trường tạo điều kiện cho em học tập nghiên cứu suốt năm qua Em xin thành cảm ơn q thấy tận tình truyền đạt kiến kiến thức bổ ích cho em, q thầy khoa diện điện tử giảng dạy suốt trình học tập thời gian thực luận văn tốt nghiệp Xin chân thành cảm ơn thầy nguyễn phương hướng dẫn tận tình em hồn thành tốt nhiệm vụ SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Họ tên : HỒ XUÂN NGUYÊN Lớp :06D3N MSSV :510657D Ngành :Điện- Điện Tử Đề tài:ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ DÙNG VI ĐIỀU KHIỂN Nhận xét Giáo Viên Hướng Dẫn: - Ngày … tháng năm … Giáo Viên Hướng Dẫn SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Họ tên : HỒ XUÂN NGUYÊN Lớp :06D3N MSSV :510657D Ngành :Điện- Điện Tử Đề tài:ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ DÙNG VI ĐIỀU KHIỂN Nhận xét Giáo Viên Phản Biện Ngày … tháng năm … Giáo viên phản biện SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK PHẦN I: TỔNG QUAN CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ DC I GIỚI THIỆU TỔNG QT Trong đời sống cơng nghiệp hố, đại hố máy móc thiết bị khơng thể thiếu ,trong năm gần chứng kiến nhảy vọt mặt Các mặt hàng khác phục vụ cho cơng việc, nhu cầu giải trí cao Mà động thiếu với loại máy móc thiết bị đó, máy móc đại động cũa phải đại Muốn nắm bắt dùng máy móc thiết bị cách hiệu phải tác động vào để phát huy hết tiềm lực Động DC đối tượng điều khiển thường gặp thực tế, ứng dụng rộng rãi cơng nghiệp, dân dụng, quốc phòng Trong dây chuyền sản xuất, động dùng để kéo băng tải hay động dùng cán vật liệu, giấy, nhựa, cao su, thép ứng dụng công nghiệp dệt may… Hay động điện chiều dùng robot Với ứng dụng động DC nhiều nên em chọn đề tài điều khiển tốc độ động DC để nghiên cứu II DIỄN GIẢI ĐỀ TÀI Từ thực tế sống công nghiệp người, họ muốn máy móc đảm nhiệm hồn thành tốt công việc họ.động dc phận cần thiết dây chuyền cơng nghiệp Có nhiều phương pháp để lập trình điều khiển cho động dc vi điều khiển dùng 8051,PIC,AVR PLC.với PIC 18F4431 thường dùng để điều khiển động có nhiều ứng dụng khác điều khiển SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK III SƠ ĐỒ KHỐI CỦA HỆ THỐNG PHÍM HIỂN THỊ KHỐI DRIVER VÀ ĐỘNG LỰC VI ĐIỀU KHIỂN NGUỒN ĐIỀU KHIỂN 5Vdc SVTH:HỒ XUÂN NGUYÊN ĐỘNG CƠ NGUỒN 12Vdc Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK CHƯƠNG II: GIỚI THIỆU PIC 18F4431 PIC chữ viết tắt "Programmable Intelligent Computer" (Máy tính khả trình thơng minh) với nhớ chương trình từ 512 Word đến 32K Word Sơ đồ khối PIC 18F4431 PIC 18F4431 có 40 chân gồm ports I/O Trong có số chân đa cơng dụng, mội chân hoạt động đường xuất nhập I/O chân chức đặc biệt dùng để giao tiếp với thiết bị ngoại vi SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Sơ đồ chân PIC 18F4431 I TÍNH NĂNG Modun điều khiển PWM 14 bit kênh ngõ bù Hổ trợ thao tác cạnh mức Ngõ vào bảo vệ lỗi phần cứng Cập nhận đồng thời chu kỳ nhiệm vụ chu kỳ Linh hoạt với ngõ kích khởi kiện Modun motion feedback Ba kênh chốt/bắt giữ ngõ vào riêng biệt Chế độ vận hành linh hoạt cho ứng dụng đo chu kỳ độ rộng xung Modun giao diện cảm biến Hall Tính kích khởi kiện đến modun khác Giao diện Quadrature encoder Hai ngõ vào phase ngõ vào index từ encoder Cho phép theo dõi mức cao/thấp, trạng thái chiều thay đổi hướng ngắt Phép đo vận tốc SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Bộ chuyển đổi ADC 10 bit 200ksps, tốc độ cao kênh ngõ vào Lấy mẫu đồng thời kênh ngõ vào Lấy mẫu 1,2 kênh Khả chuyển đổi tự động word FIFO cho phép lựa chọn tần số ngắt Sự lựa chọn kích khởi từ bên ngồi Thời gian nhận lập trình Cấu trúc dao động linh hoạt kiểu dao động tinh thể đến 40Mhz modun xung clock đến 40Mhz Khối dao động nội + Cho phép người sử dụng lựa chọn tần số từ 31Khz đến 8Mhz + OSCTUNE bù trơi tần số Nguồn dao động phụ sử dụng cho timer tần số 31Khz Dò tự phục hồi xung clock + Tắt nguồn thiết bị xung clock bị lỗi Chế độ quản lý nguồn +Run: CPU on, ngoại vi on +Idle: CPU off, ngoại vi on +Sleep: CPU off, ngoại vi off +Bộ dao động hai tốc độ khởi động Những điểm mạnh ngoại vi Dòng ngõ cao 25mA Ba ngõ vào ngắt Hai modun bắt giữ, so sánh, điều biến độ rộng xung + Chế độ capture 16 bit, độ phân giải tối đa 6.25 ns + Chế độ compare 16 bit, độ phân giải tối đa 100 ns + Ngõ PWM, PWM độ phân giải từ đến 10 bit Bổ sung modun USART + Hỗ trợ RS_485, RS_232 LIN 1.2 SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK +Tự động thức dậy bit start Chế độ dò tự động RS_232 hoạt động dùng xung clock nội Các tính đặc biệt vi điều khiển Tăng cường nhớ chương trình Flash với 100.000 chu kỳ đọc ghi Bộ nhớ liệu EEPROM với 1.000.000 chu kỳ đọc ghi Bộ nhớ Flash liệu EEPROM trì 100 năm Tự lập trình với phần mềm điều khiển Chế độ ngắt mức ưu tiên Mở rộng timer Watchdog: chu kỳ lập trình từ 41ms đến 131s Lập trình sử dụng nguồn đơn mạch II CẤU HÌNH CÁC BỘ DAO ĐỘNG Các loại dao động PIC 18F4431 hoạt động 10 chế độ dao động khác Người sử dụng lập trình cấu hình bit F0SC3:F0SC0 ghi cấu hình 1H để lựa chọn 10 chế độ LX Dao động tinh thể nguồn thấp XT Tinh thể/bộ cộng hưởng HS Tinh thể/bộ cộng hưởng tốc độ cao HSPLL Tinh thể/bộ cộng hưởng tốc độ cao với cho phep PLL RC Dao động tụ điện/điện trở bên với Fosc/4 ngõ chân RA6 RCIO Dao động tụ điện/điện trở bên với I/O chân RA6 INTIO1 Bộ dao động nội với Fosc/4 ngõ chân RA6 I/O chân RA7 INTIO2 Bộ dao động nội với Fosc/4 ngõ chân RA6 RA7 EC Xung clock bên với ngõ Fosc/4 ECIO Xung clock bên với I/O RA6 SVTH:HỒ XUÂN NGUYÊN Trang GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Bộ dao động tinh thể/cộng hưởng gốm Trong chế độ dao động XT,LP,HS HSPLL tinh thể cộng hưởng gốm kết nối vào chân OSC1 OSC2 để thiết lập dao động Cấu hình XT,LP,HS HSPLL Gía trị tụ điện cho cộng hưởng gốm Giá trị tụ điện cho dao động tinh thể Khối dao động nội PIC 18F4431 có sẳn khối dao động nội, tạo hai tín hiệu clock khác sử dụng nguồn xung clock hệ thống Khối cho phép loại bỏ dao động bên chân OSC1 và/hoặc OSC2 Ngõ (INTOSC) nguồn xung clock 8MHz sử dụng trực tiếp để cung cấp cho xung clock hệ thống Nếu sử dụng chia cung cấp dãy tần số từ 125KHz đến 4MHz để lựa chọn Ngõ INTOSC cho phép tần số xung clock hệ thống từ 125KHz đến 8MHz lựa chọn Ngồi cịn có nguồn dao động nội RC (INTRC) cung cấp tần số 31KHz Dao động INTRC cho phép việc lựa chọn khối dao động nội nguồn xung clock hệ thống theo sau cho phép: SVTH:HỒ XUÂN NGUYÊN Trang 10 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK 5V_DC R 5V ON AP DC R C4 +-5V C3+-5V 10uF C3+-5V CAU 5V VIN LED C2+-12V C1 12V 10uF 103 J21 2 CAU 12V VCC VOUT R 12V LED12V LED LM7812/TO C3+-12V 10uF C4+-12V C - CON2 C1 5V 103 LED 5V GND C2+- 5V LM7805/TO 10uF + - J20 nguon 5v 2 VOUT VIN + 1 GND ONAP 5V CON2 DIODE BRIDGE_4213 j ICPS NAP VPP VCC PGD PGC ICPS NAP VCC DO1 DF1 FET1 OPTO1 RO1 PWM0 2 RO2 330 VCC VB HIN HO LIN R CO14 C TLP557 CF1 COM LO 10 RO3 PWM1 330 DIODE IR2103-2 RO4 Q_ENCODER VCC RF4 10k R CO2 C TLP557 VCC VB HIN LIN HO VS COM LO CF2 C COM CON2 DF3 DIODE FET3 RF7 IRF540N/TO 10k RF5 10 MALE DB9 13 14 CM1 10u 5V_DC 16 15 DF4 IR2103 j Q_ENCODER J1dcmotor DIODE VCC OPTO2 5V_DC DF2 FET2 IRF540N/TO RF2 IR2103 DO2 INDEX QEA QEB RF3 10k C RF1 10 VS DIODE IRF540N/TO IR2103-1 DIODE MAX232 12 11 10 R1IN R1OUT T1OUT T1IN R2IN R2OUT T2OUT T2IN V+ C+ MAX232 VCC GND C1C2+ V- C2- RX TX CM3 10u CM4 10u DIODE RF6 RF8 10k 10 FET4 IRF540N/TO CM2 10u 5V_DC phim1 phim2 phim3 phim4 phim5 phim6 phim7 phim8 5V_DC R RE 10K 5V_DC phim8 RESET phim1 phim2 INDEX QEA QEB phim6 5V_DC 10 MCLR/VPP RA0/AN0 RA1/AN1 RA2/AN2/INDX RA3/AN3/QEA RA4/AN4/QEB RE0/AN6 RE1/AN7 RE2/AN8 DAODONG VCC OUT NC GND 13 14 40MHz RS RW E j OUTPUT CON4 15 16 17 23 18 24 OSC1/CLKIN OSC2/CLKOUT 16 15 14 13 12 11 10 phim1 11 RB7/PGD RB6/PGC 40 39 PGD phim2 RB3/PWM3 RB2/PWM2 RB1/PWM1 RBO/PWM0 RC7/RX/DT RC6/TX/CK RD7/PSP7 RD6/PSP6 RD5/PSP5 RC0/T1OSO/T1CKI RD4/PSP4 RC1/T1OSI/CCP2 RD3/PSP3/SCL RC2/CCP1 RD2/PSP2/SDA RD1/PSP1 RA5/AN5 RD0/PSP0 RC4/INT1 RC3/T0CLK/INT0 RC5/INT2 VSS VSS 38 37 phim4 phim3 PWM1 36 35 34 33 26 25 30 29 28 27 22 21 20 19 31 12 SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON START STOP SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON THUAN NGHICH SETUP EXIT SW PUSHBUTTON SW PUSHBUTTON SW PUSHBUTTON PGC phim5 RB5 RB4 10k phim7 VDD C-RE 104 VDD U1 SW-RE 32 VPP PWM0 RX TX phim3 5V_DC LCD RS RW E 14 13 12 11 10 RS R/W E DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Vdd HD44780 D RE 1N4148 Vee Vss A K R LCD 5K_VAR 15 16 SW PUSHBUTTON phim4 phim5 phim8 phim6 23 LCD_HD44780 PIC18F4431 SVTH:HỒ XUÂN NGUYÊN Trang 72 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK CHƯƠNG II: LƯU ĐỒ GIẢI THUẬT Lưu đồ giải thuật chương trình BEGIN Chọn chế độ đọc xung Thiết lập thời gian lấy mẫu dùng ngắt timer Xây dưng hàm PID Lấy mẫu tốc độ Tính Uk từ hàm PID Khâu bão hoà Xuất giá trị PWM SVTH:HỒ XUÂN NGUYÊN Trang 73 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Lưu đồ giải thuật cho động SVTH:HỒ XUÂN NGUYÊN Trang 74 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Giải thuật tính PID start Chờ lấy mẫu Tính tốc độ từ mẫu thu Eroor = velocity_set - velocity Uk =Kp*eroor + U(i-1) + Ki*eroor +[eroor – (eroor-1)]*Kd Eroor-1 =eroor U(i-1) = Ui Bão hoà PWM SVTH:HỒ XUÂN NGUYÊN Trang 75 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK Kết thi công mạch in Mạch hoàn chỉnh SVTH:HỒ XUÂN NGUYÊN Trang 76 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK PHẦN IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I KẾT LUẬN Muốn thiết kế điều khiển PID để điều khiển tốc độ cho động xác phải biết thơng số động từ từ xác định thông số Kp,Ki,Kd theo phương thức thực nghiệm Ziegler-Nichoils II HƯỚNG PHÁT TRIỂN Để hệ thống điều khiển tốc động tốt, xác tuyến tính ta phát triển chương trình theo hướng để phù hợp với tính ứng dụng dây chuyền tiên tiến ngày Vói điều khiển PID tích hợp thêm chỉnh định tự động điều chỉnh hệ số Kp,Ki,Kd cách áp dụng thuật toán đièu khiển đại điều khiển thích nghi,điều khiển mờ làm cho hệ thống hoạt động ổn định đạt độ tuyến tính cao cho hệ thống Dựa theo nguyên lý chỉnh định đó, ta thiết kế điều khiển mờ vịng ngồi để chỉnh định tham số PID vòng Một điều khiển chất lượng cao cần phải đảm bảo chất lượng điều khiển tốt thông số đối tượng thường xuyên biến đổi Bộ điều khiển mờ lai PID vừa phát huy hết ưu điểm điều khiển rõ vừa sử dụng ưu điểm hệ thống mờ giúp tránh khỏi tốn nhận dạng, mơ hình hố hay thiết kế phức tạp Ngoài ra, kinh nghiệm đặc tính đối tượng, kinh nghiệm điều khiển đối tượng dễ dàng kết hợp vào luật điều khiển Đây hai ưu điểm vượt trội điều khiển mờ lai so với điều khiển khác SVTH:HỒ XUÂN NGUYÊN Trang 77 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK III PHỤ LỤC: Chương trình hiển thị tốc độ: #include #device pic18f4431*=16 ADC=10 #include #use delay(clock=8000000) // khai bao chan port #byte portd=0xf83 //dia chi portd #byte portc=0xf82 //dia chi portc #byte portb=0xf81 //dia chi portb #byte porta=0xf80 //dia chi porta // khai bao ghi #byte t0con=0xfd5 //dia chi ghi dieu khien timer0 #bit tmr0on=t0con.7 //bit dieu khien on/off timer0 #bit t016bit=t0con.6 //bit dieu khien timer0 16bit #bit t0cs=t0con.5 //bit lua chon nguon xung clock timer0 #bit t0se=t0con.4 //bit lua chon canh xung timer0 #byte tmr0_l=0xfd6 //byte cua timer0 #byte tmr0_h=0xfd7 //byte cua timer0 #byte t1con=0xfcd //dia chi ghi dieu khien timer1 #bit rd16=t1con.7 //bit cho phep che doc ghi 16bit #bit tmr1cs=t1con.1 //bit lua chon nguon xung clock timer1 #bit tmr1on=t1con.0 //Timer1 On bit #byte tmr1_h=0xfcf #byte tmr1_l=0xfce #byte soccon=0xfd3 //thanh ghi dieu khien dao dong #byte intcon=0xff2 //thanh ghi ngat intcon #bit int_global=intcon.7 //bit cho phep ngat toan cuc #bit tmr0ie=intcon.5 //bit cho phep ngat tran timer0 #bit tmr0if=intcon.2 //bit co ngat tran timer0 // khai bao chan lcd #byte data=0xf83 //duong du lieu noi voi portd #bit rs=portc.0 #bit rw=portc.1 #bit enable=portc.2 #bit wait=portd.0 // khai bao bien du lieu cho lcd int8 V_million,V_thousand,V_hundred,V_ten,V_unit; int16 velocity,temp; SVTH:HỒ XUÂN NGUYÊN Trang 78 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK // khai bao chan dong co #bit pwm=portb.0 #bit direct=portb.1 #bit encoder_a=porta.5 #bit encoder_b=portc.4 // khai bao bien mau toc int8 i,high_byte=0,low_byte=0,n_pulse,n_sampling; int1 bit_v; int16 dpg_encoder; // ham cho lcd thuc thi lenh void wait_lcd() { cho_lcd: output_high(pin_c2); output_low(pin_c0); output_high(pin_c1); output_d(0xff); delay_us(5); if(input(pin_d7)==1) { goto cho_lcd; } output_low(pin_c2); output_low(pin_c1); } // ham khoi dong lcd void init_lcd() { output_high(pin_c2); output_low(pin_c0); output_d(0x38); output_low(pin_c2); wait_lcd(); output_high(pin_c2); output_low(pin_c0); output_d(0x0e); output_low(pin_c2); wait_lcd(); output_high(pin_c2); output_low(pin_c0); output_d(0x06); output_low(pin_c2); wait_lcd(); } // ham xoa man hinh lcd void clear_lcd() SVTH:HỒ XUÂN NGUYÊN Trang 79 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK { output_high(pin_c2); output_low(pin_c0); output_d(0x01); output_low(pin_c2); wait_lcd(); } // ham ghi du lieu lcd char write_text(char data_lcd,) { output_high(pin_c2); output_high(pin_c0); output_d(data_lcd); output_low(pin_c2); wait_lcd(); } // ham chuyen so hex thap phan de hien thi tren lcd int16 hex2lcd(int16 velocity) { V_unit=(velocity%10)|0x30; temp=velocity/10; V_ten=(temp%10)|0x30; temp=velocity/100; V_hundred=(temp%10)|0x30; temp=velocity/1000; V_thousand=(temp%10)|0x30; V_million=(velocity/10000)|0x30; } // mau toc dung ngat timer0 tran sau n_pulse xung int8 *pointer; #int_timer0 void time0_isr() { tmr0if=0; //xoa co ngat timer0 *pointer=tmr1_h; //luu lai gia tri timer pointer=pointer+1; // *pointer=tmr1_l; // pointer=pointer+1; // tmr1_h=0x00; //xoa gia tri timer1 tmr1_l=0x00; // tmr0_l=0xfd; //nap lai cho timer0 tran sau xung n_sampling=n_sampling-1; //giam mau di } void main() { char data_lcd; SVTH:HỒ XUÂN NGUYÊN Trang 80 GVHD: TS.NGUYỄN THANH PHƯƠNG LVTN:điều khiển tốc độ động DC dùng VDK int16 add_pointer; soccon=0x72; //tan so dao dong noi 8Mhz init_lcd(); clear_lcd(); add_pointer=pointer; t0con=0xe0; //timer0 che bit tmr0ie=1; //cho phep ngat tran timer0 tmr0_l=0xfd; //tran sau 10*2=20 xung encoder tmr1_h=0x00; //xoa timer1 tmr1_l=0x00; // output_low(pin_b0); //dung dong co dpg_encoder=400; //encoder phan giai 400 n_pulse=4; //lay mau sau xung n_sampling=150; //yeu cau lay 200 mau delay_ms(5000); output_high(pin_b0); int_global=1; //cho phep ngat toan cuc t1con=0x01; //khoi dong timer1 che 16bit next: if(n_sampling!=0) { goto next; } int_global=0; //xoa ngat toan cuc tmr0ie=0; //xoa ngat tran timer0 t1con=0x00; //stop timer1 output_low(pin_b0); //stop motor phuc_hoi_mau: delay_ms(2000); pointer=add_pointer; //lay lai dia chi tro pointer=pointer+2; for(i=0;i