Filter löschen
Filter löschen

dispatching grantors under pmin constraints

1 Ansicht (letzte 30 Tage)
Othman Alkandri
Othman Alkandri am 29 Apr. 2022
Bearbeitet: Shivansh am 6 Feb. 2024
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

Antworten (1)

Shivansh am 6 Feb. 2024
Bearbeitet: Shivansh am 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:
  1. Start by turning on all generators and setting them to their maximum capacity.
  2. Calculate the total capacity and compare it with Pload.
  3. 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.
  4. Continue this process until the total capacity is just enough to meet or slightly exceed Pload.
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;
break; % Stop if we have dispatched enough power
% Check if we have dispatched enough power
if total_capacity < Pload
error('Not enough capacity to meet the load.');
% Display the generator dispatch
disp('Generator dispatch (MW):');
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!


Mehr zu MATLAB 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