Calculate the Rayleigh Integral

34 visualizzazioni (ultimi 30 giorni)
Matthias
Matthias il 30 Set 2014
Commentato: lucile il 18 Ott 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 Commenti
BAIJ SINGH
BAIJ SINGH il 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 il 18 Ott 2020
I have the exact same problem, has anyone found a solution ?

Accedi per commentare.

Risposta accettata

Jeremy Kemmerer
Jeremy Kemmerer il 1 Ott 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 Commento
Matthias
Matthias il 8 Ott 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 )

Accedi per commentare.

Più risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by