21 April 2017

Project progress report - weeks 13-14

This weeks work (halved by Easter holidays) has been devoted to the following activities:

- Process integration applied to a chemical tanker
- ECOS 2015 paper extension
- Course in Model Predictive Control

**Process integration applied to a chemical tanker**

Finally all "programming" aspects have been fixed and Osmose has been updated in order to include them. To summarize:

- Fuel input and, more in general, any flow can now be expressed as a function of the load (size) of a component using a relationship of the type y = ax + b (instead of y = ax)
- A cost linearizator has been implemented for nonlinear cost functions
- Piece-wise linear interpolation has been implemented

The work then focused on taking care of a number of details that had to be fixed concerning the specific project under study. In particular

- I updated the specifics of the main engines
- I included realistic values for heat demands of different types
- I set a minimum operational load for all prime movers (main engines, auxiliary engines, boilers) equal to 10% of the maximum load
- I included a model of an electrical heater
- I included a model of an Organic Rankine Cycle (ORC), with cyclopentane as working fluid, with variable condensation and evaporation pressure, to be optimized in a master-optimization level
- I included a "chimney" component, where exhaust gases are cooled either with an exhaust gas boiler, or they are simply released to the environment. This allows for full freedom of Osmose to optimize at what temperature the heat recovery can happen

**ECOS 2015 paper extension**

Work continued on the extension of ECOS 2015 paper. In particular, I prepared the data structure for the generation of the required data for the energy and exergy analysis.

The work particularly focused on the painstaking process of translating the original Matlab data processing scripts for the energy and exergy analysis to Python. The idea is to create a full structure with all the data for all flows entering and leaving different components, so that it should (hopefully) then be easy to calculate energy and exergy efficiencies in an automatic way.

**Model predictive control course**

This week's lecture of the MPC course dealt with the robust implementation of MPC.

Starting from the contents of the previous lecture, we expanded the idea of robustness, generalizing the problem of having an MPC that works fine even when there are some external disturbances of different types.

Posted by Francesco Baldi at

15:47
10 April 2017

Project progress report - week 12

This week has been devoted to the following activities:

- "Engineering Optimization" reading
- Course in Model Predictive Control
- ECOS 2015 paper extension

**"Engineering optimization" reading**

I finished reading the book "Engineering Optmization", written by S.S. Rao.

During this week of book reading, I finished reading chapter 13 and completed chapter 14 and Appendix B

- Chapter 13: Modern methods of optimization
- Chapter 14: Practical aspects of optimization
- Appendix B: Some computational aspects of optimization

**Model predictive control course**

This week's lecture of the MPC course dealt with MPC's practical implementation itself.

During the previous week, the lectures focused on providing the theoretical basis and justification for MPC. These, however, cannot always be translated into practice. That is why the subject of this lecture was: how do we practically implement MPC?

The lecture mostly revolved around the following concepts:

- MPC stability with no terminal constraint
- Tracking - how does it works when the objective of the control changes over time?
- Avoiding offsets in MPC (where we cannot have an integral part)
- Stable MPCs doing tracking without offset

**ECOS 2015 paper extension**

Work continued on the extension of ECOS 2015 paper. In particular, I prepared the data structure for the generation of the required data for the energy and exergy analysis.

The data will be structured as follows:

- System level: Main engines, Auxiliary engines, Others
- Unit/component level: Turbocharger, Coolers, etc
- Stream level: Water_in, Air_out, etc
- Stream features: Mdot, T, Qdot, etc.

The main task is now that of filling in the fields. This requries:

- Reading existing values from the database
- Processing them

Posted by Francesco Baldi at

7:57
3 April 2017

Project progress report - week 11

This week has been devoted to the following activities:

- Osmose improvement
- "Engineering Optimization" reading
- Course in Model Predictive Control
- ECOS 2015 paper extension

**Osmose improvement**

The rs = a*f + b"improvement" of Osmose needed further effort after discussion with other colleagues at the lab:

- The implementation was not "elegant".
- The implementation was done by adding one additional constraint. This constraint could in reality be avoided by reformulating the equations in a slightly different way
- The improvement only applied to resource flows, and not also to mass flows (flows that cannot exchange among different model locations) and heat flows.

Hence, the following was done (at the expense of quite a lot of time, unfortunately:

- The implementation was improved in elegance. The required code was included in a function, so that it could be stored at the end of the main script with minor disruption to the readability of the script.
- The non necessary constraint was eliminated
- The script was written in a way that only writes equations and parameters when needed, thereby reducing storage space and complexity of the problem
- The modification was applied also to mass flows (not yet to heat flows)

**"Engineering optimization" reading**

I continue reading the book "Engineering Optmization", written by S.S. Rao.

During this week of book reading, I read chapter 12 and part of chapter 13:

- Chapter 12: Optimal control and optimality criteria methods
- Chapter 13: Modern methods of optimization

**Model predictive control course**

This week's lecture of the MPC course dealt with (finally!) MPC itself. It was shown how it works, and what are the main challenges in terms of its stability and feasibility.

The most practical problem is that, contrarily to LQR controllers, MPC controllers cannot be calculated for an infinite time horizon. Hence, the choice of the prediction time horizon becomes a crucial point to define, as it influences both the feasibility of the controller, and the stability of the syxtem.

This can be solved in MPC by adding the concepts of **terminal cost** and **terminal constraint**

**ECOS 2015 paper extension**

Work continued on the extension of ECOS 2015 paper. In particular, I completed the conversion of the the "constants" routines code from Matlab to Python.

Posted by Francesco Baldi at

9:12
26 March 2017

Project progress report - week 10

This week has been devoted to the following activities:

- Osmose setup for Tanker optimization
- "Engineering Optimization" reading
- Course in Model Predictive Control
- ECOS 2015 paper extension
- Attending seminar on Horizon 2020 - Funding Opportunities in the Energy Domain

**Osmose setup for Tanker optimization**

The "improvement" of Osmose was concluded with the following:

- Addition of the y=ax+b constraint for resource flows
- Creation of a function for the linearization of cost functions

This week's work focused on setting up the models for being used in the optimization of the retrofit of a chemical tanker. In particular, the following was achieved:

- Fixing the problem of the exhaust gas: in Osmose, all heat flows are either cold flows that need to be heated, or hot flows that need to be cooled. There is no real place for "waste" flows, such as the exhaut gas, that
**can be cooled** and used to recover heat, but don't really need to: there is no problem if the exhaust gas leave the funnel at a temperature that is higher than the minimum allowed.

This problem was fixed by adding a new cluster in the simulation, called "Main engine chimney", where the heat from the exhaust gas can go either to a steam boiler, or to the environment.
- Setting up the internal Multi-Objective optimisation routine MOO, programmed in Matlab. Now it is up and running, ready to be used.

**"Engineering optimization" reading**

I continue reading the book "Engineering Optmization", written by S.S. Rao.

During the second week of book reading, I read chapter 10 and read chapter 1:

- Chapter 10: Integer programming
- Chapter 11: Stochastic programming

**Model predictive control course**

There was a "bug" in the course programme, so Thursday supposedly 4th lecture was actually the 3rd lecture. It dealt with the concept of constrained systems. This included learning about invariant and control invariant sets and on how to calculate a control-invariant set for a specific system, or calculate a control law that makes a set to be control-invariant.

**ECOS 2015 paper extension**

Work continued on the extension of ECOS 2015 paper. In particular, I started the conversion of the database analysis code from Matlab to Python. This week's work included the conversion of the "constants" routines, that define the constants used in the analysis.

**Attending seminar on Horizon 2020 - Funding Opportunities in the Energy Domain**

On Friday the 24th of March I attended a seminar at the EPFL campus in Lausanne about funding opportunities in H2020 and in Switzerland in the energy domain. There were many interesting presentations, although apparently in the current Work Programme (2017-2018) the opportunities for funding in my domain are few.

I will upload the presentations as soon as they become available.

Here the link to the event:

https://www.euresearch.ch/en/events/event-detail/showUid/600/

Posted by Francesco Baldi at

20:40
16 March 2017

Project progress report - week 9

This week has been devoted to the following activities:

- Osmose development
- "Engineering Optimization" reading
- Course in Model Predictive Control
- ECOS 2015 paper extension

**Osmose develpment**

The possibility of including dependancy of resource flows in Osmose from y = ax to y = ax + b is finally up and running.

Hereafter a description of the module and of what it does:

https://drive.google.com/open?id=0B_ThFgKtdzRramF0ZTYxRlVDTHM

**"Engineering optimization" reading**

I continue reading the book "Engineering Optmization", written by S.S. Rao.

During the second week of book reading, I finished reading chapter 8 and read chapter 9:

- Chapter 8: Geometric programming
- Chapter 9: Dynamic programming

**Model predictive control course**

The third week's lecture dealt with the concept of constrained systems. This included learning about invariant and control invariant sets and on how to calculate a control-invariant set for a specific system, or calculate a control law that makes a set to be control-invariant.

**ECOS 2015 paper extension**

During my PhD, I did work on the energy and exergy analysis of Cruise ship energy systems, together with Fredrik Ahlgren (Linneus University) and Tuong-Van Nguyen (DTU). The paper was presented at the International conference of Efficiency, Cost, Optimisation, Simulation and Environmental Impact of Energy Systems (ECOS) in 2015 in Pau, France.

We had already planned and initiated work for extending the publication to a journal publication, but this did not happen because of lack of time and organization. Now, we are back on the project. The plan is to have it done by the beginning of the summer.

This week's activities connected to this project involved:

- Meeting on Skype with Fredrik and TV
- Planning the first month of action
- Selecting a number of publications that are expected to be cited
- Creating a github project page to manage our project code files.

Posted by Francesco Baldi at

11:30
13 March 2017

Project progress report - week 8

This week has been devoted to the following activities:

- Osmose development
- "Engineering Optimization" reading
- Course in Model Predictive Control

**Osmose develpment**

The concept of developing the dependancy of resource flows in Osmose from y = ax to y = ax + b was still the main subject of the activity

The focus on this week's activity has been on how to make this work by only adding the necessary constraints, instead of adding redundant constraints for every simulation step.

**"Engineering optimization" reading**

As from the plan outlined in the first post and in the planning of the project, after I finished the EDx course about linear optimization I started reading the book "Engineering Optmization", written by S.S. Rao.

During the second week of book reading, I read chapter 7 and part of chapter 8:

- Chapter 7: Nonlinear programming III: Constrained optimization techniques
- Chapter 8: Geometric programming

**Model predictive control course**

The third week's lecture dealt with the concept of convex optimization, which MPC is based on. This primarily included the revision of **interior point methods** for the optimization of linear and nonlinear programming problems.

Posted by Francesco Baldi at

8:52
4 March 2017

Project progress report - week 7

Week 7 has been devoted to the following activities:

- Osmose development
- "Engineering Optimization" reading
- Course in Model Predictive Control
- Introduction to IPESE for Alessandra

**Osmose develpment**

The idea is to be able to implement in Osmose relationships between different flows that are still linear, but of the type

instead of

This was implemented for resource flows (i.e., in particular, fuel flows) and will be extended to mass flows and heat flows.

**"Engineering optimization" reading**

As from the plan outlined in the first post and in the planning of the project, after I finished the EDx course about linear optimization I started reading the book "Engineering Optmization", written by S.S. Rao.

During the second week of book reading, I read chapters 5 and 6:

- Nonlinear programming I: One dimensional minimization problems
- Nonlinear programming II: Unconstrained optimization techniques

**Model predictive control course**

The second week's lecture dealt with linear quadratic regulators (LQR) in discrete-time systems, and on the two main ways of solving them:

- Dynamic programming
- Least squares

We also explored the concept of stability of LQRs, and on how this heavily depends on the selected horizon for the prediction

**Introduction to IPESE for Alessandra**

Alessandra Ancona is a PhD student from the University of Bologna. She is doing her PhD on the optimization of district heating systems.

She was introduced to the lab, and she started learning her way through Osmose.

Posted by Francesco Baldi at

17:06
24 February 2017

Project progress report - week 6

Week 6 has been devoted to the following activities:

- Osmose model development
- Osmose development
- "Engineering Optimization" reading
- Course in Model Predictive Control

**Osmose model development**

I am continuing the step-by-step development plan for implementing one of the existing ship case study (the chemical tanker) into Osmose.

This week's development have been:

- Implementation of the Osmose model inside of an external, genetic algorithm. For now I used Matlab's GA, later I might implement the multiobjective optimization tool (MOO) available at IPESE. For the moment, I just tested the optimization of the temperature of the steam network. More tests to come.

**Osmose develpment**

The idea is to be able to implement in Osmose relationships between different flows that are still linear, but of the type

instead of

This requires a deeper understanding of how Osmose works, which is what I started to do during this week. I explored more in depth the way Osmose takes the inputs from the user and uses them to write AMPL code.

**"Engineering optimization" reading**

As from the plan outlined in the first post and in the planning of the project, after I finished the EDx course about linear optimization I started reading the book "Engineering Optmization", written by S.S. Rao.

The book covers most aspects of mathematical programming, touching both linear, integer, quadratic, geometrical and generic nonlinear programming, as well as introducing to alternative programming techniques (Genetic Algorithms, etc).

During the first week, I read 4 out of the 14 chapters of the book:

- Introduction to optimization
- Classic optimization techniques
- Linear programming I: The Simplex method
- Linear programming II: Additional topics and extensions

**Model predictive control course**

I started attending a Model Predictive Control course (MPC), offered at EPFL by Colin Neil Jones.

http://edu.epfl.ch/coursebook/fr/model-predictive-control-ME-425

The course will develop over 14 weeks, and cover a broad range of thematics related to MPC, including its theoretica foundations and its practical implementation.

The first week's lecture introduced MPC and its applications, and gave some background information about the concepts of stability in control

Posted by Francesco Baldi at

16:44
17 February 2017

Project progress report - week 5

Week 4 has been devoted to the following activities:

- Osmose model development
- Linear programming course
- Methane evaporation project
- Applying for funding for the project-end conference
- Literature review

**Osmose model development**

I am continuing the step-by-step development plan for implementing one of the existing ship case study (the chemical tanker) into Osmose.

This week's development have been:

- Implementation of all auxiliary heat and power demands with realistic figures: in particular, tank heating, tank cleaning, fuel tank heating, ballast pumps, cargo pumps, air conditioning.
- Implementation of a reference trip with the following parts:
- Port stay
- Cargo loading
- Loaded voyage
- Cargo unloading
- Port Stay
- Ballast voyage-1 (with ballast pumps and tank cleaning on)
- Ballast voyage-2 (w/o ballast pumps and tank cleaning)

**Linear programming course**

See previous weeks' blog post. I happily concluded the course, which means that I can move to the following step of educating myself about optimisation.

**Methane evaporation project**

I am helping Francesca, a new PhD student in the IPESE lab, in implementing a methane-evaporation unit into a larger energy system (e.g. ship, or a harbour). The process involves fighting with Vali (we are both beginners) and its integration with Osmose.

**Applying for funding for the project-end conference**

In the project application, I had "promised" I would end the project with a seminar focused on spreading the results for the project.

Why not making it into a small conference instead?

The "Latsis foundation" offers 50 000 CHF every year to finance an event on campus. I spent some time this week to prepare an application to be sent for this call (deadline: 01 March).

To make it short, I propose to organize a conference about "Modelling and optimization of Ship Energy Systems", hopefully gathering researchers and R&D from the industry here in Sion. A bit ambitious, but in the end...why not?

In this framework, I would present the results of the ODes aCCSES project in one of the keynote speeches. The conference is planned as a 3-day conference. It would be interesting to have help from Kari based on his experience organizing the SET Seminar in Aalto

**Literature review**

I keepreading work of other researchers from EPFL in my area of interest. This week's reading included:

- Marechal, F., & Kalitventzeff, B. (2003). Targeting the integration of multi-period utility systems for site scale process integration.
*Applied thermal engineering*, *23*(14), 1763-1784.

Posted by Francesco Baldi at

11:29
10 February 2017

Project progress report - week 4

Week 4 has been devoted to the following activities:

- Osmose model development
- Linear programming course
- Initiation to Vali
- Literature review

**Osmose model development**

I made a step-by-step development plan for implementing one of the existing ship case study (the chemical tanker) into Osmose. The idea is to develop piece by piece the models I need in my project, while improving my skills with Osmose and learn its multiple functionalities.

This week's development have been:

- Implementation of multi-time simulation: this allows simulating different periods. At the present moment, the values were randomly selected and only for a few parameters, but it works. For the future, the idea is to simulate some kind of "reference trip", with port stay, maneuvering, loaded conditions, ballast conditions, with appropriate values and durations
- Implementation of the heat demand: This involved adding models for the heating of the fuel tanks, of the storage tanks (it can happen), and of the fresh water generator.

**Linear programming course**

See previous week's blog post. The course is developing. I expect to be ready in one or two weeks

**Initiation to Vali**

Vali is a flowsheeting program, similar to Aspen or others.

The idea is to simulate a regasification plant, and to integrate it in a wider energy system. This will also be an "excuse" to learn how to use Vali, a very powerful tool for both process simulation and data reconciliation

**Literature review**

I have started reading work of other researchers from EPFL in my area of interest, to get an idea of what is done and can be done with the tools available here. This included:

- Mian, A., Martelli, E., & Maréchal, F. (2016). Framework for the multiperiod sequential synthesis of heat exchanger networks with selection, design, and scheduling of multiple utilities.
*Industrial & Engineering Chemistry Research*, *55*(1), 168-186.
- Menon, R. P., Paolone, M., & Maréchal, F. (2013). Study of optimal design of polygeneration systems in optimal control strategies.
*Energy*, *55*, 134-141.
- Moret, S., Bierlaire, M., & Maréchal, F. (2016). Robust optimization for strategic energy planning.
*Informatica*, *27*(3), 625-648.
- Collazos, A., Maréchal, F., & Gähler, C. (2009). Predictive optimal management method for the control of polygeneration systems.
*Computers & Chemical Engineering*, *33*(10), 1584-1592.

Posted by Francesco Baldi at

16:54
Page :

**1** 2 Next »