I am trying to develop an MPC. In this MPC, I predict the temperature and try to bring the sensor value to the desired setpoint temperature. I predict the temperature in the next 180 minutes for the fuel combinations that I will recommend to be used for 3 hours.

For example, X cubic meters of fuel for the next 60 minutes $(t,t+60)$, then Y cubic meters of fuel for the next 60 minutes $(t+60,t+120)$, and Z cubic meters of fuel in the last 60 minutes $(t+120,t+180)$.

I have 11 different fuel combinations for each 60 minutes. Since I want to predict the next three hours, I have $11*11*11=1331$ different 3-hour fuel combination scenarios. For these 1331 different fuel combination scenarios, I estimate the target sensor temperature for the next 180 minutes using the last temperature data. Then, I try to select the most optimal 3-fuel combination using the cost function, whose equation is given below. The concept of optimal here is to achieve the minimum error distance between the set and the estimated temperatures for the next 180 minutes with the minimum fuel change. So I am trying to minimize the cost function.

While everything is very good here, there is a subject that is stuck in my head, and that is that the square of the temperature errors and the square of the fuel changes in the cost function are composed of different units. While temperature errors are squared in Celsius, fuel changes are squared in cubic meters. Do you think the elements in this function should be normalized, and is it necessary?

If I need to normalize, I have the following additional questions: 

  1. Should I normalize within each scenario? In other words, should I normalize the data of 180 rows for each of the 1331 different scenarios, or should I consider all scenarios as a single data set and normalize the data of 1331x180 = 239580 rows? Because I think I will use min-max normalization, since each scenario will have its own min-max values, how will I compare 1331 scenarios with each other in the last case? 
  2. Also, should I do this normalization before squaring the values? 
  3. Min-Max normalization is the first and simplest normalization that comes to my mind, but if there is a normalization form that you think would make more sense, please share it. 

My cost function is: $$ \sum_{1}^{180} 0.8 \times E^{2} + \sum_{1}^{180} 0.2 \times U^{^{2}}$$

E: difference between temperature set value and forecasted temperature (unit: Celsius)

U: recommended fuel change amount (unit: m3/h)

  • $\begingroup$ About the squaring, for what it's worth: to achieve normalization across multiple soft constraints, so weights between constraints are dataset-size independent, I 've found that using sqrt(sum(x * x)) per constraint works well. $\endgroup$ Dec 17, 2023 at 10:37
  • $\begingroup$ That way, the objective function of xWeight * sqrt(sum(x²)) + yWeight * sqrt(sum(y²)) scales well with the dataset size without having to adjust the relative weights of xWeight and yWeight. $\endgroup$ Dec 17, 2023 at 10:39


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.