TÀI LIỆU THAM KHẢO

Một phần của tài liệu Nghiên cứu thiết kế và chẩn Đoán vị trí rò rỉ của mô hình hệ thống Đường ống dẫn nước thật áp dụng thuật toán ước lượng b$n vững lpv (Trang 91 - 102)

[1] AL JAZEERA (2021). Mapping the world’s oil and gas pipelines, https://www.aljazeera.com/news/202 1/12/16/mapping-world-oil-gas-pipelines- interactive.

[2] Công thông tin điện tử thành phố Đà Nẵng (2020). Hệ zhống cấp nước TP.Đà

Nang, https://www.danang.gov.vn/web/guest/gioi-thieu/chi-tiet?1d=38662& c=39, [3] Công ty TNHH Dịch vụ Kỹ thuật Hưng Thịnh (2022). Cách phát hiện rò ri nước băng máy đò ông nước âm tường, https://goitho247.com/cach-phat-hien-ro-ri-nuoc- bang-may-do-ong-nuoc-am-tuong/.

[4] Sina Razvarz, Raheleh Jafari, Alexander Gegov (2020). Flow Modelling and Control in Pipeline Systems A Formal Systematic Approach, NXB Springer, Ebook.

[5] WIKA Alexander Wiegand SE & Co. KG (2017). WIKA PSD-4 BER AFPRIB EI BH, Hướng dẫn sử dụng sản phẩm.

[6] SAGINOMIYA SEISAKSHO, INC (2022). VORTEX FLOW METER OLK, WLK, Hướng dẫn sử dụng sản phẩm.

[7] Arduino (2022). Arduino Uno R3,

https://docs.arduino.cc/static/dc92 fof5b6fd0d38636e78e83e25afc0/A000066- datasheet. pdf.

[8] Arduino (2022). Arduino MEGA 2560 Rev3,

https://docs.arduino.cc/static/270 1 3e8da47 1ae201cc96608 1 5e3e0 1c/A000067- datasheet. pdf.

[9] Chengdu Ashining Technology Co., Ltd (2022). Specification-of-AS32-1TL-100, http://m.asnwireless.com/uploads/20 1922 129/Specification-of-AS32-TTL-100.pdf.

[10] Semtech (2022). What Is LoRa?, https:/(www.semtech.com/lora/what-is-lora.

[11] Modbus-IDA (2006). MODBUS APPLICATION PROTOCOL SPECIFICATION,

https://www.modbus.org/docs/Modbus_ Application Protocol V1_1b.pdf

[12] Gildas Besancon, Didier Georges, Ofelia Begovich, Cristina Verde, and Carlos Aldana (2007). Direct observer design for leak detection and estimation in pipelines, H6i nghi Dieu khién Chau Au 2007, Hy Lap.

[13] TS. Pham Thanh Phong, TS V6 Anh Tuan, ThS. Pham Duy Duong (2021). Gido trình kỹ thuật điều khiên nâng cao, Nhà xuat ban thông tin và truyện thông, Hà Nội.

Sinh viên thực hiện: Nguyễn Văn Khương Người hướng đẫn: TS. Phạm Thanh Phong Mai Hoàng Quý Thông

hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV

PHỤ LỤC

Phu luc I

Chương trình Arduino no của khối thu thập đữ liệu và điều khiển bơm đầu đường ống include <SoftwareSerial.h>

#define TX 3

#define RX 2

#define MO 13

#define M1 12

#define PMP 9

#define ON 7

#define OFF 8

SoftwareSerial mySerial(TX, RX);

1nt n1,n2,n3,n4,n11,n33;

bool check;

char cl,c2,c3;

void setup() { Serial.begin(9600);

mySerial.begin(9600);

pinMode(MO0, OTPT);

pinMode(M1, OTPT);

pinMode(PMP, OTPT);

pinMode(ON, INPT);

pinMode(OFE, INPT);

digital Write(PMP, LOW);

digital Write(M0, LOW);

digitalWrite(M1, LOW);

check=false;

}

void loopQ) {

1f(digitalRead(ON)==0){

delay(50);

1f(digitalRead(ON)==0){

Phụ lục

Nghiên cứu thiết kế và chấn đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV digital Write(PMP,255);

} }

if(digitalRead(OFF)——0){

delay(50);

if(digitalRead(OFF)——0){

digitalWrite(PMP,0);

} }

if (mySerial.available() > 0) { cl =mySerial.read();

Serial.pnntln(cl);

if (¢l=='s') {

Serial.printin("Da nhan s");

if (mySerial .available() > 0) c2 =mySerial.read();

Serial.pnntln(c2);

if (c2==":') {

Serial.println("Da nhan :");

if (mySerial.available() > 0) c3 = mySerial.read();

SerialL.print(c3);

If(c3—'1') {

Serial.prntln("Dang gui");

int a00=analogRead(A0);

int al0=analogRead(A1);

int a01=analogRead(A0);

int al l=analogRead(A1);

1f (check==true){

nl=((a00+a01+n11)/4)/100;

n2=((a00+a01+n11)/4)%100;

n3=((a10+al1+n333/⁄4)/100;

n4=((a10+al1+n333/4)%100;

yelse{

nl=((a00+a01)/2/ 100;

Phu luc

hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV

n2=((a00+a01)/2)%100;

n3=((al0+al1)/2/100;

n4=((al0+al1)/2)%100;

}

byte buf[8]={1,n1,n2,2,n3,n4,3,digitalRead(PMP)};

mySerial.write(buf,8);

check=false;

}

1f(c3—2)) {

int a00=analogRead(A0);

delay(10);

int al0=analogRead(A1);

delay(10);

int a01=analogRead(A0);

delay(10);

int al l=analogRead(A1);

delay(50);

nl 1=a00+a01;

n33=al0+all;

check=true;

}

if (c3—='3') {

Serial printin("Dang bat bom");

digital Write(PMP,255);

}

1f(c3—4) {

Serial.prntln("Dang tat bom”);

digital Write(PMP,0);

}

Phụ lục

Nghiên cứu thiết kế và chân đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV Phụ lục H

Chương trình Arduimo no của khối thu thập dữ liệu cuối đường ống

#include <SoftwareSerial.h>

#define TX 3

#define RX 2

#define MO 13

#define M1 12

SoftwareSerial mySerial(TX, RX);

1nt n1,n2,n3,n4,n11,n33;

bool check;

char cl,c2,c3;

void setup() { Serial.begin(9600);

mySerial.begin(9600);

pinMode(MO0, OTPT);

pinMode(M1, OTPT);

digital Write(M0, LOW);

digital Write(M1, LOW);

check=false;

}

void loopQ) {

if (mySerial.available() > 0) { cl =mySerial.read();

Serial.println(c1);

If(cl==%S) {

Serial.printin("Da nhan s");

if (mySerial .available() > 0) c2 =mySerial.read();

if (c2=—":') {

Serial.println("Da nhan :");

if (mySerial.available() > 0) c3 = mySerial.read();

SerialL.print(c3);

1f(c3—2)) {

Serial.prntln("Dang gui");

Phụ lục

Nghiên cứu thiết kế và chân đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV int a00=analogRead(A0);

int al0=analogRead(A1);

int a01=analogRead(A0);

int al l=analogRead(A1);

1f (check==true){

n1=((a00+a01+n11)⁄4)/100;

n2=((a00+a01+n11)⁄4)%100;

n3=((al0+al 1+n33)/4)/100;

n4=((al0+al 1+n33)/4)%100;

yelse{

nl=((a00+a01)/2/ 100;

n2=((a00+a01)/2)%100;

n3=((al0+al1)/2/100;

n4=((al0+al1)/2)%100;

}

byte buf[8]={2,n1,n2,3,n3,n4,4,0};

mySerial.write(buf,8);

check=false;

}

1f(c3—T) {

Serial.println("Dang doc”);

int a00=analogRead(A0);

delay(10);

int al0=analogRead(A1);

delay(10);

int a01=analogRead(A0);

delay(10);

int al l=analogRead(A1);

delay(50);

nl 1=a00+a01;

n33=al0+all;

check=true;

Phụ lục

Nghiên cứu thiết kế và chấn đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV

} }

Phu luce II

Chương trình Arduino no của khối truyền thông

#include <SoftwareSerial.h>

#include <ModbusRtu.h>

uintl6_t aulédata[14];

Modbus slave(1,Serial,2);

#define TX 6

#define RX 5

#define ON 9

#define OFF 10 union {

float fval;

uintl6_t uval[2];

} floatAsint;

SoftwareSerial mySerial(TX, RX);

void setup() {

Serial.begin(9600,SERIAL 8E1);

pinMode(11,INPT);

pinMode(ON,INPT);

pinMode(OFF,INPT);

pinMode(12,OTPT);

pinMode(13,OTPT);

digital Write(12,LOW);

digital Write(13,LOW);

mySerial.begin(9600);

slave.start();

}

void loopQ) {

slave.poll( aul é6data, 14 );

if (mySerial.available() > 0) { char st = mySerial.readQ);

if (st =='d'){

String name = mySerial.readStringntil(‘\n’);

Phu luc

Nghiên cứu thiết kế và chân đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV 1f (name.toFloatQ==1)

t

String dataql = mySerial.readStringntil(‘\n’‘);

floatAsint.fval = dataq1.toFloat();

aul6data[2] = floatAsint.uval[0];

aul 6data[3] = floatAsint .uval[1];

String datahl = mySerial.readStringntil(‘\n’‘);

floatAsint.fval = datah1.toFloat();

aul 6data[4] = floatAsint.uval[0];

aul 6data[5] = floatAsint .uval[1];

} else

if (name.toFloat()==2) t

String dataq2 = mySerial.readStringntil(\n’‘);

floatAsint.fval = dataq2.toFloat();

aul 6data[6] = floatAsint.uval[0];

aul 6data[7] = floatAsint .uval[1];

String datah2 = mySerial.readStringntil(\n’‘);

floatAsint.fval = datah2.toFloat();

aul6data[8] = floatAsint.uval[0];

aul6data[9] = floatAsint .uval[1];

}else

if (name.toFloat()==3) t

String datalp = mySerial.readStringntil(‘\n');

floatAsint.fval = datalp.toFloat();

aul6data[ 10] = floatAsint.uval[0];

aul6data[1 1] = floatAsint .uval[ 1];

String datals = mySerial.readStringntil(‘\n');

floatAsint.fval = datals.toFloat();

aul6data[ 12] = floatAsint.uval[0];

aul6data[13] = floatAsint .uval[ 1];

} }

Phụ lục

Nghiên cứu thiết kế và chấn đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV

}

bitWnite( aul 6data[1], 0, digitalRead( 11 ));

if (bitRead( au16data[0], 0 }==1||digitalRead(ON)==0)

t

digital Write( 12,HIGH);

delay(400);

digital Write( 12, LOW);

bitWrite( aul 6data[0], 0, 0);

}

if (bitRead( au16data[0], 1 }==1||digitalRead(OFF)==0)

t

digital Write( 13,HIGH);

delay(400);

digital Write( 13, LOW);

bitWrite( aul 6data[0], 1, 0);

} }

Phụ lục IV

Ham VB Scripts trong WinCC - Ham CurrentTime

Sub CurrentTime()

SmartTags("chartDatel")=Now() SmartTags("chartDate2")=Now() End Sub

- Ham DataLogger

Sub DataLogger(ByRef DB_NAME) Dim conn, rst, SQL_ Table On Error Resume Next

Set conn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB. Recordset")

conn.Open "Provider=MSDASQL Initial Catalog=" & SmartTags("szDatabase") &

"DSN="&DB_NAME&""

If Err.Number <> 0 Then

ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description Err.Clear

Phu luc

hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV Set conn = Nothing

Exit Sub End If

SQL Table = "Insert Into

pipeline(flowRateSt,pressureSt,flowRateSp, pressureSp,leakPosition,leakSize, pumpStatus) VALES (" & SmartTags("flowRateSt") & ","& SmartTags("pressureSt") & ","&

SmartTags("flowRateSp") & ","& SmartTags("pressureSp") & "," &

SmartTags("leakPosition") & ","& SmartTags("leakSize") & ","& SmartTags("statusPump")

& mịn

Set rst = conn.Execute(SQL_ Table) conn.close

Set rst = Nothing Set conn = Nothing End Sub

- Ham ReportCSV

Sub ReportCS V(ByRef DB_NAME)

Dim conn, rst, SQL_ Table, dTimel, dTime2, objFSO, outFile,objFile On Error Resume Next

Set conn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB. Recordset")

conn.Open "Provider=MSDASQL Initial Catalog=" & SmartTags("szDatabase") &

"DSN="&DB_NAME&""

If Err.Number <> 0 Then

ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description Err.Clear

Set conn = Nothing Exit Sub End If

Set dTimel = SmartTags("chartDate1") Set dTime2 = SmartTags("chartDate2")

SQL_ Table = "SELECT * FROM pipeline WHERE createdTime >=

"&Y ear(dTime! )&"-"&Month(dTimel )&"-"&Day(dTime1)&"

"&Hour(dTimel )&":"&Minute(dTimel )&":"&Second(dTimel)&"' AND createdTime <=

"&Y ear(dTime2)&"-"&Month(dTime?2 )&"-"& Day(dTime2)&"

"&Hour(dTime2)&":"&Minute(dTime2 )&":"&Second(dTime2)&" AND leakPosition > 0 "

SmartTags("str")=SQL_ Table Set rst = conn.Execute(SQL_ Table)

Set objFSO=CreateObject("Scripting.FileSystemObject")

Phu luc

Nghiên cứu thiết kế và chấn đoán vị trí rò rỉ của mô hình hệ thông đường ống dẫn nước thật: áp dụng thuật toán ước lượng bên vững LPV outFile="D:\excelLEAK "&Day(đ11ime1)&"-"&Month(đT11imel)&"-"&Y ear(dIimel)&"

"&Hour(dTimel )&"H"&Minute(dTimel)&"M" &Second(dTime1)&" to

"& Day(dTime2)&"-"&Month(dTime2)&"-"& Y ear(dTime2)&"

"&Hour(dTime2)&"H"&Minute(dTime2)&"M" &Second(dTime2)&" csv"

Set objFile = objFSO.CreateTextFile(outFile,Tme)

‘objFile. Write "Thoi gian,Luu luong dau,Ap suat dau,Luu luong cudi,Ap suất cuối, Vị trí rò ri,Kich thudc ro ri, Trang thai bom" & vbCrLf

objFile. Write "Time,Flow Rate 1, Pressure 1, Flow Rate 2, Pressure 2, Leak Position, Leak Size, Pump" & vbCrLf

Do While Not (rst. BOF Or rst.EOF) objFile. Write

rst.Fields(0). Value&",""&rst.Fields(1). Value&","&rst.Fields(2). Value&","&rst.Fields(3). Valu e&","&rst.Fields(4). Value&","&rst.Fields(5). Value&"," &rst.Fields(6). Value&","&rst.Fields(

7). Value & vbCrLf rst. MoveNext Loop

objFile.Close Set objFSO = Nothing conn.close

Set rst = Nothing Set conn = Nothing End Sub

- Ham ReportLeakCSV

Sub ReportLeakCS V(ByRef DB_NAME)

Dim conn, rst, SQL_ Table, dTimel, dTime2, objFSO, outFile,objFile On Error Resume Next

Set conn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB. Recordset")

conn.Open "Provider=MSDASQL Initial Catalog=" & SmartTags("szDatabase") &

"DSN="&DB_NAME&""

If Err.Number <> 0 Then

ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description Err.Clear

Set conn = Nothing Exit Sub End If

Set dTimel = SmartTags("chartDate1")

Phu luc

Một phần của tài liệu Nghiên cứu thiết kế và chẩn Đoán vị trí rò rỉ của mô hình hệ thống Đường ống dẫn nước thật áp dụng thuật toán ước lượng b$n vững lpv (Trang 91 - 102)

Tải bản đầy đủ (PDF)

(102 trang)