Dieu khien nhiet do PID so PCL 818

90 45 0
  • Loading ...
1/90 trang

Thông tin tài liệu

Ngày đăng: 05/05/2019, 18:27

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪ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 độ 13 2.1 Thermocouple 13 2.2 RTD 13 2.3 Thermistor .14 2.4 IC cảm biến 14 Thermocouple hiệu ứng Seebeck .15 3.1 Hiệu ứng Seebeck 15 3.2 Quá trình dẫn điện Thermocouple .15 3.3 Cách đo hiệu điện 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 lược phương pháp biến đổi AD .22 1.1 Biế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 Các ghi 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 khiển 44 1.1 Điều khiển On - Of 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 Và 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 Khá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 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, ả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ểnnhiệ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-Of , 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 q 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 PCL818L 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ý Ngồ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ò 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 Contronautics, Incorporated Simpson Electric Company… Trở lại mơ hình điều khiển nhiệt, đồ khối mơ hình hố q trình điều khiểnnhiệ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 NHIỆT ĐỘ 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 độ NHIỆT ĐỘ VÀ CÁC 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 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 CÁC LOẠI CẢM BIẾN HIỆN TẠI 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.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 RTD (resistance temperature detector) Ưu điểm  Ổn định  Chính xác  Tuyến tính thermocouple 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.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ỡ 10 { } {31} procedure TFormthongso.ButtonhoatdongClick(Sender: TObject); var ess,essmau:real; begin analog_out($0FFF); Tmau:=StrtoInt(Edit9.Text)*1000; y[1]:=0; i:=1; essmau:=0.000001; formthongso.Timer1.Interval := Tmau; formthongso.Timer1.Enabled := True; If (y[i]>y[i-1])then ymax:=y[i] else ymax:=y[i-1]; If (Read_AD>=4095) then break; messagedlg(' Chuong trinh da tim duoc thong so cua lo- Hay nhan Button ket qua de xem thong so',mtInformation,[mbOK],0); end; { -} {32} procedure TFormthongso.ButtondungClick(Sender: TObject); begin analog_out($0000); messagedlg(' Thank you for using My Program',mtInformation,[mbOK],0); Application.Terminate ; end; { -} {33}procedure TFormthongso.FormPaint(Sender: TObject); begin Canvas.Pen.Style:=psInsideFrame; Canvas.Brush.Color :=clwhite; Canvas.FillRect(Rect(10,200,330,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); 76 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,210,'Qua trinh dieu khien nhiet cua lo nhiet'); end; { -} {34} procedure TFormthongso.Button2Click(Sender: TObject); begin analog_out($0000); end; end 77 CHƯƠNG TRÌNH ĐỌC HIỆU CHỈNH NHIỆT ĐỘ THEO PHƯƠNGPHÁP ON-OFF , PI & PID  Phương pháp On – Of  Phương pháp PID 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; 78 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 dkonof; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); 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); 79 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; sv,pv:real; Tmau:integer; dqc,chao:string[200]; ess:real; i:integer; pot:real; Kp,Ki,Kd:real; implementation 80 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; { } {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; { } 81 {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 counterms:=ms+gettickcount; while counterms>=gettickcount do; end; { } {11} procedure Clear_Int; begin outport(reg8,$f); 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; 82 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 } 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.dkonof; { chuong trinh dieu khien On-Of } var kess:real; begin kess:=2; if nhietdohtai>=nhietdodat+kess then Analog_out($0000); if nhietdohtai=2048) then nhietdohtai:=(Read_AD2048)*409.5/2047; 85 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; dkonof; end; { -} {21} procedure TFormdieukhien.ButtondungClick(Sender: TObject); begin analog_out($0000); messagedlg(' Thank you for using My Program',mtInformation,[mbOK],0); Application.Terminate ; 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; 86 end; { editgtrisaisohtai.text:=floattostr(ess); until (ess =2048) then nhietdohtai :=(Read_AD2048)*409.5/2047; Editgtrinhietdohtai.Text:=FloattoStr(nhietdohtai); Canvas.MoveTo(80+i,430-trunc(nhietdohtai)); Memo1.Lines.add(FloattoStr(nhietdohtai)); { ve duong dac tuyen } pot:=(nhietdohtainhietdodat)/nhietdodat*100; Edit9.Text:=floattostr(pot); ess:=(nhietdodatnhietdohtai)*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; 87 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 } 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'); 88 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 Tài liệu tham khảo 89      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 90 ... D5 D4 D3 D2 D1 D0 Valu e DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0 BASE+11 Bit D7 Valu DO1 e ( Viết port ) –Byte cao Digital Output D6 DO1 D5 DO1 D4 D3 D2 O12 O11 DO1 D1 D0 DO9 DO8 30 2.1.4 Thanh ghi xuất... xem xét đến CARD AD – PCL 818 CỦA HÃNG ADVANTECH 24 Một vài hình ảnh Card AD PCL- 818 phần cứng hổ trợ(PCLD-8115) thị trường PCL_ 818L card gắn vào rảnh ISA máy tính PCL_ 818L có nhiều chức dùng... 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 Và Solid State Relay (
- Xem thêm -

Xem thêm: Dieu khien nhiet do PID so PCL 818, Dieu khien nhiet do PID so PCL 818, Thermocouple và hiệu ứng seebeck, SƠ LƯỢC VỀ CÁC PHƯƠNG PHÁP BIẾN ĐỔI AD, CARD AD – PCL 818 CỦA HÃNG ADVANTECH, CÁc PHƯƠNG PHÁP ĐIỀU KHIỂN, THIẾT KẾ PID SỐ

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn