Đồ án tốt nghiệp đại học Chương IV. MôphỏngmạngWirelessSensor : MÔPHỎNGMẠNGWIRELESSSENSOR 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ạngSensor đượ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 2d≈ để 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à 2d≈ . 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ỳ Đồ án tốt nghiệp đại học Chương IV. MôphỏngmạngWirelessSensor - 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] Đồ án tốt nghiệp đại học Chương IV. MôphỏngmạngWirelessSensor $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: Đồ án tốt nghiệp đại học Chương IV. MôphỏngmạngWirelessSensor 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ả Kết quả được biểu diễn bằng các bảng và đồ thị tương ứng. Đồ án tốt nghiệp đại học Chương IV. MôphỏngmạngWirelessSensor 4.2.1. Sự tổn hao năng lượng Ta xét một mạngsensor gồm 25 nút được bố trí đều trong một diện tích có kích thước 651x651(m 2 ). Khi đó mật độ mạng là 60nut/1km 2 . Số thứ tự nút Năng lượng nhận dữ liệu 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 Bảng 4.2: Suy hao năng lượng của các nút sensor . nghiệp đại học Chương IV. Mô phỏng mạng Wireless Sensor : 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. ứng. Đồ án tốt nghiệp đại học Chương IV. Mô phỏng mạng Wireless Sensor 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