Simulation of Rankine Cycle

If you are a mechanical engineer continue reading. If you are not then please still continue reading because you have taken efforts to click on the link.

So coming to the point , a Rankine cycle is a cycle that according to wiki , generates 90% of the electric power across the world. Before , the simulation part , let me just give a run through of what the cycle actually contains .

1 . Something that has to do work – a Turbine .

2 . Something that needs to compress the water –  a Condenser

3 . Something that has to increase the pressure of the water – a Pump , and a boiler which supplies heated steam to the turbine .

There are also three different types of process , simple , reheat and regenerative , which Ill be explaining later

I wanted to simulate the actual cycle , so I used PyQt4 (I shifted from PyGtk , Why? , Ill save that for another post) , and matplotlib ( a python library used for plotting graphs)

So this is how my GUI looks like  before and after simulation .

This is the graph that I obtained using matplotlib for the normal cycle.

From the graph one can observe the following things.

1 . The outpu of the turbine as far as possible should be in the saturation state , or else the condenser line wont be straight.

2 . Pump Work is almost negligible( I couldnt get values for the compressed state of water , so that shows to take it to the saturated liquid region. )

The graph obtained for the reheat cycle.

Reheat is basically sending the output of a high pressure turbine back to the boiler , heated , and  delivered back to another turbine at a lower pressure.

The principle reason behind is to make sure that the condenser input is as saturated as possibele.

Regenerative Cycle

Regenerative is when you use a heat exchanger in between to send the water to the boiler in a heated state again , so that it decreases the heat and increases the efficiency .

It can be clearly seen from the graph that the water heater functions at a different pressure given by the violet line

Things to do :

1 . Do extensive testing to see if my app is valid for all input values .

2 . Do both reheat and regenerative together and let the user choose the number of feed water heaters .

3. Extend the app to other cycles like Brayton e.t.c

4.Do stuff other than GUI Programming which I have been doing for a very long time now.

Thanks for reading.



  1. Hi,

    Did you also post your code? I teach thermodynamics and I thought this looked like something I could use this semester.



    1. Oops. I’m extremely sorry, this was marked as spam for some reason. Unfortunately I’ve lost the code for the Rankine cycle, but I’ve dumped the code for the other cycles here. and . I’m unsure how reusable it is. I can get to package it properly later this week, if you find any problems.

      1. Thanks so much!!!! This is perfect for my class! I really appreciate it.

      2. Great. Please get back to me if you find any problems. It’s been two years since I’ve looked at the code and I need to admit it’s not the best I’ve written. It would be also great if you could star the repository 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: