The problem is to transfer thermal energy from one heat exchanger to another. I am sending the fsd file by email. The flowsheet uses a flow controller to control the flow rate in the recycle loop. The flowsheet shows two states. The initial state is represented by Loop A and the final desired state is represented by Loop B. The simulation for Loop A (5.68) as well as for Loop B (5.70) solve. The question is
"How to transition from Loop A to Loop B by just changing the setpoint of the Loop A FC from 5.68 to 5.70?"
The problem with the recycle loop is that it will not solve before exhausting its allowed iterations with the message:
"Solve failed: convergence was not obtained; maximum number of iterations exceeded."
I have to manually intervene to obtain a solution. I hope that this example can provide information that can be used to tweak the solve algorithms. Your insight would be helpful.
I am not sure what you are attempting to do, but what you are doing in the flowsheet you sent me is to control the flow rate of the recycle by measuring the flow rate in the recycle, using that as the measured variable for a controller, and the controlled variable is ... the flow rate of the recycle.
This does of course not work.
If you want to specify the flow rate of the recycle with the controller, you do not actually need to use the controller:
- remove the measure device
- remove the controller
- just input the desired flow rate directly to the flow constraint.
I tried what you suggested in your posting, but it did not work for me. Please refer to procedure below. I had tried this before when I first encountered the problem in attempting to control temperature at the same point of the flow measurement. In summary, neither temperature nor flow can be controlled in this recycle and the manual flow adjustment that you suggested does not work for me either. Could a problem exist with the Heat Exchange Unit. Why must I step around the loop and manually calculate each device to obtain a solved flowsheet? This just does not seem to be a good operating strategy. What is really going on here?
Based on your recommendation for manual setting of the Flow Constraint Unit: 1) solved the flowsheet that I emailed to you, 2) deleted FC and Streams 100 and 102, 3) manually set Stream 101 to 5.68, 4) the flowsheet [Validated], 5) the flowsheet failed to [Solve] with the previously reported message. I cannot duplicate a solved flowsheet using your procedure. I am using Version 2.6.0.28 Units.
Yes, this is true. There is a narrow range in which your temperature guess is valid. If too high, one heat exchanger is invalid, if too low, the other is invalid.
But this can simply be overcome. Double click a heat exchanger, hit Show GUI. On the Heat Exchanger tab, check the box that says "continue calculations with min/max temperatures". Do the same for the other one. You will find a solution.
This solution is however not unique, and therefore probably not what you are looking for:
- you are not pinning down the pressure inside the loop: both heat exchangers have zero pressure drop. This implies any pressure can give a solution. If you want to pin down pressure, add a pump to the loop with set outlet pressure
- you are not pinning down temperature inside the loop: both heat exchangers perform work on the stream, and any solution in which the heat duty in the first heat exchanger cancels out the heat duty in the second heat exchanger is valid. If you want pin down the temperature on one end, several options are possible. You can make that either of the outlets in the loop is the specified temperature end of the corresponding heat exchanger, or you can put some other temperature constraint on the loop.
- the composition inside the loop is not fixed.
The temperature solution would be unique if the heat capacity of the recycle stream is reasonably dependent on temperature, but there is not a very strong dependence (cf a temperature plot).
Note that the solution found may therefore also be one that violates the constraints on the heat exchanger. And is not a solution you want.
Finally, the problem is generally ill-stated, which causes the 'unconstrained' solution always to drift to one of the validity limits:
In WHR Preheater, you state that the temperature of stream 22 must be 321 C. The feed temperature is given, so the work on that heat exchanger must be -3.7703896e+09 - (-3.5953585e+09) J/h = -1.75031e+008 J/h.
In Intercooler 1, you state that the temperature of stream 12 must be 125 C, the feed temperature here is given too, so that the work on that heat exchanger must be -1.970183e+09 - (-2.1452826e+09) J / h = 1.751e+008 J/h
As you can see there is a slight mismatch in these numbers (with this kind of specification you cannot get them completely equal); this causes the drift. I suggest you fix this by requiring the work on both heat exchangers to be equal. This implies pulling the work from one heat exchanger (virtual info port) and using it as specification for the other. You must therefore drop one of the two temperature specifications.
"you are not pinning down the pressure inside the loop: both heat exchangers have zero pressure drop. This implies any pressure can give a solution. If you want to pin down pressure, add a pump to the loop with set outlet pressure."
The implementation of this seemingly simple suggestion solved all the problems that I was experiencing. I was amazed at the consequence of such a simple addition. Thank you!
I originally did have a pump in the loop, but thought that it served no purpose since the liquid heat transfer fluid in the loop was incompressible. I will not underestimate the usefulness of the "lowly" Pump Unit in the future. OK. I am on my way, thanks again to you.
I think the real problem is the fact that the heat duties are slightly different in the two heat exchangers, best to couple them.
Note that you can make a custom unit (e.g. with the Scilab unit operation) that has a feed and product. The product as specified flow rate, composition and pressure, and copies the temperature from the feed. Put this in your loop instead of the flow constraint and you resolve all ambiguities....