Thiết lập các nút Phenomenon với giao thức "định tuyến" Phenom

Một phần của tài liệu Vấn đề năng lượng trong mạng Wireless Sensor và đánh giá bằng mô phỏng (Trang 66)

Sử dụng nút-config giống nh− các nút di động nh−ng chỉ rõ giao thức định tuyến Phenom, các hiện t−ợng đ−ợc phát đi theo các ph−ơng thức đ−ợc định nghĩa trong Phenom / Phenom.cc. Ngoài ra phải định hình kênh và lớp MAC tr−ớc khi chỉ ra việc quảng bá Phenomenon. Một ví dụ thiết lập cấu hình nút Phenomenon mẫu nh− sau:

$ns node-config \ -adhocRouting PHENOM \ -Channel $chan 1 \ -llType LL \ -macType $val(PHENOMmac) \ -ifqType Queue/DropTail/PriQueue \ -ifqLen 50 \ -antType Antenna/OmniAntenna \ -phyType Phy/WirelessPhy \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON \ -propType Propagation/TwoRayGround 3.4.4. Thiết lập tốc độ và kiểu xung của Phenomenon

Hai tham số sử dụng để thay đổi tuỳ biến Phenomena đ−ợc chỉ ra a. Pulserate Float.

- Ploat phải là một số thực

- Mô tả tần số một nút Phenomenon quảng bá tín hiệu của nó. - Mặc định là một lần phát trên 1 giây

b. Phenomenon Pattern

- Pattern: kiểu hiện t−ợng, phải là một trong các từ khoá sau: CO, HEAVE-GEO, LIGHT-GEO, SOUND, TEST-PHENOMENON t−ơng ứng với oxit carbon CO, động đất nặng, động đất nhẹ, tiếng động và một số kiểu hiện t−ợng chung khác.

- Tuỳ chọn này đ−ợc sử dụng chủ yếu cho việc mô phỏng các hiện t−ợng bội nút (nhiều nút hiện t−ợng kết hợp) nên dễ dàng phân biệt việc nút Sensor đang cảm biến hiện t−ợng nào bằng việc nhìn vào trace file.

- Mặc định TEST-PHENOMENON

[$node (0) set ragent ] \

pulserate .1 ;

[$node (0) set ragent ] \

Phenomenon CO ; 3.4.5. Định hình nút Sensor

Nút Sensor phải đ−ợc định hình với thuộc tính “Phenom chanell” và thuộc tính “Wireless Channel”. Kênh Phenom Channel phải cùng loại với kênh mà ta ấn định cho Phenomenon. Kênh còn lại đ−ợc sử dụng để truyền các báo cáo của Sensor. Cấu hình nút Sensor cần phải chỉ ra một giao thức MAC cho kênh Phenomenon và một giao thức MAC (nh− MAC/802-11) cho kênh chia sẻ với các nút không dây khác.

Điều này đ−ợc thực hiện với các thuộc tính Phenom mactype và mactype. Phenom mactype phải cùng kiểu với MAC của các nút Phenom và Mactype phải cùng kiểu với MAC của các nút khác cùng tham gia mạng IP. Các lệnh sau minh họa ví dụ định hình cho một nút Sensor : $ns node-config \ -adhocRouting $val(rp) \ -Channel $chan 2 \ -macType $val(mac) \ -PHENOMChannel $chan 1 \ -PHENOMmacType $val(PHENOMmac)

Nếu muốn, một nút Sensor có thể đ−ợc định hình với một khối năng l−ợng nhất định sẽ đ−ợc khấu trừ từ nguồn dự trữ của nút mỗi lần nhận một tín hiệu Phenomenon quảng bá hay phát và nhận các gói tin báo cáo. Để thiết lập tính chất này, phải thêm các tham số trong phần node-configure của nút Sensor.

-energyModel EnergyModel \ -rxPower 0.175 \ -txPower 0.175 \ -sensePower 0.00000175; \ -idlePower 0.0 \ -initialEnergy 0.5 Trong đó:

- rx Power.175 chỉ ra 175mW tiêu thụ cho việc nhận một gói kích th−ớc bất kỳ. - tx Power 175 chỉ ra 175mW tiêu thụ cho việc phát một gói kích th−ớc bất kỳ - Sensor Power .000 00175 chỉ ra 1.75àW tiêu thụ khi nhận 1 gói quảng bá Phenom.

- Inctial Energy 5 chỉ ra tổng năng l−ợng dự trữ là 5J. Chú ý:

Mô hình năng l−ợng trong NS-2 sử dụng màu sắc để minh hoạ. Để tránh nhầm lẫn trong mô tả nam việc định màu nút trong ứng dụng hình ảnh Sensor sẽ bị tắt với định nghĩa DISABLE_COLOR trong Sensorapp.cc. Trong bổ xung DISABLE_COLOR, một số tham số nút Sensor khác cũng đ−ợc đ−ợc chỉ ra trong Sensorapp.cc.

SILENT_PHENOMENON: là khoảng thời gian (s) yên lặng cần thiết để Sensor đi vào trạng thái tắt cảnh báo. Ví dụ:

# define SILENT_PHENOMENON .2

- MESG_SIZE 256: là kích cỡ (byte) của bản trên chuyển tới Gateway hay điểm thu thập dữ liệu hoặc các nút thu dữ liệu khác đ−ợc liên lạc với nút Sensor (qua UDP, TCP …). Ví dụ:

# define MESG_SIZE 256

- TRANSMIT_FREQ là tần số mà một nút Sensor đ−ợc kích hoạt bởi các gói Phenom) sẽ chuyển một bản tin đến nút thu số liệu. Sau mỗi khoảng thời gian TRANSMIT_FREQ, nút Sensor phát đi một thông báo (MESG_S1ZE byte) đến Gateway và trong mỗi khoảng này, nút Sensor cò thể nhận đ−ợc một hay nhiều gói PHENOM. Ví dụ:

# define TRANSMIT_FREQ 0.1

3.4.6. Thiết lập các nút Non-Sensor (điểm thu thập dữ liệu, Gateway)

Các nút không phải Sensor hay Phenomenon nút không đ−ợc định hình với một kênh Phenom Channel vì chúng chỉ có giao diện duy nhất đến mạng MANET (Mobile Ad- hoc Network - mạng di động sử dụng giao thức định tuyến Ad hoc) đ−ợc thực hiện với thuộc tính - Phenom Channel "off". Ví dụ:

$ns node-config \

-adhocRouting $val(rp) \

-Channel $chan 2 \

3.4.7. Gắn kết các tác nhân Sensor

Lệnh này tạo ra một tác nhân Sensor cho mỗi nút Sensor và gắn kết tác nhân này với nút t−ơng ứng. Ngoài ra, phải chỉ ra rằng tất cả các gói tin đến từ kênh Phenome đều đ−ợc nhận bởi Sensor Agent.Ví dụ:

set Sensor ($i) [new \ Agent/SensorAgent] $ns attach-agent $node ($i) \

$Sensor ($i)

[$node ($i) set ll (1)] \ up-target $Sensor ($i)

3.4.8. Gắn kết một tác nhân UDP và ứng dụng Sensor cho mỗi nút

Việc các nút Sensor phản ứng thế nào khi chúng phát hiện ra hiện t−ợng mục tiêu đ−ợc định nghĩa trong ứng dụng Sensor. Ví dụ nh− chúng sẽ thông báo thông tin về hiện t−ợng tới điểm thu thập dữ liệu qua UDP.

Thí dụ sau minh hoạ việc thiết lập ứng dụng Sensor: set src ($i) [new Agent/UDP]

$ns attach-agent $node ($i) \

$src ($i)

$ns connect $src ($i) $sink

set app ($i) [new \ Application/SensorApp]

$app ($i) attach-agent $src ($i) 3.4.9. Khởi động ứng dụng Sensor

Nút Sensor có thể nhận các gói Phenom ngay khi Sensor Agent đ−ợc gắn tới nút. Nh−ng nút chỉ có phản ứng khi ứng dụng Sensor đ−ợc gắn kết và khởi động.

$ns at 5.0 "$app ($i) start \

Ch−ơng IV: Mô phỏng mạng Wireless Sensor

4.1. Mục đính mô phỏng

Mục đích của phần mô phỏng này là xem xét mối quan hệ giữa hoạt động của node mạng với năng l−ợng dự trữ của nó. Ban đầu, mỗi nút Sensor đ−ợc định cấu hình với một khối năng l−ợng xác định. Mỗi khi nút Sensor thực hiện một hành động nh− nhận một tín hiệu cảm biến, thu hoặc phát các gói tin vô tuyến, xử lý tín hiệu, nguồn năng l−ợng dự trữ của nút đó sẽ bị khấu trừ theo công suất đ−ợc định nghĩa tr−ớc cho từng thành phần. Khi nút Sensor không có hành động nào, năng l−ợng sẽ đ−ợc khấu trừ theo công suất rỗi (Idle power).

Mô phỏng này đ−ợc thực hiện với các mạng Sensor đ−ợc triển khai theo hình l−ới vuông, trong bản đồ hình vuông. Khoảng cách giữa các nút sensor là d, khoảng cách vô tuyến ≈d 2 để một nút có khả năng phát cho 8 nút lân cận. Khoảng ảnh h−ởng của nút Phenomenom (hiện t−ợng mục tiêu) là ≈d 2. Kịch bản triển khai tr−ờng Sensor đ−ợc minh hoạ trong hình 4.1.

Hình 4.1: Kịch bản triển khai tr−ờng Sensor trong mô phỏng

Kiểu hiện t−ợng mục tiêu đ−ợc chọn là khí Carbon Monoxit (CO) đ−ợc biểu diễn bằng một nút Phenomenon đơn di chuyển một cách ngẫu nhiên trong tr−ờng Sensor. Số l−ợng điểm thu thập số liệu (Sink) là 1, đ−ợc đặt trên biên của tr−ờng Sensor.

Thang năng l−ợng sử dụng trong cấu hình node (trong phần node-configure):

- rx Power.175 chỉ ra 175mW tiêu thụ cho việc nhận một gói kích th−ớc bất kỳ. - tx Power 175 chỉ ra 175mW tiêu thụ cho việc phát một gói kích th−ớc bất kỳ

- Sensor Power .000 00175 chỉ ra 1.75àW tiêu thụ khi nhận 1 gói quảng bá Phenom.

- Inctial Energy 0.5 chỉ ra tổng năng l−ợng dự trữ là 0.5J (hay 0.5 W/s). 4.2. Thực hiện mô phỏng

4.2.1. Mã ch−ơng trình

Các tuỳ chọn về môi tr−ờng mạng đ−ợc khai báo nh− sau:

set val(chan) Channel/WirelessChannel ;# Kiểu kênh

set val(prop) Propagation/TwoRayGround ;# Kiểu phát vô tuyến

set val(netif) Phy/WirelessPhy ;# Kiểu giao tiếp mạng

set val(mac) Mac/802_11 ;# Kiểu MAC

set val(PHENOMmac) Mac ;# Kiểu MAC Phenomenon set val(ifq) Queue/DropTail/PriQueue ;# Kiểu hàng đợi

set val(ll) LL ;# Kiểu lớp liên kết số liệu set val(ant) Antenna/OmniAntenna ;# Kiểu antent

set val(ifqlen) 50 ;# Số gói cực đại trong hàng đợi

set val(nn) 26 ;# Tổng số nút Sensor và Sink

set val(rp) AODV ;# Giao thức định tuyến

set val(x) 451 ;# Chiều dài bản đồ (m)

set val(y) 451 ;# Chiều rộng bản đồ (m) set val(engmodel) EnergyModel

set val(txPower) 0.175 ;# Công suất truyền (mW)

set val(rxPower) 0.175 ;# Công suất nhận (mW) set val(sensePower) 0.00000175; ;# Công suất cảm biến (mW) set val(idlePower) 0.0 ;# Công suất khấu trừ rỗi (mW)

set val(initeng) 0.5 ;# Năng l−ợng ban đầu (J)

Một đoạn ch−ơng trình chính:

# Main Program

# ====================================================================== # Khoi tao bien toan cuc

set ns_ [new Simulator]

set tracefd [open phenom11.tr w] $ns_ trace-all $tracefd

set namtrace [open phenom11.nam w]

$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)

Trong ch−ơng trình chính đã định nghĩa tên File số liệu đầu ra (Trace, NAM) và thiết lập kiểu kênh, giao thức, nút. Thiết lập toạ độ cho các nút và khai báo các sự kiện xảy ra trong thời gian mô phỏng.

Sau khi đã có mã đầu vào đ−ợc l−u trong file phenom.tcl ta bắt đầu chạy mô phỏng bằng lệnh: nam phenom trong cửa sổ X. Sau khi chạy xong ta có thể quan sát hình ảnh bằng ứng dụng NAM trong ns-2.

4.2.1. Phân tích kết quả

Việc tính toán kết quả dựa trên việc phân tích file Trace. File Trace đ−ợc định dạng gồm các tr−ờng cơ bản:

[sự kiện] [thời gian] [số thứ tự nút] [mức Trace] ---- [số thứ tự gói] [kiểu gói] [kích th−ớc gói][địa chỉ Mac][năng l−ợng còn lại] [kiểu hiện t−ợng].

Các sự kiện trong tr−ờng sự kiện gồm r (nhận gói), s (gửi gói), D (mất gói), f (chuyển tiếp gói); tr−ờng thời gian chỉ ra thời điểm xảy ra sự kiện; tr−ờng mức Trace chỉ ra sự kiện này thuộc phạm vi (mức độ) mô phỏng nào (tác nhân (nh− udp), lớp liên kết số liệu (MAC) hay mức vật lý, ....).

Với yêu cầu tính toán trong tr−ờng hợp này, ta chỉ cần quan tâm tới 4 tr−ờng đầu tiên và tr−ờng năng l−ợng. r 1.026254208 _7_ RTR --- 0 AODV 48 [0 ffffffff 8 800] [energy 0.499860] - --- [8:255 -1:255 30 0] [0x2 1 1 [26 0] [8 4]] (REQUEST) r 1.026254343 _4_ RTR --- 0 AODV 48 [0 ffffffff 8 800] [energy 0.499860] - --- [8:255 -1:255 30 0] [0x2 1 1 [26 0] [8 4]] (REQUEST) r 1.026254343 _2_ RTR --- 0 AODV 48 [0 ffffffff 8 800] [energy 0.499860] - --- [8:255 -1:255 30 0] [0x2 1 1 [26 0] [8 4]] (REQUEST) r 1.026254346 _14_ RTR --- 0 AODV 48 [0 ffffffff 8 800] [energy 0.499860] --- [8:255 -1:255 30 0] [0x2 1 1 [26 0] [8 4]] (REQUEST)

Dựa vào file Trace này chúng ta có thể thấy rõ năng l−ợng của node mạng sẽ giảm theo thời gian mỗi khi node mạng nhận, gửi dữ liệu hoặc cảm biến hiện t−ợng.

Việc phân tích file trace đuợc thực hiện qua hai b−ớc:

- Tách file trace: Ta sẽ tách ra các tr−ờng cần thiết cho việc tính toán kết quả

- Tính kết quả: Dựa vào các tr−ờng đã tách ở trên, ta sử dụng các tr−ờng này để tính ra kết quả cần thiết.

Sau đây là các b−ớc tiến hành cụ thể:

1) Tính sự tiêu hao năng l−ợng của các node mạng

- Dùng lệnh sau trong của sổ cygwinX để tách lấy các sự kiện tại một node(trong tr−ờng hợp này la node1) nh− nhận, gửi gói, tr−ờng thời gian và mức năng l−ợng t−ơng ứng tại thời điểm đó.

$ cat energy.tr | grep "_1_" | awk ' { printf ("%c\t%f\t%s\t%s\t%s\t%f\n", $1, $2, $3, $4, $7, $14)} ' >energy_node1.txt

Sau lệnh này ta sẽ tách ra đ−ợc số liệu nằm ở file energy_node1.txt gồm 6 tr−ờng. D−ới đây là một đoạn file energy_node1.txt:

s 1.068626 _1_ MAC AODV 0.493780 s 1.069666 _1_ RTR AODV 0.493640 s 1.070016 _1_ MAC AODV 0.493640 r 1.071847 _1_ MAC AODV 0.493360 r 1.071872 _1_ RTR AODV 0.493360 D 1.071978 _1_ MAC AODV 0.493220

-Sau khi có đ−ợc file energy_node1.txt ta sử dụng lệnh sau để tính năng l−ợng cần mỗi khi node gửi hoặc nhận một gói dữ liệu:

$ cat energy_node1.txt awk ' { dif=old2-$2; if(dif>0) printf ("%c\t%f\t%f\n", $1, $2, dif)} ' >energy_node1_down.txt

Sau lệnh này ta sẽ tính đ−ợc số năng l−ợng cụ thể mỗi khi node1 nhận hoặc gửi dữ liệu. Các số liệu này đ−ợc ghi vào file nlgiam_node1.txt

Một đoạn trong file energy_node1_down.txt

r 1.027420 0.000280 r 1.028410 0.000140 s 1.029232 0.000140 r 1.035203 0.000840 r 1.036073 0.000140 s 1.036579 0.000140

T−ơng tự ta làm nh− vậy với các node khác ví dụ với node 2 ta dùng lệnh

$ cat energy.tr | grep "_2_" | awk ' { printf ("%c\t%f\t%s\t%s\t%s\t%f\n", $1, $2, $3, $4, $7, $14)} ' >energy_node2.txt

Và lệnh: $ cat energy_node2.txt awk ' { dif=old2-$2; if(dif>0) printf ("%c\t%f\t%f\n", $1, $2, dif)} ' >nlgiam_node2.txt

2)Tính tốc độ giảm năng l−ợng

Từ các file energy_node.txt ta có thể tính đ−ợc tốc độ giảm năng l−ợng của mỗi node và tổng năng l−ợng cho việc gửi dữ liệu và tổng năng l−ợng cho việc nhận dữ liệu.

- Tốc độ giảm năng l−ợng = Tổng năng l−ợng tiêu tốn/ thời gian khảo sát 4.2. Kết quả

4.2.1. Sự tổn hao năng l−ợng

Ta xét một mạng sensor gồm 25 nút đ−ợc bố trí đều trong một diện tích có kích th−ớc 651x651(m2). Khi đó mật độ mạng là 60nut/1km2.

Số thứ

tự nút nhận dữ liệu Năng l−ợng Năng l−ợng gửi dữ liệu Tổn hao năng l−ợng do mất gói Năng l−ợng cảm biến Tổng năng l−ợng tiêu tốn 1 0.019285 0.046183 0.003525 0.09376 0.162753 2 0.065298 0.033406 0.01526 0.112968 0.226932 3 0.056915 0.05568 0.002437 0.113328 0.22836 4 0.160718 0.02309 0.004672 0.026297 0.214777 5 0.139551 0.02305 0.00042 0.019622 0.182643 6 0.038426 0.046769 0.001325 0.108743 0.195263 7 0.109089 0.040506 0.018258 0.074516 0.242369 8 0.130553 0.021261 0.010534 0.071392 0.23374 9 0.074877 0.027988 0.013917 0.117594 0.234376 10 0.15393 0.023981 0.005717 0.038833 0.222461 11 0.047487 0.03308 0.000406 0.152266 0.233239 12 0.137623 0.034856 0.022823 0.049413 0.244715 13 0.074405 0.037263 0.005593 0.119159 0.23642 14 0.189775 0.028786 0.010324 0.017346 0.246231 15 0.164631 0.01053 0.006003 0.041165 0.222329 16 0.217707 0.00711 0.005957 0 0.230774 17 0.201076 0.031669 0.010278 0.015522 0.258545 18 0.133041 0.020647 0.010764 0.033383 0.197835 19 0.215369 0.01945 0.016523 0.008967 0.260309 20 0.220979 0.02205 0.00547 0.000409 0.248908 21 0.193351 0.022085 0 0 0.215436 22 0.163264 0.003814 0.076103 0 0.243181 23 0.21931 0.028433 0.002297 0.002453 0.252493 24 0.146921 0.020228 0.002425 0.021554 0.191128 25 0.040937 0.003478 0.002703 0 0.047118

Kho sỏt s tiờu tn năng lượng ca cỏc nỳt sensor 0 0.05 0.1 0.15 0.2 0.25 0.3 0 5 10 15 20 25 30 S th t nỳt N ă n g l ư ợ n g t iờ u tn ( j) Năng lượng nhận dữ liệu Năng lượng gửi dữ liệu Năng lượng hao phớ do mất gúi Năng lượng cảm biến Tổng năng lượng tiờu tốn

4.2.2. Tốc độ giảm năng l−ợng khi tăng số nút mạng

Trong phần này ta sẽ khảo sát tốc độ giảm năng l−ợng trung bình của các nút mạng khi số nút sensor thay đổi còn kích th−ớc mạng cố định 651x651(m2).

Số nút Sensor Công suất truyền

giữa các nút (w) Năng l−ợng tiêu tốn trung bình (j) trung bình của mạng(j/s) Tốc độ giảm năng l−ợng

15 0.3187 0.8018702188 0.080187021876 25 0.1 0.2826000000 0.028260000000 37 0.04 0.1183298067 0.011832980669 58 0.01919 0.0438586242 0.004385862420 79 0.006 0.0090531975 0.000905319748 150 0.00166 0.0006454619 0.000064546188 240 0.0006 0.0000530490 0.000005304904 410 0.000174 0.0000086468 0.000000864676 585 0.0000778 0.0000018869 0.000000188685 715 0.0000572 0.0000009930 0.000000099299 900 0.0000285 0.0000002816 0.000000028160 1200 0.0000154 0.0000000685 0.000000006845 1400 0.000012 0.0000000146 0.000000001462 1612 0.0000074 0.0000000206 0.000000002061 Bảng 4.3: Tốc độ giảm năng l−ợng Kho sỏt tc độ gim năng lượng trung bỡnh ca mng 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0 200 400 600 800 1000 1200 1400 1600 1800 Số nỳt Sensor Tc đ ộ g im ( j/ s ) Tốc độ giảm năng lượng

4.2.3. Tốc độ giảm năng l−ợng khi mật độ mạng không đổi

Trong phần này ta sẽ thay đổi số l−ợng nút sensor trong mạng đồng thời cũng thay đổi diện tích khảo sát để đảm bảo mật độ mạng là 60sensor/1km2.

Số nút Sensor Năng l−ợng tiêu tốn trung

bình(j) Tốc độ giảm (j/s) 15 0.2826 0.02826 25 0.285502 0.02855 37 0.285502 0.02855 58 0.317106 0.031711 79 0.123958 0.012396 150 0.115942 0.011594 240 0.112774 0.011277 410 0.083108 0.008311 585 0.071784 0.007178 715 0.098671 0.009867 900 0.541801 0.05418 1200 0.138967 0.013897 1400 0.293757 0.029376

Bảng 4.4: Tốc độ giảm năng l−ợng trung bình của mạng

Kho sỏt tc độ gim năng lượng ca mng

Một phần của tài liệu Vấn đề năng lượng trong mạng Wireless Sensor và đánh giá bằng mô phỏng (Trang 66)