thiết kế hệ thống điều khiển lò nhiệt sử dụng pid

87 195 0
thiết kế hệ thống  điều khiển lò nhiệt sử dụng 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

Trường TP HCM Khoa Điện_Điện Tử LỜI NÓI ĐẦU Như biết, nhiệt độ thành phần vật lý quan trọng Việc thay đổi nhiệt độ vật chất ảnh hưởng nhiều đến cấu tạo, tính chất, đại lượng vật lý khác vật chất Ví dụ, thay đổi nhiệt độ chất khí làm thay đổi thể tích, áp suất chất khí bình Vì vậy, nghiên cứu khoa học, công nghiệp đời sống sinh hoạt, thu thập thông số điều khiển nhiệt độ điều cần thiết Trong lị nhiệt, máy điều hồ, máy lạnh hay lị viba, điều khiển nhiệt độ tính chất định cho sản phảm Trong ngành luyện kim, cần phải đạt đến nhiệt độ để kim loại nóng chảy, cần đạt nhiệt độ để ủ kim loại nhằm đạt tốt đặc tính học độ bền, độ dẻo, độ chống gỉ sét, … Trong ngành thực phẩm, cần trì nhiệt độ để nướng bánh, để nấu, để bảo quản, … Việc thay đổi thất thường nhiệt độ, không gây hư hại đến thiết bị hoạt động, cịn ảnh hưởng đến q trình sản xuất, sản phẩm Có nhiều phương pháp để điều khiển lị nhiệt độ Mỗi phương pháp mang đến kết khác thông qua phương pháp điều khiển khác Trong nội dung này, cho ta phương pháp điều khiển On-Off , PI điều khiển PID thơng qua Card AD giao tiếp với máy tính PCL818 Mọi liệu trình điều khiển hiển thị lên máy tính dựa ngơn ngữ lập trình Delphi GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Họ tên sinh viên : TP.HCM, ngày … tháng năm 2019 (Giảng viên hướng dẫn) GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử CHƯƠNG CÁC KHỐI CƠ BẢN TRONG HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ Hệ thống điều khiển nhiệt độ thông dụng công nghiệp bao gồm : Cảm biến gia cơng Mạch kích lị nhiệt Card AD/DA PCL-818L Màn hình hiển thị Máy tính chương trình điều khiển Hình 1.1 Sơ đồ khối hệ thống điều khiển nhiệt độ GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử Như mạch có khối sau : • Khối cảm biết gia cơng : sử dụng cảm biến nhiệt độ Thermocouple, lấy tín hiệu thông qua Op-Amp OP-07, đưa nhiệt độ cần xử lý ngõ vào Analog biến đổi AD • Bộ biến đổi AD : mạch lấy tín hiệu AD để xử lý thơng qua Card AD PCL-818 hãng Advantech Thơng qua đó, Card AD đưa giá trị nhiệt độ thông số khác cho máy tính xử lý Ngồi PCL-818 cịn Card DA với nhiệm vụ điều khiển mạch kích cho mạch nhiệt độ • Mạch cơng suất : mạch bị tác động trực tiếp bới PCL-818, với nhiệm vụ kích ngắt lị q trình điều khiển Linh kiện sử dụng mạch Solid State Relay(SSR) • Khối xử lý :có thể xem máy tính khối xử lý Với ngơn ngữ lập trình Delphi, máy tính điều khiển q trình đóng, ngắt lị • Màn hình hiển thị : hình giao diện Delphi Các giá trị, nhu thông số, tác động kỹ thuật tác động trực tiếp hình Các hãng kỹ thuật ngày tích hợp thành phần thành sản phẩm chuyên dùng bán thị trường Có chương trình giao diện ( Visual Basic ) có nút điều khiển, thuận lợi cho người sử dụng Có thể chọn khâu khuếch đại P, PI, PD hay PID hãng GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử Hình 1.2 Bộ điều khiển nhiệt độ Trở lại mơ hình điều khiển nhiệt, sơ đồ khối mô hình hố q trình điều khiển lị nhiệt Để tìm hiểu rõ chi tiết khác phương pháp thiết bị kỹ thuật sử dụng, xem xét thông chương GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử CHƯƠNG NHIỆT ĐỘ VÀ CÁC LOẠI CẢM BIẾN NHIỆT ĐỘ THÔNG DỤNG Nhiệt độ thành phần chủ yếu hệ thống thu thập liệu Do vậy, chọn lựa thiết bị đo lường nhiệt độ xác ta tiệt kiệm chi phí lượng, tăng độ an toàn giảm thời gian kiểm tra… thiết bị đo lường nhiệt độ thường dùng cảm biến nhiệt độ Cặp nhiệt điện, điện trở nhiệt, thermistors and infrared thermometers loại cảm biến nhiệt độ thông thường Việc chọn lựa thiết bị để hoạt động xác tuỳ thuộc vào nhiệt độ tối đa, tối thiểu cần đo, độ xác điều kiện mơi trường Trước hết, tìm hiểu khái niệm nhiệt độ 2.1 Nhiệt độ thang đo nhiệt độ Galileo cho người phát minh thiết bị đo nhiệt độ, vào khoảng năm 1592 Ơng ta làm thí nghiệm sau : bồn hở chứa đầy cồn, ông cho treo ống thủy tinh dài có cổ hẹp, đầu có bầu hình cầu chứa đầy khơng khí Khi gia tăng nhiệt, khơng khí bầu nở sơi sùng sục cồn Cịn lạnh khơng khí co lại cồn dâng lên lịng ống thủy tinh Do đó, thay đổi nhiệt bầu biết cách quan sát vị trí cồn lịng ống thủy tinh Tuy nhiên, người ta biết thay đổi nhiệt độ khơng biết chưa có tầm đo cho nhiệt độ Đầu năm 1700, Gabriel Fahrenheit, nhà chế tạo thiết bị đo người Hà Lan, tạo thiết bị đo xác cho phép lặp lại nhiều lần Đầu thiết bị gán độ, đánh dấu vị trí nhiệt nước đá trộn với muối (hay ammonium chloride) nhiệt độ thấp thời Đầu thiết bị gán 96 độ, đánh dấu nhiệt độ máu người Tại 96 độ mà 100 độ? Câu trả lời người ta chia tỷ lệ theo 12 phần tỷ lệ khác thời Khoảng năm 1742, Anders Celsius đề xuất ý kiến lấy điểm tan nước đá gán độ điểm sôi nước gán 100 độ, chia làm 100 phần Đầu năm 1800, William Thomson (Lord Kelvin) phát triển tầm đo phổ quát dựa hệ số giãn nở khí lý tưởng Kelvin thiết lập khái niệm độ tuyệt đối tầm đo chọn tiêu chuẩn cho đo nhiệt đại Thang Kelvin : đơn vị K Trong thang Kelvin này, người ta gán cho nhiệt độ cho điểm cân ba trạng thái: nước – nước đá – mp65t giá trị số 273.15K GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử Từ thang nhiệt độ nhiệt động học tuyệt đối( Thang Kelvin), người ta xác định thang thang Celsius thang Fahrenheit( cách dịch chuyển giá trị nhiệt độ) Thang Celsius : Trong thang đo này, đơn vị nhiệt độ (°C ), độ Celsius độ Kelvin Quan hệ nhiệt độ Celsius nhiệt độ Kelvin xác định biểu thức : T(°C) = T(°K) - 273,15 Thang Fahrenheit : T(°C) =5/9 {T(°F) – 32} T(°F) =9/5 T(°C) + 32 2.2 Các loại cảm biến Tùy theo lĩnh vực đo điều kiện thực tế mà chọn bốn loại cảm biến : thermocouple, RTD, thermistor, IC bán dẫn Mỗi loại có ưu điểm khuyết điểm riêng 2.2.1 Thermocouple Ưu điểm • Là thành phần tích cực, tự cung cấp cơng suất • Đơn giản • Rẻ tiền • Tầm thay đổi rộng • Tầm đo nhiệt rộng Khuyết điểm • Phi tuyến • Điện áp cung cấp thấp • Địi hỏi điện áp tham chiếu • Kém ổn định • Kém nhạy 2.2.2 RTD (resistance temperature detector) Ưu điểm • Ổn định GVHD: Lê Minh Trường TP HCM • Chính xác • Tuyến tính thermocouple Khoa Điện_Điện Tử Khuyết điểm • Mắc tiền • Cần phải cung cấp nguồn dịng • Lượng thay đổi ∆R nhỏ • Điện trở tuyệt đối thấp • Tự gia tăng nhiệt 2.2.3 Thermistor Ưu điểm • Ngõ có giá trị lớn • Nhanh • Đo hai dây Khuyết điểm • Phi tuyến • Giới hạn tầm đo nhiệt • Dễ vỡ • Cần phải cung cấp nguồn dòng • Tự gia tăng nhiệt 2.2.4 IC cảm biến Ưu điểm • Tuyến tính • Ngõ có giá trị cao • Rẻ tiền Khuyết điểm • Nhiệt độ đo 200°C • Cần cung cấp nguồn cho cảm biến Trong nội dung luận văn này, sử dụng Thermocouple để đo nhiệt độ GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử 2.3 Thermocouple hiệu ứng seebeck 2.3.1 Hiệu ứng seebeck Kim loại A Kim loại A Kim loại B Năm 1821, Thomas Seebeck khám phá nối hai dây kim loại khác hai đầu gia nhiệt đầu nối có dịng điện chạy mạch Hình 1.3 Hiệu ứng seebeck Nếu mạch bị hở đầu thì hiệu điện mạch hở (hiệu điện Seebeck) hàm nhiệt độ mối nối thành phần cấu thành nên hai kim loại Khi nhiệt độ thay đổi lượng nhỏ hiệu điện Seebeck thay đổi tuyến tính theo : ΔeAB = α ΔT với α hệ số Seebeck 2.3.2 Quá trình dẫn điện Thermocouple + eAB - Kim loại A Kim loại B Hình 1.4 Cặp nhiệt độ Cặp nhiệt điện thiết bị chủ yếu để đo nhiệt độ Nó dựa sở kết tìm kiếm Seebeck(1821), cho dòng điện nhỏ chạy mạch bao gồm hai dây dẩn khác mối nối chúng giữ nhiệt độ khác mối nối chúng giữ nhiệt độ khác Suất điện động Emf sinh điều kiện gọi suất điện động Seebeck Cặp nhiệt điện sinh mạch nhiệt điện gọi Thermocouple GVHD: Lê Minh Trường TP HCM Khoa Điện_Điện Tử Hình 1.5: Mối nối nhiệt điện Để hiểu hiệu dẩn điện cặp nhiệt điện Seebeck, trước hết ta nghiên cứu cấu trúc vi mô kim loại nguyên tử thành phần mạng tinh thể Theo cấu trúc nguyên tử Bohn hiệu chỉnh Schrodinger Heisenberg, điện tử xoay quanh hạt nhân Nguyên tử cân lực ly tâm nguyên tử quỹ đạo chúng với hấp dẩn điện tĩnh từ hạt nhân Sự phân bố lượng điện tích âm theo mức độ tăng dần tiến gần đến hạt nhân Hình 1.6 Phân bố điện tích âm theo mức lượng Trong hình biểu thị năm mức lượng cho nguyên tử Natri với 11 điện tử với cấu trúc quỹ đạo Những điện tử mức dầu tiên, gần hạt nhân, có lượng tĩnh lớn, kết hấp dẩn điện tĩnh lớn hạt nhân xa hạt nhân có lượng để giử chặt, có lượng cao dể dàng tách khỏi nguyên tử Điện tử đơn mức lượng cao xem điện tử hoá trị Các ngun tử có điện tích âm khỏi nguyên tử gọi lổ trống dương Có thể cho điện tử mức lượng thấp chuyển lên mức lượng cao trình yêu cầu hấp thu lượng điện tử tương đương để có khác mức lượng Sự hấp thụ lương lấy từ kích thích nhiệt Ứng dụng lượng nhiệt kích thích điện tử băng hố trị nhảy tới băng ngồi kế tiếp, lỗ trống dương trở thành điện tử dẫn điện trình truyền điện GVHD: Lê Minh 10 Trường TP HCM Khoa Điện_Điện Tử CHƯƠNG 8: CHƯƠNG TRÌNH ĐỌC HIỆU CHỈNH NHIỆT ĐỘ THEO PHƯƠNG PHÁP ON-OFF , PI & PID • Phương pháp On – Off • Phương pháp PID GVHD: Lê Minh 73 Trường TP HCM Khoa Điện_Điện Tử unit Unitdieukhien; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart, Buttons; type TFormdieukhien = class(TForm) RadioGroup1: TRadioGroup; Buttonhoatdong: TButton; Timer1: TTimer; GroupBox2: TGroupBox; Label5: TLabel; Label6: TLabel; Label7: TLabel; Edit4: TEdit; GVHD: Lê Minh 74 Trường TP HCM Khoa Điện_Điện Tử Edit5: TEdit; Edit6: TEdit; GroupBox3: TGroupBox; Label8: TLabel; Label9: TLabel; Edit7: TEdit; Edit8: TEdit; Buttondung: TButton; GroupBox4: TGroupBox; Editgtrisaisohtai: TEdit; Editgtrinhietdohtai: TEdit; Label10: TLabel; Label11: TLabel; Label12: TLabel; Edit9: TEdit; Label13: TLabel; Edit10: TEdit; Timer2: TTimer; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Memo1: TMemo; Timer3: TTimer; Edit1: TEdit; Timer4: TTimer; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure dkonoff; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); GVHD: Lê Minh 75 Trường TP HCM Khoa Điện_Điện Tử procedure Timer2Timer(Sender: TObject); procedure ButtondungClick(Sender: TObject); procedure ButtonhoatdongClick(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure FormPaint(Sender: TObject); procedure BitBtn3Click(Sender: TObject) private { Private declarations public { Public declarations } end; Const base=$300; reg0= base + 0; reg1= base + 1; reg2= base + 2; reg3= base + 3; reg4= base + 4; reg5= base + 5; reg6= base + 6; reg7= base + 7; reg8= base + 8; reg9= base + 9; reg10= base + 10; reg11= base + 11; reg12= base + 12; reg13= base + 13; reg14= base + 14; reg15= base + 15; var Formdieukhien: TFormdieukhien; GVHD: Lê Minh 76 Trường TP HCM Khoa Điện_Điện Tử nhietdohtai,nhietdodat:real; Udk, U0, Ukt:real; Ekt, Ekt1,Ekt2:real; nhietdomax:real; sv,pv:real; Tmau:integer; dqc,chao:string[200]; ess:real; i:integer; pot:real; Kp,Ki,Kd:real; implementation uses Unitthongso; {$R *.DFM} {1} Function inport(address:word):byte; var data:byte; begin asm mov dx,address in al,dx mov data,al end; inport:=data; end; { } {2} procedure outport(address:word;data:byte); Begin asm mov dx,address mov al,data out dx,al end; GVHD: Lê Minh 77 Trường TP HCM Khoa Điện_Điện Tử end; { -} {3} Function INT:byte; begin INT:=(inport(reg8) and $10) shr 4; end; { } {4} Function EOC:byte; begin EOC:=(inport(reg8)and $80)shr 7; end; { } {5} Procedure set_rangeAD(range:byte); { dat tam dien ap ngo } var rang:byte; begin rang:=range and $03; outport(reg1,rang); end; { } {6} Procedure set_trigsource(trs:byte); var i:byte; begin i:=inport(reg9) and $FC; outport(reg9,i or trs); end; { } {7} Procedure analog_out(data:word); begin outport(reg4,(data and $000F)shl 4); outport(reg5,(data and $0FF0)shr 4); end; { -} GVHD: Lê Minh 78 Trường TP HCM Khoa Điện_Điện Tử {8} Procedure Trig_AD; { kich mem bo AD} begin outport(reg0,$FF); end; { -} {9} Procedure set_channelAD(start,stop:byte); begin outport(reg2,(stop shl 4) or start); end; { } {10} procedure delay(ms:longint); var counterms:longint; begin counterms:=ms+gettickcount; while counterms>=gettickcount do; end; { } {11} procedure Clear_Int; begin outport(reg8,$ff); end; { } {12} Function Read_AD:integer; { doc du lieu tu bo AD} var dlow, dhigh:byte; begin dlow:=inport(reg0); dhigh:=inport(reg1); dlow:=(dlow and $F0) shr 4; read_AD:=dlow+16*dhigh; end; { } {13} Function PID(data:real):real; GVHD: Lê Minh 79 Trường TP HCM Khoa Điện_Điện Tử var Kp, Ki, Kd, K , T1, T2, T:real; a0,a1,a2,Ukt,U0,Ekt,Ekt1,Ekt2:real; begin T:=Tmau/1000; { dat thoi gian lay mau la Tmau } Kp:=strtofloat(Formdieukhien.Edit4.text); Ki:=strtofloat(Formdieukhien.Edit5.text); Kd:=strtofloat(Formdieukhien.Edit6.text); { dieu khien PI } If Formdieukhien.RadioGroup1.ItemIndex= then begin a0:= Kp + Ki*T; a1:=-Kp + Ki*T; a2:= Kd/T; end; { dieu khien PID } If Formdieukhien.RadioGroup1.ItemIndex= then begin a0:= Kp + Kd/T + Ki*T; a1:=-Kp + Ki*T -2*Kd/T; a2:= Kd/T; end; Ukt:=a0*Ekt+a1*Ekt1+a2*Ekt2+U0; PID:=Ukt; end; { -} {14} procedure TFormdieukhien.dkonoff; { chuong trinh dieu khien On-Off } var kess:real; GVHD: Lê Minh 80 Trường TP HCM Khoa Điện_Điện Tử begin kess:=2; if nhietdohtai>=nhietdodat+kess then Analog_out($0000); if nhietdohtai=2048) then nhietdohtai:=(Read_AD-2048)*409.5/2047; Editgtrinhietdohtai.Text:=FloattoStr(nhietdohtai); Memo1.Lines.add(FloattoStr(nhietdohtai)); { ve duong dac tuyen } Canvas.MoveTo(80+i,430-trunc(nhietdohtai)); pot:=(nhietdohtai-nhietdodat)*100{/nhietdodat}; Edit9.Text:=floattostr(pot); ess:=(nhietdodat-nhietdohtai)*100{/nhietdodat}; editgtrisaisohtai.text:=floattostr(ess); i:=i+1; dkonoff; end; { -} {21} procedure TFormdieukhien.ButtondungClick(Sender: TObject); begin analog_out($0000); messagedlg(' Thank you for using My Program',mtInformation,[mbOK],0); Application.Terminate ; GVHD: Lê Minh 83 Trường TP HCM Khoa Điện_Điện Tử end; { -} {22} procedure TFormdieukhien.ButtonhoatdongClick(Sender: TObject); var t:integer; pot:real; essmau:real; begin essmau:=strtofloat(Edit7.Text); Canvas.MoveTo(80,430-trunc(nhietdodat)); { repeat} case radiogroup1.itemindex of 0:begin Groupbox2.Enabled:=False; Timer2.Interval:=1000*strtoint(Edit10.Text); Timer2.Enabled := true; end; 1,2:begin Timer3.Interval :=Tmau; Timer3.Enabled :=True; end; { editgtrisaisohtai.text:=floattostr(ess); until (ess =2048) then nhietdohtai :=(Read_AD-2048)*409.5/2047; Editgtrinhietdohtai.Text:=FloattoStr(nhietdohtai); Canvas.MoveTo(80+i,430-trunc(nhietdohtai)); Memo1.Lines.add(FloattoStr(nhietdohtai)); { ve duong dac tuyen } pot:=(nhietdohtai-nhietdodat)/nhietdodat*100; Edit9.Text:=floattostr(pot); ess:=(nhietdodat-nhietdohtai)*100/nhietdodat; editgtrisaisohtai.text:=floattostr(ess); dkPID; {dieu khien pid } t:=trunc(U0); Timer1.Interval:=t; Timer1.Enabled := true; Memo1.Lines.add(FloattoStr(Kp)); i:=i+1; end; { -} {24} procedure TFormdieukhien.Timer4Timer(Sender: TObject); var a:integer; q:string[1]; begin a:=length(chao); q:=chao[1]; delete(chao,1,1); insert(q,chao,a); GVHD: Lê Minh 85 Trường TP HCM Khoa Điện_Điện Tử dqc:=chao; Formdieukhien.Edit1.Text:=dqc; end; { -} {25}procedure TFormdieukhien.FormPaint(Sender: TObject); begin Canvas.Pen.Style:=psInsideFrame; Canvas.Brush.Color :=clwhite; Canvas.FillRect(Rect(10,210,340,460)); Canvas.MoveTo(80,250); { ve truc tung} Canvas.LineTo(80,430); Canvas.MoveTo(80,430); { ve truc hoanh } Canvas.LineTo(300,430); Canvas.Pen.Style:=psDash; Canvas.MoveTo(80,280); Canvas.LineTo(280,280); Canvas.MoveTo(80,330); Canvas.LineTo(280,330); Canvas.MoveTo(80,380); Canvas.LineTo(280,380); Canvas.MoveTo(130,280); Canvas.LineTo(130,430); Canvas.MoveTo(180,280); Canvas.LineTo(180,430); Canvas.MoveTo(230,280); Canvas.LineTo(230,430); Canvas.MoveTo(280,280); Canvas.LineTo(280,430); Canvas.Pen.Style:= psSolid; Canvas.Textout(72,435,'0'); Canvas.Textout(122,435,'50'); GVHD: Lê Minh 86 Trường TP HCM Khoa Điện_Điện Tử Canvas.Textout(172,435,'100'); Canvas.Textout(222,435,'150'); Canvas.Textout(272,435,'200'); Canvas.Textout(58,377,'50'); Canvas.Textout(58,327,'100'); Canvas.Textout(58,277,'150'); Canvas.Textout(310,424,'i'); Canvas.Textout(60,240,'Nhiet do'); Canvas.Textout(80,220,'Qua trinh dap ung cua lo nhiet'); end; end BIỂU ĐỒ KHẢO SÁT HỆ THỐNG NHIỆT Tài liệu tham khảo • Hướng dẫn thí nghiệm ĐKTĐ • PC-LadCard Hãng Advantech • Sách Điều khiển tự động I Nguyễn Phương Hà • www.advantech.com • Và tài liệu luận văn khoá trước địa Internet khác GVHD: Lê Minh 87 ... ĐIỀU KHIỂN PHƯƠNG PHÁP PID SỐ 4.1 CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN Hệ thống điều khiển lò nhiệt có đường đặc tuyến hình vẽ Do điều kiện môi trường, yêu cầu hệ thống thiết kế, ta cần điều khiển lò nhiệt. .. điều khiển tốt điều khiển On-Off cách cung cấp lượng cho lò nhiệt dựa vào khác biệt nhiệt độ nhiệt nhiệt độ đặt, với P xem độ khuếch đại tỷ lệ điều khiển Hình 3.2 Điều khiển khâu tỉ lệ 4.1.3 Điều. .. Bộ điều khiển nhiệt độ phản hồi Phản hồi Hình 3.8 Sơ đồ điều khiển lò điện Bộ điều khiển gồm mạch đo nhiệt độ sử dụng cặp nhiệt điện (ThermoCouple – có điện áp thay đổi theo nhiệt độ), mạch điều

Ngày đăng: 08/08/2020, 00:15

Từ khóa liên quan

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

Tài liệu liên quan