Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818

96 108 0
Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818

Đ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 tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 v Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818 Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818Đồ án tốt nghiệp: Điều khiển nhiệt độ PID số PCL818

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN _ _ NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN _ LỜI CẢM ƠN Em xin chân thành cảm ơn Bộ môn Điều khiển tự động, thầy Hoàng Minh Trí thầy cô khác hướng dẫn tận tình , cung cấp cho em kiến thức quý báu cho em thời gian thực luận văn Em chân thành cảm ơn hổ trợ, đóng góp ý kiến bạn bè Đây lần đầu em làm Luận Văn , thiếu sót hay khiếm khuyết điều không tránh khỏi Em chân thành cám ơn đóng góp ý kiến chuyên môn để khả kỹ thuật em mở rộng Chân thành cảm ơn Sinh viên thực Nguyễn Ngọc Nhân MỤC LỤC Phần LÝ THUYẾT Chương Các khối điều khiển nhiệt độ Chương Nhiệt độ – Các loại cảm biến nhiệt độø .11 Nhiệt độvà thang đo nhiệt độø 12 Các loại cảm biết nhiệt độ taïi 13 2.1 Thermocouple .13 2.2 RTD .13 2.3 Thermistor 14 2.4 IC caûm bieán 14 Thermocouple hiệu ứng Seebeck 15 3.1 Hiệu ứng Seebeck .15 3.2 Quaù trình dẫn điện Thermocouple .15 3.3 Cách đo hiệu điện thếø 17 3.4 Bù nhiệt môi trường .19 3.5 Các loại Thermocouple 20 3.4 Một số nhiệt độ chuẩn 21 Chương Các phương pháp biến đổi AD Card PCL-818 Advantech .22 Sơ lược phương pháp biến đổi AD 22 1.1 Bieán đổi AD dùng biến đổi DA .22 1.2 Bộ biến đổi Flash-AD 26 1.3 Bộ biến đổi AD theo hàm dốc dạng lên xuống 27 1.4 Bộ biến đổi AD dùng chuyển đổi áp sang tần số .27 1.5 Bộ biến đổi AD theo tích phân độ dốc 28 Card AD - PCL818 hãng Advantech 29 2.1 Caùc ghi cuûa Card .29 2.2 Chuyển đổi A/D , D/A , D/I , D/O 41 Chương Các phương pháp điều khiển Phương pháp PID số 44 Các phương pháp điều khieån 44 1.1 Điều khiển On - Offø .44 1.2 Điều khiển khâu tỷ lệ 45 1.3 Điều khiển khâu vi phân tỷ lệ PD .46 1.2 Điều khiển khâu vi tích phân tỷ lệ PID 47 Phương pháp điều khiển PID số 49 Thiết kế PID số 51 Điều khiển PID hệ thống điều khiển nhiệt độ 52 Chương Các Loại Mạch Kích Vaø Solid State Relay ( SSR ) 56 Đóng ngắt OpTo - Triac 56 Contactor Quang – Solid State Relay 58 Chương Các loại IC khác .60 IC Khaùc 60 OP07 61 Phần Phần Cứng 62 Khối cảm biến mạch gia công 63 Phần Lưu đồ giải thuật chương trình 67 1.Lưu đồ giải thuật 68 2.Chương trình điều khiển ngôn ngữ Delphi 71 Biểu đồ khảo sát hệ thống nhiệt 99 Tài liệu tham khảo 102 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 hoà, 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, ảnh hưởng đến 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 luận văn 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 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 mạch 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 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ý Ngoài PCL-818 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ò 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 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 Contronautics, Incorporated Simpson Electric Company… Trở lại mô hình điều khiển nhiệt, sơ đồ khối mô hình hoá 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 10 CHƯƠNG TRÌNH ĐỌC HIỆU CHỈNH NHIỆT ĐỘ THEO PHƯƠNGPHÁP ON-OFF , PI & PID • Phương pháp On – Off • Phương pháp PID 82 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; 83 Label5: TLabel; Label6: TLabel; Label7: TLabel; Edit4: TEdit; 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); procedure Timer2Timer(Sender: TObject); procedure ButtondungClick(Sender: TObject); 84 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; nhietdohtai,nhietdodat:real; Udk, U0, Ukt:real; Ekt, Ekt1,Ekt2:real; nhietdomax:real; 85 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; end; { -} {3} Function INT:byte; begin INT:=(inport(reg8) and $10) shr 4; end; { } 86 {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; { -} {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 87 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; 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 } 88 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; 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 ; end; { -} 91 {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); 92 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); 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 } 93 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'); 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 94 95 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 96 ... lệ PD .46 1.2 Điều khiển khâu vi tích phân tỷ lệ PID 47 Phương pháp điều khiển PID số 49 Thieát keá PID soá 51 Điều khiển PID hệ thống điều khiển nhiệt độ 52 Chương Các... THUYẾT Chương Các khối điều khiển nhiệt độ Chương Nhiệt độ – Các loại cảm biến nhiệt độ .11 Nhiệt độvà thang đo nhiệt độ 12 Các loại cảm biết nhiệt độ 13 2.1 Thermocouple... 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 hoà, máy lạnh hay lò viba, điều khiển nhiệt độ tính chất đònh cho sản phảm

Ngày đăng: 27/06/2020, 10:49

Từ khóa liên quan

Mục lục

  • 1. nhiệt độ và các thang đo nhiệt độ

  • 2. CÁc loại cảm biến hiện tại

    • 2.1. Thermocouple

    • 2.2. RTD (resistance temperature detector)

    • 2.3. Thermistor

    • 2.4. IC cảm biến

    • 3. Thermocouple và hiệu ứng seebeck

      • 3.1. Hiệu ứng Seebeck

      • 3.3. Cách đo hiệu điện thế

      • 3.4 Bù nhiệt của môi trường

      • 3.5 Các loại thermocouple

      • 3.6 Một số nhiệt độ chuẩn

      • 1. SƠ LƯC VỀ CÁC PHƯƠNG PHÁP BIẾN ĐỔI AD

        • 1.1. Biến đổi AD dùng bộ biến đổi DA

          • 1.1.1. Bộ biến đổi AD theo hàm dốc

          • 1.1.2. Bộ biến đổi AD xấp xỉ liên tiếp

          • 1.2. Bộ biến đổi Flash AD

          • 1.3. Bộ biến đổi AD theo hàm dốc dạng lên xuống (tracking ADC)

          • 1.4. Bộ biến đổi AD dùng chuyển đổi áp sang tần số

          • 1.5. Bộ biến đổi AD theo tích phân hai độ dốc

          • 2. CARD AD – PCL 818 CỦA HÃNG ADVANTECH

          • 1. CÁc PHƯƠNG PHÁP ĐIỀU KHIỂN

          • 2. PHƯƠNG PHÁP ĐIỀU KHIỂN PID SỐ

          • 3. THIẾT KẾ PID SỐ

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

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

Tài liệu liên quan