- Details
- Parent Category: Programming Assignments' Solutions

# We Helped With This MATLAB Programming Assignment: Have A Similar One?

Category | Programming |
---|---|

Subject | MATLAB |

Difficulty | Undergraduate |

Status | Solved |

More Info | Differential Equations Assignment Help |

## Short Assignment Requirements

## Assignment Description

ME 309 – Numerical Analysis of Engineering Systems

Course project: dispersion solver

Christoph Schaal

Department of Mechanical Engineering California State University, Northridge

### Motivation

^{I }Application of ultrasonic nondestructive testing (NDT)

^{I }Locate disbonds and delaminations in
structural components using guided waves

### Motivation

Concept: NDT of plate structures using guided ultrasonic waves

Tasks

^{I }Understand
wave propagation in the monitored structure

^{I }Analyze
scattering phenomena for various defects

^{I }Implement reliable damage detection
(signal processing)

Tracking of wave in signal

^{I }Propagation velocity *c*_{g }of wave

^{I }Distance *d *between actuator and
sensor

^{I }Time of arrival *t*_{A }= *d/c*_{g}

Anti-symmetric wave motion of A_{0 }wave at *f *=
200kHz

Symmetric wave motion of S_{0 }wave at *f *=
200kHz

### Problem statement

The characteristic equations for Lamb waves for antisymmetric and symmetric wave motion in isotropic plates can be expressed in the form

tan( | (1) |

2 2 tan( | (2) |

2 ^{2 2 2}

with

*α *= ^{q}*k*_{1}^{2 }*− k*^{2 }*, β *= ^{q}*k*2^{2 }*− k*^{2 }*, k _{j }*=

*c*

^{ω}*j ,*for

*j*= 1

*,*2

*,*(3)

where *H *is half the plate thickness, *ω *= 2*πf *is the angular frequency, *k *is the wavenumber and *c*_{1 }and *c*_{2 }are the P- and S-wave speeds, respectively.

Goal: Create a
user-friendly program to find the propagation velocities of the fundamental
waves A_{0 }and S_{0 }within the frequency range of 1kHz to
500kHz for any material and plate thickness. Write a quick-start guide to
explain the program to a lay user.

### Problem statement

Work flow

^{I }The user
enters (or selects) geometry and material properties

^{I }The
program calculates and displays *c*_{1 }and *c*_{2 }(see
Eqs. (1) and (2) in 2015 jsv rayl paper)

^{I }The program calculates the “first” real
root *k *of each dispersion equation for a fine grid of frequencies and
outputs the results in a plot

^{I }The
program calculates and outputs the corresponding group velocities *c*_{g}

(see Eq. (13) in 2015 spie dispersion paper) in another plot

^{I }In
addition, the user should also be able to select a frequency for which the
programs outputs the values for the wavenumbers and group velocities

^{I }Submit via Canvas

### Solving dispersion equations

Suggestions

^{I }Use the geometry and material properties of the reference solution

^{I }Plot
the residuum of the two dispersion equations for varying values of *k *at
one frequency, e.g. *f *= 100kHz.

^{I }Implement
an appropriate root-finding algorithm to find the (largest) real value of *k *that
yields zero residuum for a given *f*

^{I }Compare your result with the reference solution

^{I }Repeat
this process for other frequencies in the range of interest ^{I }Test your program for other geometry
and/or material properties (one additional set of parameters is enough)

^{I }Note: the residuum of dispersion equations
can be complex, and the equations also have an infinite number of complex roots
(these are not considered in this project)

### User interface

^{I }Create a GUI (graphical user interface) for the program

^{I }Explore Matlab GUIDE (similar to UserForms in VBA)

^{I }Design GUI where user can input parameters

^{I }User can select desired plot: either *f *(*k*)
or *c*_{g}(*f *) or frequency to output the values of *k *and *c*_{g }at this frequency

^{I }Dispersion *solver *is executed upon request

^{I }Use proper labels

^{I }Use proper units

### Quick-start guide

^{I }max. 2-page document

^{I }Use screenshots of your program

^{I }Write for a non-technical audience

^{I }Make sure everything is legible, and figures are of high quality

^{I }Check spelling and grammar

^{I }Don’t
forget ...

^{I }Submit as PDF via Canvas

### Grade breakdown

Due date: at the beginning of the last class

| Points |

Functionality | 50 |

Code quality | 20 |

Quick-start guide | 30 |

Total | 100 |