Cogeneration for Dummies

I'm modelling cogeneration for the first time, and I'm not an expert in the field. For that reason, I first decided to create a tiny RES to see what happened when I changed each parameter. My aim is to understand well how it works, first technically, then add costs etc, and then add cogeneration into my model.

But I haven't been able to make my tiny model behave as I'm expecting.  I mean, I have a solution value of zero, but I can't see the flows in and out of the different processes, which is what I'm interested in.

The RES contains coal imported, cogeneration (backpressure) using that coal, an electricity demand consuming the electricity, and a demand process consuming that heat.

If you can please see the attached files, I'd be more than grateful.

At first, I added an export process for the heat (so there was a demand process consuming electricity, with a COM_PROJ associated, and the heat was exported). I couldn't see the heat actually being exported, or any flows in and out of cogeneration or any other process. So then I tried with the demand for the heat in the internal region, but didn't input COM_PROJ for it, expecting the model to calculate it (which may be a mistake).

I think the cogeneration process is not well defined. I used ACT_EFF for the total efficiency (electrical + thermal), is this correct?  I'm using the numbers from the example in Veda-Getting started doc.

Regarding units, is it possible to have ELEC in PJ, and HEAT in thousand tonnes?

Thank you very much, and sorry for such a basic and long question.

If you don't want to take the time seeing the files, but want to share a database that includes cogeneration (gams file or Times) that I can play with, it will also be a big help.




Attached Files
.rar   chp_gams.rar (Size: 36.99 KB / Downloads: 2)
.rar   CHP_times_database.rar (Size: 138.64 KB / Downloads: 2)
You have forgotten to define the process transformation for the processes RESELC000 and INDHET000.  For example, adding ACT_EFF(ACTGRP) for both of these processes would fix this problem. I just did that, and I immediately saw the process ECCGN producing both electricity and heat. However, because you have no heat demand, the heat is getting wasted in the heat balance, and not consumed by the demand process. You can prevent that by adding the parameter COM_LIM(FX) for HEAT, i.e. by making the HEAT balance fixed. I just tested that, and immediately saw the process INDHET000 consuming all the heat produced.
Note that NCAP_CHPR is the heat-to-power ratio in the back-pressure mode. You have used a very low ratio (0.67), which makes me suspect that the value may represent the power-to-heat ratio instead.
You could also have heat expressed in tonnes, but then I would suggest to model the efficiency in terms of electrical efficiency, and not the total energy efficiency. For a fixed BP turbine, you would then need to take into account the unit in the NCAP_CHPR value.

Hi, Antti,

Thank you for your reply; it's obviously working as expected now.

The CHPR (0.67) parameter is the result of 0.30 thermal efficiency divided by 0.45 electrical, given in the example of the Veda manual (I told you I was just playing with cogeneration). Most of the real backpressure data I have is greater than that.

I understand why it's better, if expressing heat in tonnes, to then model efficiency in terms of electrical efficiency only. Can you please help me with changing NCAP_CHPR accordingly? Do I have to use a coefficient to transform thousand tonnes to PJ to be able to compare them?

With respect to the COM_LIM parameter: In VEDA there are dummy processes that if the solution of the model is correct should be empty. But if you model without using VEDA, they don't exist. So, I am thinking of introducing the dummy processes in my model, maybe one import and one export, that produces/consumes all resources/commodities, and input them a very high cost. Do I have to use the parameter COM_LIM FX for every commodity, so that if there's any wasted commodity they appear in those dummy processes, and in that way check for errors in the model? Or with the very high cost only is enough?

Thank you again,


Well, if in the backpressure mode you will get X tonnes (or kt, or Mt, whatever unit you choose) hot water or steam per one PJ of electricity produced, you should set your NCAP_CHPR value to X. Of course, you should then model the demand of the heat also in the same unit.
You can model the plant in terms of BP-mode electrical efficiency by setting NCAP_CEH to zero.
So, if your BP mode electrical efficiency is 35%, you should set ACT_EFF=0.35 and NCAP_CEH=0.
I added the COM_LIM(FX) parameter only because you had not modeled any heat demand, just for making the heat consumption visible in the results. Normally, you should model the heat demand in order to have some value for the heat as well.  If you have no heat demand, the heat has basically no value, and Cogeneration would hardly ever become economical. But when you have the demand, there should be no need to make the commodity balance fixed by using COM_LIM(FX).
So, I would certainly not recommend using the COM_LIM(FX) for every commodity. It is mostly only useful in cases where the commodity has no positive value as such (e.g. waste), but must be further processed or treated before it can be either disposed of, or converted to a product that has a positive value. In such cases the open commodity balance equation () would make it possible to dump the waste without costs to anyone's backyard, which should thus better be prevented by setting the COM_LIM(FX) parameter, or bounding the VAR_COMNET variable to zero.
Concerning dummy import processes, they can indeed be useful for avoiding infeasiblities in the model, but you should not set the costs overly high, because that is likely to cause numerical problems.
Very clear, Thank you very much.

Hi, I have some cost data for some cogeneration plants, but I don't know if they are for electricity only or for electricity and heat. I suspect they are only for electricity, though (yet I know they produce steam).

For that reason, to see how they behave with the costs data I have, I created 2 tiny RES with just one process each, one with a CHP backpressure, and one with a condensing CHP.

The Backpressure CHP model works as I expect. The Condensing one doesn't. It may be for lack of data and also because of how I specified it, which is not complete.

The only technical data I have is:

Electrical efficiency at maximum capacity=0.454,  Thermal efficiency= 0.316. NCAP_CHPR= 0.696 (calculated using previous efficiencies).

So in the condensing CHP I included NCAP_CHPR_UP=0.696; NCAP_CEH=0

I get this message in the quality_assurance_log (Answer).


*** CHP process with zero CEH but only upper bound on CHPR.

 *01 WARNING       - Unusual CHP operation: R=WEU          P=EWIN2

What other specification could I add with the data I have? I mean, what number can I  use for NCAP_CHPR_LO?

Something that calls my attention is that the VAR_ACT is lower than the VAR_FLO_OUT (I defined the activity as the electricity produced), so I thought they should be equal.

I am doubting my little exercise will help me to realise what the cost data represents, but at least I get to learn how to specify a Condensing CHP in the right way J


PS: I attach the files from the 2 runs.uploads/37/chp_bp_cond.rar

Attached Files
.rar   chp_bp_cond.rar (Size: 89.89 KB / Downloads: 0)

For modeling a CHP technology with flexible outputs of electricity and heat, you need the following parameters:

  • Thermal efficiency (either in condensing mode or full CHP mode): ACT_EFF
  • Heat-to-power ratio in full CHP mode: NCAP_CHPR
  • Coefficient of electricity to heat: NCAP_CEH

The thermal efficiency of a conversion process refers to the conversion efficiency, in other words it is the output/input ratio. In the condensing mode it is thus the ratio of electricity produced to fuel consumed, and in the CHP mode it is the ratio of electricity+heat produced to fuel consumed.

The heat-to-power ratio is simply the ratio of heat output to electricity output in the full CHP mode ("backpressure mode”).  The coefficient of electricity to heat is needed for defining the ratio of electricity lost to heat gained when moving from the condensing mode towards the full CHP mode.

If I understand correctly, your technology has a thermal efficiency of 77% in the full CHP mode, and it has a heat-to-power ratio of 0.696. However, your data appears to be missing the information needed for NCAP_CEH.  Nevertheless, as the technology is apparently a combined-cycle gas turbine plant with a waste heat boiler, we can assume that NCAP_CEH is relatively small, i.e. in the condensing mode the gain in electricity output is not too large. Assuming e.g. that NCAP_CEH = 0.114, we can derive the condensing efficiency:

EFF(con) = EFF(chp) * (CHPR*CEH + 1) / (1+CHPR) = 0.49

That looks reasonable, and so you could use the following data for modeling the technology on the basis of the condensing mode efficiency:

  • ACT_EFF = 0.49
  • NCAP_CHPR = 0.696
  • NCAP_CEH = 0.114

In ANSWER, they could be specified like shown below (the other parameters shown are based on your data file):

I see my misunderstanding now. I thought that because the condensing CHP generated only electricity I could use that efficiency for the whole process. Yet it should be clear that I cannot just negate the heat possibility and its effect in the efficiency of the plant.
I was thinking of using a CEH parameter similar to yours; it feels good to have some support about it.
Thank you very much, Antti.
Hi, Antti,
as you said, the CHP I am trying to model is a CCGN+HRGS. The installed capacity is only electrical capacity, so when I model it as backpressure, the model (naturally) invests in new capacity. The HRGS is 210 MW, how do I add that capacity to the electrical (120 MW)?
As I said, my data is not complete because it's confidential. But I am hoping the CHP generates 625 tonnes/hour of steam for the alumina refinery. To convert the thermal capacity I was using=
 tonnes/hr steam approximate heat value is 2000kJ/kg,
1tonne steam / hr = (1000kg/t)/(3600sec/hr)x(2000kJ/kg) = 555kW
But, if i'm not wrong, the CHP only gets to generate 378 tonnes/hour of steam with those conversion factors. So I may be miscalculating something (very possible, as I'm not an engineer).

I am sorry, I don't quite understand the question.  If you mean that the plant can produce 120 MW of electricity and 210 MW process steam in backpressure mode, then your earlier data were wrong, and you should correct the parameters accordingly.

In addition, if you are really using tonnes as the unit for steam in the model, you should also take that into account in the CHPR (and CEH, if used) parameters.


I thought that I had to convert the steam capacity (210 MW) in some way, that I couldn't just add it to the electrical, but I guess I was wrong, I just have to input (0.21+0.12) GW as total capacity.

I model everything in PJ.

I didn't input the heat demand straight away because I don't have the exact demand, I have the total of 3 CHP plants, and I have to estimate how much each of them is generating.

So I wanted to see how much steam the CHP generated using COM_LIM FX for the heat, and got 1.96 PJ as a result, which I have to convert into tonnes/hour (because that's the unit of demand i have for the total of the 3 plants).

thanks and sorry for being so confusing (my data doesn't help my engineering skills, which are not that strong Smile

thanks again



Well no, if you model the plant as a backpressure plant, and use NCAP_CEH=0. In that case the capacity should just be the electrical capacity in the backpressure mode (120 MWe). And NCAP_CHPR(FX) should then be 210 / 120, if steam and  electricity are produced in these proportions.

If I model it as you have just suggested, then, should I change ACT_EFF(NRG)=0.77 (0.454 electrical efficiency + 0.316 thermal efficiency) for ACT_EFF=0.454?  I am asking this because the fuel consumption has dropped dramatically and I was expecting the CHP to consume more fuel. But, then, it may be a problem of data.
If NCAP_CEH=0, ACT_EFF should be the electrical efficiency in backpressure mode. If that is 0.454, then you are right.  But because you have a strange "thermal efficiency", I am not so sure of the validity of your data... Embarrassed

Forum Jump:

Users browsing this thread: 1 Guest(s)