Ổn định nhiệt độ lò điện trở dùng bộ điều khiển PID

32 1K 4
Ổn định nhiệt độ lò điện trở dùng bộ điều khiển PID

Đ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

Ổn định nhiệt độ lò điện trở dùng bộ điều khiển PID. Trong thực tế công nghiệp và sinh hoạt hàng ngày, năng lượng nhiệt đóng một vaitrò rất quan trọng. Năng lượng nhiệt có thể được dùng trong các quá trình công nghệ khácnhau như nung nấu vật liệu: nấu gang thép, khuôn đúc,… Vì vậy việc sử dụng nguồnnăng lượng này một cách hợp lý, hiệu quả là rất cần thiết. Lò điện trở được ứng dụng rấtrộng rãi trong công nghiệp vì đáp ứng được nhiều yêu cầu thực tiễn đặt ra như: nungnóng, sấy khô, …Ở lò điện trở, yêu cầu kĩ thuật quan trọng nhất là phải điều chỉnh vàkhống chế được nhiệt độ của lò. Chúng em chọn đề tài “ Điều khiển nhiệt độ lò điện trở”trên cơ sở những lý thuyết đã học trong các môn Lý thuyết điều khiển, Vi xử lý, Điện tửtương tựsố, Kỹ thuật đo lường,.. Do quy mô của một bài tập lớn nên nhóm chỉ triển khaimô hình lò điện trở là bóng đèn tượng trưng

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN BỘ MƠN TỰ ĐỘNG HỐ CƠNG NGHIỆP ====o0o==== BÁO CÁO BÀI TẬP LỚN VI ĐIỀU KHIỂN VÀ ỨNG DỤNG ĐỀ TÀI: ỔN ĐỊNH NHIỆT ĐỘ LỊ ĐIỆN TRỞ Trưởng mơn PGS.TS Trần Trọng Minh Giáo viên hướng dẫn Th.s Võ Duy Thành Nhóm sinh viên Nguyễn Đăng Hùng - 20142083 Nguyễn Xuân Tú - 20145056 Đỗ Tuấn Anh - 20140063 Mã lớp 97893 Hà nội, 8-2017 i MỤC LỤC MỤC LỤC iv DANH MỤC HÌNH VẼ v MỞ ĐẦU CHƯƠNG TỔNG QUAN ĐỀ TÀI CHƯƠNG CÁC KHỐI CHỨC NĂNG VÀ LỰA CHỌN LINH KIỆN 2.1 Sơ đồ khối 2.2 Khối vi điều khiển 2.3 Khối chuyển đổi ADC 10 2.4 Khối cảm biến 11 2.5 Khối phím bấm 11 2.6 Khối hiển thị 11 2.7 Khối nguồn 12 2.8 Khối phát điểm không điện lưới 13 2.9 Khối phát xung điều khiển 16 2.10 Tải 17 CHƯƠNG LƯU ĐỒ THUẬT TOÁN 18 CHƯƠNG THỰC NGHIỆM 20 4.1 Tính tốn điều khiển 20 4.2 Thực nghiệm đo tín hiệu 22 4.3 Tính tốn sai số 25 CHƯƠNG MÃ NGUỒN 26 KẾT LUẬN 33 TÀI LIỆU THAM KHẢO 34 i DANH MỤC HÌNH VẼ Hình Vi điều khiển dsPIC30F4011 Hình Bộ ADC dsPIC30F4011 10 Hình LCD 16x2 11 Hình Mạch nguồn 5V dùng IC 7805 12 Hình Mạch phát điểm không 13 Hình Dạng sóng đầu chỉnh lưu cầu 14 Hình Dạng sóng đầu mạch Zero Crossing Detector 15 Hình Khối phát xung điều khiển Triac 16 Hình Tải 17 Hình 10 Lưu đồ thuật tốn 18 Hình 11 Sơ đồ Matlab Simulink 20 Hình 12 Đáp ứng bước nhảy 21 Hình 13 Mơ hình đối tượng nhiệt độ nhiệt 22 Hình 14 Cấu trúc điều khiển nhiệt dùng điều khiển PID 22 Hình 15 Dạng sóng đầu mạch Zero Crossing Detector(màu đỏ) 23 Hình 16 Tín hiệu điều khiển từ vi điều khiển 23 Hình 17 Điện áp tải góc mở 90 độ 24 i MỞ ĐẦU Trong thực tế công nghiệp sinh hoạt hàng ngày, lượng nhiệt đóng vai trò quan trọng Năng lượng nhiệt dùng q trình cơng nghệ khác nung nấu vật liệu: nấu gang thép, khn đúc,… Vì việc sử dụng nguồn lượng cách hợp lý, hiệu cần thiết điện trở ứng dụng rộng rãi cơng nghiệp đáp ứng nhiều u cầu thực tiễn đặt như: nung nóng, sấy khơ, …Ở điện trở, yêu cầu kĩ thuật quan trọng phải điều chỉnh khống chế nhiệt độ Chúng em chọn đề tài “ Điều khiển nhiệt độ điện trở” sở lý thuyết học môn Lý thuyết điều khiển, Vi xử lý, Điện tử tương tự-số, Kỹ thuật đo lường, Do quy mô tập lớn nên nhóm triển khai mơ hình điện trở bóng đèn tượng trưng Do kiến thức nhiều thiếu sót nên báo cáo có chỗ chưa hồn thiện, mong thầy bổ sung giúp chúng em hoàn thiện cách tốt Em xin chân thành cảm ơn! Hà Nội, ngày 27 tháng 12 năm 2017 Nhóm sinh viên thực Đỗ Tuấn Anh Nguyễn Đăng Hùng Nguyễn Xuân Tú CHƯƠNG TỔNG QUAN ĐỀ TÀI Trong thực tế công nghiệp sinh hoạt hàng ngày, lượng nhiệt đóng vai trò quan trọng Năng lượng nhiệt dùng q trình cơng nghệ khác nung nấu vật liệu: nấu gang thép, khn đúc,… Vì việc sử dụng nguồn lượng cách hợp lý, hiệu cần thiết điện trở ứng dụng rộng rãi cơng nghiệp đáp ứng nhiều yêu cầu thực tiễn đặt như: nung nóng, sấy khơ, …Ở điện trở, u cầu kĩ thuật quan trọng phải điều chỉnh khống chế nhiệt độ Bài báo cáo gồm chương chính: Chương 1: Tổng quan đề tài Chương 2: Các khối chức lựa chọn linh kiện Chương 3: Lưu đồ thuật toán Chương 4: Thực nghiệm Chương 5: Mã nguồn CHƯƠNG CÁC KHỐI CHỨC NĂNG VÀ LỰA CHỌN LINH KIỆN 2.1 Sơ đồ khối 2.2 Khối vi điều khiển Hình Vi điều khiển dsPIC30F4011 - Tập lệnh gồm 84 lệnh Chế độ định địa linh hoạt Độ dài lệnh 24-bit, độ dài liệu 16-bit Bộ nhớ chương trình Flash Bộ nhớ RAM độ lớn 1Kbytes Mảng 16 ghi làm việc 16-bit Tốc độ làm việc lên tới 30 MIPS Bộ nhớ Flash24 Kbyte: ghi/xoá lên tới 10.000 lần (điều kiện công nghiệp) 100.000 lần (thơng thường) Bộ nhớ EEPROM: ghi/xố lên tới 100.000 lần (điều kiện công nghiệp) 1.000.000 lần (thơng thường) Khả tự nạp trình điều khiển software Watch Dog Timer mềm dẻo với dao động RC nguồn thấp chip - Chế độ bảo vệ firmware khả lập trình - 2.3 Khối chuyển đổi ADC Vref- = 0V LM35 giá trị nhị phân hệ số AN Hình Bộ ADC dsPIC30F4011 Nhóm em chọn chuyển đổi tương tự - số (ADC) 10-bit tích hợp Dspic30f4011 với thơng số - Tốc độ lấy mẫu tối đa Msps (Mega samples per second) - Tối đa kênh ADC - 16 đầu vào analog - Thực biến đổi chế độ Sleep Idle - Chế độ nhận biết điện thấp khả lập trình - Tạo Reset nhận diện điện áp khả lập trình - Kết ADC cất 16 ghi 16bit ADCBUF0 -15 10 2.4 Khối cảm biến Nguồn cấp  30V Điện áp -1  6V Dải đo: -55  150 C Đầu thay đổi 10mV nhiệt độ thay đổi C - Độ xác cao 0.5 C nhiệt độ 25 C - 2.5 Khối phím bấm - phím tăng giảm nhiệt độ đặt - phím bấm reset 2.6 Khối hiển thị Hình LCD 16x2  Nhóm sử dụng LCD 16x2 để hiển thị nhiệt độ đặt, nhiệt độ thực tế đo được, góc mở alpha điều khiển xuất từ vi điều khiển  Cấu trúc chân lcd: o Vss: Chân nối đất cho LCD, thiết kế mạch ta nối chân với GND mạch điều khiển o VDD: Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC=5V mạch điều khiển o VEE: Điều chỉnh độ tương phản LCD o RS: Chân chọn ghi (Register select) 11 o o o o o R/W: Chân chọn chế độ đọc/ghi (Read/Write) E: chân cho phép Enable DB0-7: chân liệu LED+: chân dương đèn LED-: chân âm đèn 2.7 Khối nguồn Ở đây, vi điều khiển dsPIC30f4011 dùng nguồn cấp dải 2.5 – 5.5 V nhóm thiết kế mạch nguồn 5V ổn định để cấp cho vi điều khiển Để cho đơn giản nhóm thiết kế mạch ổn áp dùng IC họ LM78xx, cụ thể sử dụng IC LM7805 cho đầu ổn định mức 5V Dưới sơ đồ nguyên lý mạch Hình Mạch nguồn 5V dùng IC 7805 12 CHƯƠNG THỰC NGHIỆM 4.1 Tính tốn điều khiển  Xác định hàm truyền đối tượng: - Đo nhiệt độ 2s/ lần thời gian 90s - Vẽ đồ thị nhiệt độ theo thời gian ( Tmin = 18, Tmax = 42) - Xác định hàm truyền đối tượng nhiệt khâu qn tính bậc có trễ: K e T1s G=  T2 s - Dựa vào đồ thị tính tốn theo phương pháp tiếp tuyến được: K=24, T1=4, T2=75 G= Do hàm truyền đối tượng có dạng: 24.e 4 s  75s  TÍnh tốn điều khiển Hình 11 Sơ đồ Matlab Simulink 20 Hình 12 Đáp ứng bước nhảy Ta tính tốn ĐK PID sử dụng PIDTOOL Kp=0.112; Ti=32; Td=0.00227; Hiệu chỉnh : Kp=0.3; Ti=36.5;Td=0.00227; Tín hiệu điều khiển P*, nên ta phải quy đổi P* sang góc mở Alpha TRIAC Với P* phần trăm công suất ( P*  P 100%) Pmax Công thức : Bỏ qua thành phần Sin coi phương trình tuyến tính ta : 21 Hình 13 Mơ hình đối tượng nhiệt độ nhiệt trúc Cấu khiển Hình 14 Cấu trúc điều khiển nhiệt dùng điều khiển PID 4.2 Thực nghiệm đo tín hiệu 22 điều Hình 15 Dạng sóng đầu mạch Zero Crossing Detector(màu đỏ) Hình 16 Tín hiệu điều khiển từ vi điều khiển 23 Hình 17 Điện áp tải góc mở 90 độ 24 4.3 Tính tốn sai số  Sai số ADC - Do ADC 10 bit có Vref = 5V nên độ phân giải: = 4.88mV 1 10 - Đầu LM35 tăng 10mV/1̊C, đo từ 0-50 ̊C nên dải điện áp vào là: 50 x 0.5= 1V - 4.88.10 3 100 = 1% Sai số tuyệt đối ADC là: 0.5  Sai số LM35 - Sai số tuyệt đối: 0.5%  Sai số hiển thị - Do sử dụng lcd hiển thị nhiệt độ đến chữ số sau thập phân nên sai số 0.1 ̊C - Dải đô nhiệt: 50 ̊C - Sai số tuyệt đối: 0.1  0.2% 50  Sai số tối đa hệ thống: Hay tương đương với 0.57 ̊C = 1.13% 25 CHƯƠNG MÃ NGUỒN /* * File: main.c * Author: NGUYEN DANG HUNG * * Created on December 7, 2017, 2:24 PM */ // DSPIC30F4011 Configuration Bit Settings // 'C' source line config statements // FOSC #pragma config FPR = XT #pragma config FOS = PRI #pragma config FCKSMEN = CSW_FSCM_OFF Disabled) // FWDT #pragma config FWPSB = WDTPSB_16 #pragma config FWPSA = WDTPSA_512 #pragma config WDT = WDT_OFF // FBORPOR #pragma config #pragma config #pragma config #pragma config #pragma config #pragma config regs) #pragma config // Primary Oscillator Mode (XT) // Oscillator Source (Primary Oscillator) // Clock Switching and Monitor (Sw Disabled, Mon // WDT Prescaler B (1:16) // WDT Prescaler A (1:512) // Watchdog Timer (Disabled) FPWRT = PWRT_64 BODENV = BORV20 BOREN = PBOR_ON LPOL = PWMxL_ACT_HI HPOL = PWMxH_ACT_HI PWMPIN = RST_IOPIN // // // // // // MCLRE = MCLR_EN // Master Clear Enable (Enabled) // FGS #pragma config GWRP = GWRP_OFF #pragma config GCP = CODE_PROT_OFF // FICD #pragma config ICS = ICS_PGD PGD/EMUD) POR Timer Value (64ms) Brown Out Voltage (Reserved) PBOR Enable (Enabled) Low-side PWM Output Polarity (Active High) High-side PWM Output Polarity (Active High) PWM Output Pin Reset (Control with PORT/TRIS // General Code Segment Write Protect (Disabled) // General Segment Code Protection (Disabled) // Comm Channel Select (Use PGC/EMUC and // #pragma config statements should precede project file includes // Use project enums instead of #define for ON and OFF #include #define button LATFbits.LATF0 int i=0,tg3=0; const int width_pulse=50 ;//0.1ms, (O2R-O2RS)*TCY*8=0.1ms float h=0,alpha=0,T_set=30,T_real=0; // Angle uses for opening Thyristor char flag=0; const char T=2; const char PI=3.14; const char TCY=0.0000005; #define lcd_rs LATBbits.LATB8 26 #define #define #define #define #define #define lcd_rw lcd_en lcd_D4 lcd_D5 lcd_D6 lcd_D7 LATBbits.LATB7 LATBbits.LATB6 LATBbits.LATB4 LATBbits.LATB3 LATBbits.LATB2 LATBbits.LATB1 #define #define #define #define #define #define #define lcd_rs_direction lcd_rw_direction lcd_en_direction lcd_D4_direction lcd_D5_direction lcd_D6_direction lcd_D7_direction TRISBbits.TRISB8 TRISBbits.TRISB7 TRISBbits.TRISB6 TRISBbits.TRISB4 TRISBbits.TRISB3 TRISBbits.TRISB2 TRISBbits.TRISB1 // LCD.h void delay_ms(unsigned int t) // Range t is from to 262.144ms with fosc=8mhz { T1CONbits.TCS=0; // choose the internal clock T1CONbits.TCKPS=0b01;// prescale 1:8 IFS0bits.T1IF=0; PR1=250*t; T1CONbits.TON=1; while(!IFS0bits.T1IF); T1CONbits.TON=0; TMR1=0; } void delay_us() { unsigned int t=100; while (t!=0) t ; } void lcd_enable(){ lcd_en_direction = 0; lcd_en =1; delay_us(); lcd_en=0; delay_us(); } void lcd_send4bit(unsigned char a){ lcd_D4_direction=0; lcd_D5_direction=0; lcd_D6_direction=0; lcd_D7_direction=0; lcd_D4=a & 0x01; lcd_D5=(a>>1)&1; lcd_D6=(a>>2)&1; lcd_D7=(a>>3)&1; } void lcd_send_cmd(unsigned char cmd){ lcd_send4bit(cmd >>4); lcd_enable(); lcd_send4bit(cmd); lcd_enable(); } 27 void lcd_clear(){ lcd_send_cmd(0x01); delay_us(); } void lcd_initial(){ lcd_D4_direction=0; lcd_D5_direction=0; lcd_D6_direction=0; lcd_D7_direction=0; lcd_rs_direction=0; lcd_rw_direction=0; lcd_en_direction=0; lcd_send4bit(0x00); delay_ms(20); lcd_rs=0; lcd_rw=0; lcd_send4bit(0x03); lcd_enable(); delay_ms(5); lcd_enable(); delay_us(200); lcd_enable(); lcd_send4bit(0x02); lcd_enable(); lcd_send_cmd( 0x28 ); // giao thuc bit, hien thi hang, ki tu 5x8 lcd_send_cmd( 0x0c); // cho phep hicen thi man hinh lcd_send_cmd( 0x06); // tang ID, khong dich khung hinh lcd_send_cmd( 0x01); // xoa toan bo khung hinh } void lcd_gotoxy(unsigned char y, unsigned char x){ unsigned char address; y ; if(!y)address=(0x80+x-1); else address=(0xc0+x-1); delay_ms(1); lcd_send_cmd(address); delay_ms(1); } void lcd_char_cp(unsigned char Data){ lcd_D4_direction=0; lcd_D5_direction=0; lcd_D6_direction=0; lcd_D7_direction=0; lcd_rs_direction=0; lcd_rw_direction=0; lcd_en_direction=0; lcd_rs=1; lcd_send_cmd(Data); lcd_rs=0 ; } void lcd_string_cp (char *s){ while (*s){ lcd_char_cp(*s); s++; 28 } } void display_nfloat_cp (float a, unsigned int n) { unsigned int i=1,b=0,c=0; unsigned char tg=0,j=0; c=a;// lay phan nguyen if((c/i)==0) lcd_char_cp(48); while ((c/i)>0) { i=i*10; j=j+1; } i=i/10; j=j-1; while (i) { tg=c/i; c=c%i; lcd_char_cp(tg+48); i=i/10; j=j-1; } delay_ms(10); lcd_char_cp('.'); b=a; for (i=0;i=1) uk=1; else if(uk

Ngày đăng: 29/12/2017, 00:37

Mục lục

  • Sơ đồ chân dsPIC

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

Tài liệu liên quan