Help in adding mobility and energy to the nodes

4 Ansichten (letzte 30 Tage)
Gagan Singla
Gagan Singla am 22 Aug. 2020
Beantwortet: Saurav am 17 Okt. 2024
clc;
clear all;
no_nodes=input('Enter the number of node');
net_length=input('Enter the length of network')
net_width=input('Enter the width of network')
for i=1:no_nodes
x_loc(i)=net_length*rand;
y_loc(i)=net_width*rand;
node_id(i)=i
plot(x_loc,y_loc,'b^','linewidth',2);
text(x_loc(i)+10,y_loc(i)+10,['N',num2str(i)]);
hold on;
xlabel('Network Length')
ylabel('Network Width')
grid on;
pause(0.5);
end
%figure,
%plot(x_loc,y_loc,'ro','linewidth',2);
%text(x_loc+5,y_loc+5,'Nodes');
%xlabel('Network Length')
%ylabel('Network Width')
%grid on;
source=round(no_nodes*rand);
if source==0
source=5;
end
destination=round(no_nodes+rand);
if destination==0
destination=6;
end
figure (1);
plot(x_loc(source),y_loc(source),'r^','linewidth',3)
text(x_loc(source),y_loc(source),'SRC');
hold on;
plot(x_loc(destination),y_loc(destination),'m^','linewidth',3)
text(x_loc(destination),y_loc(destination),'SRC');
hold on;
  1 Kommentar
Salar Faraji
Salar Faraji am 29 Jun. 2022
clc;
clear all;
no_nodes=input('Enter the number of node: ');
net_length=input('Enter the length of network: ')
net_width=input('Enter the width of network: ')
for i=1:no_nodes
x_loc(i)=net_length*rand;
y_loc(i)=net_width*rand;
node_id(i)=i
plot(x_loc,y_loc,'r*','linewidth',2);
text(x_loc(i)+10,y_loc(i)+10,['N',num2str(i)]);
hold on;
xlabel('Network Length')
ylabel('Network Width')
grid on;
pause(0.5);
end
%figure,
%plot(x_loc,y_loc,'ro','linewidth',2);
%text(x_loc+5,y_loc+5,'Nodes');
%xlabel('Network Length')
%ylabel('Network Width')
%grid on;
source=round(no_nodes*rand);
if source==0
source=5;
end
destination=round(no_nodes*rand);
if destination==0
destination=6;
end
figure (1);
plot(x_loc(source),y_loc(source),'r^','linewidth',3)
text(x_loc(source),y_loc(source),'SRC');
hold on;
plot(x_loc(destination),y_loc(destination),'m^','linewidth',3)
text(x_loc(destination),y_loc(destination),'DEST');
hold on;

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Saurav
Saurav am 17 Okt. 2024
To enhance the existing MATLAB script by incorporating mobility and energy features for the nodes, several modifications can be made:
1. Node Mobility: Introduce a "velocity" variable for each node to simulate movement. This allows nodes to change positions over time. The positions should be updated in each iteration, ensuring nodes remain within the boundaries of the network.
2. Energy Levels: Assign an initial energy level to each node, represented by an "energy" variable. The energy level should decrease as nodes move or perform operations, simulating energy consumption.
3. Simulation Loop: Implement a loop to simulate the network over a defined number of time steps. Within this loop, update the positions and energy levels of the nodes. The simulation can terminate if any node depletes its energy.
4. Boundary Conditions: Ensure nodes do not move outside the network's defined length and width by applying boundary conditions during position updates.
If access to the required toolboxes is available, such as the Communication Toolbox and Wireless Network Simulator, consider using the “addMobility” function in MATLAB to simplify the implementation of node mobility.
These enhancements will provide a dynamic simulation environment where nodes have both mobility and energy constraints, offering a more realistic representation of network behaviour.
Here's an example of how the script can be modified to include these features:
clc;
clear all;
no_nodes = input('Enter the number of nodes: ');
net_length = input('Enter the length of network: ');
net_width = input('Enter the width of network: ');
% Initialize node properties
x_loc = net_length * rand(1, no_nodes);
y_loc = net_width * rand(1, no_nodes);
energy = 100 * ones(1, no_nodes); % Initial energy level for each node
velocity = 1 * rand(1, no_nodes); % Random velocity for each node
figure;
for t = 1:100 % Simulate for 100 time steps
clf; % Clear the figure for new positions
for i = 1:no_nodes
% Update node positions
x_loc(i) = x_loc(i) + velocity(i) * (rand - 0.5);
y_loc(i) = y_loc(i) + velocity(i) * (rand - 0.5);
% Ensure nodes stay within the network boundaries
x_loc(i) = min(max(x_loc(i), 0), net_length);
y_loc(i) = min(max(y_loc(i), 0), net_width);
% Decrease energy level
energy(i) = energy(i) - 0.1
% Plot nodes
plot(x_loc, y_loc, 'b^', 'linewidth', 2);
text(x_loc(i) + 10, y_loc(i) + 10, ['N', num2str(i), ' E:', num2str(energy(i), '%.1f')]);
hold on;
end
xlabel('Network Length');
ylabel('Network Width');
grid on;
pause(0.5); % Pause for a short time to visualize movement
% Stop simulation if any node runs out of energy
if any(energy <= 0)
disp('One or more nodes have depleted their energy.');
break;
end
end
% Define source and destination
source = randi(no_nodes);
destination = randi(no_nodes);
while destination == source
destination = randi(no_nodes);
end
% Plot source and destination
plot(x_loc(source), y_loc(source), 'r^', 'linewidth', 3);
text(x_loc(source), y_loc(source), 'SRC');
plot(x_loc(destination), y_loc(destination), 'm^', 'linewidth', 3);
text(x_loc(destination), y_loc(destination), 'DST');
I hope this information aligns with what was needed.

Kategorien

Mehr zu App Building finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by