Evaluating the Robustness of a Temperature State Estimator
This model analyzes the robustness of a state estimator, taking measurements from an electrical radiator. The state estimator blends together different measurements and a model of the system in order to estimate the current radiator temperature. To evaluate the robustness, noise is added using blocks from the Modelica.Noise library.
To run this example, you'll need
The latest versions of SystemModeler and Mathematica.
The model contains a small electric radiator that is powered by a 24V voltage source. The radiator element heats up the body of the radiator. The temperature of the radiator will also be affected by the ambient temperature, which will increase during the simulation. Three measurements are taken continuously: radiator voltage, ambient temperature and a direct measurement of the radiator temperature. Using the Noise library, a white noise is added to each of the measurements. All noisy measurements are fed into a Kalman filter that estimates the radiator temperature.
At the top of the diagram is the state estimator, which estimates the temperature of the heat capacitor in the center.
The new built-in Noise library gives realism by adding noise to simulations.
The Kalman filter estimator was created by linearizing the model without noise, using the function WSMLinearize. Then, the Wolfram Language’s built-in suite of signal processing functions was used.
Expectation value and standard deviation for the noise distributions can be changed in the model. The Kalman filter was created assuming the standard values for the noise distributions in the model are true. By increasing the noise or any other parameter in the model, you can see how robust the filter is to modeling errors.
Noise distributions for the different measurements, plotted using the Wolfram Language.
Visualize in the Wolfram Language
Built-in functions in the Wolfram Language allow you to quickly create probability density plots.
When simulating the model, you can compare how well the estimated temperature corresponds to the actual temperature. The estimator is dynamic and will update as more measurement data is supplied to the filter; this causes the estimator to converge toward the true state.
Direct temperature measurement on the radiator is very noisy.
With a state estimator, the temperature can be accurately estimated.
Using SystemModeler, you can evaluate the performance of estimators, predictors, controllers and more.