Message Boards Message Boards

Kalman filtering of sonoluminescing bubble?

Posted 8 years ago

Hi, I'm trying to send this data through a Kalman filter to smooth it out a little and/or get a trend line. But there's all these input parameters that I don't know how to set. This is what my data looks like. Any recommendations? Thanks.

Attachments:
POSTED BY: Thomas Brennan
5 Replies
Posted 8 years ago

I can see that you're familiar with the topic of SL, so maybe you'd be able to help with a deeper question.

I've been trying to fit a solution of the Rayleigh-Plesset Keller equation to light scattering data. It can-be a multi-parameter model, but in the end can be reduced to just a five variables

1) and 2) the the 'light scattering coefficient,' parameter and Voffset, which come from the simple model that the intensity of scattered light, and hence photomultiplier tube voltage, is proportional to the square of the bubble radius:

V(t) = - [alpha] * (R[t])^2 -Voffset

3) and 4) The two parameters that go into solving the Rayleigh-Plesset-Keller, which are the equilibrium radius of the bubble, R0, and the amplitude of the acoustic drive, Pd.

and 5) an overall timeOffset to shift the data set in time with respect to the RPK solution to improve alignment with the first minimum bubble radius.

What's the best way to do this in your opinion?

POSTED BY: Thomas Brennan

I'm mostly familiar with the 'fluid mechanics' part of SL (you probably have seen the names of Lohse and Prosperetti, both I have worked with). So i'm not sure if I can help you a lot, but the way you describe it seems reasonable.

You can eliminate 5, by always aligning with (say) the first big peak (in radius).

I would make a function that has the 5 variables you mentioned as input. Have it calculate a 'cost-function', i.e. the deviation with the model and the data. Then minimize this cost using various methods. Unfortunately the Rayleigh-Plesset is (kinda) slow to integrate, so it might take a while. Maybe try stuff first manually. Then using FindMinimum to optimize.

I don't think it will be easy as you have many many variables. But you can bound radius very well I guess, and also driving pressure you can measure and have a good estimate.

Are you only looking at the scattered light? or also at the produced light? If so, it will become a lot more complex!

POSTED BY: Sander Huisman
Posted 8 years ago

I'm looking at the scattered light and the produced light. The SL flash itself is pretty narrow, so it's easy to mask it out before trying to do the fit.

In practice, I can get the parameters down to just the timeOffset. Once I have a good guess at all the other ones. The main goal is to use the RPK model to accurately determine the time of minimum radius.

POSTED BY: Thomas Brennan

I don't have your data so I created my own (similar characteristics):

ClearAll[R]
TMax2=0.00008;
3/2 D[R[t],t]^2+R[t] D[R[t],t,t]==1/\[Rho] ( p0 (R0/R[t])^(3 \[Gamma])-p0-pa Sin[\[Omega] t]+R[t]/cw D[ p0 (R0/R[t])^(3 \[Gamma]),t]) /. {cw->1490,\[Rho]->1000,\[Omega]-> 2 \[Pi] 20 10^3,R0-> 5 10^-6,\[Gamma]-> 7/5,p0-> 101325,pa->13/10 10^5}
sol2=R[t]/.NDSolve[{%,R[0]==5 10^-6,R'[0]==0},R[t],{t,0,TMax2},MaxSteps-> \[Infinity],PrecisionGoal->9,WorkingPrecision->13];
sol2=First[sol2];
Plot[Evaluate[sol2],{t,0,TMax2},PlotRange->{0,All},ImageSize->500,AxesLabel->{"t","R"}]

enter image description here

now we can discretize this data and add some noise, make a copy, and filter it.

data = Table[{t, Evaluate[sol2]}, {t, 0, TMax2, TMax2/10000}];
data[[All, 2]] += RandomReal[2 10^-6 {-1, 1}, Length[data[[All, 2]]]];
data2 = data;
data2 = {data2[[All, 1]], LowpassFilter[data2[[All, 2]], 0.2]}\[Transpose];
ListLinePlot[{data, data2}, AspectRatio -> 1/4, ImageSize -> 800]

enter image description here

I'm not sure why you want to use a Kalman filter precisely, I think your data is simply high-frequency noise that can be filtered out with a LowpassFilter... Kalman filter needs a theoretical 'model' behind the noise, which can be tough to justify...

Perhaps you can measure multiple periods of a collapsing/oscillating bubble and average it over many periods, that would be ideal. I believe these processes are quite stable over many periods.

POSTED BY: Sander Huisman
Posted 8 years ago

Of course, a low pass filter would be a good thing to try.

I'll try that.

Thanks!

POSTED BY: Thomas Brennan
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract