where expertise comes together - since 1996 -

The Largest Open Access Portal of Nondestructive Testing (NDT)

Conference Proceedings, Articles, News, Exhibition, Forum, Network and more

where expertise comes together
- since 1996 -

YXLON Copenhagen
YXLON Copenhagen is a highly specialized, award winning Danish company with 60 years of experience in portable X-ray solutions for industrial NDT.
4314 views
Technical Discussions
Martin S.
Martin S.
16:23 Jan-26-2009
Plotting dispersion curves in Matlab with contour()

Hi everybody,

has anybody ever plotted dispersion curves of plate waves using a contour line method? If yes, you might be familar with the issues I'm facing (see below) trying this. I don't succeed in creating a clean plot of the curves. I only get pieces of them and a lot of points that belong there. Let me explain how I do it and what problems might be the reason for the failure.

Dispersion curves of guided modes in plates are made of couples of frequency and propagation velocity (or wavenumber). Those couples are solutions of the characteristic equation(s) (=dispersion equations) of the plate under consideration. Thus, to plot the dispersion curves, one has to obtain the roots of the characteristic equation(s).

One way to do this in Matlab, is the following:
Let z(f,v)=0 be the characteristic equation. Now we would compute the left side of the equation in the whole frequency-velocity domain of interest. For example, we could move through that domain by incrementing the frequency in steps of 1kHz and the velocity in steps of 1m/s. In every step, we would store the value z(f,v) in a matrix Z, whose rows and columns would represent constant values of velocity and frequency, respectively. We would have a two-dimensional function which could be graphically represented by a surface above the f-v-plane. In Matlab we would create such a surface plot by simply applying the function surf() on the matrix Z. Similarly, we would apply the function contour(). This would yield contour lines of the function z(f,v). As we want to know where z(f,v) becomes zero, we would specify the niveau of the contour line as zero. This could be done by the function call:
contour(Z, [0 0]).

Now for the issues I'm seeing (and which might be the reason for the unsatisfying results):
1.) The values in Z are complex, but a contour plot can only be generated for real values. This could be easily solved by working with the magnitudes of Z. In Matlab: abs(Z). However, it should be noted that the zeros would then also be minima of z(f,v). Possibly, the contour method wouldn't work well with that.
2.) By using certain values for the increments of f and v, we generally would not find those couples (f,v) where Z becomes EXACTLY zero. Mostly, we would at best come close to it. So we would need to have an idea of what the right order of magnitude for the increments would have to be, to be close enough to the zero level contour lines. Also, we would have to generate the contour plot not only for exactly zero, but also for values more or less close to zero. But this again would result in possibly including points in the plot which do not belong to dispersion curves. And still there might be points which do belong to a curve, but are not yet plotted.

If you have already tried this and succeeded in it or if you have an idea, please tell me about it. I need help.

 
 Reply 
 
Slawomir Mackiewicz
Slawomir Mackiewicz
15:36 Jan-27-2009
Re: Plotting dispersion curves in Matlab with contour()
In Reply to Martin S. at 16:23 Jan-26-2009 (Opening).

Hi Martin

The clear reason of your failure in solving the plate waves characteristic equation by using Matlab contour routine is taking the absolute value of function Z(f,V).

This type of substitution would be right for exact, analytical methods of solution but not for your approach based on extrapolation of numerical data. If you take Abs(Z) practically all points of Abs(Z(f,v)) matrix have positive values and Matlab contour routine almost never finds zero crossing points (all extrapolated values between positive values are also positive). You seem to have noticed that problem in your issue 2).

If you don’t want to solve the characteristic equation in the full complex domain you can still improve your solution by:
1. Generating the contour plots for value “epsilon” slightly greater than zero.
2. Tightening the frequency and velocity steps of your Z(f,v) matrix.

The optimal values for these parameters you can establish by the trial and error technique.

Best Regards

Slawomir

 
 Reply 
 
Phil
Phil
14:44 Jan-28-2009
Re: Plotting dispersion curves in Matlab with contour()
In Reply to Martin S. at 16:23 Jan-26-2009 (Opening).

Hi Martin

A while ago I stumbled upon this site: http://www.iai.csic.es/users/fseco/pcdisp/pcdisp.htm

Someone else has done something similar to what you are attempting. The code is provided and very usefully annotated.

Note the use of the roots() function (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/roots.html) which may help you out too. I'm quite new to MATLab myself, so I'm afraid I cant be much more help than that!
Good luck!
Phil

 
 Reply 
 

Product Spotlight

NOVO Armor 15 & NOVO Armor 22

The Armor Kit Contains the NOVO Armor, which provides additional mechanical protection to the NOVO 1
...
5WN & NOVO 22WN Detectors, the Armor Stand and a traveling soft cover. - Newest shock absorbent technology case - Water resistant design - Supports wired & wireless communication - Multiple positioning options - Tripod connection using the Built-in 1/4” threads - Simple Detector battery replacement
>

Varex Imaging Large Field of View (FOV) Digital Detector Arrays (DDAs)

A larger FOV DDA can reduce the space and volume of the X-ray inspection system on the factory floor
...
, enable faster scanning times, better throughput and better resolution images at a lower dose. Customers can also save time and money. With these benefits in mind, Varex Imaging has designed a family of large FOV detectors (4343HE, XRD 1611, 4343DX-I, 4343CT) for our industrial imaging customers.
>

MUSE Mobile Ultrasonic Equipment

The MUSE, a portable ultrasonic imaging system, was developed for in-field inspections of light-weig
...
ht structures. The MUSE consists of a motor-driven manipulator, a water circulation system for the acoustic coupling and a portable ultrasonic flaw detector (USPC 3010). The MUSE provides images of internal defects (A-, B-,C- and D-scan).
>

IRIS 9000Plus - Introducing the next generation of heat exchanger inspection.

Representing the seventh generation of the IRIS system, the IRIS 9000 Plus has nearly 200 years of c
...
ombined field inspection experience incorporated in its design. This experience combined with a strong commitment to quality and a history of innovation has made Iris Inspection Services® the undisputed leader in IRIS technology.
>

Share...
We use technical and analytics cookies to ensure that we will give you the best experience of our website - More Info
Accept
top
this is debug window