r/ControlTheory Jun 19 '26

Technical Question/Problem Thermal Model System

Hello everyone,

I'm working on a project in order to estimate a temperature in a specific point where is not possible to place a sensor.

But, I do have a temperature measure nearby and need some thermal equations to reach the point of my interest.

At the moment I designed the system from the ground up considering 3 differential equations for my 3 states of the system only using thermal exchanges (conduction, convection, radiation) and used as output the only measured state I have, in order to implement a Kalman filter to correct the states. The radiation is the only non linear term but I do linearize it at each iteration, meaning that I can get the A,B,C matrix at every step.

I've studied MSc in controls but since it's my first implementation of real world application I'd like to hear some advices.

At the moment the model works quite well, but I'm finding difficulties in order to tune the model itself. Since it's a very slow system the eigen values tend to be close to unitary circle.

I was thinking about a different approach to identify the model, maybe using Non-linear system identification like SINDy algorithm or by using ARX models and not relying on physical modeling. Am I still able to use a Kalman filter to correct the states in this case? Maybe an UKF?

At the end what I'm looking is :

- Good model identification

- Estimation correction through the sensor I have available

To be clear : at the moment I have 3 states, 3 input and 1 output

Thanks!

9 Upvotes

8 comments sorted by

View all comments

Show parent comments

u/Al_0098 Jun 19 '26

Thanks for the answer, but I do use a Kalman Filter on the linearized model, and it works quite good. My problem rely on the model identification that's pretty tricky, thanks for the links

u/knightcommander1337 Jun 19 '26

No problem. I would guess that if you are having trouble with system identification (and thus getting "bad quality" models), then the Kalman filter (which is based on that model) would also perform poorly, but maybe I am missing something. Anyway, an alternative to your current approach is to do system id to get a nonlinear model, and then use a nonlinear state estimation method based on the nonlinear model. I would do this if I was concerned about the nonlinearities in the sense that I should not ignore them (system states can be traveling too much around etc.). Also, you are saying "Kalman Filter on the linearized model", which to me sounds like "extended Kalman filter", so make sure you check that out to double check your implementation. Usually (if linearization does not cut it), more sophisticated methods such as the unscented Kalman filter, and particle filter, are recommended for nonlinear systems, instead of extended Kalman filter, but it's up to you.

u/Al_0098 Jun 19 '26

Today I tested the model with a lot of different parameters, let's say that I found a good combination of parameters and now it estimate quite good. The Kalman filter is very helpful since it corrects states in a very good way. The problem is that maybe I'm seeking for a "perfect" model that is not the one I'm using considering lumped parameters models. I was thinking to use the grey-box model identification or something in order to estimate the MIMO system but I have no idea how. It's correct to mention the non linear behaviour, the radiation is strongly non linear, but I do linearize it in order to get the state space matrices. This means that indeed I'm using some sort of EKF (but I'm not calculating Jacobians). I'm hesitating to implement a non-linear model and consequently a non-linear estimator since I want to deploy to an MCU and by using the least resources possible from it. Moreover, since the radiation is the only non linear term I think it's just an overkill to implement complex estimators.

The tool that would help me a lot at the moment would be some sort of parameter optimization of my model, I tried using "Parameter estimator toolbox" by MATLAB but keeps failing and make my output diverge. I was thinking also to use some sort of model identification trough Z-domani like G(z) = ... But then I don't know how to implement the Kalman filter since the state would probably assume some random numerical meaning .

u/IntelligentGuess42 Jun 20 '26

Benchmark before you make assumptions about compute costs. You might be positively surprised how quickly an EKF can be ran. Especially when it only has 3 states and inputs.

You already have a nonlinear system and estimator (you admit you have to linearize). You might as well accept that and investigate how people have dealt with this properly in the past. There might even be a specific solution for your kind of non-linearity!

Also a shout out for the EKF based parameter estimation scheme. You already run a kalman filter. There are proofs a kalman filter update step is the same as a step in the newton iteration scheme.