- Start by turning on all generators and setting them to their maximum capacity.
- Calculate the total capacity and compare it with Pload.
- If the total capacity is greater than Pload, start reducing the output of the generators from the last one (Gen10) while ensuring that you don't go below their minimum capacity.
- Continue this process until the total capacity is just enough to meet or slightly exceed Pload.
dispatching grantors under pmin constraints
    6 views (last 30 days)
  
       Show older comments
    
I have table m*12 that show the state number, generator 1- 10 unit status (0 off, 1on), sum on gens max generator power MW. 
I have Pload value i.e    2808MW
G_cap_max = [500, 800, 1000, 500, 500, 500, 200, 200,200 ,200]
G_cap_min = [500, 0, 500, 0, 100, 0, 100, 0,0 ,0]
In all combinations from G1 to G10 genrated power >= Pload
My goal is to dispatch the generators without going below the min value. 
In other words Pload – total capicty, where I take out the extra MW from Gen10,Gen9,Gen8 etc 

0 Comments
Answers (1)
  Shivansh
      
 on 6 Feb 2024
        
      Edited: Shivansh
      
 on 6 Feb 2024
  
      Hi Othman!
It looks like you are trying to dispatch the generators without going below the min-value to meet the Pload value. You also want to remove the extra capacity from the generators in reverse order. Here is a step-by-step approach to achieve the following:
The following Matlab code demonstrates the above approach:
% Define the capacities
G_cap_max = [500, 800, 1000, 500, 500, 500, 200, 200, 200, 200];
G_cap_min = [500, 0, 500, 0, 100, 0, 100, 0, 0, 0];
% Define the load
Pload = 2808;
% Initialize the generator outputs to their maximum capacities
G_output = G_cap_max;
% Calculate the total capacity
total_capacity = sum(G_output);
% Start dispatching from the last generator
for i = length(G_output):-1:1
    if total_capacity > Pload
        % Calculate the excess power
        excess_power = total_capacity - Pload;
        % Determine the reduction for the current generator
        reduction = min(excess_power, G_output(i) - G_cap_min(i));
        % Reduce the generator output
        G_output(i) = G_output(i) - reduction;
        % Update the total capacity
        total_capacity = total_capacity - reduction;
    else
        break; % Stop if we have dispatched enough power
    end
end
% Check if we have dispatched enough power
if total_capacity < Pload
    error('Not enough capacity to meet the load.');
end
% Display the generator dispatch
disp('Generator dispatch (MW):');
disp(G_output);
The above code will provide an error in case the generators are not capable of meeting the Pload requirement. In case it can meet the requirement, it will start removing power from the end if it exceeds the Pload value. 
I hope it resolve your issue!
0 Comments
See Also
Categories
				Find more on Introduction to Installation and Licensing in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
