Đề tài này đã giải quyết được bài tốn xác định đường đặc tuyến H – Q của bơm bằng bộ điều khiển mờ lai .
Hướng mở rộng: Đo tính tốn giá trị NPSH; kiểm sốt nhiệt độ trên đường ống; mở rộng mạng Industrial Ethernet (gồm nhiều PC làm chức năng giám sát hệ thống từ xa, kết nối nhiều PLC qua giao thức TCP/IP).
§ Đo tính tốn và lập đồ thị quan hệ NPSH
Giá trị NPSH là giá trị cột áp nhỏ nhất mà tại đĩ bơm cĩ thể chuyển lưu chất liên tục tại số vịng quay định mức nN, lưu lượng định mức Qn
g Q P P P NPSH S b D S 2 2 + − + = γ Trong đĩ:
PS : Aùp suất tại tâm miệng hút của bơm. Phương trình Bernulli xác định PS: − − + − + = ν γ γ Z Z h g V V P P S S S ( ) 2 1 2 2 1 1
γ : Khối lượng riêng phụ thuộc nhiệt độ P1 : Aùp suất đo được tại vị trí đặt thiết bị V1 : Vận tốc nước tại mặt cắt 1 1 1 A Q V = VS : Vận tốc nước tại tâm ống hút
S S A Q V = g : Gia tốc trọng trường Z1-ZS : Độ chênh thế năng
hv : Tổn thất cột áp trên đoạn ống từ mặt cắt 1 đến tâm miệng ống hút Pb : Aùp suất chân khơng tuyệt đối
Pd : Aùp suất hơi bảo hịa tra theo phụ lục
Khi giá trị lưu lượng đọc về từ Flowmetter xác lập quanh vị trí đặt, ta điều khiển valve đầu ống hút (đĩng nhỏ dần) thì valve đầu ống ra sẽ tự động điều
chỉnh sao cho lưu lượng thực tế vẫn ở quanh vị trí xác lập (nhờ bộ điều khiển), từ đĩ ta xác định được độ NPSH. Thực hiện tương tự cho các điểm Q khác, ta sẽ thu được đồ thị biểu thị quan hệ NPSH (Q).
Tài Liệu Tham Khảo Tài Liệu Tham Khảo
1. Lý thuyết điều khiển mờ
Phan Xuân Minh – Nguyễn Dỗn Phước
2. Điều khiển Logic và ứng dụng
PGS, TS Nguyễn Trọng Thuần
3. Tự động hĩa với SIMATIC S7-300
Nguyễn Dỗn Phước - Phan Xuân Minh – Vũ Vân Hà
4. S7 Manuals
5. Điều khiển tự động
Nguyễn Thị Phương Hà
6. Cơ sở tự động
Lương Văn Lăng
7. Intellution® Educational Services – 154A Student Guide
HMI/SCADA Development with iFIX for New Users Version 2.1 – 7.99 8. Visual Basic 5.0
Phạm Thùy Nhân
P
Phhuuïï lluuïïcc 11
1. CPU 412-2 DP MODULE (6ES7 412-2XG00-0AB0)
Bộ nhớ RAM 128 KB cho chương trình 128 KB cho dữ liệu
Load memory 256 KB RAM
Cĩ card nhớ dung lượng đến 64 MB Thời gian xử lý Các lệnh về bit : 0.1µs
Các lệnh về tư ø : 0.1µs Các lệnh về logic : 0.1µs Các lệnh về số thực : 0.6µs Counter 256 (C0 ÷ C255) Phạm vi đếm : 1 ÷ 999 Timer 256 (T0 ÷ T255) Phạm vi : 10ms ÷ 9990s Bit nhớ M0 ÷ M8191
Ngơn ngữ lập trình Step7 V5.0 SP2 (LAD, FBD, STL); SCL, CFC, GRAPH, HiGraph
Nguồn áp 24VDC
Dịng tiêu thụ trên bus S7-400
(24VDC) Max. 0.3 A
Cơng suất tiêu thụ 8 W
Kích thước (WxHxD) (mm) 25x290x219 Số slot cần thiết 1
Khối lượng (g) 720 Cĩ nguồn pin để lưu giữ chương
trình
2. CP 443-1 TCP MODULE (6GK7 443-1EX01-0XE0)
Tốc độ truyền 10 Mbit/s
Giao tiếp Kết nối đến AUI/ITP : Đầu nối cái 15 chân
Dịng tiêu thụ
• Ở +5 VDC
• Ở 24 VDC
Khoảng 1A
220mA, max. 450mA Cơng suất tiêu tán 11W
Điều kiện mơi trường cho phép
• Nhiệt độ hoạt động
• Nhiệt độ lưu trữ/Vận chuyển
• Độ ẩm tương đối 0oC ÷ +60oC -40oC ÷ +70oC max. 95% ở +25oC Kích thước (WxHxD) (mm) 25x290x210 Khối lượng 750 g
Số các kết nối vận chuyển ISO Max. 64 Số các kết nối vận chuyển TCP/IP Max. 10
Lượng dữ liệu hữu ích (UDP) Max. 2048 Kbytes Số dữ liệu hữu ích (ISO hay TCP/IP) Max. 8 Kbytes
3. ANALOG INPUT MODULE SM 431 ; AI 16X16 BITS (6ES7 431-7QH00- 0AB0)
- Cĩ khả năng chuẩn đốn
- Cĩ khả năng ngắt phần cứng, do vậy đặc biệt thích hợp với việc giám sát gần yêu cầu xử lý
- 16 ngõ vào ( max. 8 trong trường hợp đo trở) - Phân giải 16 bits
- Tầm tín hiệu vào áp - Tầm tín hiệu vào dịng
- Tầm tín hiệu vào cho cảm biến điện trở, nhiệt kế điện trở - Tầm tín hiệu vào cho cặp nhiệt đện
- Cĩ thể dùng với các loại cảm biến nhiệt
- Tuyến tính hĩa các đường cong đặc tính cảm biến
- Nguồn áp: 24 VDC, chỉ yêu cầu khi nối transducer 2 dây - Cách ly
- Cho phép áp 120 VAC mode chung
- Aùp vào cho phép cực đại đối với tín hiệu vào áp : 18 V
- Dịng vào cho phép cực đại đối với tín hiệu vào dịng : 40 mA - Cơng suất tiêu tán : 4.5 W
- Aùp vào cho phép đối với tín hiệu vào áp: 18 V
- Dịng vào cho phép đối với tín hiệu vào dịng : 40mA - Cơng suất tiêu tán : 4.5 W
4. CP 1613
Tốc độ truyền 10/100 Mbit/s
Giao tiếp
• Đến mạng Industrial Ethernet (10/100 Mbit/s) DP cái 15 chân
• 10BaseT, 100BaseTX RJ45
Nguồn 5 V DC +/–5%
Dịng tiêu thụ 600mA (áp 5V)
max. 500mA (áp 12V)
Cơng suất tiêu tán 4W
Điều kiện mơi trường
• Nhiệt độ hoạt động 5oC đến 40oC
• Nhiệt độ lưu trữ/vận chuyển -40oC đến +70oC
• Độ ẩm tương đối max. 95% ở +25 C Kết cấu
• Dạng module Dạng AT ngắn
• Kích thước (W D) (mm) 168 x 108
• Trọng lượng 200g
• Khơng gian cần thiết 1 khe cắm PCI
Mức độ bảo vệ IP 30
Chế độ giao thức đơn Giao tiếp S7 và PG/OP
• Số kết nối cĩ thể – ISO
Max. 160 Giao tiếp tương thích S5
• Số kết nối cĩ thể – ISO
5. TRANCEIVER (WITH 2 INTERFACES)
Giao tiếp
• Kết nối với mạng Industrial Ethernet thơng qua cáp mạng LAN 727-0
Cơ cấu taro với socket đồng trục loại N
• Kết nối cho các DTEs 2 Đầu nối 15 chân đực Nguồn (lấy từ DTE) 9.5 V đến 15.75 V DC
Dịng tiêu thụ Max. 500mA
Điện trở cách điện 10 MΩ
Điện áp cách ly 1.5 kV AC (giữa cáp LAN và vỏ) Nhiệt độ hoạt động 0oC đến +55oC
Nhiệt độ lưu trữ/vận chuyển -40oC đến +70oC Độ ẩm tương đối max. 95%
Kích thước (W x H x D) (mm) 180 x 85 x 45
Trọng lượng 640g
Vật liệu làm vỏ Nhơm
Mức độ bảo vệ IP 40
6. PROPORTIONAL SOLENOID VALVES & MODULES (VAN ĐIỀU KHIỂN TỈ LỆ)
Áp cung cấp (Van) 24 VDC (nối với Module điều khiển) Áp cung cấp (Module) 24 VDC
Cơng suất tiêu thụ 5W (G1/8) 8W (G1/4) 14W (G3/8) module 0 ÷ 5W Độ nhớt cực đại 21 mm2/s
Nhiệt độ hoạt động -10oC ÷ +90oC
Nhiệt độ mơi trường cực đại +55oC (Van & Module)
Tín hiệu giám sát Tỷ lệ trực tiếp với áp cuộn dây 1mV = 1mA
Trở kháng vào (module) 0÷10 = 16.8k 4÷20mA = 200 Aùp suất hoạt động cực đại 6 bar
7. GENERAL PURPOSE PRESSURE TRANSDUCERS/ TRANSMITTERS (GEMS TRANSINSTRUMENTS) (CẢM BIẾN ÁP SUẤT LƯU LƯỢNG)
Tầm 0 ÷ 6 bar
Điện áp cung cấp 10 VDC (Transducer) 7 ÷ 35 VDC (Transmitter) Aùp suất làm việc cực đại 2 x tầm
Tín hiệu ra 0 ÷ 100mV (Transducer) 4 ÷ 20 mA (Transmitter) Độ chính xác ·±25 (typ), 1% (min)
Nhiệt độ hoạt động cho phép -40oC ÷ +125oC (Transducer) -40oC ÷ +100oC (Transmitter)
11. BẢNG THAM SỐ MẠNG ETHERNET
Tham số 10 BASE5 10 BASE2 IOBASE
Tên chung Ethernet chuẩn
hoặc Thick Ethernet chuẩn hoặc Thin Ethernet cặp dây xoắn Tốc độ dữ liệu 10 Mbps 10 Mbps 10 Mbps Chiều dài đoạn cực đại 500 m 200 m 100 m Số nút cực đại trên một đoạn 100 30 3 Số bộ chuyễn tiếp cực đại 2 4 4 Số nút nhiều nhất trên mỗi
đoạn
1024 1024 Khoảng cách nhỏ nhất giữa
các nút
2,5m 0,5m Khơng giới hạn Định vị trí của bộ truyền/nhận Kết nối dây cáp Tích hợp vào
trong nút Trong một Hub Kiểu dây cáp tiêu biểu RG 50 RG6 Dây cáp UTP Đầu nối dây N-type BNC RJ-45/Telco Trở kháng dây cáp 50 50 100
12. BẢNG THAM SỐ MẠNG FAST ETHERNET
10 BASE-TX 100VG-AnyLAN
Chuẩn IEEE 802.3u IEEE 802.12 Tốc độ bit 100 Mbps 100 Mbps
Lưu lượng hiện tại Lên đến 50 Mbps Lên đến 96 Mbps Khoảng cách cực đại
(Hub tới nút)
100 m (cặp dây xoắn, Cat-5) 400 m(sợi quang)
100 m (cặp dây xoắn, Cat-3) 200 m (cặp dây xoắn, Cat-5) 400 m(sợi quang)
Khả năng nâng cấp Khơng Lên đến 400 Mbps Những ưu điểm Dễ dàng chuyển đổi
P
Phhuuïï lluuïïcc 22
1. PICMAIN.GRF
Public k As Integer Public i As Boolean
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal
hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any)
Private Sub CFixPicture_Initialize() i = False k = 0 cmdsetpoints.Enabled = True cmdstartpump.Enabled = False cmddisplay.Enabled = True cmdalarm.Enabled = False cmdreport.Enabled = False cmdresponse.Enabled = False DataLink30.Visible = False opendigitalpoint "Fix32.PC2.F_STATE.F_CV" End Sub
Private Sub cmdabout_Click() frmabout.Show
End Sub
Private Sub cmdalarm_Click()
OpenPicture "pumpalarm.grf", "", "", "" End Sub
Private Sub cmddisplay_Click() Dim MyAppID
MyAppID = Shell("C:\Program Files\Microsoft Office\Office10\Excel.exe C:\Dynamics\linhtinh\chart.xls", 1)
End Sub
Private Sub cmdexit_Click() Dim lResult As Long Dim iResult
Dim hw&, cnt&
hw& = FindWindow(vbNullString, "iFix Startup")
If hw& = 0 Then hw& = FindWindow(vbNullString, "iFix Startup - Demo Mode")
If hw& <> 0 Then cnt& = SendMessage(hw&, &H10, 0, 0&) End Sub
Private Sub cmdreport_Click()
OpenPicture "Result_table.grf", "", "10", "15" End Sub
Private Sub cmdsetpoints_Click()
If opt7.Value = True And opt1.Value = False Then frmparametter.Show
Else
frm1point.Show End If
End Sub
Private Sub cmdstartpump_Click() i = Not i
Select Case i Case True
cmdstartpump.Caption = "Stop Pump" cmdsetpoints.Enabled = False cmdexit.Enabled = False closedigitalpoint "Fix32.PC2.PUMP.F_CV" opt7.Enabled = False opt1.Enabled = False Text35.Caption = "0.100" OpenPicture "response.grf", "", "", "" OpenPicture "picmain1.grf", "", "", "" user.Qsp1.CurrentValue = sp(0) user.Qsp2.CurrentValue = sp(1)
user.Qsp3.CurrentValue = sp(2) user.Qsp4.CurrentValue = sp(3) user.Qsp5.CurrentValue = sp(4) user.Qsp6.CurrentValue = sp(5) user.Qsp7.CurrentValue = sp(6) Case False
cmdstartpump.Caption = "Start Pump" cmdsetpoints.Enabled = True cmdexit.Enabled = True Text35.Caption = "0.000" opendigitalpoint "Fix32.PC2.PUMP.F_CV" opendigitalpoint "Fix32.PC2.Delay.F_CV" opt7.Enabled = True opt1.Enabled = True ClosePicture "response.grf" k = 0 End Select plugandsolve.ko.CurrentValue = k End Sub
Private Sub cmdresponse_Click() OpenPicture "Response.grf", "", "", "" End Sub
Private Sub Delay_OnTrue() cmdalarm.Enabled = True cmdresponse.Enabled = True End Sub
Private Sub opt1_Click() opt7.Value = False opt1.Value = True cmdsetpoints.Enabled = True cmdstartpump.Enabled = False DataLink16.Visible = False DataLink23.Visible = False DataLink24.Visible = False DataLink25.Visible = False DataLink26.Visible = False
DataLink27.Visible = False DataLink28.Visible = False DataLink30.Visible = True OpenPicture "response.grf", "", "", "" OpenPicture "picmain1.grf", "", "", "" End Sub
Private Sub opt7_Click() opt7.Value = True opt1.Value = False cmdsetpoints.Enabled = True cmdstartpump.Enabled = False DataLink16.Visible = True DataLink23.Visible = True DataLink24.Visible = True DataLink25.Visible = True DataLink26.Visible = True DataLink27.Visible = True DataLink28.Visible = True DataLink30.Visible = False OpenPicture "response.grf", "", "", "" OpenPicture "picmain1.grf", "", "", "" End Sub
Private Sub Finish_OnTrue()
If opt7.Value = True And opt1.Value = False Then Q(k) = plugandsolve.Q.CurrentValue
H(k) = plugandsolve.H.CurrentValue
If k < 6 Then ' Neu chua truyen het 7 diem k = k + 1
Fix32.PC2.QSP.F_CV = sp(k) ' Thi tiep tuc truyen Else cmddisplay.Enabled = True cmdreport.Enabled = True cmdsetpoints.Enabled = True Fix32.PC2.Q1.F_CV = Q(0) Fix32.PC2.Q2.F_CV = Q(1)
Fix32.PC2.Q3.F_CV = Q(2) Fix32.PC2.Q4.F_CV = Q(3) Fix32.PC2.Q5.F_CV = Q(4) Fix32.PC2.Q6.F_CV = Q(5) Fix32.PC2.Q7.F_CV = Q(6) Fix32.PC2.H1.F_CV = H(0) Fix32.PC2.H2.F_CV = H(1) Fix32.PC2.H3.F_CV = H(2) Fix32.PC2.H4.F_CV = H(3) Fix32.PC2.H5.F_CV = H(4) Fix32.PC2.H6.F_CV = H(5) Fix32.PC2.H7.F_CV = H(6) cmdstartpump_Click k = 0 Fix32.PC2.QSP.F_CV = sp(k) End If End If opendigitalpoint "Fix32.PC2.F_STATE.F_CV" plugandsolve.ko.CurrentValue = k End Sub
Private Sub P2_Change_DataChange(ByVal DataValue As Variant, ByVal TimeStamp
As Date, ByVal Transition As Long, ByVal Reserved As Variant) Call Head_Calculation
End Sub
Private Sub Q_Change_DataChange(ByVal DataValue As Variant, ByVal TimeStamp As Date, ByVal Transition As Long, ByVal Reserved As Variant) Call Head_Calculation
End Sub
§ Module 1 Tính cột áp Public sp(6) As Double Public H(6) As Double
Public Q(6) As Double
Public Sub Head_Calculation()
plugandsolve.V1.CurrentValue = plugandsolve.Q.CurrentValue / (60000 * user.A1.InitialValue) plugandsolve.V2.CurrentValue = plugandsolve.Q.CurrentValue / (60000 * user.A2.InitialValue) plugandsolve.H.CurrentValue = plugandsolve.DeltaZ.InitialValue + plugandsolve.klrieng.InitialValue * _ (plugandsolve.P2.CurrentValue - plugandsolve.P1.InitialValue) * 10000 + _ plugandsolve.Giatoc.InitialValue * (Sqr(plugandsolve.V2.CurrentValue) - _ Sqr(plugandsolve.V1.CurrentValue)) End Sub
Public Function CheckValue(ByVal Value As Long) As Boolean If Value >= 10.5 And Value <= 14.5 Then
CheckValue = True Else CheckValue = False End If End Function 2. FRMPARAMETTER.FRM
Private Sub cmdautoset_Click() txtflow1.Text = 14 txtflow2.Text = 13.5 txtflow3.Text = 13 txtflow4.Text = 12.5 txtflow5.Text = 12 txtflow6.Text = 11.5 txtflow7.Text = 11 End Sub
Unload Me End Sub
Private Sub cmdok_Click()
If (txtflow1.Text <> "" And txtflow2.Text <> "" And txtflow3.Text <> "" And _ txtflow4.Text <> "" And txtflow5.Text <> "" And txtflow6.Text <> "" And _ txtflow7.Text <> "") And (CheckValue(Val(txtflow1.Text)) And
CheckValue(Val(txtflow2.Text)) _
And CheckValue(Val(txtflow3.Text)) And CheckValue(Val(txtflow4.Text))_ And CheckValue(Val(txtflow5.Text)) And CheckValue(Val(txtflow6.Text))_ And CheckValue(Val(txtflow7.Text))) Then
sp(0) = Val(txtflow1.Text) sp(1) = Val(txtflow2.Text) sp(2) = Val(txtflow3.Text) sp(3) = Val(txtflow4.Text) sp(4) = Val(txtflow5.Text) sp(5) = Val(txtflow6.Text) sp(6) = Val(txtflow7.Text) picmain1.cmdsetpoints.Enabled = False picmain1.cmdstartpump.Enabled = True Fix32.PC2.QSP.F_CV = sp(k) user.Qsp1.CurrentValue = sp(0) user.Qsp2.CurrentValue = sp(1) user.Qsp3.CurrentValue = sp(2) user.Qsp4.CurrentValue = sp(3) user.Qsp5.CurrentValue = sp(4) user.Qsp6.CurrentValue = sp(5) user.Qsp7.CurrentValue = sp(6) Unload Me Else
MsgBox "Please enter value !" txtflow1.SetFocus
End If End Sub
3. FRM1POINT.FRM
Private Sub cmdcancel_Click() Unload Me
End Sub
Private Sub cmdok_Click()
If (txtnhap.Text = "") Or Val(txtnhap.Text) < 10.5 Or Val(txtnhap.Text) > 14 Then
MsgBox "Out of range ! Please enter new value !" txtnhap.Text = "" txtnhap.SetFocus Else picmain1.cmdsetpoints.Enabled = False picmain1.cmdstartpump.Enabled = True Fix32.PC2.QSP.F_CV = Val(txtnhap.Text) Unload Me End If End Sub
P
Phhuuïï lluuïïcc 33