SlideShare a Scribd company logo
1 of 43
Download to read offline
Delft University of Technology
Faculty Electrical Engineering, Mathematics and Computer Science
Delft Faculty of Applied Sciences
Modelling the Induced Oscillations of Elements on a
Silicon Transducer
Report for the
Department of Applied Mathematics
and
Department of Imaging Physics
as part of the degree of
BACHELOR OF SCIENCE
in
APPLIED MATHEMATICS and APPLIED PHYSICS
by
TOM SCHOEHUIJS
4205650
Delft, The Netherlands
June 2016
Copyright 2016 by Tom Schoehuijs. All rights reserved.
BSc report APPLIED MATHEMATICS
”Modelling the Induced Oscillations of Elements on a Silicon Transducer.”
TOM SCHOEHUIJS
Delft University of Technology
Thesis Advisors
Dr.ir. M.B. van Gijzen
Dr.ir. M.D. Verweij
Other members of the graduation committee
Prof. dr. ir. A. W. Heemink
Dr. N. Bhattacharya
Dr. J. G. Spandaw
June 2016, Delft
Tom Schoehuijs June 3, 2016
1 Abstract
In this report, we will try to model a silicon chip with elements, as used in current experiments, with the
aim to find a suitable and fast model for the transducer used. The specific question we will try to address is:
How well can we model the effects of induced oscillation on other elements on a silicon chip?
Induced oscillations can create problems when miniaturizing heart imaging technology for example, as the
incoming signal cannot be properly converted to an image.
The biharmonic equation dictates the displacement of the elements with respect to a force acting on the
chip. Hence, using assumptions and numerical methods, the biharmonic equation can only be split into two
coupled equations. We will look at two different boundary conditions for both of these equations; either the
glue used to attach the transducer to the substrate is simply supporting the transducer, or clamping the
transducer in place.
We will model the biharmonic equation using Peisker’s method, as well as the simply supported boundary
problem. Both of these will require us to reformulate the biharmonic equation in the frequency domain, and
linearize the impedance for a range between 1MHz and 9.5MHz. The results from this will then be compared
to the Newmark-Beta method solution, by looking at the stability, efficiency, and accuracy. From this we
can also answer the second question we will try to address: How well can Peisker’s method be used
to solve a fourth order differential equation? We expect that the solution to the simply supported
boundary conditions look similar to the Newmark-Beta method, as they both have the same boundary
conditions. Furthermore, the solution from the Peisker method should not look very different either, as they
are all describing the same biharmonic equation.
We found that both the Peisker method and the solution to the simply supported boundary problem look
very similar, and both look like the Newmark-Beta method solution. Both methods and the non-iterative
solution from the simply supported boundary problem show induced oscillations on the transducer.
From this we can conclude that the simply supported boundary problem is preferred over the Newmark-Beta
method due to its computation time and preferred over the Peisker method due to its computation time
and smaller truncation error. The simply supported boundary problem can be more efficiently implemented
than the Peisker model, as there is no need for iterations. Hence, it can be relatively quickly simulated.
From this report we have seen that we can effectively model the effects of induced oscillation on other
elements on a silicon chip, through the Peisker method, the Newmark-Beta method and the simply supported
boundary problem. To answer our second question, Peisker’s method is an effective and accurate
method to model the biharmonic equation, a fourth order differential equation. However, the
simply supported boundary problem is preferred.
1
Tom Schoehuijs June 3, 2016
Contents
1 Abstract 1
2 Introduction 3
3 Mathematical Model 5
3.1 The Biharmonic Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Discretization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Frequency Domain Formulation 7
5 Peisker’s Method Implementation 9
6 Simply Supported Boundaries Solution 11
7 Newmark-Beta Method 12
8 Results 14
8.1 Newmark-Beta Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8.2 The Biharmonic Equation without Impedance . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2.1 Simply Supported Boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2.2 Peisker Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8.3 The Biharmonic Equation with Impedance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.3.1 Simply Supported Boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.3.2 Peisker’s Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9 Conclusion 23
10 References 24
11 Appendix 25
11.1 Matlab Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.1.1 general.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.1.2 simply.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
11.1.3 peisker.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11.1.4 newmark.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
11.1.5 diagonal.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
11.1.6 Z0general.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
11.1.7 Z0simply.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
11.1.8 Z0peisker.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
11.1.9 Z0newmark.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
11.1.10Z0diagonal.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2
Tom Schoehuijs June 3, 2016
2 Introduction
Ultrasound technology has been increasing at an exponential rate ever since the invention of the first medical
ultrasound in 1963 [10]. Since then, devices used in imaging operations such as heart imaging and sonograms
have been becoming increasingly small and more powerful.
Current heart imaging technology is done using a large machine that has transducers in the handle. When
used for heart imaging, the device can create images of the heart through gaps in the ribs. However, this
can only be done from the front as lungs block the view from the rear. By making this technology ingestible,
we can see not only the heart from inside the body but other organs as well.
When miniaturizing the transducers to a chip, many problems can arise. When testing these chips, measure-
ments are done in water which acts much like human tissue, due to the tissue’s high water concentration.
Each transducer is placed on a silicon chip, meaning that the transducers themselves are much smaller than
they previously were. The transducers are placed half a wavelength apart, which means that on the 5 by
5 mm chip there are 33 by 33 elements, or 1, 089 in total. By mounting these transducers on a silicon chip
instead of the previously used substrate, the effect of induced oscillations is much larger. This can be at-
tributed to the silicon substrate being more elastic than the previously used, more rigid substrate. Therefore,
when a harmonic disturbance is acted on a transducer, it is expected that the other neighboring elements
will start to move as well. In this report, we will try to model a silicon chip with elements, as used in current
experiments, with the aim to find a suitable and fast model for the transducer used. The specific question we
will try to address is: How well can we model the effects of induced oscillation on other elements
on a silicon chip?
Figure 1: A silicon chip with elements currently being used for experiments
We will address this question by first describing in Section 3 movement on a silicon chip, after which we will
use assumptions and numerical methods to make the equation discrete. The biharmonic equation, which
governs the disturbances of the transducers, can only be split into two coupled Laplace equations if we have
the boundary conditions for both of these equations. In this report we will address two separate cases; the
glue used to attach the transducer to the substrate is either simply supporting the chip, or clamping the
transducer in place.
In the case of simply supported boundary conditions, we can directly solve the discretized biharmonic
equation as shown in Section 6. The biharmonic equation coupled with these different boundary conditions
represent what would be the stable solution to the equation if the edges were simply supported by the glue.
In the other case of the clamped boundary conditions, we are missing the correct boundary conditions to
split the problem into two coupled equations. However, using Peisker’s Method [6] in Section 4 and 5, we can
model the biharmonic equation. Peisker’s Method is an iterative method in the frequency domain to find
the stable solution to the biharmonic equation. We can then compare our two methods, namely Peisker’s
Method and the simply supported non-iterative method, to the Newmark-Beta Method solution, a time step
method that can not only show the solution to the biharmonic equation but also show the solution for a
3
Tom Schoehuijs June 3, 2016
short time after we turn on the oscillating disturbance. We expect to see that the Newmark-Beta method
converges to the Peisker Method and the simply supported boundary solution, as both methods should result
in the same solution for a long time t.
Discretizing with step size h and central differences gives order O(h2
), meaning that the simply supported
boundary problem has a O(h2
) truncation error. The Newmark-Beta method is second order in time[11],
and the truncation error of Peisker’s method is O(h) as we approximate the first order derivative of the
displacement.
Peisker’s method has been developed to approximate the solution to a coupled equation, while missing the
boundary conditions for one of the coupled equations.
The Newmark-Beta Method was developed for the numerical evaluation of dynamic responses of structures
and solids, to model dynamic systems. This method, along side our chosen values for constants, is stable for
∆t ≤ 2
f , with f being the frequency.
The simply supported boundary problem can be solved without iterations, which will undoubtedly be the
quickest to compute as we do not need to do multiple computations. However, as this method relies on
simplified boundary conditions, it can only be used to test the other two methods. We hope that the
Newmark-Beta method, which does not start off in the stable harmonic situation, converges to the clamped
boundary problem solution.
A comparison of the three will be made in Section 8. This brings us to our second question which will be
addressed in this report; How well can Peisker’s Method be used to solve a fourth order differential
equation?
This will be addressed by comparing our two models across a number of properties in Section 8; namely
stability, efficiency, and accuracy.
4
Tom Schoehuijs June 3, 2016
3 Mathematical Model
3.1 The Biharmonic Equation
An important aspect of the problems we address is how they are stipulated. In 1959, Professors Timoshenko
and Woinoksy-Krieger published a book on the equations describing bending motion in plates, shells, and
various other shapes. In it, the displacement is shown to have the following relationship on a thin elastic
plate, which we take to be area Ω as [9]
D∆2
˜u = ˜f, (1)
where D is the flexural rigidity [Nm], ˜u the displacement [m], ˜f the force acting on the plate Nm−2
and
∆ the ordinary two dimensional Laplacian. The flexural rigidity is given by [3] as
D =
Ed3
12(1 − ν2)
, (2)
with E the Young’s Modulus, ν the Poisson Ratio, and d the thickness of the plate.
In this paper we will split the force on the chip up into three components, taking care of the direction they
act upon the chip, as
˜f = ˜fext − ˜fI − ˜fz. (3)
Where we refer to the forces originating from external forces, inertia and impedance by ˜fext, ˜fI, and ˜fz
respectively. The gravitational force ˜fg is neglected here as it has a negligible contribution. The force
resulting from inertia is m¨˜u and that from impedance is Z ˙˜u, with Z a linearization of the impedance. We
will later use this property, and assume then that Z = Xω + Y .
We also need to include a boundary condition. Here we can easily address two different boundary conditions.
For the silicon chip in question, we require the plate to have supported edges. This assumption means that
the boundary conditions are[4]
˜u|δΩ = ∆˜u|δΩ = 0. (4)
This is an important assumption and will later be used in both methods.
If we assume that the glue used with on silicon chip, which is glued to a thick plate, is not elastic but
inelastic, then we can approximate the edge as being clamped. This results in a slightly different set of
boundary conditions[4], namely
˜u|δΩ =
∂˜u
∂ˆn δΩ
= 0, (5)
using ˆn as the unit vector pointing outward. Finally, we can split the biharmonic equation into two coupled
equations. For the simply supported edge we see that we can rewrite (1) as
∆φ = ˜f in Ω, φ|δΩ = 0
∆˜u = φ in Ω, ˜u|δΩ = 0.
(6)
using Ω and δΩ to refer to the area and the boundary of that area, on which is currently being worked.
Using the same definitions we can rewrite the clamped edge problem as
∆φ = ˜f in Ω, φ|δΩ = λ
∆˜u = φ in Ω, ˜u|δΩ = 0,
(7)
with λ as an unknown value, which follows from the boundary condition ∂ ˜u
∂ˆn .
5
Tom Schoehuijs June 3, 2016
3.2 Discretization
To separate our actual displacement ˜u from the discretized solution to the biharmonic equation, we will
introduce a new variable u. This will represent the solution to the discretized biharmonic equation. In this
section, we will additionally introduce the notation ui,j for the displacement of the point in column i and
row j on the chip. The same notion is used when referring to an element in column i and row j in matrix
A, namely Ai,j. To simplify matters, we will discretize the chip into N + 2 by N + 2 points, with distance
h between these points. This means that there are N2
points on the inside of Ω.
Before we start using different schemes to approximate ˜u and ˜f for different values of the frequency, we must
discretize ˜u and ˜f, and note this u and f respectively. Between two instances of u and f we assume there
to be a discrete time step of ∆t. We will use the shorthand ui,j(t) and fi,j(t) as being the displacement or
force acting on the plate at position (i, j) at time t. To do this, we need approximate ∆ with a matrix A.
By using a central difference scheme[2] we see the following
∂ui,j
∂x
=
ui+ 1
2 ,j − ui− 1
2 ,j
h
+ O(h2
), (8)
∂ui,j
∂y
=
ui,j+ 1
2
− ui,j− 1
2
h
+ O(h2
), (9)
∂2
ui,j
∂x2
=
ui+1,j − 2ui,j + ui−1,j
h2
+ O(h2
), (10)
∂2
ui,j
∂y2
=
ui,j+1 − 2ui,j + ui,j−1
h2
+ O(h2
). (11)
We know that
∆ =
∂2
∂x2
+
∂2
∂y2
, (12)
and so if we use central difference we see that we can approximate ∆ by
∆ ≈
ui+1,j + ui,j+1 − 4ui,j + ui−1,j + ui,j−1
h2
+ O(h2
) = A. (13)
We see now that it is possible to approximate (6) as
Aφ = f in Ω, φ|δΩ = 0
A˜u = φ in Ω, ˜u|δΩ = 0,
(14)
and we can approximate (7) as
Aφ = f in Ω, φ|δΩ = λ
A˜u = φ in Ω, ˜u|δΩ = 0.
(15)
6
Tom Schoehuijs June 3, 2016
4 Frequency Domain Formulation
For both the Peisker Method and the simply supported boundaries problem it is very useful to make the
change from the time domain to the frequency domain, as this allows us to easily describe the harmonic
disturbance. Additionally, (7) will no longer have any time dependency, which simplifies matters. If we write
F {u}, the harmonic Fourier Transform of u, as ˆu, then we see that rewriting gives the following
F {D∆u} = D∆F {u} = D∆ˆu (16)
F {fI} = F {m¨u} = F {ρd¨u} = −w2
ρdˆu (17)
F {fz} = F {Z ˙u} = Ziweiwt
ˆu = (Xw + Y ) iwˆu (18)
In the transformation of the impedance Z, we use a linearization of the radiation impedance for low frequen-
cies, up to 9.5 MHz. Keeping in mind that the impedance matrix in question, Z, is not uniform and is zero
for all points where there is no transducer present, we can find the nonzero values of Z, which depend on
the value of f as shown in the following figure.
(a) Linearization of the real part of the impedance (b) Linearization of the imaginary part of the impedance
Figure 2: Linearization of the Radiation Impedance[7]
The impedance Z represents the acoustic impedance, also known as the pressure on the elements divided
by the speed of the wave traveling through the transducer. From this linearization we see that the nonzero
values of matrix X are −8.064 − 7.683i MRayl and of Y are 22.39 + 72.43i MRayl Hz−1
, if the frequency is
between 0.5 and 9.5 MHz.
In order to find the Fourier Transform of (7) we need to make additional assumptions for fext. Namely, we
assume that
fext,(i,j)(t) = Re Deiwt
h2
δ(y − (i, j)) , (19)
with δ(x) being the Dirac-Delta function, which is zero everywhere except when (i, j) = y, as it then has an
area under the function of 1. This means that for any given h, h2
δ(x) = 1. For convenience we denote this
delta function just as δ. If we rewrite (7) as one equation and take the Fourier Transform of it, we see that
it can be written as
A2
ˆu = h2
δ + w2 ρd
D
ˆu − w
(Xw + Y ) i
D
ˆu, (20)
7
Tom Schoehuijs June 3, 2016
A2
ˆu = h2
δ + w2 ρd
D
ˆu − w2 Xi
D
ˆu − w
Y i
D
ˆu, (21)
A2
+ w
Y i
D
− w2 ρd
D
I + w2 Xi
D
ˆu = h2
δ, (22)
A2
+ w
Y i
D
− w2 ρd
D
I −
Xi
D
ˆu = h2
δ. (23)
We can rewrite (23) into two parts. Namely,
A2
+ w
Y i
D
+ w2 Xi
D
−
ρd
D
I ˆu = A A +
wi
D
A−1
Y + w2
A−1
Q ˆu = h2
δ, (24)
with
Q =
Xi
D
−
ρd
D
I . (25)
Splitting this gives us
Aφ = h2
δ in Ω, φ|δΩ = λ
A + wi
D A−1
Y + w2
A−1
Q ˆu = φ in Ω, ˆu|δΩ = 0,
(26)
which is a discrete version of (15). From this we can find an approximation for ˆu. We can then retrieve the
discretization approximation displacement of the plate u by
u = Re eiωt
ˆu . (27)
If we assume the impedance to be Z = 0 uniformly, then we can split (23) into the simpler form
A − w
ρd
D
I A + w
ρd
D
I ˆu = h2
δ. (28)
We will later use this when considering the different techniques to approximate the biharmonic equation.
8
Tom Schoehuijs June 3, 2016
5 Peisker’s Method Implementation
Peisker’s method [6] can be used to iteratively approximate a coupled equation [1] with respect to finite
differences. Maintaining the same definitions for ˆu and f and again using Ω and δΩ to refer to the area and
the boundary of that area, on which is currently being worked, the scheme is
∆φ(k)
= g in Ω, φ(k)
δΩ
= λ(k)
∆ˆu(k)
= φ(k)
in Ω, ˆu(k)
δΩ
= 0
λ(k+1)
= λ(k+1)
− ∂ ˆu(k)
∂n ,
(29)
with g a function for which ∆2
ˆu = g.
Iterating over k decreases the value of ∂ ˆu(k)
∂n → 0. We can find ∂ ˆu(k)
∂n by using finite difference. For example,
∂ ˆui,j
(k)
∂n at the top row of the transducer (i = 1), excluding corner points, is given by
∂ˆu
(k)
1,j
∂n
≈
ˆu
(k)
0,j − ˆu
(k)
1,j
h
, (30)
using one-sided differences. We know that ˆu
(k)
0,j = 0 as ˆu(k)
δΩ
= 0, meaning that
∂ˆu
(k)
1,j
∂n
= −
ˆu
(k)
1,j
h
. (31)
This can be used to find
∂ ˆu
(k)
i,j
∂n on the edges excluding the corner points. To find
∂ ˆu
(k)
i,j
∂n on the corner points,
we need to use the property that the boundaries are uniform. Using the top left corner point as example
((i, j) = (1, 1)), we see
∂ˆu
(k)
1,1
∂n
≈
ˆu
(k)
0,1 − ˆu
(k)
1,1
h
≈
ˆu
(k)
1,0 − ˆu
(k)
1,1
h
= −
ˆu
(k)
1,1
h
. (32)
We have shown in (26) that we can write our clamped boundary problem as is required. The entire scheme
can now be written as
Aφ = h2
δ in Ω, φ|δΩ = λ
A + wi
D A−1
Y + w2
A−1
Q ˆu = φ in Ω, ˆu|δΩ = 0,
λ(k+1)
= λ(k+1)
− ∂ ˆu(k)
∂n ,
(33)
with the correct corresponding boundary conditions. To approximate the original problem in (15) we can
use the following iteration steps
φ(k)
= A−1
(h2
δ − 1
h2 λ(k)
),
ˆu(k)
= A + wi
D A−1
Y + w2
A−1
Q
−1
φ(k)
,
λ(k+1)
= λ(k+1)
− ∂ ˆu(k)
∂n .
(34)
By subtracting 1
h2 λ(k)
from the Dirac Delta function δ, we see that lim
k→∞
∆ˆu(k)
δΩ
→ 0 as is required by our
original boundary conditions in (4).
We see here why we need to iterate; the boundary condition for φ(k)
δΩ
= ∂2
ˆuk
∂ˆn2
δΩ
is not given as it is if we
had used the boundary conditions in (4), meaning that we must iterate to find φ(k)
δΩ
. We expect φ(k)
δΩ
to go to 0, as then λ(k+1)
− λ(k)
→ 0 and we can stop iterating.
We can also apply the same technique to (28) where we set the impedance Z = 0. Taking the same steps
we see the following iteration steps
9
Tom Schoehuijs June 3, 2016
φ(k)
= A − w ρd
D I
−1
(h2
δ − 1
h2 λ(k)
),
ˆu(k)
= A + w ρd
D I
−1
φ(k)
,
λ(k+1)
= λ(k+1)
− ∂ ˆu(k)
∂n .
(35)
Iterations such as in Peisker’s Method can result in an additional truncation error, meaning that the er-
ror of Peisker’s method results does not only stem from the discretization error O(h2
). Peisker’s Method
approximates ∂u
∂n and thus the truncation error is O(h)[8].
10
Tom Schoehuijs June 3, 2016
6 Simply Supported Boundaries Solution
Using the boundary conditions in (4) we can solve the biharmonic equation without iterations in (1). Using
the same notation as in Section 5, we can reformulate the given biharmonic equation into two Laplace
equations as shown in Section 3.
∆φ(k)
= f in Ω, φ(k)
δΩ
= 0
∆ˆu(k)
= φ(k)
in Ω, ˆu(k)
δΩ
= 0.
(36)
We see here that this set of coupled equations has well defined boundary conditions, meaning that we can
solve for ˆu here. Using the formulation in (24) we can solve for ˆu without iterating. Namely,
A2
+ w
Y i
D
+ w2
Q ˆu = h2
δ, (37)
which means that
ˆu = h2
A2
+ w
Y i
D
+ w2
Q
−1
δ. (38)
This in turn results in
u = Re eiωt
ˆu = h2
Re eiωt
A2
+ w
Y i
D
+ w2
Q
−1
δ . (39)
We can also find the solution to the simply supported boundaries problem when Z = 0. Namely, using the
formulation in (28) and taking the same steps as above we see
u = Re eiωt
ˆu = Re

h2
eiωt
A + w
ρd
D
I
−1
A − w
ρd
D
I
−1
δ

 . (40)
11
Tom Schoehuijs June 3, 2016
7 Newmark-Beta Method
The Newmark-Beta Method as described in [5] provides the following integration scheme for second order
differential equations
ui+1 = ui + ˙ui∆t + ∆t2
4 (¨ui+1 + ¨ui) ,
˙ui+1 = ˙ui + 1−2β
2 ∆t2 ¨ui + β∆t2 ¨ui+1,
(41)
where ui denotes the value of u at time t = i.
In order for the system of equations in (41) to be explicit, we require β = 0. This is then also known as the
Leapfrog method, and is a special form of the Newmark-Beta Method. The Leapfrog Method is
ui+1 = ui + ˙ui∆t + 1
2
¨ui∆t2
,
˙ui+1 = ˙ui + 1
2 (¨ui + ¨ui+1) ∆t.
(42)
We see that if we rewrite (15) we can find an expression for ¨ui as
¨ui = −
D
ρd
A2
ui +
1
ρd
fi −
1
ρd
Z ˙ui. (43)
We can use this to find an expression for ui+1 as
ui+1 = ui + ˙ui∆t +
1
2
−
D
ρd
A2
ui +
1
ρd
fi −
1
ρd
Z ˙ui ∆t2
, (44)
ui+1 = I −
∆t2
D
2ρd
A2
ui + I∆t −
∆t2
2ρd
Z ˙ui +
∆t2
2ρd
fi. (45)
Additionally, we can use (42) in combination with (43) to find an expression for ˙ui+1
˙ui+1 = ˙ui + 1
2 − D
ρd A2
ui + 1
ρd fi − 1
ρd Z ˙ui + − D
ρd A2
ui+1 + 1
ρd fi+1 − 1
ρd Z ˙ui+1 ∆t,
˙ui+1 = I − ∆t
2ρd Z ˙ui + −D∆t
2ρd A2
ui + ∆t
2ρd fi + −D∆t
2ρd A2
ui+1 + ∆t
2ρd fi+1 − ∆t
2ρd Z ˙ui+1 ,
I + ∆t
2ρd Z ˙ui+1 = I − ∆t
2ρd Z ˙ui + ∆t
2ρd −DA2
ui − DA2
ui+1 + fi + fi+1 ,
˙ui+1 = I − ∆t
2ρd Z ˙ui + ∆t
2ρd −DA2
ui − DA2
ui+1 + fi + fi+1 / I + ∆t
2ρd Z ,
˙ui+1 = (2ρdI − ∆tZ) ˙ui + ∆t −DA2
ui − DA2
ui+1 + fi + fi+1 / (2ρdI + ∆tZ) .
(46)
Hence, reusing the linearization of the impedance Z = Xw + Y , we see
ui+1 = I − ∆t2
D
2ρd A2
ui + I∆t − ∆t2
2ρd (Xw + Y ) ˙ui + ∆t2
2ρd fi,
˙ui+1 = (2ρdI − ∆t (Xw + Y )) ˙ui + ∆t −DA2
ui − DA2
ui+1 + fi + fi+1 / (2ρdI + ∆t (Xw + Y )) .
(47)
For Z = 0 we can simply set X = 0 and Y = 0 to see how the Newmark-Beta method would look if our
impedance Z = 0. We see
ui+1 = I − ∆t2
D
2ρd A2
ui + ∆t ˙ui + ∆t2
2ρd fi,
˙ui+1 = ˙ui + ∆t
2ρd −DA2
ui − DA2
ui+1 + fi + fi+1 .
(48)
The initial conditions are also an important aspect of this method, as starting with very different initial
conditions can lead to different solutions, for short times. In this method we will use the stable situation
provided by the solution to the simply supported boundary problem. From this we can then see if the
method is indeed stable, or if the provided initial condition is incorrect. From (39) we see that
u0 = Re eiwt
ˆu t=0
= Re (ˆu)|t=0 , (49)
12
Tom Schoehuijs June 3, 2016
as well as
˙u0 =
∂
∂t
Re eiwt
ˆu = Re iweiwt
ˆu + eiwt ∂
∂t
ˆu . (50)
We know that ∂
∂t ˆu = 0, as we assume that the frequency domain formulation does not change as time passes.
This means
˙u0 = Re ((iw cos(wt) − w sin(wt)) ˆu) = −w cos(wt)Imag (ˆu) − w sin(wt)Re (ˆu) . (51)
Substituting t = 0 gives us
u0 = Re (ˆu)|t=0 ,
˙u0 = −w Imag (ˆu)|t=0 .
(52)
The same holds for the Newmark-Beta method without impedance.
13
Tom Schoehuijs June 3, 2016
8 Results
For the results below, a single point has been oscillated up and down at a frequency of 6 MHz at the center, on
a chip with 33 elements and N = 161 discretization points on the 5 by 5 mm chip, meaning h = 0.030864mm.
N has been chosen as a rule of thumb for discretization is to take 10 points per wavelength. Additionally,
a larger value for N would significantly increase the computation time, and from the chosen value of N we
can effectively see the results of the different methods. We know that on the silicon chip there are 33 by 33
elements, meaning that for any 5 by 5 grid one chooses in Z, there is only 1 non-zero value.
Having h → 0, or N → ∞, results in there being more discretization points between the elements on the
transducer. Although this does not result in the physical difference between elements increasing, the effect
of induced oscillations decreases due to the number of discretization points increasing. This is not realistic,
as we have chosen to model the elements as single points, rather than a square consisting of multiple points.
8.1 Newmark-Beta Method
The Newmark-Beta method was developed for the numerical evaluation of dynamic responses of structures
and solids, to model dynamic systems. By using β = 1
4 the Newmark-Beta method simplifies to the Leapfrog
method, which is stable for ∆t ≤ 2
ω = 1
πf . A smaller ∆t would cause the computer’s RAM to be full
unnecessarily. Using the Newmark-Beta method we saw that we could use a time integration scheme to
solve the biharmonic equation. We will use the Newmark-Beta method to test the solution to the simply
supported boundaries problem graphically. If we look at the displacement levels across a line going though
the middle of the chip, using the Newmark-Beta method, we see a very nice displacement wave. Using a line
from one corner to the opposite corner, we see the following.
14
Tom Schoehuijs June 3, 2016
(a) Diagonal profile of the Newmark-Beta method
solution without impedance
t = 0
(b) Diagonal profile of the Newmark-Beta method
solution without impedance
t = π
(c) Diagonal profile of the Newmark-Beta method
solution with impedance
t = 0
(d) Diagonal profile of the Newmark-Beta method
solution with impedance
t = π
Figure 3: Newmark-Beta method diagonal solution to the biharmonic equation with 1 oscillating
disturbance.
f = 6MHz
We see in Figure 3 that the central peak does affect the other elements; we see a result akin to throwing a
stone into a pool of still standing water, although limited to a small region. We also nicely see that adding
impedance causes the disturbances to dampen slightly, compared to the diagonal profile of the Newmark-Beta
method solution without impedance.
We already know that discretizing the biharmonic function in Section 3 results in an error of O(h2
), meaning
that each method has a truncation error of at least O(h2
). The specific instance of the Newmark-Beta method
used, the Leapfrog method, is also second order[11] in time. Combining this with the local truncation error
of the discretization of ∆2
, the biharmonic function, we see that the total error is O(h2
+ ∆t2
) for the
Newmark-Beta method.
It is important to compare the results in Sections 8.2 and 8.3 to the Newmark-Beta method in a stable
situation. To test this we can allow the Newmark-Beta method to oscillate 10 times before making images,
and compare this to the Newmark-Beta without initial oscillations.
15
Tom Schoehuijs June 3, 2016
(a) Newmark-Beta method solution without impedance
and without prior iterations
t = π
(b) Newmark-Beta method solution with impedance and
without prior iterations
t = π
(c) Newmark-Beta method solution without impedance
and with 10 prior iterations
t = 21π
(d) Newmark-Beta method solution with impedance and
with 10 prior iterations
t = 21π
Figure 4: Comparing different scenarios for the Newmark-Beta method solutions.
f = 6MHz
We see in Figure 4 that allowing extra oscillations does not disturb the displacement, and we can therefore
compare the solution to the simply supported boundary problem to the Newmark-Beta method, independent
of how many oscillations the Newmark-Beta method has already made. It is also worth noting that we can
clearly see that the images above adhere to the original Dirichlet boundary conditions, as well as that both
these images have the same height of disturbance, in the order of 10−18
m.
16
Tom Schoehuijs June 3, 2016
8.2 The Biharmonic Equation without Impedance
8.2.1 Simply Supported Boundary
We found that when the boundary conditions in (4) are used, we can find u without having to iterate.
Namely:
u = Re

h2
eiωt
A + w
ρd
D
I
−1
A − w
ρd
D
I
−1
δ

 . (53)
This results in the following images in Figure 5, which can be compared to the Newmark-Beta method
solutions beneath them at the same time in the oscillation.
(a) Simply supported boundary problem solution
t = 0
(b) Simply supported boundary problem solution
t = π
(c) Newmark-Beta method solution
t = 0
(d) Newmark-Beta method solution
t = π
Figure 5: Comparing the simply supported edge solution to the Newmark-Beta method solution, with 1
oscillating disturbance and no impedance.
f = 6MHz
The simply supported boundary problem can be solved without iterations, and is thus the easiest to compute.
The results shown in Figure 5 show the silicon chip already in a stable harmonic situation. We see that using
17
Tom Schoehuijs June 3, 2016
the solution to the simply supported boundary problem as an initial condition for the Newmark-Beta method
leads to a stable situation, as the solution to the simply supported boundary problem has a similar shape
to the Newmark-Beta method solution. It appears then that the solution to the simply supported boundary
problem does produce induced oscillations, in a similar shape and pattern to the the Newmark-Beta method
and without any discrepancy in the scale of the oscillating disturbance and induced oscillations.
8.2.2 Peisker Method
Peisker’s method has been developed to approximate the solution to a coupled equation, while missing the
boundary conditions for one of the coupled equations as is the case here. It requires a longer computation
time, as more computations have to be made. Using the boundary conditions in (5) we found that we could
iteratively find ˆu, and from this u, as
φ(k)
= A − w ρd
D I
−1
(h2
δ − 1
h2 λ(k)
),
ˆu(k)
= A + w ρd
D I
−1
φ(k)
,
λ(k+1)
= λ(k+1)
− ∂ ˆu(k)
∂n .
(54)
The results of this can be seen below in Figure 6.
(a) Peisker method solution
t = 0
(b) Peisker method solution
t = π
Figure 6: The Peisker method solution with 1 oscillating disturbance and impedance.
f = 6MHz
As shown in Section 5 the local truncation error of Peisker’s method is O(h), which is larger to that of
the solution to the simply supported boundary problem. Furthermore, both these methods seem to be very
similar; they both result in very similar images without any scale difference. It appears then that iterating
produces images very similar to the solution to the simply supported boundary problem, although with a
larger truncation error. The convergence of the Peisker method is shown below in 7.
18
Tom Schoehuijs June 3, 2016
Figure 7: Peisker method without impedance convergence
From this we see that this method converges very slowly. Peisker’s method was stopped after 100 iterations,
as ∂u
∂n was changing very slowly.
8.3 The Biharmonic Equation with Impedance
8.3.1 Simply Supported Boundary
Using the equation for u we found in (39) we saw that we can write
u = Re eiωt
ˆu = h2
Re eiωt
A2
+ w
Y i
D
+ w2
Q
−1
δ . (55)
By using the matrices described in Section 4, we can effectively find and plot u, resulting in the following
images.
19
Tom Schoehuijs June 3, 2016
(a) Simply supported boundary problem solution
t = 0
(b) Simply supported boundary problem solution
t = π
(c) Newmark-Beta method solution
t = 20π
(d) Newmark-Beta method solution
t = 21π
Figure 8: Comparing the simply supported edge method solution to the Newmark-Beta method solution,
with 1 oscillating disturbance and impedance.
f = 6MHz
We see in Figure 8 that the solution to the simply supported boundary problem again looks very similar to
the solution to the Newmark-Beta method. From this we can assume then that the initial condition of the
Newmark-Beta method, the solution to the simply supported boundary problem, is a stable solution of the
biharmonic equation. It appears then that the simply supported boundary problem solution does work well
in the case of the fourth-order biharmonic equation, with impedance.
20
Tom Schoehuijs June 3, 2016
8.3.2 Peisker’s Method
We have shown that Peisker’s method, for our impedance Z = 0, results in the iteration scheme
φ(k)
= A − w ρd
D I
−1
(h2
δ − 1
h2 λ(k)
),
ˆu(k)
= A + w ρd
D I
−1
φ(k)
,
λ(k+1)
= λ(k+1)
− ∂ ˆu(k)
∂n .
(56)
From this we see the following:
(a) Peisker method solution
t = 0
(b) Peisker method solution
t = π
Figure 9: The Peisker method solution with 1 oscillating disturbance and impedance.
f = 6MHz
In Figure 9 we again see that there is a large difference in the size of the peak of both methods. Comparing
the shape of the Peisker method solution to the Newmark-Beta method solution we see that this method
still has a much sharper peak compared to the Newmark-Beta method, just as in the previous situation with
the Peisker method. This supports the idea that iterating, in contrast to the simply supported boundary
problem which can be solved without iterating, does not result in images that are qualitatively closer to the
Newmark-Beta method. The convergence of the Peisker method is shown below in 10.
21
Tom Schoehuijs June 3, 2016
Figure 10: Peisker method with impedance convergence
From this we see that this method converges very slowly. Peisker’s method was stopped after 100 iterations,
as ∂u
∂n was changing very slowly. It is worth noting that Figure 10 looks almost identical to Figure 7, showing
that the method converges independent of how the biharmonic equation is formulated or split.
22
Tom Schoehuijs June 3, 2016
9 Conclusion
As seen in the previous Section 8, the solution to the Peisker method and solution to the simply supported
boundary seem very similar in shape to the solution to the Newmark-Beta method. The Peisker method and
the non-iterative solution from the simply supported boundary problem clearly show induced oscillations on
the transducer with the impedance turned on and off. The Newmark-Beta method shows the solution to
the simply supported boundary problem to be a stable solution to the biharmonic equation. From this we
can conclude that both the Peisker method and the solution to the simply supported boundary problem,
are both accurate due to the qualitative and quantitative similarities with the images resulting from the
Newmark-Beta method. This then seems to answer our original questions well; via the Peisker method,
we can model the effects of induced oscillation on other transducers on a silicone chip via the
harmonic equation well, as evidenced by its comparison to the Newmark-Beta method solution
and the solution to the simply suppported boundary problem.
Using two different boundary conditions and two different methods we can answer our initial research ques-
tion; We can we model the effects of induced oscillation on other transducers on a silicone chip
well via the Newmark-Beta method, Peisker’s method and the simply supported boundary
problem. The Newmark-Beta method showed induced oscillations as a result from a periodic external force
and results in an intuitive movement of oscillations throughout the transducer, just as the Peisker’s method
and the simply supported boundary problem did.
The simply supported boundary problem as programmed in Appendix 11.1.2 and11.1.7 can be more efficiently
implemented than the Peisker model and the Newmark-Beta method (Appendix 11.1.4 and11.1.9), as there is
no need for iterations, meaning there are fewer calculations. Thus, the simply supported boundary problem
is preferred over the Newmark-Beta method due to its computation time and preferred over the Peisker
method due to its computation time and smaller truncation error. The Peisker method as programmed in
Appendix 11.1.3 and11.1.8 was the slowest as expected, requiring a lot of time to compute each step. The
exact run times for one iteration are shown below in Table 1.
Method or Problem Impedance Execution Time [s]
Simply Supported
Z = 0 47.7
Z = 0 52.5
Peisker
Z = 0 75.0
Z = 0 52.0
Newmark-Beta
Z = 0 62.5
Z = 0 77.6
Table 1: Comparing run times for different methods and problems using the same values for discretization
spacing h and time step ∆t as used in Section 8
When splitting the discrete biharmonic equation into two separate terms in (26), we need to take the inverse
of discretization matrix A a number of times. This is very difficult for computers and requires a great
deal of processing time. Finding a way around this for future programs would speed up the execution time
significantly, and could be done by finding another way to split the original biharmonic equation into two
coupled equations.
One of the biggest possible sources of error can be found while linearizing the impedance Z, as the actual
function for Z does not appear to be linear, and deviates almost 15 MRayl sometimes from the linearization
value of Z. Additionally, the central differentiation scheme used only incorporates 4 neighboring points.
Perhaps a more comprehensive 12 point scheme would be better suited, although that would require much
more computing power. While prescribing the boundary in (4) and (5) it was assumed that the glue used
was just used on the edges, and that it is either completely elastic or inelastic. In reality, the glue is used to
attach the whole silicone chip to the base plate, and is not completely elastic or inelastic.
23
Tom Schoehuijs June 3, 2016
10 References
[1] Guo Chen, Zhilin Li, and Ping Lin. A Fast Finite Difference Method for Biharmonic Equations on Irreg-
ular Domains. Master’s thesis, North Carolina State University and National University of Singapore,
2008.
[2] R. Courant, K. Friedrichs, and H. Lewy. On the Partial Difference Equations of Mathematical Physics.
IBM Journal of Research and Development. Volume 11, n. 2. 1967. Pages 215-234.
[3] Ciro D’Apice and Stan Chirita. Spatial Behavior for the Harmonic Vibrations in Plates of Kirchhoff
Type. Journal of Inequalities in Pure and Applied Mathematics. Volume 4, n. 4. 2003. Article 65.
[4] Robert Miner and Frederick J. Wicklin. Boundary Conditions. Website, April 1996. Accessed June
2nd, 2016. http://www.geom.uiuc.edu/education/calc-init/static-beam/boundary.html.
[5] N. M. Newmark. A Method of Computation for Structural Dynamics. Journal of Engineering Mechanics.
Volume 85, n. EM3. 1959. Pages 67-94.
[6] P. Peisker. On the Numerical Solution of the First Biharmonic Equation. Mathematical Modeling and
Numerical Analysis. Volume 22, n. 4. 1988. Pages 655-676.
[7] Shreyas Raghunathan. Impedance data sent via email. Personal Communication, March 2016.
[8] Endre S¨uli and David Mayers. An Introduction to Numerical Analysis. Cambridge University Press,
2003. Page 340. ISBN 0521007941.
[9] S. Timoshenko and S. Woinowsky-Krieger. Theory of Plates and Shells. McGraw Hill Book Company,
Inc, 1959. Page 92. ISBN 9780070647794.
[10] Joseph Woo. A Short History of the Development of Ultrasound in Obstetrics and Gynecology. Website,
November 2006. Accessed June 2nd, 2016. http://www.ob-ultrasound.net/history1.html.
[11] Peter Young. The Leapfrog Method and other “Symplectic” Algorithms for Integrating
Newton’s Laws of Motion. Course Handout, April 2014. Accessed June 2nd, 2016.
http://young.physics.ucsc.edu/115/leapfrog.pdf.
24
Tom Schoehuijs June 3, 2016
11 Appendix
11.1 Matlab Files
11.1.1 general.m
general.m is used to initialize a host of variables, constants and matrixes so that these are easily adjusted
across all four matlab scripts.
clear variables
close all
%% Initializing variales
epsilon = 1e-35; % afwijking
spacing = 4; % h bepalen, 4
w = 2*pi*6e6; % frequency [Hz]
images = 4; % 0 for off, 1 for video, more for images [png]
points = 1;
frames = 5; % how often image updated for NMB
maxk = 100;
maxi=6.5e-18;
%% Initializing Constants
N = 33+spacing*32;
h = 5e-3/(N+1); % stap grootte [m]
rho = 2329; % rho for silicon, [kg/m3]
E = 159*10^9; % Young's Modulus for silicon, [kg/m s2]
v = 0.3; % Poisson Ratio van MV
c = 8433; % speed of wave in silicon from wiki
d = 5e-4; % plate thickness [m]
nu = 0.01; % kleine waarde
D = E*d^3/(12*(1-v^2)); % flexural rigidity
a = -2.581 + -7.683i; % Z = aw+b
b = 1.875e+07+6.161e+07i;
dt = 0.02/w; % for peisker and simply
count = 0;
%% Initializing matrixes
T=toeplitz([-2,1,zeros(1,N-2)],[-2 1 zeros(1,N-2)]);
A=(kron(T,speye(N))+kron(speye(N),T))./h^2; % algemene matrix Aw=f
placeholder = speye(N^2);
if spacing ~= 0
for i = 1:N % row
if rem(i-1,spacing+1) == 0 % rij 1, 6, etc
for j = 1:N % column
if rem(j-1,spacing+1) ~= 0
placeholder((i-1)*N+j,(i-1)*N+j)=0; % j=2,3,4,5,7,8,9,etc
placeholder((i-1)*N+j,(i-1)*N+j)=0;
end
end
else % rij 2,3,4,5,7,8,9,etc
25
Tom Schoehuijs June 3, 2016
for j = 1:N
placeholder((i-1)*N+j,(i-1)*N+j)=0;
placeholder((i-1)*N+j,(i-1)*N+j)=0;
end
end
end
end
X = a*placeholder;
Y = b*placeholder;
if points > 1
reply = 'n';
while ~strcmpi('y',reply)
try
delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x)
for i=1:points
x = (round(rand*(N-3))+1)*N + round(rand*(N-3))+2;
delta(x)=sign(rand-0.5)/h^2; % random in interior
end
P=reshape(real(delta),[N,N]);
surf(h:h:h*N,h:h:h*N,P,'EdgeColor','none') % gradient(abs(P.*real(exp(1i*w*t))
)),
set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-
numerical solution')
title('Mesh grid of $delta$, clamped boundaries')
axis([0 1 0 1 -1.1*max(max(P)) 1.1*max(max(P))])
figure(1)
reply=input('Chosen points okay? Y/N [Y]:','s');
catch
end
end
else
delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x)
delta(floor((N-1)/2)*N+ceil(N/2))=1./h^2; % middle
end
close all
clear T a b points placeholder
11.1.2 simply.m
simply.m computes the clamped boundary method solution for u.
%% Direct Method for Simply Supported
general
fprintf('Running Simplyn')
tic
if images == 1
vid = VideoWriter('simply.avi');
open(vid)
end
%% Initializing matrixes
Q = (X*1i-rho*d.*speye(N^2))./D;
26
Tom Schoehuijs June 3, 2016
u = h^2*real((A^2+w*1i/D*Y+w^2*Q)delta);
clear Q delta
%% plotting
U=zeros([N+2,N+2]);
U(2:N+1,2:N+1)=reshape(u,[N,N]);
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical
solution')
for t=0:dt:2*pi/w
surf(0:h:5e-3, 0:h:5e-3, U.*real(exp(1i*w*t)), del2(real(U)), 'EdgeColor', 'green')
title('Mesh grid simply supported boundary problem')
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position [m]')
ylabel('Position [m]')
zlabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images > 1 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/simply%d',
count),'-dpng')
count = count + 1;
end
end
if images == 1
close(vid)
end
toc
close all
clear variables
11.1.3 peisker.m
peisker.m computes the Peisker method solution for u.
%% Peisker Method
general
fprintf('Running Peiskern')
tic
if images == 1
vid = VideoWriter('frequency.avi');
open(vid)
end
%% Initializing matrixes
test=-epsilon.*ones(maxk-1,3); % test matrix
Q = (X*1i-rho*d.*speye(N^2))./D;
27
Tom Schoehuijs June 3, 2016
%% Iterations
k=1; % stap teller
lambdak = zeros(N^2,1); % kies start lambda
dudn=zeros(N^2,1);
dudn(1)=1; % placeholder
while max(abs(dudn)) > epsilon && k < maxk && max(abs(dudn)) < 10
b=h^2.*delta-lambdak./h^2;
v=Ab;
% Now solve for u=PAb met u op rand gelijk aan 0
u=(A+AY*w*1i/D+w^2*AQ)b;
% oplossen voor du/dn op rand
dudn=zeros(N^2,1);
dudn(2:N-1) = - u(2:N-1)./h; % top
dudn((N-1)*N+2:N^2-1) = - u((N-1)*N+2:N^2-1)./h; % bottom
for m = 1 : N
dudn(m*N) = dudn(m*N) - u(m*N)./h; % left
dudn((m-1)*N+1) = dudn((m-1)*N+1) - u((m-1)*N+1)./h; % right
end
lambdak = lambdak - dudn; % new lambda
test(k,1)=max(abs(dudn));
test(k,2)=max(max(abs(u)));
test(k,3)=max(max(abs(lambdak)));
k=k+1; % volgende iteratie
end
%% plotting
U=zeros([N+2,N+2]);
U(2:N+1,2:N+1)=reshape(u,[N,N]);
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical
solution')
for t=0:dt:2*pi/w
surf(0:h:5e-3, 0:h:5e-3, real(U.*exp(1i*w*t)), del2(real(U)), 'EdgeColor', 'green')
title('Mesh grid Peisker Method')
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position [m]')
ylabel('Position [m]')
zlabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images > 1 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/peisker%d
',count),'-dpng')
count = count + 1;
28
Tom Schoehuijs June 3, 2016
end
end
if images == 1
close(vid)
end
%% Testing
close all
if k > 2
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'Name','Iteration convergance','MenuBar','none','NumberTitle','off')
leg={'$delta$u/$delta$n','max(u)','max($lambda$)'};
for n=1:3
subplot(1,3,n)
plot(1:k-1,test(1:max(k-1),n))
axis([1 k-1 0 max(test(1:k-1,n))])
xlabel('k')
ylabel(leg{n})
end
drawnow
if images > 1
print('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/convergence','-
dpng')
end
end
toc
clear variables
11.1.4 newmark.m
newmark.m computes the Newmark-Beta method solution for u.
%% Time integration Method (Newmark-Beta)
general
fprintf('Running Newmark-Betan')
tic
if images == 1
vid = VideoWriter('newmark.avi');
open(vid)
end
dt = 1/w*6e-3;
Z=X*w+Y;
%% Determine Initial Conditions
Q = (X*1i-rho*d.*speye(N^2))./D;
u{1} = h^2*real((A^2+w*1i/D*Y+w^2*Q)delta);
clear v
v{1} = -w*imag(u{1});
f{1} = delta * D * h^2;
29
Tom Schoehuijs June 3, 2016
U=zeros([N+2,N+2]);
clear X Y T E epsilon c maxk Q
%% Make images
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta solution')
framer = 0;
for t = dt:dt:2*pi/w
f{2} = delta * real(exp(1i*w*t)) * D * h^2;
u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+(speye(N^2)*dt - dt^2/(2*rho*d)*Z)*v
{1}+dt^2*f{1}/(2*rho*d);
v{2} = (2*rho*d*speye(N^2)+dt*Z)((2*rho*d*speye(N^2) - dt*Z)*v{1} + dt*(-D*A^2*u{1}
- D*A^2*u{2} + f{1} + f{2}));
if rem(round(t/dt)-1,frames) == 0
U(2:N+1,2:N+1)=reshape(real(u{2}),[N,N]);
surf(0:h:5e-3, 0:h:5e-3, U, 'EdgeColor','green')
title('Mesh grid Newmark-Beta Method')
if max(max(abs(U))) > 1.1*maxi
maxi=max(max(abs(U)));
end
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position [m]')
ylabel('Position [m]')
zlabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count <
images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/
newmark%d',count),'-dpng')
count = count + 1;
end
framer=framer+1;
end
u{1}=u{2};
v{1}=v{2};
f{1}=f{2};
end
if images == 1
close(vid)
end
toc
close all
clear variables
30
Tom Schoehuijs June 3, 2016
11.1.5 diagonal.m
diagonal.m computes the diagonal displacement profile for the Newmark-Beta method solution.
%% Time integration Method Diagonal (Newmark-Beta)
general
fprintf('Running Diagonal Newmark-Beta Profilen')
tic
if images == 1
vid = VideoWriter('diagonal.avi');
open(vid)
end
dt = 1/w*7e-3;
Z=X*w+Y;
%% Determine Initial Conditions
Q = (X*1i-rho*d.*speye(N^2))./D;
u{1} = h^2*real((A^2+w*1i/D*Y+w^2*Q)delta);
clear v Q
v{1} = -w*imag(u{1});
f{1} = delta * D * h^2;
x=zeros(1,N+2);
clear X Y T E epsilon c maxk
%% Waardes uitrekenen
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta solution')
framer = 0;
for t = dt:dt:2*pi/w
f{2} = delta * real(exp(1i*w*t)) * D * h^2;
u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+(speye(N^2)*dt - dt^2/(2*rho*d)*Z)*v
{1}+dt^2*f{1}/(2*rho*d);
v{2} = (2*rho*d*speye(N^2)+dt*Z)((2*rho*d*speye(N^2) - dt*Z)*v{1} + dt*(-D*A^2*u{1}
- D*A^2*u{2} + f{1} + f{2}));
if rem(round(t/dt)-1,frames) == 0
for i = 1 : N
x(i+1) = real(u{2}(N*(i-1)+i));
end
if max(abs(x)) > 1.1*maxi
maxi=max(abs(x));
end
plot(sqrt(2)*(0:h:5e-3),x)
title('Newmark-Beta Diagonal')
axis([0 5e-3*sqrt(2) -1.1*maxi 1.1*maxi])
xlabel('Position along diagonal [m]')
ylabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
31
Tom Schoehuijs June 3, 2016
if images == 1
writeVideo(vid,getframe); % save frames
elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count <
images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/
diagonal%d',count),'-dpng')
count = count + 1;
end
framer=framer+1;
end
u{1}=u{2};
v{1}=v{2};
f{1}=f{2};
end
if images == 1
close(vid)
end
toc
close all
clear variables
11.1.6 Z0general.m
Z0general.m is used to initialize a host of variables, constants and matrixes so that these are easily adjusted
across all four matlab scripts, all without impedance.
clear variables
close all
%% Initializing variales
epsilon = 1e-14; % afwijking
spacing = 4; % h bepalen
w = 2*pi*6e6; % frequency [Hz]
images = 4; % 0 for off, 1 for video, more for images [png]
points = 1;
frames = 5; % how often image updated for NMB
dt = 0.02/w; % for peisker and simply
maxk = 100;
maxi=6.5e-18;
%% Initializing Constants
N = 33+spacing*32;
h = 5e-3/(N+1); % stap grootte [m]
rho = 2329; % rho for silicon, [kg/m3]
E = 159*10^9; % Young's Modulus for silicon, [kg/m s2]
v = 0.3; % Poisson Ratio van MV
c = 8433; % speed of wave in silicon from wiki
d = 0.5/1000; % plate thickness [m]
nu = 0.01; % kleine waarde
D = E*d^3/(12*(1-v^2)); % flexural rigidity
count = 0;
32
Tom Schoehuijs June 3, 2016
%% Initializing matrixes
T=toeplitz([-2,1,zeros(1,N-2)],[-2 1 zeros(1,N-2)]);
A=(kron(T,speye(N))+kron(speye(N),T))./h^2; % algemene matrix Aw=f
if points > 1
reply = 'n';
while ~strcmpi('y',reply)
try
delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x)
for i=1:points
x = (round(rand*(N-3))+1)*N + round(rand*(N-3))+2;
delta(x)=sign(rand-0.5)/h^2; % random in interior
end
P=reshape(real(delta),[N,N]);
surf(h:h:h*N,h:h:h*N,P,'EdgeColor','none') % gradient(abs(P.*real(exp(1i*w*t))
)),
set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-
numerical solution')
title('Mesh grid of $delta$, clamped boundaries')
axis([0 1 0 1 -1.1*max(max(P)) 1.1*max(max(P))])
figure(1)
reply=input('Chosen points okay? Y/N [Y]:','s');
catch
end
end
else
delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x)
delta(floor((N-1)/2)*N+ceil(N/2))=1./h^2; % middle
end
close all
clear T a b points
11.1.7 Z0simply.m
Z0simply.m computes the clamped boundary method solution for u without impedance.
%% Direct Method for simply supported
Z0general
fprintf('Running simply, Z=0n')
if images == 1
vid = VideoWriter('Z0simply.avi');
open(vid)
end
tic
%% Initializing matrixes
M1=(A-speye(N^2)*sqrt(rho*d/D)*w);
M2=(A+speye(N^2)*sqrt(rho*d/D)*w);
M3=M2delta;
u=h^2*real(M1M3);
33
Tom Schoehuijs June 3, 2016
clear M1 M3 M2 delta M A
%% plotting
U=zeros([N+2,N+2]);
U(2:N+1,2:N+1)=reshape(u,[N,N]);
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical
solution Z=0')
for t=0:dt:2*pi/w
surf(0:h:5e-3, 0:h:5e-3, real(U.*exp(1i*w*t)), 'EdgeColor', 'green') % gradient(abs(P
.*real(exp(1i*w*t)))),
title('Mesh grid simply supported boundary problem $Z=0$')
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position [m]')
ylabel('Position [m]')
zlabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images ~= 0 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0simply%d
',count),'-dpng')
count = count + 1;
end
end
if images == 1
close(vid)
end
toc
close all
clear variables
11.1.8 Z0peisker.m
Z0peisker.m computes the Peisker method solution for u without impedance.
%% Peisker Method
Z0general
fprintf('Running Peisker, Z=0n')
if images == 1
vid = VideoWriter('frequency.avi');
open(vid)
end
tic
%% Initializing matrixes
test=-epsilon.*ones(maxk-1,3); % test matrix
%% Iterations
k=1; % stap teller
lambdak = zeros(N^2,1); % kies start lambda
34
Tom Schoehuijs June 3, 2016
dudn=zeros(N^2,1);
dudn(1)=1; % placeholder
while max(abs(dudn)) > epsilon && k < maxk
b=h^2.*delta-lambdak./h^2;
% solve for (A-Z)v=f in omega met v op rand gelijk aan lambda
v=(A+w*sqrt(rho*d/D)*speye(N^2))b;
% Now solve for (A+Z)u=v met u op rand gelijk aan 0
u=(A-w*sqrt(rho*d/D)*speye(N^2))v;
% oplossen voor du/dn op rand
dudn=zeros(N^2,1);
dudn(2:N-1) = - u(2:N-1)./h; % top
dudn((N-1)*N+2:N^2-1) = - u((N-1)*N+2:N^2-1)./h; % bottom
for m = 1 : N
dudn(m*N) = dudn(m*N) - u(m*N)./h; % left
dudn((m-1)*N+1) = dudn((m-1)*N+1) - u((m-1)*N+1)./h; % right
end
lambdak = lambdak - dudn; % new lambda
test(k,1)=max(abs(dudn));
test(k,2)=max(max(abs(u)));
test(k,3)=max(max(abs(lambdak)));
k=k+1; % volgende iteratie
end
%% plotting
U=zeros([N+2,N+2]);
U(2:N+1,2:N+1)=reshape(u,[N,N]);
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical
solution Z=0')
for t=0:dt:2*pi/w
surf(0:h:5e-3, 0:h:5e-3,real(U.*exp(1i*w*t)),del2(real(U)),'EdgeColor','green')
title('Mesh grid Peisker Method $Z=0$')
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position [m]')
ylabel('Position [m]')
zlabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images ~= 0 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0peisker%
d',count),'-dpng')
count = count + 1;
end
end
35
Tom Schoehuijs June 3, 2016
if images == 1
close(vid)
end
%% Testing
close all
if k > 2
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'Name','Iteration convergance Z=0','MenuBar','none','NumberTitle','off')
leg={'$delta$u/$delta$n','max(u)','max($lambda$)'};
for n=1:3;
subplot(1,3,n)
plot(1:k-1,test(1:max(k-1),n))
axis([1 k-1 0 max(test(1:k-1,n))])
xlabel('k')
ylabel(leg{n})
end
drawnow
if images > 1
print('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/convergenceZ0','-
dpng')
end
end
toc
clear variables
11.1.9 Z0newmark.m
Z0newmark.m computes the Newmark-Beta method solution for u without impedance.
%% Time integration Method (Newmark-Beta)
Z0general
fprintf('Running Newmark-Beta, Z=0n')
tic
if images == 1
vid = VideoWriter('Z0newmark.avi');
open(vid)
end
%% Find Initial Conditons from SSP
M1=(A-speye(N^2)*sqrt(rho*d/D)*w);
M2=(A+speye(N^2)*sqrt(rho*d/D)*w);
M3=M2delta;
u{1}=h^2*real(M1M3);
clear M1 M3 M2 M v
dt = 1/w*7e-3;
% start waardes toekennen
v{1}=-w*imag(u{1});
f{1} = delta * D * h^2;
36
Tom Schoehuijs June 3, 2016
U=zeros([N+2,N+2]);
clear X Y T E epsilon c maxk
%% Calculate and plot
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta solution Z=0')
framer = 0;
for t = dt:dt:2*pi/w
f{2} = delta * real(exp(1i*w*t)) * D * h^2;
u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+dt*v{1}+dt^2*f{1}/(2*rho*d);
v{2} = v{1} + dt/(2*rho*d)*(-D*A^2*u{1} - D*A^2*u{2} + f{1} + f{2});
if rem(round(t/dt)-1,frames) == 0
U(2:N+1,2:N+1)=reshape(u{2},[N,N]);
if max(max(abs(real(U)))) > 1.1*maxi
maxi=max(max(abs(real(U))));
end
surf(0:h:5e-3, 0:h:5e-3,real(U),'EdgeColor','green')
title('Mesh grid Newmark-Beta $Z=0$')
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position [m]')
ylabel('Position [m]')
zlabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count <
images
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0
newmark%d',count),'-dpng')
count = count + 1;
end
if framer == 130
pause(0.1)
end
framer=framer+1;
end
u{1}=u{2};
v{1}=v{2};
f{1}=f{2};
end
if images == 1
close(vid)
end
toc
close all
clear variables
11.1.10 Z0diagonal.m
Z0diagonal.m computes the diagonal displacement profile for the Newmark-Beta method solution without
impedance.
37
Tom Schoehuijs June 3, 2016
%% Time integration Method test (Leapfrog)
Z0general
fprintf('Running diagonal, Z=0n')
tic
if images == 1
vid = VideoWriter('Z0diagonal.avi');
open(vid)
end
%% Find Initial Conditons from SSP
M1=(A-speye(N^2)*sqrt(rho*d/D)*w);
M2=(A+speye(N^2)*sqrt(rho*d/D)*w);
M3=M2delta;
u{1}=h^2*real(M1M3);
clear M1 M3 M2 M v
dt = 1/w*7e-3;
% start waardes toekennen
v{1}=-w*imag(u{1});
f{1} = delta * D * h^2;
x=zeros(1,N+2);
clear X Y T E epsilon c maxk
%% Calculate and plot
figure('units','normalized','outerposition',[0 0 1 1])
set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta diagonal solution Z=0')
framer = 0;
for t = dt:dt:2*pi/w
f{2} = delta * real(exp(1i*w*t)) * D * h^2;
u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+dt*v{1}+dt^2*f{1}/(2*rho*d);
v{2} = v{1} + dt/(2*rho*d)*(-D*A^2*u{1} - D*A^2*u{2} + f{1} + f{2});
if rem(round(t/dt)-1,frames) == 0
for i = 1 : N
x(i+1) = real(u{2}(N*(i-1)+i));
end
if max(abs(x)) > 1.1*maxi
maxi=max(abs(x));
end
plot(sqrt(2)*(0:h:5e-3),x)
title('Newmark-Beta Diagonal Z=0')
axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi])
xlabel('Position along diagonal [m]')
ylabel('Displacement [m]')
set(gca,'fontsize',20)
drawnow
if images == 1
writeVideo(vid,getframe); % save frames
elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count <
images
38
Tom Schoehuijs June 3, 2016
print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0
diagonal%d',count),'-dpng')
count = count + 1;
end
framer=framer+1;
end
u{1}=u{2};
v{1}=v{2};
f{1}=f{2};
end
if images == 1
close(vid)
end
toc
close all
clear variables
39

More Related Content

Similar to BEP Tom Schoehuijs

Senior_Thesis_Evan_Oman
Senior_Thesis_Evan_OmanSenior_Thesis_Evan_Oman
Senior_Thesis_Evan_Oman
Evan Oman
 
Compiled Report
Compiled ReportCompiled Report
Compiled Report
Sam McStay
 
CERN-THESIS-2011-016
CERN-THESIS-2011-016CERN-THESIS-2011-016
CERN-THESIS-2011-016
Manuel Kayl
 
MSc_thesis_OlegZero
MSc_thesis_OlegZeroMSc_thesis_OlegZero
MSc_thesis_OlegZero
Oleg Żero
 
Algorithms for Sparse Signal Recovery in Compressed Sensing
Algorithms for Sparse Signal Recovery in Compressed SensingAlgorithms for Sparse Signal Recovery in Compressed Sensing
Algorithms for Sparse Signal Recovery in Compressed Sensing
Aqib Ejaz
 

Similar to BEP Tom Schoehuijs (20)

Senior_Thesis_Evan_Oman
Senior_Thesis_Evan_OmanSenior_Thesis_Evan_Oman
Senior_Thesis_Evan_Oman
 
Compiled Report
Compiled ReportCompiled Report
Compiled Report
 
main2
main2main2
main2
 
Master Thesis
Master Thesis Master Thesis
Master Thesis
 
DISS2013
DISS2013DISS2013
DISS2013
 
thesis
thesisthesis
thesis
 
dissertation
dissertationdissertation
dissertation
 
Power System Oscillations Detection Estimation & Control
Power System Oscillations Detection Estimation & ControlPower System Oscillations Detection Estimation & Control
Power System Oscillations Detection Estimation & Control
 
thermal_physics
thermal_physicsthermal_physics
thermal_physics
 
CERN-THESIS-2011-016
CERN-THESIS-2011-016CERN-THESIS-2011-016
CERN-THESIS-2011-016
 
MSc_thesis_OlegZero
MSc_thesis_OlegZeroMSc_thesis_OlegZero
MSc_thesis_OlegZero
 
thesis
thesisthesis
thesis
 
final_report_template
final_report_templatefinal_report_template
final_report_template
 
Parameter estimation in a non stationary markov model
Parameter estimation in a non stationary markov modelParameter estimation in a non stationary markov model
Parameter estimation in a non stationary markov model
 
GFilosofi_solitons_2005
GFilosofi_solitons_2005GFilosofi_solitons_2005
GFilosofi_solitons_2005
 
Statistical Mechanics & Thermodynamics 2: Physical Kinetics
Statistical Mechanics & Thermodynamics 2: Physical KineticsStatistical Mechanics & Thermodynamics 2: Physical Kinetics
Statistical Mechanics & Thermodynamics 2: Physical Kinetics
 
Algorithms for Sparse Signal Recovery in Compressed Sensing
Algorithms for Sparse Signal Recovery in Compressed SensingAlgorithms for Sparse Signal Recovery in Compressed Sensing
Algorithms for Sparse Signal Recovery in Compressed Sensing
 
Microwave Engineering
Microwave EngineeringMicrowave Engineering
Microwave Engineering
 
Industrial Electronic Circuits Laboratory Manual (Synthesis Lectures on Elect...
Industrial Electronic Circuits Laboratory Manual (Synthesis Lectures on Elect...Industrial Electronic Circuits Laboratory Manual (Synthesis Lectures on Elect...
Industrial Electronic Circuits Laboratory Manual (Synthesis Lectures on Elect...
 
bergel_antoine_10059
bergel_antoine_10059bergel_antoine_10059
bergel_antoine_10059
 

BEP Tom Schoehuijs

  • 1. Delft University of Technology Faculty Electrical Engineering, Mathematics and Computer Science Delft Faculty of Applied Sciences Modelling the Induced Oscillations of Elements on a Silicon Transducer Report for the Department of Applied Mathematics and Department of Imaging Physics as part of the degree of BACHELOR OF SCIENCE in APPLIED MATHEMATICS and APPLIED PHYSICS by TOM SCHOEHUIJS 4205650 Delft, The Netherlands June 2016 Copyright 2016 by Tom Schoehuijs. All rights reserved.
  • 2.
  • 3. BSc report APPLIED MATHEMATICS ”Modelling the Induced Oscillations of Elements on a Silicon Transducer.” TOM SCHOEHUIJS Delft University of Technology Thesis Advisors Dr.ir. M.B. van Gijzen Dr.ir. M.D. Verweij Other members of the graduation committee Prof. dr. ir. A. W. Heemink Dr. N. Bhattacharya Dr. J. G. Spandaw June 2016, Delft
  • 4.
  • 5. Tom Schoehuijs June 3, 2016 1 Abstract In this report, we will try to model a silicon chip with elements, as used in current experiments, with the aim to find a suitable and fast model for the transducer used. The specific question we will try to address is: How well can we model the effects of induced oscillation on other elements on a silicon chip? Induced oscillations can create problems when miniaturizing heart imaging technology for example, as the incoming signal cannot be properly converted to an image. The biharmonic equation dictates the displacement of the elements with respect to a force acting on the chip. Hence, using assumptions and numerical methods, the biharmonic equation can only be split into two coupled equations. We will look at two different boundary conditions for both of these equations; either the glue used to attach the transducer to the substrate is simply supporting the transducer, or clamping the transducer in place. We will model the biharmonic equation using Peisker’s method, as well as the simply supported boundary problem. Both of these will require us to reformulate the biharmonic equation in the frequency domain, and linearize the impedance for a range between 1MHz and 9.5MHz. The results from this will then be compared to the Newmark-Beta method solution, by looking at the stability, efficiency, and accuracy. From this we can also answer the second question we will try to address: How well can Peisker’s method be used to solve a fourth order differential equation? We expect that the solution to the simply supported boundary conditions look similar to the Newmark-Beta method, as they both have the same boundary conditions. Furthermore, the solution from the Peisker method should not look very different either, as they are all describing the same biharmonic equation. We found that both the Peisker method and the solution to the simply supported boundary problem look very similar, and both look like the Newmark-Beta method solution. Both methods and the non-iterative solution from the simply supported boundary problem show induced oscillations on the transducer. From this we can conclude that the simply supported boundary problem is preferred over the Newmark-Beta method due to its computation time and preferred over the Peisker method due to its computation time and smaller truncation error. The simply supported boundary problem can be more efficiently implemented than the Peisker model, as there is no need for iterations. Hence, it can be relatively quickly simulated. From this report we have seen that we can effectively model the effects of induced oscillation on other elements on a silicon chip, through the Peisker method, the Newmark-Beta method and the simply supported boundary problem. To answer our second question, Peisker’s method is an effective and accurate method to model the biharmonic equation, a fourth order differential equation. However, the simply supported boundary problem is preferred. 1
  • 6. Tom Schoehuijs June 3, 2016 Contents 1 Abstract 1 2 Introduction 3 3 Mathematical Model 5 3.1 The Biharmonic Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Discretization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Frequency Domain Formulation 7 5 Peisker’s Method Implementation 9 6 Simply Supported Boundaries Solution 11 7 Newmark-Beta Method 12 8 Results 14 8.1 Newmark-Beta Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.2 The Biharmonic Equation without Impedance . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.2.1 Simply Supported Boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.2.2 Peisker Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.3 The Biharmonic Equation with Impedance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.3.1 Simply Supported Boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.3.2 Peisker’s Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9 Conclusion 23 10 References 24 11 Appendix 25 11.1 Matlab Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 11.1.1 general.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 11.1.2 simply.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 11.1.3 peisker.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 11.1.4 newmark.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 11.1.5 diagonal.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 11.1.6 Z0general.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 11.1.7 Z0simply.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 11.1.8 Z0peisker.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 11.1.9 Z0newmark.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 11.1.10Z0diagonal.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2
  • 7. Tom Schoehuijs June 3, 2016 2 Introduction Ultrasound technology has been increasing at an exponential rate ever since the invention of the first medical ultrasound in 1963 [10]. Since then, devices used in imaging operations such as heart imaging and sonograms have been becoming increasingly small and more powerful. Current heart imaging technology is done using a large machine that has transducers in the handle. When used for heart imaging, the device can create images of the heart through gaps in the ribs. However, this can only be done from the front as lungs block the view from the rear. By making this technology ingestible, we can see not only the heart from inside the body but other organs as well. When miniaturizing the transducers to a chip, many problems can arise. When testing these chips, measure- ments are done in water which acts much like human tissue, due to the tissue’s high water concentration. Each transducer is placed on a silicon chip, meaning that the transducers themselves are much smaller than they previously were. The transducers are placed half a wavelength apart, which means that on the 5 by 5 mm chip there are 33 by 33 elements, or 1, 089 in total. By mounting these transducers on a silicon chip instead of the previously used substrate, the effect of induced oscillations is much larger. This can be at- tributed to the silicon substrate being more elastic than the previously used, more rigid substrate. Therefore, when a harmonic disturbance is acted on a transducer, it is expected that the other neighboring elements will start to move as well. In this report, we will try to model a silicon chip with elements, as used in current experiments, with the aim to find a suitable and fast model for the transducer used. The specific question we will try to address is: How well can we model the effects of induced oscillation on other elements on a silicon chip? Figure 1: A silicon chip with elements currently being used for experiments We will address this question by first describing in Section 3 movement on a silicon chip, after which we will use assumptions and numerical methods to make the equation discrete. The biharmonic equation, which governs the disturbances of the transducers, can only be split into two coupled Laplace equations if we have the boundary conditions for both of these equations. In this report we will address two separate cases; the glue used to attach the transducer to the substrate is either simply supporting the chip, or clamping the transducer in place. In the case of simply supported boundary conditions, we can directly solve the discretized biharmonic equation as shown in Section 6. The biharmonic equation coupled with these different boundary conditions represent what would be the stable solution to the equation if the edges were simply supported by the glue. In the other case of the clamped boundary conditions, we are missing the correct boundary conditions to split the problem into two coupled equations. However, using Peisker’s Method [6] in Section 4 and 5, we can model the biharmonic equation. Peisker’s Method is an iterative method in the frequency domain to find the stable solution to the biharmonic equation. We can then compare our two methods, namely Peisker’s Method and the simply supported non-iterative method, to the Newmark-Beta Method solution, a time step method that can not only show the solution to the biharmonic equation but also show the solution for a 3
  • 8. Tom Schoehuijs June 3, 2016 short time after we turn on the oscillating disturbance. We expect to see that the Newmark-Beta method converges to the Peisker Method and the simply supported boundary solution, as both methods should result in the same solution for a long time t. Discretizing with step size h and central differences gives order O(h2 ), meaning that the simply supported boundary problem has a O(h2 ) truncation error. The Newmark-Beta method is second order in time[11], and the truncation error of Peisker’s method is O(h) as we approximate the first order derivative of the displacement. Peisker’s method has been developed to approximate the solution to a coupled equation, while missing the boundary conditions for one of the coupled equations. The Newmark-Beta Method was developed for the numerical evaluation of dynamic responses of structures and solids, to model dynamic systems. This method, along side our chosen values for constants, is stable for ∆t ≤ 2 f , with f being the frequency. The simply supported boundary problem can be solved without iterations, which will undoubtedly be the quickest to compute as we do not need to do multiple computations. However, as this method relies on simplified boundary conditions, it can only be used to test the other two methods. We hope that the Newmark-Beta method, which does not start off in the stable harmonic situation, converges to the clamped boundary problem solution. A comparison of the three will be made in Section 8. This brings us to our second question which will be addressed in this report; How well can Peisker’s Method be used to solve a fourth order differential equation? This will be addressed by comparing our two models across a number of properties in Section 8; namely stability, efficiency, and accuracy. 4
  • 9. Tom Schoehuijs June 3, 2016 3 Mathematical Model 3.1 The Biharmonic Equation An important aspect of the problems we address is how they are stipulated. In 1959, Professors Timoshenko and Woinoksy-Krieger published a book on the equations describing bending motion in plates, shells, and various other shapes. In it, the displacement is shown to have the following relationship on a thin elastic plate, which we take to be area Ω as [9] D∆2 ˜u = ˜f, (1) where D is the flexural rigidity [Nm], ˜u the displacement [m], ˜f the force acting on the plate Nm−2 and ∆ the ordinary two dimensional Laplacian. The flexural rigidity is given by [3] as D = Ed3 12(1 − ν2) , (2) with E the Young’s Modulus, ν the Poisson Ratio, and d the thickness of the plate. In this paper we will split the force on the chip up into three components, taking care of the direction they act upon the chip, as ˜f = ˜fext − ˜fI − ˜fz. (3) Where we refer to the forces originating from external forces, inertia and impedance by ˜fext, ˜fI, and ˜fz respectively. The gravitational force ˜fg is neglected here as it has a negligible contribution. The force resulting from inertia is m¨˜u and that from impedance is Z ˙˜u, with Z a linearization of the impedance. We will later use this property, and assume then that Z = Xω + Y . We also need to include a boundary condition. Here we can easily address two different boundary conditions. For the silicon chip in question, we require the plate to have supported edges. This assumption means that the boundary conditions are[4] ˜u|δΩ = ∆˜u|δΩ = 0. (4) This is an important assumption and will later be used in both methods. If we assume that the glue used with on silicon chip, which is glued to a thick plate, is not elastic but inelastic, then we can approximate the edge as being clamped. This results in a slightly different set of boundary conditions[4], namely ˜u|δΩ = ∂˜u ∂ˆn δΩ = 0, (5) using ˆn as the unit vector pointing outward. Finally, we can split the biharmonic equation into two coupled equations. For the simply supported edge we see that we can rewrite (1) as ∆φ = ˜f in Ω, φ|δΩ = 0 ∆˜u = φ in Ω, ˜u|δΩ = 0. (6) using Ω and δΩ to refer to the area and the boundary of that area, on which is currently being worked. Using the same definitions we can rewrite the clamped edge problem as ∆φ = ˜f in Ω, φ|δΩ = λ ∆˜u = φ in Ω, ˜u|δΩ = 0, (7) with λ as an unknown value, which follows from the boundary condition ∂ ˜u ∂ˆn . 5
  • 10. Tom Schoehuijs June 3, 2016 3.2 Discretization To separate our actual displacement ˜u from the discretized solution to the biharmonic equation, we will introduce a new variable u. This will represent the solution to the discretized biharmonic equation. In this section, we will additionally introduce the notation ui,j for the displacement of the point in column i and row j on the chip. The same notion is used when referring to an element in column i and row j in matrix A, namely Ai,j. To simplify matters, we will discretize the chip into N + 2 by N + 2 points, with distance h between these points. This means that there are N2 points on the inside of Ω. Before we start using different schemes to approximate ˜u and ˜f for different values of the frequency, we must discretize ˜u and ˜f, and note this u and f respectively. Between two instances of u and f we assume there to be a discrete time step of ∆t. We will use the shorthand ui,j(t) and fi,j(t) as being the displacement or force acting on the plate at position (i, j) at time t. To do this, we need approximate ∆ with a matrix A. By using a central difference scheme[2] we see the following ∂ui,j ∂x = ui+ 1 2 ,j − ui− 1 2 ,j h + O(h2 ), (8) ∂ui,j ∂y = ui,j+ 1 2 − ui,j− 1 2 h + O(h2 ), (9) ∂2 ui,j ∂x2 = ui+1,j − 2ui,j + ui−1,j h2 + O(h2 ), (10) ∂2 ui,j ∂y2 = ui,j+1 − 2ui,j + ui,j−1 h2 + O(h2 ). (11) We know that ∆ = ∂2 ∂x2 + ∂2 ∂y2 , (12) and so if we use central difference we see that we can approximate ∆ by ∆ ≈ ui+1,j + ui,j+1 − 4ui,j + ui−1,j + ui,j−1 h2 + O(h2 ) = A. (13) We see now that it is possible to approximate (6) as Aφ = f in Ω, φ|δΩ = 0 A˜u = φ in Ω, ˜u|δΩ = 0, (14) and we can approximate (7) as Aφ = f in Ω, φ|δΩ = λ A˜u = φ in Ω, ˜u|δΩ = 0. (15) 6
  • 11. Tom Schoehuijs June 3, 2016 4 Frequency Domain Formulation For both the Peisker Method and the simply supported boundaries problem it is very useful to make the change from the time domain to the frequency domain, as this allows us to easily describe the harmonic disturbance. Additionally, (7) will no longer have any time dependency, which simplifies matters. If we write F {u}, the harmonic Fourier Transform of u, as ˆu, then we see that rewriting gives the following F {D∆u} = D∆F {u} = D∆ˆu (16) F {fI} = F {m¨u} = F {ρd¨u} = −w2 ρdˆu (17) F {fz} = F {Z ˙u} = Ziweiwt ˆu = (Xw + Y ) iwˆu (18) In the transformation of the impedance Z, we use a linearization of the radiation impedance for low frequen- cies, up to 9.5 MHz. Keeping in mind that the impedance matrix in question, Z, is not uniform and is zero for all points where there is no transducer present, we can find the nonzero values of Z, which depend on the value of f as shown in the following figure. (a) Linearization of the real part of the impedance (b) Linearization of the imaginary part of the impedance Figure 2: Linearization of the Radiation Impedance[7] The impedance Z represents the acoustic impedance, also known as the pressure on the elements divided by the speed of the wave traveling through the transducer. From this linearization we see that the nonzero values of matrix X are −8.064 − 7.683i MRayl and of Y are 22.39 + 72.43i MRayl Hz−1 , if the frequency is between 0.5 and 9.5 MHz. In order to find the Fourier Transform of (7) we need to make additional assumptions for fext. Namely, we assume that fext,(i,j)(t) = Re Deiwt h2 δ(y − (i, j)) , (19) with δ(x) being the Dirac-Delta function, which is zero everywhere except when (i, j) = y, as it then has an area under the function of 1. This means that for any given h, h2 δ(x) = 1. For convenience we denote this delta function just as δ. If we rewrite (7) as one equation and take the Fourier Transform of it, we see that it can be written as A2 ˆu = h2 δ + w2 ρd D ˆu − w (Xw + Y ) i D ˆu, (20) 7
  • 12. Tom Schoehuijs June 3, 2016 A2 ˆu = h2 δ + w2 ρd D ˆu − w2 Xi D ˆu − w Y i D ˆu, (21) A2 + w Y i D − w2 ρd D I + w2 Xi D ˆu = h2 δ, (22) A2 + w Y i D − w2 ρd D I − Xi D ˆu = h2 δ. (23) We can rewrite (23) into two parts. Namely, A2 + w Y i D + w2 Xi D − ρd D I ˆu = A A + wi D A−1 Y + w2 A−1 Q ˆu = h2 δ, (24) with Q = Xi D − ρd D I . (25) Splitting this gives us Aφ = h2 δ in Ω, φ|δΩ = λ A + wi D A−1 Y + w2 A−1 Q ˆu = φ in Ω, ˆu|δΩ = 0, (26) which is a discrete version of (15). From this we can find an approximation for ˆu. We can then retrieve the discretization approximation displacement of the plate u by u = Re eiωt ˆu . (27) If we assume the impedance to be Z = 0 uniformly, then we can split (23) into the simpler form A − w ρd D I A + w ρd D I ˆu = h2 δ. (28) We will later use this when considering the different techniques to approximate the biharmonic equation. 8
  • 13. Tom Schoehuijs June 3, 2016 5 Peisker’s Method Implementation Peisker’s method [6] can be used to iteratively approximate a coupled equation [1] with respect to finite differences. Maintaining the same definitions for ˆu and f and again using Ω and δΩ to refer to the area and the boundary of that area, on which is currently being worked, the scheme is ∆φ(k) = g in Ω, φ(k) δΩ = λ(k) ∆ˆu(k) = φ(k) in Ω, ˆu(k) δΩ = 0 λ(k+1) = λ(k+1) − ∂ ˆu(k) ∂n , (29) with g a function for which ∆2 ˆu = g. Iterating over k decreases the value of ∂ ˆu(k) ∂n → 0. We can find ∂ ˆu(k) ∂n by using finite difference. For example, ∂ ˆui,j (k) ∂n at the top row of the transducer (i = 1), excluding corner points, is given by ∂ˆu (k) 1,j ∂n ≈ ˆu (k) 0,j − ˆu (k) 1,j h , (30) using one-sided differences. We know that ˆu (k) 0,j = 0 as ˆu(k) δΩ = 0, meaning that ∂ˆu (k) 1,j ∂n = − ˆu (k) 1,j h . (31) This can be used to find ∂ ˆu (k) i,j ∂n on the edges excluding the corner points. To find ∂ ˆu (k) i,j ∂n on the corner points, we need to use the property that the boundaries are uniform. Using the top left corner point as example ((i, j) = (1, 1)), we see ∂ˆu (k) 1,1 ∂n ≈ ˆu (k) 0,1 − ˆu (k) 1,1 h ≈ ˆu (k) 1,0 − ˆu (k) 1,1 h = − ˆu (k) 1,1 h . (32) We have shown in (26) that we can write our clamped boundary problem as is required. The entire scheme can now be written as Aφ = h2 δ in Ω, φ|δΩ = λ A + wi D A−1 Y + w2 A−1 Q ˆu = φ in Ω, ˆu|δΩ = 0, λ(k+1) = λ(k+1) − ∂ ˆu(k) ∂n , (33) with the correct corresponding boundary conditions. To approximate the original problem in (15) we can use the following iteration steps φ(k) = A−1 (h2 δ − 1 h2 λ(k) ), ˆu(k) = A + wi D A−1 Y + w2 A−1 Q −1 φ(k) , λ(k+1) = λ(k+1) − ∂ ˆu(k) ∂n . (34) By subtracting 1 h2 λ(k) from the Dirac Delta function δ, we see that lim k→∞ ∆ˆu(k) δΩ → 0 as is required by our original boundary conditions in (4). We see here why we need to iterate; the boundary condition for φ(k) δΩ = ∂2 ˆuk ∂ˆn2 δΩ is not given as it is if we had used the boundary conditions in (4), meaning that we must iterate to find φ(k) δΩ . We expect φ(k) δΩ to go to 0, as then λ(k+1) − λ(k) → 0 and we can stop iterating. We can also apply the same technique to (28) where we set the impedance Z = 0. Taking the same steps we see the following iteration steps 9
  • 14. Tom Schoehuijs June 3, 2016 φ(k) = A − w ρd D I −1 (h2 δ − 1 h2 λ(k) ), ˆu(k) = A + w ρd D I −1 φ(k) , λ(k+1) = λ(k+1) − ∂ ˆu(k) ∂n . (35) Iterations such as in Peisker’s Method can result in an additional truncation error, meaning that the er- ror of Peisker’s method results does not only stem from the discretization error O(h2 ). Peisker’s Method approximates ∂u ∂n and thus the truncation error is O(h)[8]. 10
  • 15. Tom Schoehuijs June 3, 2016 6 Simply Supported Boundaries Solution Using the boundary conditions in (4) we can solve the biharmonic equation without iterations in (1). Using the same notation as in Section 5, we can reformulate the given biharmonic equation into two Laplace equations as shown in Section 3. ∆φ(k) = f in Ω, φ(k) δΩ = 0 ∆ˆu(k) = φ(k) in Ω, ˆu(k) δΩ = 0. (36) We see here that this set of coupled equations has well defined boundary conditions, meaning that we can solve for ˆu here. Using the formulation in (24) we can solve for ˆu without iterating. Namely, A2 + w Y i D + w2 Q ˆu = h2 δ, (37) which means that ˆu = h2 A2 + w Y i D + w2 Q −1 δ. (38) This in turn results in u = Re eiωt ˆu = h2 Re eiωt A2 + w Y i D + w2 Q −1 δ . (39) We can also find the solution to the simply supported boundaries problem when Z = 0. Namely, using the formulation in (28) and taking the same steps as above we see u = Re eiωt ˆu = Re  h2 eiωt A + w ρd D I −1 A − w ρd D I −1 δ   . (40) 11
  • 16. Tom Schoehuijs June 3, 2016 7 Newmark-Beta Method The Newmark-Beta Method as described in [5] provides the following integration scheme for second order differential equations ui+1 = ui + ˙ui∆t + ∆t2 4 (¨ui+1 + ¨ui) , ˙ui+1 = ˙ui + 1−2β 2 ∆t2 ¨ui + β∆t2 ¨ui+1, (41) where ui denotes the value of u at time t = i. In order for the system of equations in (41) to be explicit, we require β = 0. This is then also known as the Leapfrog method, and is a special form of the Newmark-Beta Method. The Leapfrog Method is ui+1 = ui + ˙ui∆t + 1 2 ¨ui∆t2 , ˙ui+1 = ˙ui + 1 2 (¨ui + ¨ui+1) ∆t. (42) We see that if we rewrite (15) we can find an expression for ¨ui as ¨ui = − D ρd A2 ui + 1 ρd fi − 1 ρd Z ˙ui. (43) We can use this to find an expression for ui+1 as ui+1 = ui + ˙ui∆t + 1 2 − D ρd A2 ui + 1 ρd fi − 1 ρd Z ˙ui ∆t2 , (44) ui+1 = I − ∆t2 D 2ρd A2 ui + I∆t − ∆t2 2ρd Z ˙ui + ∆t2 2ρd fi. (45) Additionally, we can use (42) in combination with (43) to find an expression for ˙ui+1 ˙ui+1 = ˙ui + 1 2 − D ρd A2 ui + 1 ρd fi − 1 ρd Z ˙ui + − D ρd A2 ui+1 + 1 ρd fi+1 − 1 ρd Z ˙ui+1 ∆t, ˙ui+1 = I − ∆t 2ρd Z ˙ui + −D∆t 2ρd A2 ui + ∆t 2ρd fi + −D∆t 2ρd A2 ui+1 + ∆t 2ρd fi+1 − ∆t 2ρd Z ˙ui+1 , I + ∆t 2ρd Z ˙ui+1 = I − ∆t 2ρd Z ˙ui + ∆t 2ρd −DA2 ui − DA2 ui+1 + fi + fi+1 , ˙ui+1 = I − ∆t 2ρd Z ˙ui + ∆t 2ρd −DA2 ui − DA2 ui+1 + fi + fi+1 / I + ∆t 2ρd Z , ˙ui+1 = (2ρdI − ∆tZ) ˙ui + ∆t −DA2 ui − DA2 ui+1 + fi + fi+1 / (2ρdI + ∆tZ) . (46) Hence, reusing the linearization of the impedance Z = Xw + Y , we see ui+1 = I − ∆t2 D 2ρd A2 ui + I∆t − ∆t2 2ρd (Xw + Y ) ˙ui + ∆t2 2ρd fi, ˙ui+1 = (2ρdI − ∆t (Xw + Y )) ˙ui + ∆t −DA2 ui − DA2 ui+1 + fi + fi+1 / (2ρdI + ∆t (Xw + Y )) . (47) For Z = 0 we can simply set X = 0 and Y = 0 to see how the Newmark-Beta method would look if our impedance Z = 0. We see ui+1 = I − ∆t2 D 2ρd A2 ui + ∆t ˙ui + ∆t2 2ρd fi, ˙ui+1 = ˙ui + ∆t 2ρd −DA2 ui − DA2 ui+1 + fi + fi+1 . (48) The initial conditions are also an important aspect of this method, as starting with very different initial conditions can lead to different solutions, for short times. In this method we will use the stable situation provided by the solution to the simply supported boundary problem. From this we can then see if the method is indeed stable, or if the provided initial condition is incorrect. From (39) we see that u0 = Re eiwt ˆu t=0 = Re (ˆu)|t=0 , (49) 12
  • 17. Tom Schoehuijs June 3, 2016 as well as ˙u0 = ∂ ∂t Re eiwt ˆu = Re iweiwt ˆu + eiwt ∂ ∂t ˆu . (50) We know that ∂ ∂t ˆu = 0, as we assume that the frequency domain formulation does not change as time passes. This means ˙u0 = Re ((iw cos(wt) − w sin(wt)) ˆu) = −w cos(wt)Imag (ˆu) − w sin(wt)Re (ˆu) . (51) Substituting t = 0 gives us u0 = Re (ˆu)|t=0 , ˙u0 = −w Imag (ˆu)|t=0 . (52) The same holds for the Newmark-Beta method without impedance. 13
  • 18. Tom Schoehuijs June 3, 2016 8 Results For the results below, a single point has been oscillated up and down at a frequency of 6 MHz at the center, on a chip with 33 elements and N = 161 discretization points on the 5 by 5 mm chip, meaning h = 0.030864mm. N has been chosen as a rule of thumb for discretization is to take 10 points per wavelength. Additionally, a larger value for N would significantly increase the computation time, and from the chosen value of N we can effectively see the results of the different methods. We know that on the silicon chip there are 33 by 33 elements, meaning that for any 5 by 5 grid one chooses in Z, there is only 1 non-zero value. Having h → 0, or N → ∞, results in there being more discretization points between the elements on the transducer. Although this does not result in the physical difference between elements increasing, the effect of induced oscillations decreases due to the number of discretization points increasing. This is not realistic, as we have chosen to model the elements as single points, rather than a square consisting of multiple points. 8.1 Newmark-Beta Method The Newmark-Beta method was developed for the numerical evaluation of dynamic responses of structures and solids, to model dynamic systems. By using β = 1 4 the Newmark-Beta method simplifies to the Leapfrog method, which is stable for ∆t ≤ 2 ω = 1 πf . A smaller ∆t would cause the computer’s RAM to be full unnecessarily. Using the Newmark-Beta method we saw that we could use a time integration scheme to solve the biharmonic equation. We will use the Newmark-Beta method to test the solution to the simply supported boundaries problem graphically. If we look at the displacement levels across a line going though the middle of the chip, using the Newmark-Beta method, we see a very nice displacement wave. Using a line from one corner to the opposite corner, we see the following. 14
  • 19. Tom Schoehuijs June 3, 2016 (a) Diagonal profile of the Newmark-Beta method solution without impedance t = 0 (b) Diagonal profile of the Newmark-Beta method solution without impedance t = π (c) Diagonal profile of the Newmark-Beta method solution with impedance t = 0 (d) Diagonal profile of the Newmark-Beta method solution with impedance t = π Figure 3: Newmark-Beta method diagonal solution to the biharmonic equation with 1 oscillating disturbance. f = 6MHz We see in Figure 3 that the central peak does affect the other elements; we see a result akin to throwing a stone into a pool of still standing water, although limited to a small region. We also nicely see that adding impedance causes the disturbances to dampen slightly, compared to the diagonal profile of the Newmark-Beta method solution without impedance. We already know that discretizing the biharmonic function in Section 3 results in an error of O(h2 ), meaning that each method has a truncation error of at least O(h2 ). The specific instance of the Newmark-Beta method used, the Leapfrog method, is also second order[11] in time. Combining this with the local truncation error of the discretization of ∆2 , the biharmonic function, we see that the total error is O(h2 + ∆t2 ) for the Newmark-Beta method. It is important to compare the results in Sections 8.2 and 8.3 to the Newmark-Beta method in a stable situation. To test this we can allow the Newmark-Beta method to oscillate 10 times before making images, and compare this to the Newmark-Beta without initial oscillations. 15
  • 20. Tom Schoehuijs June 3, 2016 (a) Newmark-Beta method solution without impedance and without prior iterations t = π (b) Newmark-Beta method solution with impedance and without prior iterations t = π (c) Newmark-Beta method solution without impedance and with 10 prior iterations t = 21π (d) Newmark-Beta method solution with impedance and with 10 prior iterations t = 21π Figure 4: Comparing different scenarios for the Newmark-Beta method solutions. f = 6MHz We see in Figure 4 that allowing extra oscillations does not disturb the displacement, and we can therefore compare the solution to the simply supported boundary problem to the Newmark-Beta method, independent of how many oscillations the Newmark-Beta method has already made. It is also worth noting that we can clearly see that the images above adhere to the original Dirichlet boundary conditions, as well as that both these images have the same height of disturbance, in the order of 10−18 m. 16
  • 21. Tom Schoehuijs June 3, 2016 8.2 The Biharmonic Equation without Impedance 8.2.1 Simply Supported Boundary We found that when the boundary conditions in (4) are used, we can find u without having to iterate. Namely: u = Re  h2 eiωt A + w ρd D I −1 A − w ρd D I −1 δ   . (53) This results in the following images in Figure 5, which can be compared to the Newmark-Beta method solutions beneath them at the same time in the oscillation. (a) Simply supported boundary problem solution t = 0 (b) Simply supported boundary problem solution t = π (c) Newmark-Beta method solution t = 0 (d) Newmark-Beta method solution t = π Figure 5: Comparing the simply supported edge solution to the Newmark-Beta method solution, with 1 oscillating disturbance and no impedance. f = 6MHz The simply supported boundary problem can be solved without iterations, and is thus the easiest to compute. The results shown in Figure 5 show the silicon chip already in a stable harmonic situation. We see that using 17
  • 22. Tom Schoehuijs June 3, 2016 the solution to the simply supported boundary problem as an initial condition for the Newmark-Beta method leads to a stable situation, as the solution to the simply supported boundary problem has a similar shape to the Newmark-Beta method solution. It appears then that the solution to the simply supported boundary problem does produce induced oscillations, in a similar shape and pattern to the the Newmark-Beta method and without any discrepancy in the scale of the oscillating disturbance and induced oscillations. 8.2.2 Peisker Method Peisker’s method has been developed to approximate the solution to a coupled equation, while missing the boundary conditions for one of the coupled equations as is the case here. It requires a longer computation time, as more computations have to be made. Using the boundary conditions in (5) we found that we could iteratively find ˆu, and from this u, as φ(k) = A − w ρd D I −1 (h2 δ − 1 h2 λ(k) ), ˆu(k) = A + w ρd D I −1 φ(k) , λ(k+1) = λ(k+1) − ∂ ˆu(k) ∂n . (54) The results of this can be seen below in Figure 6. (a) Peisker method solution t = 0 (b) Peisker method solution t = π Figure 6: The Peisker method solution with 1 oscillating disturbance and impedance. f = 6MHz As shown in Section 5 the local truncation error of Peisker’s method is O(h), which is larger to that of the solution to the simply supported boundary problem. Furthermore, both these methods seem to be very similar; they both result in very similar images without any scale difference. It appears then that iterating produces images very similar to the solution to the simply supported boundary problem, although with a larger truncation error. The convergence of the Peisker method is shown below in 7. 18
  • 23. Tom Schoehuijs June 3, 2016 Figure 7: Peisker method without impedance convergence From this we see that this method converges very slowly. Peisker’s method was stopped after 100 iterations, as ∂u ∂n was changing very slowly. 8.3 The Biharmonic Equation with Impedance 8.3.1 Simply Supported Boundary Using the equation for u we found in (39) we saw that we can write u = Re eiωt ˆu = h2 Re eiωt A2 + w Y i D + w2 Q −1 δ . (55) By using the matrices described in Section 4, we can effectively find and plot u, resulting in the following images. 19
  • 24. Tom Schoehuijs June 3, 2016 (a) Simply supported boundary problem solution t = 0 (b) Simply supported boundary problem solution t = π (c) Newmark-Beta method solution t = 20π (d) Newmark-Beta method solution t = 21π Figure 8: Comparing the simply supported edge method solution to the Newmark-Beta method solution, with 1 oscillating disturbance and impedance. f = 6MHz We see in Figure 8 that the solution to the simply supported boundary problem again looks very similar to the solution to the Newmark-Beta method. From this we can assume then that the initial condition of the Newmark-Beta method, the solution to the simply supported boundary problem, is a stable solution of the biharmonic equation. It appears then that the simply supported boundary problem solution does work well in the case of the fourth-order biharmonic equation, with impedance. 20
  • 25. Tom Schoehuijs June 3, 2016 8.3.2 Peisker’s Method We have shown that Peisker’s method, for our impedance Z = 0, results in the iteration scheme φ(k) = A − w ρd D I −1 (h2 δ − 1 h2 λ(k) ), ˆu(k) = A + w ρd D I −1 φ(k) , λ(k+1) = λ(k+1) − ∂ ˆu(k) ∂n . (56) From this we see the following: (a) Peisker method solution t = 0 (b) Peisker method solution t = π Figure 9: The Peisker method solution with 1 oscillating disturbance and impedance. f = 6MHz In Figure 9 we again see that there is a large difference in the size of the peak of both methods. Comparing the shape of the Peisker method solution to the Newmark-Beta method solution we see that this method still has a much sharper peak compared to the Newmark-Beta method, just as in the previous situation with the Peisker method. This supports the idea that iterating, in contrast to the simply supported boundary problem which can be solved without iterating, does not result in images that are qualitatively closer to the Newmark-Beta method. The convergence of the Peisker method is shown below in 10. 21
  • 26. Tom Schoehuijs June 3, 2016 Figure 10: Peisker method with impedance convergence From this we see that this method converges very slowly. Peisker’s method was stopped after 100 iterations, as ∂u ∂n was changing very slowly. It is worth noting that Figure 10 looks almost identical to Figure 7, showing that the method converges independent of how the biharmonic equation is formulated or split. 22
  • 27. Tom Schoehuijs June 3, 2016 9 Conclusion As seen in the previous Section 8, the solution to the Peisker method and solution to the simply supported boundary seem very similar in shape to the solution to the Newmark-Beta method. The Peisker method and the non-iterative solution from the simply supported boundary problem clearly show induced oscillations on the transducer with the impedance turned on and off. The Newmark-Beta method shows the solution to the simply supported boundary problem to be a stable solution to the biharmonic equation. From this we can conclude that both the Peisker method and the solution to the simply supported boundary problem, are both accurate due to the qualitative and quantitative similarities with the images resulting from the Newmark-Beta method. This then seems to answer our original questions well; via the Peisker method, we can model the effects of induced oscillation on other transducers on a silicone chip via the harmonic equation well, as evidenced by its comparison to the Newmark-Beta method solution and the solution to the simply suppported boundary problem. Using two different boundary conditions and two different methods we can answer our initial research ques- tion; We can we model the effects of induced oscillation on other transducers on a silicone chip well via the Newmark-Beta method, Peisker’s method and the simply supported boundary problem. The Newmark-Beta method showed induced oscillations as a result from a periodic external force and results in an intuitive movement of oscillations throughout the transducer, just as the Peisker’s method and the simply supported boundary problem did. The simply supported boundary problem as programmed in Appendix 11.1.2 and11.1.7 can be more efficiently implemented than the Peisker model and the Newmark-Beta method (Appendix 11.1.4 and11.1.9), as there is no need for iterations, meaning there are fewer calculations. Thus, the simply supported boundary problem is preferred over the Newmark-Beta method due to its computation time and preferred over the Peisker method due to its computation time and smaller truncation error. The Peisker method as programmed in Appendix 11.1.3 and11.1.8 was the slowest as expected, requiring a lot of time to compute each step. The exact run times for one iteration are shown below in Table 1. Method or Problem Impedance Execution Time [s] Simply Supported Z = 0 47.7 Z = 0 52.5 Peisker Z = 0 75.0 Z = 0 52.0 Newmark-Beta Z = 0 62.5 Z = 0 77.6 Table 1: Comparing run times for different methods and problems using the same values for discretization spacing h and time step ∆t as used in Section 8 When splitting the discrete biharmonic equation into two separate terms in (26), we need to take the inverse of discretization matrix A a number of times. This is very difficult for computers and requires a great deal of processing time. Finding a way around this for future programs would speed up the execution time significantly, and could be done by finding another way to split the original biharmonic equation into two coupled equations. One of the biggest possible sources of error can be found while linearizing the impedance Z, as the actual function for Z does not appear to be linear, and deviates almost 15 MRayl sometimes from the linearization value of Z. Additionally, the central differentiation scheme used only incorporates 4 neighboring points. Perhaps a more comprehensive 12 point scheme would be better suited, although that would require much more computing power. While prescribing the boundary in (4) and (5) it was assumed that the glue used was just used on the edges, and that it is either completely elastic or inelastic. In reality, the glue is used to attach the whole silicone chip to the base plate, and is not completely elastic or inelastic. 23
  • 28. Tom Schoehuijs June 3, 2016 10 References [1] Guo Chen, Zhilin Li, and Ping Lin. A Fast Finite Difference Method for Biharmonic Equations on Irreg- ular Domains. Master’s thesis, North Carolina State University and National University of Singapore, 2008. [2] R. Courant, K. Friedrichs, and H. Lewy. On the Partial Difference Equations of Mathematical Physics. IBM Journal of Research and Development. Volume 11, n. 2. 1967. Pages 215-234. [3] Ciro D’Apice and Stan Chirita. Spatial Behavior for the Harmonic Vibrations in Plates of Kirchhoff Type. Journal of Inequalities in Pure and Applied Mathematics. Volume 4, n. 4. 2003. Article 65. [4] Robert Miner and Frederick J. Wicklin. Boundary Conditions. Website, April 1996. Accessed June 2nd, 2016. http://www.geom.uiuc.edu/education/calc-init/static-beam/boundary.html. [5] N. M. Newmark. A Method of Computation for Structural Dynamics. Journal of Engineering Mechanics. Volume 85, n. EM3. 1959. Pages 67-94. [6] P. Peisker. On the Numerical Solution of the First Biharmonic Equation. Mathematical Modeling and Numerical Analysis. Volume 22, n. 4. 1988. Pages 655-676. [7] Shreyas Raghunathan. Impedance data sent via email. Personal Communication, March 2016. [8] Endre S¨uli and David Mayers. An Introduction to Numerical Analysis. Cambridge University Press, 2003. Page 340. ISBN 0521007941. [9] S. Timoshenko and S. Woinowsky-Krieger. Theory of Plates and Shells. McGraw Hill Book Company, Inc, 1959. Page 92. ISBN 9780070647794. [10] Joseph Woo. A Short History of the Development of Ultrasound in Obstetrics and Gynecology. Website, November 2006. Accessed June 2nd, 2016. http://www.ob-ultrasound.net/history1.html. [11] Peter Young. The Leapfrog Method and other “Symplectic” Algorithms for Integrating Newton’s Laws of Motion. Course Handout, April 2014. Accessed June 2nd, 2016. http://young.physics.ucsc.edu/115/leapfrog.pdf. 24
  • 29. Tom Schoehuijs June 3, 2016 11 Appendix 11.1 Matlab Files 11.1.1 general.m general.m is used to initialize a host of variables, constants and matrixes so that these are easily adjusted across all four matlab scripts. clear variables close all %% Initializing variales epsilon = 1e-35; % afwijking spacing = 4; % h bepalen, 4 w = 2*pi*6e6; % frequency [Hz] images = 4; % 0 for off, 1 for video, more for images [png] points = 1; frames = 5; % how often image updated for NMB maxk = 100; maxi=6.5e-18; %% Initializing Constants N = 33+spacing*32; h = 5e-3/(N+1); % stap grootte [m] rho = 2329; % rho for silicon, [kg/m3] E = 159*10^9; % Young's Modulus for silicon, [kg/m s2] v = 0.3; % Poisson Ratio van MV c = 8433; % speed of wave in silicon from wiki d = 5e-4; % plate thickness [m] nu = 0.01; % kleine waarde D = E*d^3/(12*(1-v^2)); % flexural rigidity a = -2.581 + -7.683i; % Z = aw+b b = 1.875e+07+6.161e+07i; dt = 0.02/w; % for peisker and simply count = 0; %% Initializing matrixes T=toeplitz([-2,1,zeros(1,N-2)],[-2 1 zeros(1,N-2)]); A=(kron(T,speye(N))+kron(speye(N),T))./h^2; % algemene matrix Aw=f placeholder = speye(N^2); if spacing ~= 0 for i = 1:N % row if rem(i-1,spacing+1) == 0 % rij 1, 6, etc for j = 1:N % column if rem(j-1,spacing+1) ~= 0 placeholder((i-1)*N+j,(i-1)*N+j)=0; % j=2,3,4,5,7,8,9,etc placeholder((i-1)*N+j,(i-1)*N+j)=0; end end else % rij 2,3,4,5,7,8,9,etc 25
  • 30. Tom Schoehuijs June 3, 2016 for j = 1:N placeholder((i-1)*N+j,(i-1)*N+j)=0; placeholder((i-1)*N+j,(i-1)*N+j)=0; end end end end X = a*placeholder; Y = b*placeholder; if points > 1 reply = 'n'; while ~strcmpi('y',reply) try delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x) for i=1:points x = (round(rand*(N-3))+1)*N + round(rand*(N-3))+2; delta(x)=sign(rand-0.5)/h^2; % random in interior end P=reshape(real(delta),[N,N]); surf(h:h:h*N,h:h:h*N,P,'EdgeColor','none') % gradient(abs(P.*real(exp(1i*w*t)) )), set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency- numerical solution') title('Mesh grid of $delta$, clamped boundaries') axis([0 1 0 1 -1.1*max(max(P)) 1.1*max(max(P))]) figure(1) reply=input('Chosen points okay? Y/N [Y]:','s'); catch end end else delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x) delta(floor((N-1)/2)*N+ceil(N/2))=1./h^2; % middle end close all clear T a b points placeholder 11.1.2 simply.m simply.m computes the clamped boundary method solution for u. %% Direct Method for Simply Supported general fprintf('Running Simplyn') tic if images == 1 vid = VideoWriter('simply.avi'); open(vid) end %% Initializing matrixes Q = (X*1i-rho*d.*speye(N^2))./D; 26
  • 31. Tom Schoehuijs June 3, 2016 u = h^2*real((A^2+w*1i/D*Y+w^2*Q)delta); clear Q delta %% plotting U=zeros([N+2,N+2]); U(2:N+1,2:N+1)=reshape(u,[N,N]); figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical solution') for t=0:dt:2*pi/w surf(0:h:5e-3, 0:h:5e-3, U.*real(exp(1i*w*t)), del2(real(U)), 'EdgeColor', 'green') title('Mesh grid simply supported boundary problem') axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position [m]') ylabel('Position [m]') zlabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images > 1 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/simply%d', count),'-dpng') count = count + 1; end end if images == 1 close(vid) end toc close all clear variables 11.1.3 peisker.m peisker.m computes the Peisker method solution for u. %% Peisker Method general fprintf('Running Peiskern') tic if images == 1 vid = VideoWriter('frequency.avi'); open(vid) end %% Initializing matrixes test=-epsilon.*ones(maxk-1,3); % test matrix Q = (X*1i-rho*d.*speye(N^2))./D; 27
  • 32. Tom Schoehuijs June 3, 2016 %% Iterations k=1; % stap teller lambdak = zeros(N^2,1); % kies start lambda dudn=zeros(N^2,1); dudn(1)=1; % placeholder while max(abs(dudn)) > epsilon && k < maxk && max(abs(dudn)) < 10 b=h^2.*delta-lambdak./h^2; v=Ab; % Now solve for u=PAb met u op rand gelijk aan 0 u=(A+AY*w*1i/D+w^2*AQ)b; % oplossen voor du/dn op rand dudn=zeros(N^2,1); dudn(2:N-1) = - u(2:N-1)./h; % top dudn((N-1)*N+2:N^2-1) = - u((N-1)*N+2:N^2-1)./h; % bottom for m = 1 : N dudn(m*N) = dudn(m*N) - u(m*N)./h; % left dudn((m-1)*N+1) = dudn((m-1)*N+1) - u((m-1)*N+1)./h; % right end lambdak = lambdak - dudn; % new lambda test(k,1)=max(abs(dudn)); test(k,2)=max(max(abs(u))); test(k,3)=max(max(abs(lambdak))); k=k+1; % volgende iteratie end %% plotting U=zeros([N+2,N+2]); U(2:N+1,2:N+1)=reshape(u,[N,N]); figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical solution') for t=0:dt:2*pi/w surf(0:h:5e-3, 0:h:5e-3, real(U.*exp(1i*w*t)), del2(real(U)), 'EdgeColor', 'green') title('Mesh grid Peisker Method') axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position [m]') ylabel('Position [m]') zlabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images > 1 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/peisker%d ',count),'-dpng') count = count + 1; 28
  • 33. Tom Schoehuijs June 3, 2016 end end if images == 1 close(vid) end %% Testing close all if k > 2 figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'Name','Iteration convergance','MenuBar','none','NumberTitle','off') leg={'$delta$u/$delta$n','max(u)','max($lambda$)'}; for n=1:3 subplot(1,3,n) plot(1:k-1,test(1:max(k-1),n)) axis([1 k-1 0 max(test(1:k-1,n))]) xlabel('k') ylabel(leg{n}) end drawnow if images > 1 print('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/convergence','- dpng') end end toc clear variables 11.1.4 newmark.m newmark.m computes the Newmark-Beta method solution for u. %% Time integration Method (Newmark-Beta) general fprintf('Running Newmark-Betan') tic if images == 1 vid = VideoWriter('newmark.avi'); open(vid) end dt = 1/w*6e-3; Z=X*w+Y; %% Determine Initial Conditions Q = (X*1i-rho*d.*speye(N^2))./D; u{1} = h^2*real((A^2+w*1i/D*Y+w^2*Q)delta); clear v v{1} = -w*imag(u{1}); f{1} = delta * D * h^2; 29
  • 34. Tom Schoehuijs June 3, 2016 U=zeros([N+2,N+2]); clear X Y T E epsilon c maxk Q %% Make images figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta solution') framer = 0; for t = dt:dt:2*pi/w f{2} = delta * real(exp(1i*w*t)) * D * h^2; u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+(speye(N^2)*dt - dt^2/(2*rho*d)*Z)*v {1}+dt^2*f{1}/(2*rho*d); v{2} = (2*rho*d*speye(N^2)+dt*Z)((2*rho*d*speye(N^2) - dt*Z)*v{1} + dt*(-D*A^2*u{1} - D*A^2*u{2} + f{1} + f{2})); if rem(round(t/dt)-1,frames) == 0 U(2:N+1,2:N+1)=reshape(real(u{2}),[N,N]); surf(0:h:5e-3, 0:h:5e-3, U, 'EdgeColor','green') title('Mesh grid Newmark-Beta Method') if max(max(abs(U))) > 1.1*maxi maxi=max(max(abs(U))); end axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position [m]') ylabel('Position [m]') zlabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/ newmark%d',count),'-dpng') count = count + 1; end framer=framer+1; end u{1}=u{2}; v{1}=v{2}; f{1}=f{2}; end if images == 1 close(vid) end toc close all clear variables 30
  • 35. Tom Schoehuijs June 3, 2016 11.1.5 diagonal.m diagonal.m computes the diagonal displacement profile for the Newmark-Beta method solution. %% Time integration Method Diagonal (Newmark-Beta) general fprintf('Running Diagonal Newmark-Beta Profilen') tic if images == 1 vid = VideoWriter('diagonal.avi'); open(vid) end dt = 1/w*7e-3; Z=X*w+Y; %% Determine Initial Conditions Q = (X*1i-rho*d.*speye(N^2))./D; u{1} = h^2*real((A^2+w*1i/D*Y+w^2*Q)delta); clear v Q v{1} = -w*imag(u{1}); f{1} = delta * D * h^2; x=zeros(1,N+2); clear X Y T E epsilon c maxk %% Waardes uitrekenen figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta solution') framer = 0; for t = dt:dt:2*pi/w f{2} = delta * real(exp(1i*w*t)) * D * h^2; u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+(speye(N^2)*dt - dt^2/(2*rho*d)*Z)*v {1}+dt^2*f{1}/(2*rho*d); v{2} = (2*rho*d*speye(N^2)+dt*Z)((2*rho*d*speye(N^2) - dt*Z)*v{1} + dt*(-D*A^2*u{1} - D*A^2*u{2} + f{1} + f{2})); if rem(round(t/dt)-1,frames) == 0 for i = 1 : N x(i+1) = real(u{2}(N*(i-1)+i)); end if max(abs(x)) > 1.1*maxi maxi=max(abs(x)); end plot(sqrt(2)*(0:h:5e-3),x) title('Newmark-Beta Diagonal') axis([0 5e-3*sqrt(2) -1.1*maxi 1.1*maxi]) xlabel('Position along diagonal [m]') ylabel('Displacement [m]') set(gca,'fontsize',20) drawnow 31
  • 36. Tom Schoehuijs June 3, 2016 if images == 1 writeVideo(vid,getframe); % save frames elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/ diagonal%d',count),'-dpng') count = count + 1; end framer=framer+1; end u{1}=u{2}; v{1}=v{2}; f{1}=f{2}; end if images == 1 close(vid) end toc close all clear variables 11.1.6 Z0general.m Z0general.m is used to initialize a host of variables, constants and matrixes so that these are easily adjusted across all four matlab scripts, all without impedance. clear variables close all %% Initializing variales epsilon = 1e-14; % afwijking spacing = 4; % h bepalen w = 2*pi*6e6; % frequency [Hz] images = 4; % 0 for off, 1 for video, more for images [png] points = 1; frames = 5; % how often image updated for NMB dt = 0.02/w; % for peisker and simply maxk = 100; maxi=6.5e-18; %% Initializing Constants N = 33+spacing*32; h = 5e-3/(N+1); % stap grootte [m] rho = 2329; % rho for silicon, [kg/m3] E = 159*10^9; % Young's Modulus for silicon, [kg/m s2] v = 0.3; % Poisson Ratio van MV c = 8433; % speed of wave in silicon from wiki d = 0.5/1000; % plate thickness [m] nu = 0.01; % kleine waarde D = E*d^3/(12*(1-v^2)); % flexural rigidity count = 0; 32
  • 37. Tom Schoehuijs June 3, 2016 %% Initializing matrixes T=toeplitz([-2,1,zeros(1,N-2)],[-2 1 zeros(1,N-2)]); A=(kron(T,speye(N))+kron(speye(N),T))./h^2; % algemene matrix Aw=f if points > 1 reply = 'n'; while ~strcmpi('y',reply) try delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x) for i=1:points x = (round(rand*(N-3))+1)*N + round(rand*(N-3))+2; delta(x)=sign(rand-0.5)/h^2; % random in interior end P=reshape(real(delta),[N,N]); surf(h:h:h*N,h:h:h*N,P,'EdgeColor','none') % gradient(abs(P.*real(exp(1i*w*t)) )), set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency- numerical solution') title('Mesh grid of $delta$, clamped boundaries') axis([0 1 0 1 -1.1*max(max(P)) 1.1*max(max(P))]) figure(1) reply=input('Chosen points okay? Y/N [Y]:','s'); catch end end else delta = zeros([N^2 1]); % f_external = D * exp(iwt) * delta(x) delta(floor((N-1)/2)*N+ceil(N/2))=1./h^2; % middle end close all clear T a b points 11.1.7 Z0simply.m Z0simply.m computes the clamped boundary method solution for u without impedance. %% Direct Method for simply supported Z0general fprintf('Running simply, Z=0n') if images == 1 vid = VideoWriter('Z0simply.avi'); open(vid) end tic %% Initializing matrixes M1=(A-speye(N^2)*sqrt(rho*d/D)*w); M2=(A+speye(N^2)*sqrt(rho*d/D)*w); M3=M2delta; u=h^2*real(M1M3); 33
  • 38. Tom Schoehuijs June 3, 2016 clear M1 M3 M2 delta M A %% plotting U=zeros([N+2,N+2]); U(2:N+1,2:N+1)=reshape(u,[N,N]); figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical solution Z=0') for t=0:dt:2*pi/w surf(0:h:5e-3, 0:h:5e-3, real(U.*exp(1i*w*t)), 'EdgeColor', 'green') % gradient(abs(P .*real(exp(1i*w*t)))), title('Mesh grid simply supported boundary problem $Z=0$') axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position [m]') ylabel('Position [m]') zlabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images ~= 0 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0simply%d ',count),'-dpng') count = count + 1; end end if images == 1 close(vid) end toc close all clear variables 11.1.8 Z0peisker.m Z0peisker.m computes the Peisker method solution for u without impedance. %% Peisker Method Z0general fprintf('Running Peisker, Z=0n') if images == 1 vid = VideoWriter('frequency.avi'); open(vid) end tic %% Initializing matrixes test=-epsilon.*ones(maxk-1,3); % test matrix %% Iterations k=1; % stap teller lambdak = zeros(N^2,1); % kies start lambda 34
  • 39. Tom Schoehuijs June 3, 2016 dudn=zeros(N^2,1); dudn(1)=1; % placeholder while max(abs(dudn)) > epsilon && k < maxk b=h^2.*delta-lambdak./h^2; % solve for (A-Z)v=f in omega met v op rand gelijk aan lambda v=(A+w*sqrt(rho*d/D)*speye(N^2))b; % Now solve for (A+Z)u=v met u op rand gelijk aan 0 u=(A-w*sqrt(rho*d/D)*speye(N^2))v; % oplossen voor du/dn op rand dudn=zeros(N^2,1); dudn(2:N-1) = - u(2:N-1)./h; % top dudn((N-1)*N+2:N^2-1) = - u((N-1)*N+2:N^2-1)./h; % bottom for m = 1 : N dudn(m*N) = dudn(m*N) - u(m*N)./h; % left dudn((m-1)*N+1) = dudn((m-1)*N+1) - u((m-1)*N+1)./h; % right end lambdak = lambdak - dudn; % new lambda test(k,1)=max(abs(dudn)); test(k,2)=max(max(abs(u))); test(k,3)=max(max(abs(lambdak))); k=k+1; % volgende iteratie end %% plotting U=zeros([N+2,N+2]); U(2:N+1,2:N+1)=reshape(u,[N,N]); figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Biharmonic frequency-numerical solution Z=0') for t=0:dt:2*pi/w surf(0:h:5e-3, 0:h:5e-3,real(U.*exp(1i*w*t)),del2(real(U)),'EdgeColor','green') title('Mesh grid Peisker Method $Z=0$') axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position [m]') ylabel('Position [m]') zlabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images ~= 0 && rem(t/dt,round(2*pi/w/dt/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0peisker% d',count),'-dpng') count = count + 1; end end 35
  • 40. Tom Schoehuijs June 3, 2016 if images == 1 close(vid) end %% Testing close all if k > 2 figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'Name','Iteration convergance Z=0','MenuBar','none','NumberTitle','off') leg={'$delta$u/$delta$n','max(u)','max($lambda$)'}; for n=1:3; subplot(1,3,n) plot(1:k-1,test(1:max(k-1),n)) axis([1 k-1 0 max(test(1:k-1,n))]) xlabel('k') ylabel(leg{n}) end drawnow if images > 1 print('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/convergenceZ0','- dpng') end end toc clear variables 11.1.9 Z0newmark.m Z0newmark.m computes the Newmark-Beta method solution for u without impedance. %% Time integration Method (Newmark-Beta) Z0general fprintf('Running Newmark-Beta, Z=0n') tic if images == 1 vid = VideoWriter('Z0newmark.avi'); open(vid) end %% Find Initial Conditons from SSP M1=(A-speye(N^2)*sqrt(rho*d/D)*w); M2=(A+speye(N^2)*sqrt(rho*d/D)*w); M3=M2delta; u{1}=h^2*real(M1M3); clear M1 M3 M2 M v dt = 1/w*7e-3; % start waardes toekennen v{1}=-w*imag(u{1}); f{1} = delta * D * h^2; 36
  • 41. Tom Schoehuijs June 3, 2016 U=zeros([N+2,N+2]); clear X Y T E epsilon c maxk %% Calculate and plot figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta solution Z=0') framer = 0; for t = dt:dt:2*pi/w f{2} = delta * real(exp(1i*w*t)) * D * h^2; u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+dt*v{1}+dt^2*f{1}/(2*rho*d); v{2} = v{1} + dt/(2*rho*d)*(-D*A^2*u{1} - D*A^2*u{2} + f{1} + f{2}); if rem(round(t/dt)-1,frames) == 0 U(2:N+1,2:N+1)=reshape(u{2},[N,N]); if max(max(abs(real(U)))) > 1.1*maxi maxi=max(max(abs(real(U)))); end surf(0:h:5e-3, 0:h:5e-3,real(U),'EdgeColor','green') title('Mesh grid Newmark-Beta $Z=0$') axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position [m]') ylabel('Position [m]') zlabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count < images print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0 newmark%d',count),'-dpng') count = count + 1; end if framer == 130 pause(0.1) end framer=framer+1; end u{1}=u{2}; v{1}=v{2}; f{1}=f{2}; end if images == 1 close(vid) end toc close all clear variables 11.1.10 Z0diagonal.m Z0diagonal.m computes the diagonal displacement profile for the Newmark-Beta method solution without impedance. 37
  • 42. Tom Schoehuijs June 3, 2016 %% Time integration Method test (Leapfrog) Z0general fprintf('Running diagonal, Z=0n') tic if images == 1 vid = VideoWriter('Z0diagonal.avi'); open(vid) end %% Find Initial Conditons from SSP M1=(A-speye(N^2)*sqrt(rho*d/D)*w); M2=(A+speye(N^2)*sqrt(rho*d/D)*w); M3=M2delta; u{1}=h^2*real(M1M3); clear M1 M3 M2 M v dt = 1/w*7e-3; % start waardes toekennen v{1}=-w*imag(u{1}); f{1} = delta * D * h^2; x=zeros(1,N+2); clear X Y T E epsilon c maxk %% Calculate and plot figure('units','normalized','outerposition',[0 0 1 1]) set(gcf,'MenuBar','none','NumberTitle','off','Name','Newmark-Beta diagonal solution Z=0') framer = 0; for t = dt:dt:2*pi/w f{2} = delta * real(exp(1i*w*t)) * D * h^2; u{2} = (speye(N^2)-dt^2*D/(2*rho*d)*A^2)*u{1}+dt*v{1}+dt^2*f{1}/(2*rho*d); v{2} = v{1} + dt/(2*rho*d)*(-D*A^2*u{1} - D*A^2*u{2} + f{1} + f{2}); if rem(round(t/dt)-1,frames) == 0 for i = 1 : N x(i+1) = real(u{2}(N*(i-1)+i)); end if max(abs(x)) > 1.1*maxi maxi=max(abs(x)); end plot(sqrt(2)*(0:h:5e-3),x) title('Newmark-Beta Diagonal Z=0') axis([0 5e-3 0 5e-3 -1.1*maxi 1.1*maxi]) xlabel('Position along diagonal [m]') ylabel('Displacement [m]') set(gca,'fontsize',20) drawnow if images == 1 writeVideo(vid,getframe); % save frames elseif images > 1 && rem(framer, round(2*pi/w/dt/frames/images)) == 0 && count < images 38
  • 43. Tom Schoehuijs June 3, 2016 print(sprintf('B:/Users/TSchoehuijs/OneDrive/TU Delft/BEP/Thesis/images/Z0 diagonal%d',count),'-dpng') count = count + 1; end framer=framer+1; end u{1}=u{2}; v{1}=v{2}; f{1}=f{2}; end if images == 1 close(vid) end toc close all clear variables 39