Calculate the Rayleigh Integral

34 Ansichten (letzte 30 Tage)
Matthias
Matthias am 30 Sep. 2014
Kommentiert: lucile am 18 Okt. 2020
Currently I am trying to calculate the pressure out of a velocity distribution v (complex numbers) on a plate. A good way to do this should be using the Rayleigh Integral Equation. I have already implemented it and it works just fine for points far away from the plate.
However I am having troubles to evaluate the Rayleigh Integral on the plate because it gets singular. This is because the distance r between the surface and the evaluation point where the pressure shoud be calculated gets zero. As r stands in the denominator I can't evaluate it.
For clarification I have amended a picture with the formula and the discretized version of it I am using. The integration takes place over the whole surface S of the plate. It would be great to hear about an approach to evaluate the formula on the plate surface. Maybe there is even already an implementation of this integral equation. I also have added my existing code.
Thanks in advance for any efforts to tackle the problem.
q=Element-surface * velocity of that element
vorRay=((1i*omega*rhoL*Elsize^2)/(2*pi));
pray=zeros(length(Points),1);
[xx, yy]=meshgrid(x,y);
TermA=-1i*(omega/c);
for o=1:length(Points)
distance= sqrt((Points(1,o)-xx).^2 + (Points(2,o)-yy).^2 + Points(3,o)^2)';
pray(o)=vorRay*sum(sum((v./distance).*exp(TermA*distance)));
end
  3 Kommentare
BAIJ SINGH
BAIJ SINGH am 21 Feb. 2020
Hey 1i is used to define imaginary function in matlab. If we define a variable i then how can matlab identify that its imaginary function or a variable that is why 1i is used to define a imaginary function.
lucile
lucile am 18 Okt. 2020
I have the exact same problem, has anyone found a solution ?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jeremy Kemmerer
Jeremy Kemmerer am 1 Okt. 2014
Hi Matthias,
I found a paper which implements the Rayleigh Integral around a baffled panel here: http://www.sciencedirect.com/science/article/pii/0307904X94902275
The approach mentions that “special techniques need to be used” to compute the pressure on the plate itself (look right before section 5). They give a reference here that might be useful.
Also, have you looked at using numerical quadrature for your integration instead of explicit sums? Some MATLAB functions which may be useful to you are:
“quad2d” (see ‘Singular’ parameter) - http://www.mathworks.com/help/matlab/ref/quad2d.html
  1 Kommentar
Matthias
Matthias am 8 Okt. 2014
Hi Jeremy, thank you very much for the helpfull hint.
I used the quad2d-function to implement the numerical quadrature. This method delivers a result. However for every point the following Warning is issued: Warning: Reached the maximum number of function evaluations (2000). The result passes the global error test. So the straightforward implementation doesn't seem to converge properly. I had a look in the Kirkup paper. They suggest to change the variables into polar coordinates to overcome this issue and refer to the following book: Boundary Element Methods in Engineering. Since I don't have access to this book and since I'm not very familiar with numerical quadrature I didn't persuade it further.
However I found two papers which propose an approximation vor the self-radiation impedance (Zii). The singular integral can be replaced with a mathematical term so that p=Zii v ( 1, 2 ).
Furthermore I found a BEM implementation in Matlab which is also suitable to calculate the surface pressure. ( OpenBEM )

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by