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
Khảo sỏt sự tiờu tốn năng lượng của 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 t ố n ( 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