Từ đó suy ra : Hệ số tích phân : P I I k k T = Hệ số vi phân : kD = ×kP TD b. Xác định tham số bằng thực nhiệm.
Trong trường hợp không thể xây dựng phương pháp mơ hình cho đối tượng thì phương pháp thiết kế thích hợp là phương pháp thực nghiệm. Thực nghiệm chỉ có thể tiến hành nếu hệ thống đảm bảo điều kiện khi đưa trạng thái làm việc của hệ đến biên giới ổn định thì mọi giá trị của tín hiệu trong hệ thống điều phải nằm trong giới hạn cho phép.
Phương pháp này cịn có tên là phương pháp thứ hai của Ziegler – Nichols. Điều đặc biệt là phương pháp này không sử dụng mơ hình tốn học của đối tượng điều khiển, ngay cả mơ hình xấp xỉ gần đúng.
Các bước tiến hành như sau :
Trước tiên, sử dụng luật P lắp vào hệ kín (hoặc dùng luật PID và chỉnh các thành phần KI và KD về giá trị 0). Khởi động quá trình với hệ số khuếch đại KP thấp, sau đó tăng dần KP tới giá trị tới hạn Kgh để hệ kín ở chế độ giới hạn ổn định,
http://www.ebook.edu.vn 49 tức là tín hiệu ra h(t) có dạng dao động điều hòa. Xác định chu kỳ tới hạn Tgh của dao động.
Hình 4.6: Xác định hằng số khuếch đại tới hạn Kgh.
Hình 4.7: Xác định chu kỳ tới hạn. • Xác định thơng số của bộ điều khiển theo bảng sau : • Xác định thơng số của bộ điều khiển theo bảng sau :
Bộ điều khiển kP TI TD
P 0,5 Kgh _ _
PI 0,45 Kgh 0,83 Tgh _
PID 0,6 Kgh 0,5 Tgh 0,125 Tgh Bảng 2: Thông số bộ điều khiển theo thực nghiệm
Trong khuân khổ đồ án lị sấy em chỉ tìm hiểu hai phương pháp của Ziegler – Nichols với thuật toán PID.
http://www.ebook.edu.vn 50
4.2.3. Lấy đặc tính và nhận dạng đối tượng.
Việc lấy đặc tính và nhận dạng đối tượng là vô cùng quan trọng trong việc điều khiển một đối tượng nào đó. Lấy đặc tính và nhận dạng đối tượng tốt thì việc thiết kế và tổng hợp bộ điều khiển sẽ tốt, tránh được những sai sót, việc hiệu chỉnh sẽ được thực hiện nhanh và chính xác hơn.
Để lấy đặc tính của đối tượng đầu tiên thực hiện nhận dạng mơ hình đối tượng bằng cách nối trực tiếp bóng điện trong lị sấy vào điện áp một chiều 198V và đợi cho nhiệt độ trong lị tăng lên mức tối đa khơng thể tăng nữa. Qua quan sát trên giao diện máy tính ta thấy nhiệt độ tối đa trong lị sấy là 97 oC. Ta thu được hình ảnh đường cong thể hiện q trình gia tăng nhiệt độ trong lị như hình dưới. Tuy nhiên do cảm biến sử dụng là LM35DZ có sai số là cộng trừ 10C, nên nhiệt độ đo được chỉ gần đúng, thời gian trích mẫu đặt trong bài là t=500ms.
Hình 4.8: Đặc tính thực của mơ hình đối tượng lị nhiệt.
4.2.4. Nhận dạng đối tượng.
Trên đồ thị ta thấy có đoạn gần như đường thẳng bằng các dãn khoảng cách điểm trên trục thời gian ta xác định được đoạn đó từ điểm 0 đến điểm 16 trên đồ thị của giao diện Labview. Khoảng thời gian đó là thời gian trễ Tt và Tt=t×16=500×16=8000(ms)=8s.
http://www.ebook.edu.vn 51 Hình 4.9: Đặc tính trễ của mơ hình đối tượng lị nhiệt.
Ta có thể thấy theo đặc tính trên thì đối tượng có mơ hình khâu qn tính là bậc nhất có trễ. Ta áp dụng phương pháp thứ nhất của Ziegler – Nichols. Kẻ tiếp tuyến tại điểm uốn và dựng đường thẳng song song với trục thời gian từ điểm cao nhất của đường đặc tính, chiếu giao điểm xuống trục tọa độ thời gian ta xác định được thời gian tăng trưởng hay thời gian qn tính T=(393-16)×500=188,5(s).
Hình 4.10: Cách xác đinh đặc tính của lị sấy mơ hình. Tt Tt
T K
http://www.ebook.edu.vn 52 từ đó ta xác định được các thơng số của đối tượng lị sấy đó như sau:
• Hệ số khuếch đại : 97 23 0.74 100
K = − =
• Thời gian trễ: Tt =8(s) Thời gian q độ: T=188,5(s)
Từ đó ta tìm được hàm truyền của hệ thống là: ( ) 0.74 8 1 188.5 s e G s s − = +
Tuy nhiên thực tế đối với đối tượng lò sấy người ta thường dùng bộ điều khiển PI.
Theo Ziegler – Nichols 1 ta có hàm truyền của bộ điều khiển PI là: 1 ( ) 1 PI I G s kp T s ⎛ ⎞ = ⎜ + ⎟ ⎝ ⎠ Với 0.9 0.9 188.5 28.66 . 0.74 8 P t T k K T = = × = × 8 26.67 0.3 0.3 t I T T = = = 28.66 1.0746 26.67 P I I k k T = = =
4.2.5. Mơ phỏng Simulink đặc tính của đối tượng.
Ta lấy các khối trong Matlab để mô phỏng cho bài tốn như sau.
http://www.ebook.edu.vn 53 Hình 4.12: Bảng nạp thơng số PID.
Hình 4.13: Đặc tính của đối tượng lị sấy mơ phỏng trên simulink.
Như vậy trên mơ phỏng ta thấy đường đặc tính nhanh chóng về chế độ xác lập
với độ quá điều chỉnh không vượt quá 40% giá trị giới hạn K, trong hình nó
khoảng 25% giá trị của K, dao động tắt nhanh và tiến đến ổn định do đó thỏa mãn yêu cầu của Ziegler – Nichols.
http://www.ebook.edu.vn 54
4.3.Thuật toán điều khiển và viết chương trình.
4.3.1.Thuật tốn điều khiển và thuật tốn PID.
a. Thuật toán điều khiển.
BEGIN SETUP Kp,Ki ĐỌC ADC END LCD,RS232 E=SETUP-ADC THOAT? Upid Duty =Upid S Đ
http://www.ebook.edu.vn 55
b. Thuật tốn PID.
4.3.2.Thử nghiệm trên mơ hình.
Qua thử nghiệm,em đặt nhiệt độ ở 400C thấy mơ hình hoạt động khá ổn định.
PID controller Error = SP - PV P_term = Kp*Error Update PWM I_term + = Ki*sampletime*Error PI = P_term + I_term PIout = 0 < = PI <= 255
http://www.ebook.edu.vn 56
Hình 4.14: Kết quả thực nghiệm mơ hình.
4.4. Kết luận chương 4.
Trong chương 4 em đã.
• Thiết kế được giao diện giám sát và điều khiển. • Tìm hiểu hai phương pháp của Ziegler – Nichols.
• Áp dụng Ziegler – Nichols 1 tìm được kP, kI của bộ điều khiển PI. • Xây dựng lưu đồ thuật tốn và viết code trình điều khiển.
• Mơ phỏng Simulink kiểm tra lại giá trị kP, kI thỏa man điều kiện Ziegler – Nichols.
http://www.ebook.edu.vn 57
KẾT LUẬN Kết quả thu được:
Sau q trình nghiên cứu và hồn thành đồ án tốt nghiệp với đề tài:”Thiết kế hệ thống điều khiển nhiệt độ lò sấy dùng vi điều khiển” em thu được những kết quả sau:
• Hiểu được ứng dụng của bài toán điều khiển nhiệt độ trong cơng nghiệp, cấu tạo chung của một số lị sấy điện trở.
• Thiết kế và thi cơng phần cứng hệ thống điều khiển nhiệt độ mơ hình lị sấy điện trở.
• Tổng hợp,mơ phỏng và cài đặt thực nghiệm bộ điều khiển PID cho đối tượng lò sấy điện trở mơ hình.
• Tuy nhiên do kiến thức và thời gian còn hạn chế nên đề tài cịn có nhiều thiếu sót:
• Do cảm biến nhiệt độ có sai số lớn nên việc đo nhiệt độ chưa được chính xác lắm,giới hạn nhiệt độ thấp.
• Mơ hình nhỏ chưa đáp ứng địi hỏi như thực tế. • Chất lượng điều khiển chưa cao lắm.
Hướng nghiên cứu và phát triển:
• Nghiên cứu và sử dụng bộ điều khiển có chất lượng cao hơn. • Sử dụng các cảm biến có độ chính xác cao hơn.
http://www.ebook.edu.vn 58
TÀI LIỆU THAM KHẢO
[1]. Lý thuyết điều khiển tự động Lê Hùng Lân
Trường ĐH Giao Thông Vận Tải [2]. Điện tử công suất
Nguyễn Bính
Nhà xuất bản khoa học và kĩ thuật - 1995 [3]. Lò điện
Lương Văn Đề
Trường Đại Học Bách Khoa Hà Nội - 1993 [4]. Lý thuyết điều khiển tuyến tính Nguyễn Dỗn Phước
Nhà xuất bản khoa học kĩ thuật - 2002
http://www.ebook.edu.vn 59
PHỤ LỤC
CODE CHƯƠNG TRÌNH BÀI TỐN LỊ SẤY.
//==================================== === //Ten chuong trinh :Dieu chinh nhiet lo say
//Mo ta phan cung :PIC16F887,crystal 20Mhz
//thach anh 20MHz ->tan so lenh la 5Mhz ->chu ki lenh la 0.2us //=================================== ===
//Khai bao cac thu vien su dung
#include <16f887.h>//thu vien chuan cho PIC16F887 #include <def_887.h>//thu vien cac thanh ghi tu dinh nghia #DEVICE ADC=10
//Khai bao cac thiet lap cho chip
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer #FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading #FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES IESO //Internal External Switch Over mode enabled #FUSES FCMEN //Fail-safe clock monitor enabled
http://www.ebook.edu.vn 60 #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected #FUSES BORV40 //Brownout reset at 4.0V
//Khai bao cac thanh phan su dung
#use delay(clock=20M)//su dung thach anh 20Mhz
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)//su dung khoi truyen thong UART
#include <lcd_4bit.c>
unsigned int nhietdothuc;
unsigned int nhietdodat=40,count=0; signed int16 duty;
signed int8 err=0;
signed int16 Ppart=0,Ipart=0;
#define hs 0.488;
//Khai bao tham so const #define Kp 30
#define Ki 0.2
http://www.ebook.edu.vn 61 #define inv_sampletime 2
void hienthiLCD(unsigned int16 x)//hien thi LCD { char x1,x2,x3,x4; x1= x/1000; x2=(x%1000)/100; x3=((x%1000)%100)/10; x4=((x%1000)%100)%10; LCD_PutChar(x1+48); LCD_PutChar(x2+48); LCD_PutChar(x3+48); LCD_PutChar(x4+48); }
//Ham cap nhat PID void PID() { err=nhietdodat-nhietdothuc; Ppart=Kp*err; Ipart+=Ki*sampletime*err; //Dpart=Kd*(err-pre_err)*inv_sampletime; duty=Ppart+Ipart;
http://www.ebook.edu.vn 62 if(duty>1023) duty=1023; if(duty<0) duty=0; } //ngat timer 1; #int_timer1 void ngatT1() { count++;
set_timer1(3036);//timer 1 100ms tran 1 lan clear_interrupt(int_timer1);
}
void main() {
//Khoi tao ngat
enable_interrupts(GLOBAL); //cho phep ngat toan cuc
http://www.ebook.edu.vn 63 LCD_Init(); SETUP_ADC(ADC_CLOCK_INTERNAL); SETUP_ADC_PORTS(sAN0|VSS_VDD); SET_ADC_CHANNEL(0); delay_us(20);
LCD_PutChar ( "Giam sat nhiet");
//dem 500ms ngat 1 lan;
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); set_timer1(3036);//timer 1 100ms tran 1 lan
setup_ccp1 (CCP_PWM) ;//thiet lap bo CCP1 va CCP2 lam bo PWM setup_ccp2 (CCP_PWM) ;
setup_timer_2 (T2_DIV_BY_16, 255, 1);//1.22kHz - duty 10 bits set_pwm2_duty (0);//dat duty ban dau = 0
set_pwm1_duty (0); while(true) { if(count==5)//0.5s { timer1on=0;//dung bo timer 1
http://www.ebook.edu.vn 64 nhietdothuc=read_adc(); delay_us(10); nhietdothuc=nhietdothuc*hs; PID(); set_pwm1_duty(duty); set_pwm2_duty(duty); LCD_SetPosition(0xc5); hienthiLCD(nhietdothuc); printf("%u",nhietdothuc); count=0; timer1on=1; } } }