How can i use MATLAB linear programming platform(Linprog) with recurssive functions?

3 views (last 30 days)
I am working M.Sc. Thesis research on a load dispatch problem for Ethiopian power system that consists of mainly 15 hydroelectric power plants, 4 wind power plants, 5 geothermal plants and 2 solar power plants. The objective function bases itself on minimizing the power production cost. All types of power plants listed above have their own property and I have already formulated the model based on those properties.
Both the objective function as well as equality and non-equality constraints are all linear, discrete and deterministic. I am working for a year time with hourly resolution and using MATLAB platform to optimize the problem. The problem is already classified as large scale linear programming.
Given this information my problem is as follows:
I have a hydraulic continuity equation of the form:
V(t) =V(t-1) + In(t) – Q(t) –S(t)
Where V(t) = the reservoir level (volume) in time period t In(t),Q(t), S(t) = Inflow, Discharge and spill in time period t respectively In addition other equality and inequality constraints are included in the equation.
The decision (unknown) variables of the whole model are V, Q and S. I was attempting to use the function Linprog to solve the equation. But linprog accepts only coefficients of equation in matrix form which makes it difficult for the above equation since V(t) and V(t-1) can’t be differentiated as there is no time dimension. Is there any way I can represent such function in MATLAB linear programming platform? IF not what else can I do?
Regards Ashenafi

Accepted Answer

John D'Errico
John D'Errico on 27 Jul 2014
Edited: John D'Errico on 27 Jul 2014
Linear programming uses linear algebra, i.e., matrices. It does not solve for a general function of time.
So discretize the problem in time, so that each time step adds additional variables. This will make the problem larger of course, since you will have a complete set of variables for each time step. That it makes the problem big may be an issue for you, but that is life.
It is why they call it research, because if it was easy, someone else would have done it already.
  1 Comment
Ashenafi Alemu
Ashenafi Alemu on 27 Jul 2014
Dear John:
Thanx for the response. But if i discretize the problem it wont be an optimization since the optimal decision bases itself only on values for that time step (in my case for that hr) rather than looking at the whole time step (a year).
I know Dynamic programming can help for such a problem but i cant find any ready made function(like linprog for the linear programming)that can help me solve the dynamic programming on MATLAB? do you know any?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!