Unrecognized function or variable 'calculate_power_loss'.
    4 ビュー (過去 30 日間)
  
       古いコメントを表示
    
   bus_data = [1	0         0  	  0
    2	100       60 	  0
    3	90        40      0  	
    4	120       80	  0  
    5	60        30	  0  
    6	60        20      0 
    7	200       100	  0
    8	200       100	  0 
    9	60        20      0	
    10	60        20 	  0
    11	45        30 	  0
    12	60        35      0 
    13	60        35      0 
    14	120       80      0 
    15	60        10      0 
    16	60        20      0 
    17	60        20      0 
    18	90        40      0 
    19	90        40      0 
    20	90        40      0 
    21	90        40      0
    22	90        40      0 
    23	90        50      0
    24	420       200	  0
    25	420       200	  0
    26	60        25      0  
    27	60        25      0 
    28	60        20      0
    29	120       70      0
    30	200       600	  0
    31	150       70      0  
    32	210       100	  0
    33	60        40      0 ];
line_data = [1    1      2     0.0922    0.0470
    2    2      3     0.4930    0.2511
    3    3      4     0.3660    0.1864
    4    4      5     0.3811    0.1941
    5    5      6     0.8190    0.7070
    6    6      7     0.1872    0.6188
    7    7      8     0.7114    0.2351
    8    8      9     1.0300    0.7400
    9    9      10    1.0440    0.7400
    10    10     11    0.1966    0.0650
    11    11     12    0.3744    0.1238
    12    12     13    1.4680    1.1550
    13    13     14    0.5416    0.7129
    14    14     15    0.5910    0.5260
    15    15     16    0.7463    0.5450
    16    16     17    1.2890    1.7210
    17    17     18    0.7320    0.5740
    18     2     19    0.1640    0.1565
    19    19     20    1.5042    1.3554
    20    20     21    0.4095    0.4784
    21    21     22    0.7089    0.9373
    22     3     23    0.4512    0.3083
    23    23     24    0.8980    0.7091
    24    24     25    0.8960    0.7011
    25     6     26    0.2030    0.1034
    26    26     27    0.2842    0.1447
    27    27     28    1.0590    0.9337
    28    28     29    0.8042    0.7006
    29    29     30    0.5075    0.2585
    30    30     31    0.9744    0.9630
    31    31     32    0.3105    0.3619
    32    32     33    0.3410    0.5302 ];
load_data = [1    0     0
    2    100      60
    3     90      40
    4     120     80
    5     60      30
    6     0       0
    7     200     100
    8     200     100
    9     60      20
    10    60      20
    11    45      30
    12    60      35
    13    60      35
    14    120     80
    15    60      10
    16    60      20
    17    60      20
    18    90      40
    19    90      40
    20    90      40
    21    90      40
    22    90      40
    23    90      50
    24    420     200
    25    420     200
    26    60      25
    27    0       0
    28    60      20
    29    120     70
    30    200     600
    31    150     70
    32    210     100
    33    60      40];
% PSO parameters
num_particles = 50;    % Number of particles
max_iterations = 100;  % Maximum number of iterations
c1 = 2;                % Cognitive parameter
c2 = 2;                % Social parameter
w = 0.5;               % Inertia weight
particles = rand(num_particles, 2);  % Random initial positions for DGs (bus, size)
velocities = zeros(num_particles, 2); % Initial velocities
best_particle_positions = particles;
best_particle_losses = inf (num_particles, 1);
[~, best_global_index] = min(best_particle_losses);
best_global_position = best_particle_positions(best_global_index, :);
for i=1:size(particles,1)
    dg_bus=round(particles(i,1));
dg_size=particles(i,2);
loss=0;
loss=loss+ calculate_power_loss(dg_bus,dg_size,bus_data, line_data,load_data);
%disp(loss);
end
for iter = 1:max_iterations
    for i = 1:num_particles
        % Evaluate the objective function
        current_loss = objective_function(particles(i, :), bus_data, line_data, load_data);
         % Update personal bests
        if current_loss < best_particle_losses(i)
            best_particle_losses(i) = current_loss;
            best_particle_positions(i, :) = particles(i, :);
        end
    end
end
function loss = objective_function(particles, bus_data, line_data, load_data)
end
3 件のコメント
  Aquatris
      
 2024 年 6 月 18 日
				You probably forgot to add the path where calculate_power_loss function is to your matlab environment.
回答 (1 件)
  Ayush Modi
      
 2024 年 6 月 18 日
        Hi Kaustubh,
It appears from the code snippet shared that you're invoking a function named 'calculate_power_loss' in the below line:
loss=loss+ calculate_power_loss(dg_bus,dg_size,bus_data, line_data,load_data);
However, the function definition is not present. Including the function definition might solve the issue.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


