0
$\begingroup$

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.  Thanks to everyone in advance. I ask for your help and support.

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)

$\endgroup$

1 Answer 1

1
$\begingroup$

There is no need to normalize the values. You could do it (although the proper normalization technique would depend on your application), but I would actually recommend against it.

It is not a problem that the units of those values are different. You implicitly have units on the constants in the cost function (0.8 and 0.2 in the example equation). If your cost function would have dollars ($ \\\$ $) as a unit, the constants would have the units $ \\\$ / C^2$ and $ \\\$ / (m^3/h)^2 $ respectively. That means that you can safely add the two terms.

Simply ensure that the relative values of those constants are what you want. The ideal situation would be that you actually know your literal 'cost' in dollars of having an offset in temperature or the cost of your fuel. Then you could simply use those values to determine the cost of any control strategy, and choose the optimum among them.

However, you probably don't have exact values for that, so you will need to tune those values until the controller behaves to your liking.

$\endgroup$
2
  • $\begingroup$ Thank you for your answer sir. @Chris_abc I gave 0,8 and 0,2 values as an example, but you say that it is enough to tune these values, you say that there is no need for any other standardisation/normalisation. But wouldn't the differences and magnitudes of the units be a problem? Because while the sum of the square of the fuel changes is a number like 7500, the sum of the square of the differences of the estimated future temperatures with the set value is a relatively small number like 75. $\endgroup$
    – Clankk
    Commented Dec 16, 2023 at 13:45
  • $\begingroup$ It really does not matter. The two terms should simply be chosen such that the resulting control strategy reflects the objective you have in the control of this system. If you find 75 C^2 an acceptable value for the square temperature offset, and 7500 (m^3/h)^2 an acceptable value for the fuel change , then I would start the cost function as "100*sum_t(E_t^2) + 1*sum_t(U_t^2)". Then tune from there using simulations. $\endgroup$
    – Chris_abc
    Commented Dec 16, 2023 at 17:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.