Table of Contents
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
System Identification . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Structural Identification . . . . . . . . . . . . . . . . . . . . . .
1.3.1
1.3.2
1.4
tems . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3
1.3.4
2 Theoretical Basis
2.1
2.2
10
Transform Relationships . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1
SDOF Systems . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2
MDoF Systems . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.3
State-Space concept
. . . . . . . . . . . . . . . . . . . . 17
Signal analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1
2.2.2
2.2.3
Autospectrum . . . . . . . . . . . . . . . . . . . . . . . . 21
Table of Contents
2.3
2.2.4
Cross-spectrum . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.5
Coherence . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4
2.5
Input/Output Relations . . . . . . . . . . . . . . . . . . 27
Data Acquisition . . . . . . . . . . . . . . . . . . . . . . 31
2.4.2
Data conversion . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.3
2.5.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.1.1
3.2
Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.1
3.3
51
AutoEFDD method . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3.1
3.3.2
3.3.3
3.4
3.5
Results management . . . . . . . . . . . . . . . . . . . . 70
3.4.2
AutoSSI method . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.5.1
Table of Contents
4 Program code
4.1
4.2
80
Interface description . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2.1
Opening function . . . . . . . . . . . . . . . . . . . . . . 91
4.2.2
4.2.3
Identification panel . . . . . . . . . . . . . . . . . . . . . 99
4.2.4
4.2.5
5.2
5.4
5.3.2
5.5
5.3
126
5.5.2
Abstract
Negli ultimi decenni lanalisi modale diventata una risorsa sempre pi
importante nel contesto dellidentificazione strutturale.
....
In questa tesi si presenta una forma di implementazione del metodo Enhanced
Frequency Domain Decomposition in codice Matlab, tale da permettere il calcolo del fattore di smorzamento per unanalisi modale di tipo output-only.
inoltre documentato lo sviluppo del codice che costituisce linterfaccia di
utilizzo del sistema integrato di monitoraggio strutturale dinamico, il quale
implementa i metodi EFDD e SSI.
Chapter 1
Overview of Structural
Identification
1.1
Introduction
During the last few decades modal analysis has become an increasingly important resource in identifying, monitoring and optimization of the dynamic
characteristics of civil structures. The increasingly demanding safety requirements introduced in the regulatory framework related to the structural field
created new challenges for the scientific understanding of existing structures.
In the Italian context, characterized by a high seismic risk, it is necessary not
only to design new earthquake-resistant structures, but above all to be able
to identify the dynamic behaviour of existing structures and monitor them
over time in order to ensure structural safety, since existing structures built
before the seismic regulations represent almost the totality. Particular attention must be placed on structures of historical and structures of a strategic
nature. Current design and assessment procedures do not have any quantitative linkage to actual constructed systems; such gaps are filled by qualitative
observation, anecdotal experiences, or laboratory studies rooted in reductionism. By means of the methods and tools discussed later in this thesis, we try
to develop a model of structural identification that provides a scientific and
objective description of some of the parameters of the existing structure.
CONTINUA
1
1.2
System Identification
1.3
Structural Identification
1.3.1
There are several scenarios for which the introduction of a model of structural
identification would be advisable. Examples include [? ]:
1. Design verification and construction planning in case of challenging new
designs.
2. A means of measurement-based delivery of a design-built contract in a
performance -based approach.
3. Documentation of as-is structural characteristics to serve as a baseline for
assessing any future changes due to ageing and deterioration, following
hazards, etc.
4. Load-capacity rating for inventory, operation or special permits.
5. Evaluation of possible causes and mitigation of deterioration damage
and/or other types of performance deficiencies.
6. Structural intervention, modification, retrofit or hardening due to changes
in use-modes, codes, ageing, and/or for increasing system-reliability to
more desiderable levels,
7. Health and performance monitoring for operational and maintenance
management of large systems.
8. Asset management of a population of constructed systems.
3
1.3.2
1.3.3
Generally existing analytical methods can be broadly classified as two categories, physics-based models and non-physics-based models, as shown in Table.
Physics-based models are often preferred because most of the associated model
parameters always have a clear physical meaning behind them:
Non-physics-based models
1. Laws of Mechanics
1. Semantic Models
(a) Ontologies
2. Continua Models
2. Meta Models
tions (e.g.
Beam theories
(c) Mathematical
of Bernoulli, Timoshenko,
Osgood, etc.)
(Ramberg-
Vlasov)
3. Numerical Models
3. Discrete Geometric
(a) Probabilistic Models
(a) Idealized macro or element
level models (e.g. idealized
grillage models)
i. Historigrams
to
Fre-
quency Distribution
ii. Standard Prob. Distri-
butions
iv. Event-based
parameters
v. Time-based
vi. Symptom-based
1.3.4
Once the model form has been chosen, an appropriate technique must be selected in order to identify the parameters of that model. This selection depends
on many factors, including the details of the instrumented degrees of freedom,
the availability of measured input excitation, and the nature of the excitation
of the system.
Traditional experimental modal analysis (EMA) makes use of input (excitation) and output (response) measurements to estimate modal parameters, consisting of modal frequencies, damping ratios, mode shapes and modal participation factors [? ]. In the last four decades numerous modal identification
algorithms have been developed, in Time Domain (TD), Frequency Domain
(FD) and Spatial Domain (SD):
Single-Input/Single-Output (SISO)
Single-Input/Multi-Output (SIMO)
Multi-Input/Multi-Output (MIMO)
Traditional EMA has some major limitations. It requires artificial excitation
in order to measure Frequency Response Functions (FRFs), or Impulse Response Functions (IRFs); its normally conducted in lab environment, and it
is difficult to use to determine FRF or IRF for large structures; to use it in a
lab environment it is required to simulate reasonable boundary condition.
Operational modal analysis (OMA) has attracted great attention since early
6
Output-only modal identification methods can be performed in frequency domain or in time domain.
1.4
As previously introduced, in output-only modal testing, the testing is normally done by just measuring the responses under the natural (ambient or
operational) conditions. This avoids the need to interrupt the ordinary use of
the structure in analysis. This means, for instance, that if a bridge is going to
be tested, the bridge traffic and normal operation need not to be interrupted
during the test and will be used as the excitation source. The response of the
structure to the loading, as well as to natural excitations acting on it, will be
measured and used to perform an output-only modal identification.
Since the early 1990s, OMA has been the centre of attention in civil, mechanic
7
Chapter 2
Theoretical Basis
The purpose of this chapter is to provide the theoretical basis necessary for
a proper understanding of the dynamic identification system considered and
developed within this thesis. The dynamic identification methods used in
Operational Modal Analysis make use of sets of measuring accelerations experienced by the structure in response to ambient excitation without exerting
any controlled excitation. The methods defined in the frequency domain work
by calculating the frequency response functions (FRF) from which the modal
parameters of the structure are derived. The FRF are typically obtained by
application of the Fast Fourier Transform (FFT). This chapter is developed
following a logical path that first introduces the fundamental concepts (such
as frequency response functions and impulse response functions) in the context
of classical structural mechanics (initially for simple SDoF systems, then for
MDoF systems), then considers them in the context of signal analysis. It is
therefore important to understand how the random signals are acquired and
processed in digital format. It is then indicated how the relations (functions
of frequency response) between the input data and output data in the system are obtained. The considered system, in respect to the assumptions of
operational modal analysis, is a system of the multi-input/multi-output type.
Finally, the theoretical basis of the two methods in the dynamic identification
system considered in the thesis are addressed: the FDD and SSI methods.
10
2.1
Transform Relationships
The theory from the vibrations point of view requires the comprehension of how
the structural parameters of mass damping, and stiffness relate to the impulse
response function (time domain), the frequency response function (Fourier, or
frequency domain), and the transfer function (Laplace domain) for single and
multiple degree of freedom systems.
The relationships between time, frequency, and Laplace domains, with respect
to a structural system, are the integral transforms (Fourier and Laplace) that
reflect the information contained by the governing differential equations transformed to each domain.
Adopting a digital approach to the measurement data leads to consider the discrete case, for which the relationships are represented by discrete transforms
(Discrete Fourier Transform, Z Transform).
Both in the continuous case that in the discrete case, the transform process involves a change of independent variable which represents the change from one
domain to another. The transformed variable must be the variable of interest,
and the transform process must be computationally simple but unique, and it
should not lead to loss of data.
2.1.1
SDOF Systems
Single degree of freedom systems, evaluated in the time, frequency, and Laplace
domains serve as the basis for many of the models that are used in modal
parameter estimation. In fact, the multiple degree of freedom case can be
viewed as a linear superposition of single degree of freedom systems [? ].
(2.1.1)
where:
M = Mass constant
C = Damping constant
K = Stiffness constant
By setting f (t) = 0, the homogeneous form of the general equation can be
solved:
M x(t) + C x(t)
+ Kx(t) = 0
(2.1.2)
(2.1.3)
(2.1.4)
where:
s = Complex-valued frequency variable (Laplace variable)
The previous equation is the characteristic equation of the system, whose roots
1 and 2 are:
1,2
C
=
2M
(
C
2M
2
) 21
(2.1.5)
(2.1.6)
A and B are constants determined from the initial conditions imposed on the
system at time t = 0.
For most real structures the damping ratio is rarely greater than 10% and all
12
1 = 1 + j1
(2.1.7)
where:
1 = Damping factor.
1 = Damped natural frequency.
The root of the characteristic Equation can also be written as:
1 , 1 = 1 1 j1
1 1 2
(2.1.8)
The damping factor 1 is defined as the real part of a root of the characteristic
equation and it describes the exponential decay or growth of the oscillation.
h(t) = e1 t Ae+j1 t + A ej1 t
(2.1.9)
(2.1.10)
The residue A controls the amplitude of the impulse response, the real part of
the pole is the decay rate and the imaginary part of the pole is the frequency
of oscillation.
13
(2.1.11)
Mathematically, x(t) consists of a number of sinusoids with frequencies multiple to a fundamental frequency. The fundamental frequency f is set by the
period such that f = T1 . The amplitude of the k th sinusoid can be determined
by:
1
X(fk ) =
T
T /2
x(t)e
j2kt
T
dt
(2.1.12)
T /2
where:
fk is the kth frequency
e
j2kt
T
(2.1.13)
(2.1.14)
where:
B() = M 2 + jC + K
The system response X() is directly related to the system forcing function
F () through the quantity B() known as the impedance function.
If The system forcing function F () and its response X() are known, B()
can be calculated:
B() =
14
F ()
X()
(2.1.15)
(2.1.16)
where:
H() =
1
M 2 +jC+K
The FRF relates the Fourier transform of the system input to the Fourier
transform of the system response. The FRF can be defined as:
H() =
X()
F ()
(2.1.17)
M 2
1
1/M
=
C
K
2
+ jC + K
+ j M
+ (M
)
(2.1.18)
The frequency response function H() can also be written as a function of the
complex poles as follows:
H() =
A
A
1/M
=
+
(j 1 )(j 1 )
(j 1 ) (j 1 )
(2.1.19)
where:
1 = Complex pole
1 = + j1
1 = j1
The frequency response function is a complex valued function of a real valued
independent variable ().
Frequency response functions are of particular importance for the identification
techniques in the frequency domain.
15
(2.1.20)
= iXeit
(2.1.21)
(2.1.22)
X
F
(2.1.23)
Other types of FRF can be obtained, using the derived forms of the displacement. When the response parameter is velocity, the FRF is called mobility,
and when its acceleration the FRF is called inertance.
f (t)est dt
(2.1.24)
In the context of vibration and modal analysis, this limit exists and is a function of s that is called the Laplace variable. In fact, the integration constitutes
a transformation from the time domain signal f (t) to the s domain.
An important use of Laplace transform in modal analysis is to convert a differential equation into an algebraic equation. For a SDoF system.
Assuming all initial conditions to zero, can apply the Laplace transform on the
equation of motion, yielding an algebraic equation:
M s2 X(s) + CsX(s) + KX(s) = P (s)
16
(2.1.25)
M s2
1
P (s)
+ Cs + K
(2.1.26)
The transfer function of the system, which defines the relationship between
the force input and the response in displacement, can be found as:
G(s) =
X(s)
1
=
2
P (s)
M s + Cs + K
(2.1.27)
This transfer function becomes the frequency response function when only the
imaginary part of the s operator is considered:
G(j) =
2.1.2
X(j)
1
=
2
P (j)
M + Cj + K
(2.1.28)
MDoF Systems
The real application of modal analysis concepts considers a multiple degreeof-freedom system, for a continuous non-homogeneous structure described as
a lumped mass. CONTINUA
2.1.3
State-Space concept
The state space system model is frequently used in control and has also found
applications in modal analysis. It can be applied in both the frequency and
time domains. The main advantage of the state space form is that it reduces
the second order differential equation that describes the system into two first
order equations.
A state-space model is a different representation of the input-output relationship compared to the transfer or frequency response function approach [? ].
The state of a dynamic system is the smallest set of variables which, together
with the future inputs to the system, can determine the dynamic behaviour
of the system, so the state at a time t is uniquely determined by the state at
time t0 and the inputs at time t > t0 .
Considering the SDoF system, governed by:
M y + C y + Ky = f (t)
17
(2.1.29)
Y (s)
1
=
2
F (s)
M s + Cs + K
(2.1.30)
x2 (t) = x 1 (t)
(2.1.31)
1
C
K
f (t) x2 (t) x1 (t)
M
M
M
(2.1.32)
(2.1.33)
The state equations, which use only the first derivatives, can be used to represent the dynamics of the system.
For a MIMO system we can define n state variables x1 (t), x2 (t), ..., xn (t) such
that each variable is the integrator of the one after it in the time domain, r
inputs u1 (t), u2 (t), ..., ur (t) and p outputs y1 (t), y2 (t), ..., yp (t). The state-space
equations can be written in the following shape:
{x(t)}
(2.1.34)
(2.1.35)
The first equation is known as the state equation, while the second one is known
as the output equation.
A is known as the system matrix or state transition matrix,B as the input
matrix, C as the output matrix, D is the direct transmission matrix. For the
SDoF system, the differential equation of the system can be recast as:
{y} = Ca M 1 K Ca M 1 C2 {x} + Ca M 1 B2 {u}
y = Cx + Du
(2.1.36)
(2.1.37)
where Ca is the output location matrix for acceleration measurements (displacement and velocity can also be included), and B2 relates the inputs to
18
The discrete time state space model is more applicable in modal analysis where
measurement data is sampled, and may be expressed as:
xk+1 = Ad xk + Bd uk
yk = Cd xk + Dd uk
(2.1.38)
where the system matrices are related to their continuous time counterparts
by Ad = eAc t ,
Bd = (Ad I)A1
c Bc ,
Cd = Cc ,
Dd = Dc . An eigenvalue
decomposition of Ad yelds:
.
Ad =
..
i
...
(2.1.39)
where the eigenvectors are identical to the continuous time case, and the eingenvalues are related to the continuous time eigenvalues by = e1 t . The
modal participation matrix and observed mode shapes are expressed as for the
continuous case.
Of greater relevance to OMA is the stochastic state space model which includes
noise terms:
xk+1 = Ad xk + Bd uk + wk
yk = Cd xk + Dd uk + vk
(2.1.40)
where wk and vk are both unmeasurable, zero mean, white noise. The relevance
of this model to OMA will be discussed in the SSI section.
2.2
Signal analysis
2.2.1
An ideal system is one that has constant parameters and is linear between
the input and the output (or response). The dynamic characteristics of a
constant-parameter linear system can be described by an impulse response
function h( ), also called the wheightingf unction. For any arbitrary input
x(t), the system output y(t) is given by:
Z
y(t) =
h( )x(t )d
(2.2.1)
2.2.2
f or < 0
(2.2.2)
The dynamic characteristics of a constant-parameter linear system can be described by a frequency response function H(), which is defined as the Fourier
transform of the impulse response function h( ):
Z
h( )ej2 d
H() =
(2.2.3)
The frequency response function is a special case of the transfer function defined by the Laplace transform, where the complex variable has the real part
equal to zero. Taking the Fourier transform of the input X(), and the Fourier
transform of the output Y (), it follows that:
Y () = H() X()
(2.2.4)
(2.2.5)
2.2.3
Autospectrum
(2.2.7)
The autospectrum is a function computed from the instantaneous Fourier spectrum as:
SAA () = E [A()A() ] = FE [a(t) a(t)] = F [Raa ( )]
(2.2.8)
(2.2.9)
A () = |A()|ejA ()
(2.2.10)
(2.2.11)
2.2.4
Cross-spectrum
Given two signals, a(t) and b(t), the cross-correlation function is defined as:
Z
1
Rab ( ) = lim
T T
a(t)b(t + )dt
(2.2.12)
Rab ( )ej2 d
SAB () =
(2.2.13)
(2.2.14)
where:
A() = |A()| ejA ()
(2.2.15)
(2.2.16)
(2.2.17)
22
2.2.5
Coherence
Coherence value varies from zero to one. A coherence value of zero indicates
that there is no correlation between the two variables, whilst a coherence value
of one means a perfectly linear relationship
0 2 () 1
(2.2.19)
Coherence function provides useful information only when spectra GAA (),
GBB () and GAB () are estimates, i.e. spectra averaged from more records.
In case of no averaging, coherence is always equal to 1.
noise. The same happens at the output end. The measured response X()
encompasses both the true response X() and the noise from the output N ().
They are not correlated so that SN X () = 0.
A dual channel analyzer allows three alternative estimates, defined using the
auto-spectrum and the cross-spectrum:
s
H3 () =
H1 () =
GAB ()
GAA ()
(2.2.20)
H2 () =
GBB ()
GBA ()
(2.2.21)
p
GBB () GAB ()
= H1 () H2 ()
GAA () |GAB ()|
(2.2.22)
|GAB ()|2
H1 ()
=
GAA () GBB ()
H2 ()
(2.2.23)
The choice of the best estimate depends on whether there is noise on the input
or output.
V ()
A()
(2.2.24)
GAB
GAV
=
=H
(2.2.25)
GAA
GAA
In case of noise-influenced output H1 is an exact estimator of the FRF.
H1 () =
24
B()
U ()
(2.2.26)
GBB
GBB
=
=H
(2.2.27)
GBA
GBU
In case of noise-influenced output H2 is an exact estimator of the FRF.
H2 () =
2.3
An observed data representing a physical phenomenon can be broadly classified as being either deterministic or non-deterministic. Non-deterministic data
are those that cant be described by an explicit mathematical relationship, for
which there is no way to predict an exact value at a future instant of time.
These data are random in character and must be described in terms of probability statements and statistical averages rather than by explicit equations [?
]. A single time history representing a random phenomenon is called a sample
function (or a sample record when observed over a finite time interval). The
collection of all possible sample functions that the random phenomenon might
have produced is called a random (or stochastic) process. A sample record of
data for a random physical phenomenon may be thought of as one physical
realization of a random process.
25
26
(2.3.1)
(2.3.2)
(2.3.3)
(2.3.4)
If the random process is stationary and x (t) and Rxx (t, k) do not differ when
computed over different sample functions, the random process is said to be
ergodic, therefore all properties of ergodic random processes can be determined
by performing time averages over a single sample function
2.3.1
Input/Output Relations
Input/output cases of common interest can usually be considered as combinations of one or more of the following linear system models:
1. Single-input/single-output model
2. Single-input/multiple-output model
3. Multiple-input/single-output model
4. Multiple-input/multiple-output model
As previously introduced, Operational Modal Analysis uses MIMO-type models. MIMO models are an extension of simpler cases. The MIMO problem
can be broken down into MISO problems and solved using MISO techniques:
27
2
E {X X 0 }
T
(2.3.6)
2
E {Y Y 0 }
(2.3.7)
T
2
Gxy = E {X Y 0 }
(2.3.8)
T
where Gxx is the input spectral density matrix, Gyy is the output spectral density
Gyy =
2
E [Xi Xj ]
T
2
E [Yi Yj ]
T
2
= E [Xi Yj ]
T
(2.3.9)
Gyi yj =
(2.3.10)
Gxi yj
(2.3.11)
28
Gxx
X1
X h
2
2
= E . X1 X 2
..
T
X
q
Xq
G11 G12
G21 G22
= .
..
..
.
Gq1 Gq2
Gyy
Y1
h
2
Y2
= E . Y1 Y2
..
T
Y
q
Yq
G1q
G2q
(2.3.12)
..
.
Gqq
Gy y Gy1 y2
11
Gy y Gy y
2 2
21
= .
.
..
..
Gyq y1 Gyq y2
Gy1 yq
Gy2 yq
(2.3.13)
..
.
Gyq yq
Gxx and Gyy are Hermitian matrices, namely, Gij = Gji for all i and j. For
those Hermitian matrices, Gxx = G0xx and Gyy = G0yy .
The system matrix between X and Y is defined by Hxy = Hxy (f ) where the
input always precedes output. The matrix
H1y1 H1y2
H2y H2y
1
2
Hxy = .
..
..
.
Hqy1 Hqy2
H1yq
H2yq
(2.3.14)
..
.
Hqyq
29
(2.3.15)
Y1
H1y1 H2y1
Y2 H1y H2y
2
2
.= .
.
..
.. ..
Yq
H1yq H2yq
Hqy1
X1
Hqy2
X2
..
..
.
.
Hqyq
Xq
(2.3.16)
This way any Yk is related to the inputs Xi . Initially it is assumed that the
number of outputs is the same as the number of inputs, and that all inverse
inverse matrix operations can be performed.
0
Y = Hxy
X
(2.3.17)
0
0
X)0 = X 0 Hxy
Y 0 = (Hxy
(2.3.18)
X Y 0 = X X 0 Hxy
(2.3.19)
2
T
gives:
(2.3.20)
1
1
G1
xx Gxy = Gxx (Gxx Hxy ) Hxy = Gxx Gxy
(2.3.21)
(2.3.22)
0
Y 0 = (Hxy
X)0 = X 0 Hxy
(2.3.23)
0
Y = (Hxy
X) = Hxy X
(2.3.24)
(2.3.25)
2
T
gives:
(2.3.26)
This final result represents the starting point for the FDD method, which will
be subsequently illustrated.
30
2.4
The measured random data that represent the response of the system, are
actually the expression of a continuous physical phenomenon, where specific
data acquisition and processing procedures are required before an analysis on
the data can be accomplished. In this section the focus will be put on the
procedures required for data acquisition and digital signal processing.
2.4.1
Data Acquisition
A data acquisition system usually involves a transducer with signal conditioning, transmission of the conditioned signal to an analog-to-digital converter
(ADC), and a calibration of the data acquisition system (standardization) to
establish the relationship between the physical phenomena being measured arid
the conditioned signal transmitted to the analog-to-digital converter. Each element of the data acquisition system must be selected to provide the frequency
range and dynamic range needed for the final engineering application of the
data.
Transducer
Signal
conditioning
Transmission
Calibration
31
s2
n2
(2.4.1)
significant distortion and n is the rms value of the data acquisition system
noise floor (since the system noise flor is commonly assumed to have a zero
mean value, n = n ).
32
2.4.2
Data conversion
Analog-to-digital conversion
Sampling errors
Storage
The most common type of ADC in current use is that referred to as the sigmadelta () converter, which is schematically illustrated in the following diagram: Basically, the ADCs consist of an oversampling modulator followed
by a digital/decimation filter that together produce a high resolution datastream output [? ]. The rudimentary converter is a 1-bit sampling system.
An analog signal applied to the input of the converter needs to be relatively
slow so that the converter can sample it multiple times, a technique known as
oversampling. The sampling rate is hundreds of times faster than the digital
results at the output ports. Each sample is accumulated over time and averaged with the other input-signal samples through the digital/decimation filter.
While most converters have one sample rate, the converter has two, the
input sampling rate fs and the output data rate fD .
The modulator is the heart of the ADC. It is responsible for digitizing the time-varying analog input signal and reducing noise at lower frequencies. Low-frequency noise is pushed up to higher frequencies (outside of the
33
1. Format. The output of the ADC consists of the natural binary output
of the converter. When the ADC is integrated into a general structural
identification equipment it might be necessary to convert the output data
in ASCII format in order to be able to process them.
2. Resolution. There is a round-off error introdued by the conversione, due
to the size of each digital word that define the magnitude of the input
signal.
3. Sampling Interval. In most cases, the ADC samples the input analog
signal with a fixed sampling interval t.
34
2.4.3
A sample random time history record x(t) from a random process {xk (t)} is
considered and exists only for the time interval from 0 to T seconds, and is
zero elsewhere. Its Fourier transform can be expressed as:
Z T
x(t)ej2t dt
X() =
(2.4.3)
An ej2nt/T
(2.4.4)
x(t)ej2nt/T dt
(2.4.5)
n
T
Z
=
x(t)ej2nt/T dt = T An
(2.4.6)
This result determines X() for all , and it is the sampling theorem in the frequency domain. The fundamental frequency increment 1/T is called a Nyquist
co-interval.
In a similar way, a Fourier transform X() of some sample random time history record x(t) is considered. X() exists only over a frequency interval from
B to B H and is zero at all other frequencies. The actual realizable frequency
band ranges from 0 to B Hz. The inverse Fourier transform leads to:
Z B
x(t) =
X()ej2t d
(2.4.7)
B
35
Cn ejn/B
(2.4.8)
(2.4.9)
(2.4.10)
x [n/(2B)]
sin(2Bt n)
(2Bt n)
(2.4.11)
The last equation shows how x(t) is reconstructed from the sample values taken
1/(2B) seconds apart. This result is the sampling theorem in the time domain
and the fundamental time increment 1/(2B) is called a Nyquist interval.
2B
= 2BT
1/T
(2.4.12)
Whilst by sampling x(t) at Nyquist interval points 1/2B apart on the timescale
from 0 to T it follows that:
N=
T
= 2BT
1/2B
(2.4.13)
t =
Sampling at more closely spaced than
1
2B
(2.4.14)
1
2B
will lead
to confusion between the low and high frequency components in the original
data. This latter problem is called aliasing and is a source of error for the pro-
cessing of the data after the analog-digital conversion. The presence of high
frequencies in the original signal could be misinterpreted in the discretisation
process, and those frequencies will appear as low frequencies.
If the sampling frequency is fs , then the signal of frequency and signal of
frequency fs are indistinguishable after discretization, and this causes distortion of the measured spectra using DFT. The highests frequency that can
be defined by a sampling rate of 1/t is 1/(2t) Hz. Frequencies in the original data above 1/(2t) Hz will appear below 1/(2t) Hz and be confused
with the data in this lower frequency range.
fA =
1
2t
(2.4.15)
2.5
In this thesis it is discussed a system for structural identification and monitoring, which implements two of the five major methods used to perform an
39
2.5.1
(2.5.1)
where Gxx and Gyy are input and output PSD matrices, H(j) is the FRF
matrix which can be expressed as a partial fraction form via poles r and
residues Rr :
H(j) =
N
X
r=1
Rr
Rr
+
j r j r
(2.5.2)
where Rr = r rT , r , r are mode shape and modal partecipation vector respectively. When all output measurements are taken as references, then H(j)
is a square matrix and r = r .
In OMA, the input is given by the natural excitations acting on the system and
it can be considered as white noise. Therefore Gxx (j) equals to constant, and
the modal decomposition of the output PSD matrix Gyy (j) can be derived
as modal decomposition:
Gyy (j) =
N
X
r=1
Ar
ATr
Ar
AH
r
+
+
+
j r j r j r j r
(2.5.3)
40
2dr
H = r r H
r
j r r
(2.5.4)
X
kSub()
r r Tr
H
+ r r r
j r j r
(2.5.5)
(2.5.6)
where the matrix Ui = [ui1 , ui1 , ..., uim ] is a unitary matrix holding the singular
vectors uij , and Si is a diagonal matrix holding the scalar singular values sij .
When only kth mode dominates at the modal frequency r , the PSD matrix
approximates to a rank one matrix as:
yy (ji )| r = si ui1 uH
G
i1
i
41
(2.5.7)
(2.5.8)
where U and V are unitary matrices, is a diagonal matrix that contains the
real singular values:
= diag(s1 , ..., sr )
(2.5.9)
r = min(m, n)
(2.5.10)
The SVD can be omputed by using some existing mathematicl software. Analytically, the eigenvectors of AAT constitute U and the eigenvalues of it constitute T . Likewise, the eigenvectors of AT A constitute V and the eigenvalues
of it (the same as the eigenvalues of AAT ) constitute T . Therefore, SVD is
closely linked to the eigenvalue decomposition.
SVD reveals useful information about A [? ]. For instance, the number of
non-zero singular values (therefore the rank of ) coincides withe the rank of
A. Once the rank is known, the first k columns of u form an orthogonal basis
for the column space of A. In numerical analysis, zero singular values can become small quantities due to numerica errors, measurement errors, noise and
ill-conditioning of the matrix.
The superscript H on the matrix V denotes a Hermitian transformation (transpose and complex conjugate). In the case of real valued matrices, the V matrix
is only transposed. The Si elements in the matrix are called the singular
values, and their corresponding singular vectors are contained in the matrices
U and V .
42
(2.5.11)
with H = I.
Identification of the SDOF auto spectral densities As mentioned earlier, near a peak corresponding to the kth mode in the spectrum, if only the
k = uk1 is an estimate of the
kth mode is dominating, the first singular vector
mode shape and the corresponding singular value is the auto power spectral
density function of the corresponding SDOF system. The singular value data
near the peak with corresponding singular vector having enough high MAC
value are transferred back to time domain via inverse FFT. The spectral bell
is therefore composed using the MAC criterion:
M AC =
(u1k u1i )2
u21k u21i
(2.5.12)
where u1i are the singular vectors around the peak and u1k is the singular
vector at the peak frequency.
The singular values for which M AC < (the threshold MAC value) are
not part of the SDOF auto spectral density function so they are set to zero.
43
Calculation of modal parameters From the free decay time domain function, which is also the auto correlation function of the SDOF system, the natural frequency and the damping is found by estimating crossing times and
logarithmic decrement. First all extremes rk , both peaks and valleys, on the
correlation function are found. The logarithmic decrement is then given by:
=
2
r0
ln(
)
k
|rk |
(2.5.13)
where r0 is the initial value of the correlation function and rk is the kth extreme. Thus, the logarithmic decrement and the initial value of the correlation
function can be found by linear regression on k and 2ln(|rk |). The estimation
is performed by applying a linear fit to the part of the curve being close to a
straight line, therefore the damping ratio is given by the known formula, used
for under-damped systems:
=
2
+ 4 2
(2.5.14)
(2.5.15)
45
Kurtosis
2.5.2
46
y1 (t)
y2 (t)
(2.5.16)
y(t) =
..
y (t)
M
The system can be considered in classical formulation as a multi degree of
freedom structural system:
M y(t) + Dy(t)
+ Ky(t) = f (t)
(2.5.17)
Where M, D, K is the mass damping and stiffness matrix and where f (t) is
the loading vector. In order to switch to a discrete time formulation, a state
space model is introduced, as the one previously shown. A new variable, x(t),
is introduced:
"
x(t) =
#
y(t)
(2.5.18)
y(t)
With the state-space formulation, the original 2nd order system equation simplifies to a first order equation:
x(t)
= AC x(t) + Bf (t)
(2.5.19)
y(t) = Cx(t)
(2.5.20)
Where the system matrix AC in continuous time and the load matrix B is
given by:
AC =
M 1 K M 1 D
!
0
B=
M 1
(2.5.21)
(2.5.22)
(2.5.23)
The first term is the solution to the homogeneous equation and the last term
is the particular solution.
47
(2.5.24)
Ad = eAC t
(2.5.25)
yk = CAkd x0
(2.5.26)
(2.5.27)
where N is the number of data points. Let Y1:N k be the data matrix where we
have removed the last k data points, and Yk:N the data matrix where we have
removed the first k data points. Then an unbiased estimate of the orrelation
matrix at time lag k is given by:
1
T
Y1:N k Yk:N
(2.5.28)
N k
The Block Hankel matrix Yh defined in SSI is simply a gathering of a family
k =
R
Y1:N 2s
!
Y2:N 2s+1
Yhp
Yh =
=
..
Yhf
.
Y2s:N
(2.5.29)
The upper half of the matrix is called the past and is denoted as Yhp , while the
lower half of the matrix is called the future and is denoted as Yhf . The total
shift is 2s and is denoted the number of block rows. The number of the rows
in the Blok Hankel matrix is 2sM , the number of columns is N 2s.
The Projection
Projection is defined as a conditional mean. In SSI, the projection of the future
unto the past defines the matrix
O = E(Yhf |Yhp )
48
(2.5.30)
(2.5.31)
where the last matrix in the product defines the conditions and the first four
matrices introduce the covariances between hannels at different time lags. This
form of conditional mean consist of free decays of the system given by different
initial conditions specified by Yhp . The matrix is sM sM and any column in
the matrix O is a stacked free decay of the system to a (so far unknown) set
of initial conditions. Any column of O can be expressed by:
Ocol = S x0
CAd
2
S = CAd
.
..
s1
CAd
(2.5.32)
(2.5.33)
(2.5.34)
where the matrix X0 contains the Kalman states at time lag zero. If we remove
one block row from O from the top, and one block row of s from the bottom,
the Kalman state matrix at time lag one X1 is obtained.
Since the matrix S is unknown, the states can be estimated using a Singular
Value Decomposition (SVD) on the O matrix:
O =U SVT
(2.5.35)
49
(2.5.36)
(2.5.37)
and thus, the system matrix Ad can be found by regression. The observation
matrix C can be obtained by taking the first block of the observability matrix:
1:1
C =
(2.5.38)
Modal Analysis
An eigenvalue decomposition of the system matrix Ad is performed:
Ad = [i ] 1
(2.5.39)
The continuous time poles i are found from the discrete time poles i by:
i = ei
(2.5.40)
ln(i )
T
i = |i |
i
2
Re(i
|i |
fi =
i =
(2.5.41)
50
(2.5.42)
Chapter 3
Introduction
Welcome to SIM/AtOMA 0.1
Operational Modal Analysis SIM/AtOMA (System Identification Tool - Automatic Operational Modal Analysis) is a software tool that allows the user to
perform structural dynamic identification and monitoring tasks, implementing two Operational Modal Analysis methods: the Enhanced Frequency Domain Decomposition and the Stochastic Subspace Identification. The identification procedure requires a consistent set of raw acceleration measurements
performed on the structure and provides, for both methods, the structures natural frequencies and damping ratios. It is also possible to configure AtOMA
to perform automatically the analysis on new data using template files, in
order to allow a continuous monitoring of the dynamic characteristics of the
structure. The program disposes of a graphical user interface (GUI), which
makes it simple and user friendly.
51
52
3.2
Getting started
3.2.1
AtOMA provides a friendly user interface that guides the user through each
analysis step. It is composed of three major blocks:
Input data block: this is where the analysis starts. It is presented the
choice of method to be used for the analysis (AutoEFDD or AutoSSI )
and the parameters of the system configuration.
Identification: in this block the modal parameters for the AutoEFDD
method are determined. In the first part the natural frequencies are
identified, while the second part concerns the damping ratios.
Results: this block concerns the results managements. Here it is possible
to save new results, to view a results file, to merge compatible results
and to save a new template.
The menu bar has a number of global utility functions, some of which are
already present in the user interface:
File
New
New from template
Exit
Results
View Results
Merge Results
Schedule
New Schedule
53
3.3
AutoEFDD method
54
Monitoring The AutoEFDD method is also suitable for dynamic monitoring. As a frequency domain method, it is proven to be adequately fast and
precise.
Once an identification task on new data is performed, it is possible to save a
Template file. Inside the template files are stored informations about the analysis, including the natural frequencies found for the structure. The template
file allows the user to perform a new, compatible, identification analysis on
the system, loading only the new measurement files. The program identifies,
if any, the natural frequencies calculated for the new files starting from those
saved in the template, and calculates the corresponding damping ratio.
55
3.3.1
To perform a new AutoEFDD analysis, select File, New from the menu. The
user can choose whether to select new data, or using a partial FDD file previously saved by selecting the corresponding radio button.
The second option may be useful if the user needs to perform an analysis on
0,010000
56
time
ACC_ 1
ACC_ 2
ACC_ 3
ACC_ 4
ACC_ 5
ACC_ 6
0,000
-0,002162
0,000530
0,000205
-0,000008
0,000596
0,000383
0,010
-0,003193
0,002645
0,001280
-0,000015
0,002258
0,000427
0,020
-0,002941
0,001923
0,000775
-0,000013
-0,000508
0,000598
0,030
0,000869
0,000542
0,000129
-0,000000
-0,002076
0,000295
0,040
0,000703
0,003234
0,000398
0,000001
-0,003874
-0,000573
0,050
0,001065
0,001131
-0,000630 0,000017
-0,002438
-0,000626
0,060
0,005938
0,003836
-0,000669 0,000015
-0,000689
-0,001197
0,070
0,000362
0,002768
-0,000732 -0,000005
0,002879
-0,001018
0,080
-0,001838
0,000678
-0,000241
0,003595
-0,000771
0,000004
First, press Browse button to select the folder in which the data are stored.
Then, set the parameters required for the FDD analysis.
NFFT is the FFT length which determines the number of frequencies
in which the frequency domain is subdivided using the discrete Fourier
transform.
57
3.3.2
58
Required user input The parameters required for the Natural Frequency
identification are the following:
1. MAC Threshold
2. Frequency sensibility
3. First file
4. Step
Process To understand their purpose you need to consider how the frequencies identification works.
In Step 1 power spectral density matrices were calculated and subsequently
decomposed using the singular value decomposition.
The singular value matrices are then divided into subgroups, whose dimension
is set by the user through the Step (4) parameter. All files preceding the First
file (3) specified by the user are ignored. Each subgroup contains a number of
svd matrices sets (containing U and S ) equal to step.
Within each subgroup, for each frequency, a MAC value is calculated by comparing the singular vectors related to each measurement files belonging to the
59
threshold value are actually structural modes, only the broadest are considered:
the parameter Frequency sensibility (3) sets the minimum allowable width in
frequency for which the values that exceed the threshold are considerable as
part of a modal domain. At higher values of this parameter could correspond
a lower sensitivity to the weaker structural modes, while lower values are likely
to also identify non-structural modes. A typical case that explains the meaning
60
Results Once this step is completed, the natural frequencies found are displayed in the Results block.
You can observe the trend of the natural frequencies found for each file us-
ing the button Natural Frequencies Trend. You can launch the figure that
represents the singular values, pressing the Singular Values Figure.
61
Required User Input Three parameters are needed to perform the process:
1. MAC Threshold
2. Max Correlation
3. Min Correlation
Process The calculation of the damping ratio can be decomposed into three
main blocks.
1. Identification of the spectral bell: the SDoF Auto-spectral functions are
identified around the natural frequencies using MAC criterion;
2. Transformation of the spectral bell to time domain: the normalized SDoF
auto-correlation functions are calculated;
3. Damping ratio estimation using logarithmic decrement of the absolute
extreme values in the range set by the user.
(urif uf )2
u2rif u2f
(3.3.1)
The singular values for which M AC < (where is the user-specified parameter MAC Threshold (1)), are set to zero. Therefore only the frequencies
around the peak that satisfy the condition M AC > are considered and
constitute the spectral bell.
Setting a higher value for the MAC Threshold would shrink the spectral bell,
while a lower value would widen it.
63
Figure 3.13: Normalized Correlation Function of the Singular Value Spectral Bell.
Damping ratio estimation The rectangle, visible in the figure, defines the
values used for the calculation of the damping ratio. Its limits are specified
by the user through the parameters Max Correlation (2) and Min Correlation
(3). The first part and the tail of the correlation function are excluded from
the analysis, as these parts are more sensitive to noise.
For Max Correlation are recommended values around 0.9 and for Min Correlation around 0.2. Since these values influence the final value of damping ratio,
it is recommended to calibrate them on the basis of expected damping results,
if available.
First all extremes rk , both peaks and valleys, on the selected part of the
correlation function are found. The logarithmic decrement is then given
by:
=
r0
2
ln(
)
k
|rk |
(3.3.2)
where r0 is the initial value of the correlation function and rk is the kth extreme.
r0 and rk correspond to the maximum and minimum values of correlation defined by the user, while k is the number of extreme values (maximum and
minimum) present in the interval.
The more the curve exhibits a linear logarithmic decrement, the more the
damping value will be significant.
64
=
2 + 4 2
(3.3.3)
Results The main output given by this block consists on the estimated
damping ratio results for each measurement set and for each structural mode.
The mean damping calculated for each structural mode (excluding the outliers) is displayed in the results block. The damping results are saved in the
65
Figure 3.17: Mean Damping Ratio vs. Mean Natural Frequency Graph.
66
Damping ratio trend : it shows, for each structural mode, the trend over
time of the calculated damping ratio.
It is also possible get more detailed information on the process of the damping
ratio calculation by opening the Validation window.
67
This screen allows the user to observe, for each input file, and for each structural mode, some graphs useful in understanding the process and possibly
make changes in the configuration parameters. Initially the user must select
the file to check and the structural mode of interest from the two drop-down
menu. Then it is possible to launch the following graphs:
Spectral bell shows the selected SDOF auto spectral density function,
which is subsequently transformed in time domain.
68
69
Figure 3.24: Natural frequencies calculated in frequency domain vs natural frequencies calculated in time domain.
The user might want to edit the input parameters for damping ratio calculation
in one of the following cases:
The selected SDoF auto-spectral density function includes more than one
peak;
The logarithmic decrement of the absolute extreme values is far from a
linear behaviour;
The natural frequencies calculated in time domain are very different than
those calculated in frequency domain.
3.3.3
Results management
Once the analysis is completed, the results can be saved inside a file. After a
results file is saved, it is possible to view this file or to merge it with other compatible results files. The compatibility between results files will be discussed
further.
70
71
72
Press Select results file to merge button to load two or more results files. It is
possible to remove a file from the list by pressing the Remove selected button;
a file can be moved up or down on the list by pressing the Move up or the
Move down buttons.
By checking the checkbox Delete duplicate items, if two items belonging to the
files in the list are attributable on the same date of measurement, only the
item belonging to the higher file in the list will be preserved in the merged file.
If the checkbox is not checked, no item will be deleted.
Selecting Sort by date, the elements will be sorted in ascending order based on
the date of measurement. Otherwise, selecting Sort by user order, the order
set by the user in the list will be kept in the merged file.
Pressing the Merge & Save button the files are merged according to the specified settings and a dialog to save the merged file is displayed.
The View button will open the View Results window, with the merged file
already loaded.
Not all files can be merged In fact, only files with the same number of
structural modes are compatible. The results obtained from a template are
73
3.4
3.4.1
Structural monitoring requires the ability to update the analysis over time
with the new measurements performed on the structure.
AutoEFDD method provides a fast and efficient way to do so: once a first
analysis is completed and the major structural modes of the structure are
identified, a Template file can be saved. The template file contains informations about the structure upon which new analysis will be based.
When a new analysis is started on the basis of an existing template the program
skips the modal domain identification phase. The auto-spectrum functions of
the new files are analyzed in correspondence of the modal domains previously identified and listed in the template, in search of the vibrating modes
of the structure. If a vibrating mode exists inside the modal domain, the
corresponding natural frequency and damping ratio are calculated and automatically saved in a results file, which is then merged with the previous results
files.
Therefore, once you have a template file, simply select the new measurement
files available and launch analysis to update the time profile of the results.
Saving a template
To save a template file, complete an identification analysis using AutoEFDD
method, then press the Save template button.
3.4.2
AtOMA allows the user to set the automatic execution of dynamic monitoring
tasks at specific times through the use of Schedules. A schedule is a configuration file that contains information about the required analysis:
The template to be used for analysis;
The hours in which to launch the analysis;
The folder where the new measurement files are placed.
This function is particularly useful in the case in which the computer where
AtOMA is installed automatically receives new files measuring one or more
times per day, because it allows the operator to have information on the dynamic state of the structure without first having to transfer the new measurement files, an operation that in the case of files of large dimensions can be
particularly onerous if made via the internet network.
76
Schedule launcher
In order to start a scheduling task, the user has to select from the drop-down
menu the voice Schedule Schedule Launcher. It is required to select the
schedule file.
Once the scheduler is active, the time of the subsequent execution of the analysis is displayed. To interrupt the scheduler, press Ok in the dialog. At the
specified time, AtOMA will launch the analysis without requiring any user
input. The results will be saved and merged with the previous ones and the
scheduler will wait for the subsequent scheduled execution.
77
3.5
AutoSSI method
3.5.1
To select the AutoSSI method for dynamic identification, check the AutoSSI
checkbox in the input data block.
Then, select the folder containing the measurement files by pressing the Browse
button.
To start the SSI analysis, press the Start SSI button. Please notice that the
analysis might take a lot of time and might be very demanding for computer
resources.
After The analysis is completed, it is asked to save the results. The results are,
like the ones provided with the AutoEFDD method, composed of two tables:
78
79
Chapter 4
Program code
In this chapter the code that constitutes the program interfaces is described.
R
AtOMA is a program developed using Matlab
environment. A Graphical
4.1
4.1.1
As was previously seen from a theoretical point of view, the calculation of the
Damping Ratio parameter for the Enhanced Frequency Domain Decomposition
method consists in several steps:
1. The frequency bells around each peaks are found.
80
User configuration In the following block are read the parameters specified
by the user via the GUI using the get command. The PERDAMPING file,
previously stored in the natural frequencies identification step, contains the
following variables:
NFFT : the FFT length which determines the frequencies at which the
PSD is estimated. It is required to transform the spectral bells to time
domain.
81
f u n c t i o n [ h a n d l e s ]= damping_Callback ( hObject , e ve nt da ta , h a n d l e s )
l o a d PERDAMPING
s e t ( h a n d l e s . statusD , S t r i n g , Wait . . , BackgroundColor , [ 1 0
0]) ;
% S c e l t a d e i p a r a m e t r i p e r l a r i c e r c a d e i damping
sogliaMAC = str2num ( g e t ( h a n d l e s . mac_damping , S t r i n g ) ) ;
...
f o r i f a s t 3 =1: s i z e ( SS0 , 3 ) ;
S e g n a l e=SS0 ( 1 : round ( i n t e r v a l l o NFFT+1) , 1 , i f a s t 3 ) ;
i n d i c e F=o n e s ( l a s t f m , 1 ) ;
damping=z e r o s ( l a s t f m , 1 ) ;
j =1;
i =1;
i=i +1;
11
i f newf2 ( i f a s t 3 , j )==0
j=j +1;
13
else
82
15
j=j +1;
end
17
end
end
19
Identification of the SDOF Auto Spectral Function - 1 The auto spectral function is identified using the MAC criterion. For each structural mode,
the variables rangeL and rangeR are defined as the number of singular values
to the left and right of the peak to include within the SDoF auto spectral
density function.
For each structural mode, a reference singular vector is selected in correspondence to the peak (Urif=Umodi(indiceF(Fj),:,ifast3)).
M AC =
(u1k u1i )2
u21k u21i
(4.1.1)
For each frequency line around the peak the MAC value is calculated, initially
decreasing the frequency of a value at a time to obtain rangeL, subsequently
increasing it to a value at a time from the frequency corresponding to the peak
to determine rangeR. This value is compared with the threshold specified by
the user. As long as the MAC is sufficiently high, the considered frequency is
included in the SDoF auto spectral function and the rangeL o rangeR variables
are updated.
1
%f o r i f a s t 3 =1: s i z e ( SS0 , 3 ) ;
This b l o c k i s
s t i l l i n s i d e the loop .
rangemax =100;
3
rangeL=z e r o s ( l e n g t h ( i n d i c e F ) , 1 ) ;
rangeR=z e r o s ( l e n g t h ( i n d i c e F ) , 1 ) ;
k=1;
rangeL ( Fj ) =0;
11
else
83
U r i f=Umodi ( i n d i c e F ( Fj ) , : , i f a s t 3 ) ;
13
i =1;
MAC=1;
15
17
19
rangeL ( Fj )=i 1;
end
21
i=i +1;
end
23
i =1;
MAC=1;
25
27
29
rangeR ( Fj )=i 1;
end
31
i=i +1;
end
33
This check serves to maintain the bell centered on the natural frequency. If
the left range is too different from the right range, the higher range is reduced.
At most a 20% difference between the rangeR and rangeL is allowed.
maxDrange = 0 . 2 ;
end
i f rangeL ( Fj )> rangeR ( Fj ) (1+maxDrange )
end
9
end
84
% C o s t r u i s c o l a campana da t r a s f o r m a r e n e l tempo a z z e r a n d o t u t t o
q u e l l o che s t a a t t o r n o a l r a n g e
B e l l=z e r o s ( l e n g t h ( S e g n a l e ) , l e n g t h ( i n d i c e F ) ) ; %c i a s c u n a c o l o n n a
c o r r i s p o n d e ad un modo
f o r Fj =1: l e n g t h ( i n d i c e F )
f o r i =1: l e n g t h ( S e g n a l e )
i f i >= i n d i c e F ( Fj )rangeL ( Fj ) && i <= i n d i c e F ( Fj )+rangeR ( Fj )
B e l l ( i , Fj )=S e g n a l e ( i ) ;
end
end
10
end
f o r Fj =1: l a s t f m
%I n v e r s e F o u r i e r t r a n s f o r m o f t h e SDoF auto
spectral functions .
4
TBell = r e a l ( i f f t ( B e l l ( : , Fj ) ,NFFT) ) ;
TBell0 ( : , Fj ) = TBell ( 1 : l e n g t h ( TBell ) / 2 ) . / TBell ( 1 ) ;
MyTBell=TBell0 ( : , Fj ) ;
This b l o c k i s
s t i l l i n s i d e the loop .
% C o s t r u i s c o l a curva d e i v a l o r i massimi
j =1;
MaxTBell ( j , Fj )=MyTBell ( 1 ) ;
MaxT( j , Fj )=iT ( 1 ) ;
j=j +1;
f o r i =2: l e n g t h ( MyTBell )1
i f MyTBell ( i )>MyTBell ( i 1)&&MyTBell ( i )>MyTBell ( i +1)
MaxTBell ( j , Fj )=MyTBell ( i ) ;
MaxT( j , Fj )=iT ( i ) ;
10
j=j +1;
end
12
end
14
% C o s t r u i s c o l a curva d e i v a l o r i minimi
16
j =1;
minTBell ( j , Fj )=MyTBell ( 1 ) ;
86
minT ( j , Fj )=iT ( 1 ) ;
18
j=j +1;
f o r i =2: l e n g t h ( MyTBell )1
20
22
minT ( j , Fj )=iT ( i ) ;
j=j +1;
24
end
26
end
end
In the next blocks damping ratios are actually calculated. First the indices that
determine the position in the vectors of the maximum and minimum envelopes
at the minimum and maximum correlation set by the user are identified and
saved in minTlag, maxTlag, minTlagmin, maxTlagmin.
f o r Fj =1: l a s t f m
i f i n d i c e F ( Fj )==1 | | ( rangeL ( Fj )==0 && rangeR ( Fj )==0)
FT( Fj )=NaN ;
damping ( Fj )=NaN ;
damp_std ( Fj )=NaN ;
else
7
%s t i m a d e l l e f r e q u e n z e
2
87
(4.1.2)
=
2 + 4 2
(4.1.3)
%s t i m a d e l damping
2
In the next block, the graph of validation of the logarithmic decrement of the
envelope of the absolute values is developed and saved in the variable RettaRif.
This variable will be invoked within the validation graph.
%D e v i a z i o n e da r e t t a
2
88
, Fj ) ;
end
10
end
end
The validation variables are saved inside external files called VALIDAZIONEx
where x is corresponding to the index of the file being analysed.
damping vector is stored as a row of the global damping matrix.
1
s a v e ( f i l e n a m e , S e g n a l e , FF , FT , damping , i n d i c e F , f 1 ,
B e l l , damp_std , minTlag , maxTlag , MaxT , max_corr ,
min_corr , MaxTBell , iT , TBell0 , newf2 , R e t t a R i f ) ;
c l e a r RettaRif ;
d _ r e s u l t s ( i f a s t 3 , : ) =damping ;
end
Once all the files have been processed, global analysis is carried on damping
values. In order to perform a mean of the values excluding outliers, temporary
matrices are built, excluding NaN values which are not accepted by the trimmean function. m = trimmean(X, percent) calculates the trimmed mean of
the values in X. For a vector input, m is the mean of X, excluding the highest
and lowest k data values, where k = n (percent/100)/2 and where n is the
number of values in X. In this case, k was set to 20%.
A mean value of damping and frequencies is calculated for each structural
mode and stored in the variables d_mean and f _mean.
d _ r e s u l t s 0=z e r o s ( s i z e ( d _ r e s u l t s ) ) ;
2
newf20=z e r o s ( s i z e ( newf2 ) ) ;
f o r i i =1: l a s t f m
i i i =1;
f o r i f a s t 3 =1: s i z e ( SS0 , 3 ) ; %p u l i z i a d e i v e t t o r i p e r u s a r e box
p l o t e t r i m mean
89
i f ~isnan ( d_results ( i f a s t 3 , i i ) )
d _ r e s u l t s 0 ( i i i , i i )=d _ r e s u l t s ( i f a s t 3 , i i ) ;
newf20 ( i i i , i i )=newf2 ( i f a s t 3 , i i ) ;
i i i = i i i +1;
end
10
end
i n d z=f i n d ( d _ r e s u l t s 0 ( : , i i ) >0 ,1 , l a s t ) ;
12
14
end
The global results are then finalized by attaching the first column, which comprises the dates of the measurements, and saved as an application data using
the setappdata function.
l o a d ( Fdd_loc , R e s u l t ) ;
d _ r e s u l t s 2 =[ R e s u l t d _ r e s u l t s ] ;
s e t a p p d a t a ( 0 , Result_damping , d _ r e s u l t s 2 ) ;
setappdata (0 , d a t e _ f i l e s , Result ) ;
s e t ( h a n d l e s . v a l i d a t i o n , Enable , on ) ;
s e t ( h a n d l e s . d a m p i n g v s f r e q u e n c i e s , Enable , on ) ;
s e t ( h a n d l e s . meanvsfrequency , Enable , on ) ;
s e t ( h a n d l e s . b oxp lo t , Enable , on ) ;
s e t ( h a n d l e s . s a v e r e s , Enable , on ) ;
90
end
set ( handles . modelist , String , s t r l ) ;
13
s e t ( h a n d l e s . dmode , S t r i n g , strm ) ;
s e t ( h a n d l e s . dmode , Enable , on ) ;
15
s e t ( h a n d l e s . s a v e t e m p l a t e , Enable , on ) ;
s e t ( h a n d l e s . statusD , S t r i n g , OK , BackgroundColor , [ 0 1 0 ] ) ;
17
s e t ( h a n d l e s . phase2 , BackgroundColor , [ 0 1 0 ] ) ;
s e t ( h a n d l e s . phase3 , BackgroundColor , [ 1 1 0 ] ) ;
19
g u i d a t a ( gcbo , h a n d l e s ) ;
4.2
Interface description
In this section, the purpose of each major Callback function will be discussed.
We will proceed in the order conceptual associated with the use of the program:
1. The functions called by the input selection panels objects;
2. The functions called by the identification panels objects;
3. The functions called by the result management panels objects;
4. The functions called by the menu elements.
4.2.1
Opening function
The opening function is the first callback in every GUI M-file. It performs
tasks that need to be done before the user has access to the GUI. In this case
it is used to initialize the application variables usingtemplate and scheduleron
to zero, which respectively determine if a template is used and if the scheduler
is on, and to disable the identification panel.
91
f u n c t i o n AutoEFDDgui_OpeningFcn ( hObject , e ve nt da ta , h a n d l e s ,
varargin )
g u i d a t a ( hObject , h a n d l e s ) ;
s e t ( f i n d a l l ( h a n d l e s . u i p a n e l 7 , p r o p e r t y , e n a b l e ) , e n a b l e , o f f )
;
4.2.2
The check-boxes at the top of the panel are used to select the required input panel. Each radio object is characterized by a tag, which identifies the
Callbacks name.
AutoEFDD: New input data this checkbox enables the panel for the
selection of new input data, setting newdatapanel as visible and the other
input panels (ssipanel and existingdatapanel ) as not-visible.
1
% E x e c u t e s on button p r e s s i n r a d i o n u o v o .
f u n c t i o n radionuovo_Callback ( hObject , ev en td at a , h a n d l e s )
s e t ( h a n d l e s . s t a r t f d d , Enable , on ) ;
s e t ( h a n d l e s . r a d i o f d d , Value , 0 ) ;
s e t ( h a n d l e s . radionuovo , Value , 1 ) ;
s e t ( h a n d l e s . s s i r a d i o , Value , 0 ) ;
11
s e t ( h a n d l e s . browsenewfdd , Enable , on ) ;
s e t ( h a n d l e s . browsefdd , Enable , o f f ) ;
% E x e c u t e s on button p r e s s i n r a d i o f d d .
2
f u n c t i o n r a d i o f d d _ C a l l b a c k ( hObject , e ve ntd at a , h a n d l e s )
s e t ( h a n d l e s . e x i s t i n g d a t a p a n e l , V i s i b l e , on ) ;
s e t ( h a n d l e s . newdatapanel , V i s i b l e , o f f ) ;
set ( handles . ssipanel , V i s i b l e , o f f ) ;
s e t ( h a n d l e s . l o a d f d d , Enable , on ) ;
s e t ( h a n d l e s . s t a r t f d d , Enable , o f f ) ;
s e t ( h a n d l e s . radionuovo , Value , 0 ) ;
s e t ( h a n d l e s . r a d i o f d d , Value , 1 ) ;
10
s e t ( h a n d l e s . s s i r a d i o , Value , 0 ) ;
s e t ( h a n d l e s . browsenewfdd , Enable , o f f ) ;
12
14
s e t ( h a n d l e s . browsefdd , Enable , on ) ;
% E x e c u t e s on button p r e s s i n s s i r a d i o .
f u n c t i o n s s i r a d i o _ C a l l b a c k ( hObject , e ve ntd at a , h a n d l e s )
16
s e t ( h a n d l e s . s s i r a d i o , Value , 1 ) ;
s e t ( h a n d l e s . radionuovo , Value , 0 ) ;
18
s e t ( h a n d l e s . r a d i o f d d , Value , 0 ) ;
set ( handles . existingdatapanel , V i s i b l e , o f f ) ;
20
s e t ( h a n d l e s . newdatapanel , V i s i b l e , o f f ) ;
s e t ( h a n d l e s . s s i p a n e l , V i s i b l e , on ) ;
22
s e t ( h a n d l e s . s s i b r o w s e , Enable , on ) ;
s e t ( f i n d a l l ( h a n d l e s . u i p a n e l 7 , p r o p e r t y , e n a b l e ) , e n a b l e , o f f )
;
% E x e c u t e s on button p r e s s i n browsenewfdd .
f u n c t i o n browsenewfdd_Callback ( hObject , ev en td at a , h a n d l e s )
93
g u i d a t a ( hObject , h a n d l e s ) ;
s e t ( h a n d l e s . f o l d e r , S t r i n g , folder_name ) ;
s e t ( h a n d l e s . s t a r t f d d , Enable , on ) ;
s e t ( h a n d l e s . s t a t u s S , V i s i b l e , on , S t r i n g , < , BackgroundColor
,[0.941 0.941 0 . 9 4 1 ] ) ;
s e t ( h a n d l e s . phase1 , BackgroundColor , [ 1 1 0 ] ) ;
s e t ( h a n d l e s . phase2 , BackgroundColor , [ 0 . 9 4 1 0 . 9 4 1 0 . 9 4 1 ] ) ;
11
s e t ( h a n d l e s . phase3 , BackgroundColor , [ 0 . 9 4 1 0 . 9 4 1 0 . 9 4 1 ] ) ;
% E x e c u t e s on button p r e s s i n s t a r t f d d .
f u n c t i o n [ h a n d l e s ]= s t a r t f d d _ C a l l b a c k ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o s t a r t f d d ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
5
% handles
s e t ( h a n d l e s . s t a t u s S , V i s i b l e , on , S t r i n g , Wait . . ,
BackgroundColor , [ 1 0 0 ] ) ;
L=s t r 2 d o u b l e ( g e t ( h a n d l e s . L , S t r i n g ) ) ;
f s=s t r 2 d o u b l e ( g e t ( h a n d l e s . f s , S t r i n g ) ) ;
11
NFFT_all=s t r 2 d o u b l e ( g e t ( h a n d l e s .NFFT, S t r i n g ) ) ;
13
15
folder_name=g e t ( h a n d l e s . f o l d e r , S t r i n g ) ;
f i l e L i s t = g e t A l l F i l e s ( folder_name , 5 0 0 ) ;
17
19
c a n a l i=g e t ( h a n d l e s . c h a n n e l s , S t r i n g ) ;
21
v ( 1 )=str2num ( c a n a l i ( 1 : c a n a l i _ i n d ( 1 ) 1) ) ;
c a n a l i _ i n d=s t r f i n d ( c a n a l i , , ) ;
f o r i =2: l e n g t h ( c a n a l i _ i n d )
94
23
end
25
v ( i +1)=str2num ( c a n a l i ( c a n a l i _ i n d ( i ) +1: l e n g t h ( c a n a l i ) ) ) ;
27
...
After the Singular Value Decomposition is performed for all of the measurements files contained in the directory, the objects inside the identification panel
are enabled for user interaction.
Processed data is then saved inside a FDD.mat file.
If the process is driven by a scheduled event (if getappdata(0,scheduleron)==1 ),
the last part of the next block is used to move the files to a subfolder called
archive. If the process is driven by a template, subsequent callbacks (f requencies_Callback,
damping_Callback, saveres_Callback and merge) are launched.
s e t a p p d a t a ( 0 , FDD_location , FDD. mat ) ;
2
s e t ( f i n d a l l ( h a n d l e s . u i p a n e l 7 , p r o p e r t y , e n a b l e ) , e n a b l e , on ) ;
s e t ( f i n d a l l ( h a n d l e s . u i p a n e l 5 , p r o p e r t y , e n a b l e ) , e n a b l e , o f f )
;
s e t ( h a n d l e s . f r e q u e n c i e s , Enable , on ) ;
s e t ( h a n d l e s . s t a t u s F , V i s i b l e , on , S t r i n g , < , BackgroundColor
,[0.941 0.941 0 . 9 4 1 ] ) ;
s e t ( h a n d l e s . statusD , V i s i b l e , o f f ) ;
s e t ( h a n d l e s . s t a t u s S , S t r i n g , OK , BackgroundColor , [ 0 1 0 ] ) ;
s e t ( h a n d l e s . phase1 , BackgroundColor , [ 0 1 0 ] ) ;
s e t ( h a n d l e s . phase2 , BackgroundColor , [ 1 1 0 ] ) ;
10
s e t ( h a n d l e s . s a v e r e s , Enable , o f f ) ;
s e t ( h a n d l e s . s a v e t e m p l a t e , Enable , o f f ) ;
12
s e t ( h a n d l e s . s a v e f d d f i l e , Enable , on ) ;
14
close (h) ;
hhh=h a n d l e s ;
16
c l e a r h a n d l e s hObject ;
s a v e FDD;
18
l o a d ( g e t a p p d a t a ( 0 , FDD_location ) , FastNameList ) ;
s e t ( f i n d o b j ( Tag , i f a s t 0 ) , S t r i n g , FastNameList , Value , 1 ) ;
20
95
i f g e t a p p d a t a ( 0 , u s i n g t e m p l a t e )==1
i f g e t a p p d a t a ( 0 , s c h e d u l e r o n )==1 %spostamento f i l e s
22
a r c h i v e =[ g e t a p p d a t a ( 0 , f a s t d i r ) \ a r c h i v e \ ] ;
i f ~ e x i s t ( a r c h i v e , f i l e ) mkdir ( a r c h i v e ) ; end
24
f o r i =1: l e n g t h ( FastNameList )
m o v e f i l e ( FastNameList { i } ,
a r c h i v e , f ) ; end
end
26
h a n d l e s=f r e q u e n c i e s _ C a l l b a c k ( [ ] , [ ] , hhh ) ;
h a n d l e s=damping_Callback ( [ ] , [ ] , h a n d l e s ) ;
28
saveres_Callback ( [ ] , [ ] , handles ) ;
s e t a p p d a t a ( 0 , mergetemplate , 1 ) ;
30
merge ;
32
end
The Save FDD file button allow the user to copy the FDD.mat file to any
directory.
f u n c t i o n s a v e f d d f i l e _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
2
f u n c t i o n browsefdd_Callback ( hObject , ev en td at a , h a n d l e s )
[ FileName , PathName , F i l t e r I n d e x ] = u i g e t f i l e ( . mat , P l e a s e s e l e c t
t h e FDD. mat f i l e . ) ;
fdd_name=[PathName FileName ] ;
s e t ( h a n d l e s . f d d f i l e , S t r i n g , fdd_name ) ;
...
96
% hObject
h a n d l e t o l o a d f d d ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
4
% handles
% h a n d l e s = g u i d a t a ( hObject ) ;
s e t a p p d a t a ( 0 , FDD_location , g e t ( h a n d l e s . f d d f i l e , S t r i n g ) ) ;
g u i d a t a ( hObject , h a n d l e s ) ;
10
FDD=g e t a p p d a t a ( 0 , FDD_location ) ;
12
...
14
l o a d ( g e t a p p d a t a ( 0 , FDD_location ) , F a s t L i s t ) ;
FL=s t r u c t 2 c e l l ( F a s t L i s t ) ;
16
18
h a n d l e s=damping_Callback ( [ ] , hObject , h a n d l e s ) ;
saveres_Callback ( [ ] , [ ] , handles ) ;
20
s e t a p p d a t a ( 0 , mergetemplate , 1 ) ;
merge ;
22
end
AutoSSI
The Browse button in the AutoSSI panel leads to the selection of the folder
containing the measurement files. The path of the directory is then displayed
inside the text field below the button.
1
f u n c t i o n s s i b r o w s e _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
97
folder_name = u i g e t d i r ( , S e l e c t data f o l d e r ) ;
3
i f folder_name ( 1 ) ~=0
s e t ( h a n d l e s . s s i d i r , S t r i n g , folder_name ) ;
s e t ( h a n d l e s . s s i s t a r t , Enable , on ) ;
end
The Start SSI button reads the path of the directory written inside the text
field and executes the SSI analysis. For more informations about the AutoSSI
procedure, look at [? ].
The results are saved in the same format as the ones obtained from the AutoEFDD procedure.
2
% E x e c u t e s on button p r e s s i n s s i s t a r t .
f u n c t i o n s s i s t a r t _ C a l l b a c k ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o s s i s t a r t ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
6
% handles
folder_name=g e t ( h a n d l e s . s s i d i r , S t r i n g ) ;
8
%SSI
10
...
%%% Open f o l d e r
12
f i l e L i s t = g e t A l l F i l e s ( folder_name , 8 0 0 ) ;
14
...
%%% S e l e c t o n l y Fast f i l e
16
...
kn = datenum (ymd_hms) ;
18
...
%%%
Computation o f output c o v a r i a n c e m a t r i c e s v i a LQ
decomposition
20
...
%%% E x t r a c t modal p a r a m e t e r s
22
...
24
...
98
Result_damping ( i f a s t , : ) =[kn
26
( appr ( 1 : 1 2 , 2 ) ) . / 1 0 0 ] ;
...
28
i f ~exist ( . . \ Results , f i l e )
mkdir ( . . \ R e s u l t s ) ;
30
end
[ f i l e , path ] = u i p u t f i l e ( . . \ R e s u l t s \ SSI_Result_ , Save SSI R e s u l t s
File . ) ;
32
f i l e s s i =[ path f i l e ] ;
s a v e ( f i l e s s i , R e s u l t _ f r e q u e n c y , Result_damping ) ;
34
setappdata (0 , CurrentResults , f i l e s s i ) ;
viewresults ;
4.2.3
Identification panel
f u n c t i o n [ h a n d l e s ] = f r e q u e n c i e s _ C a l l b a c k ( hObject , ev en tda ta ,
handles )
s e t ( h a n d l e s . s t a t u s F , S t r i n g , Wait . . , BackgroundColor , [ 1 0 0 ] ) ;
FDD=g e t a p p d a t a ( 0 , FDD_location ) ;
6
l o a d (FDD) ;
gg =2;
10
99
% Inserimento dati
12
templ=g e t a p p d a t a ( 0 , u s i n g t e m p l a t e ) ;
14
if
templ == 0
else
16
end
18
i f pp==1
pp
= 1;
pp
= 1;
s e t ( h a n d l e s . svbutton , Enable , on ) ;
t t =1; aa =1;
20
s s =3;
i f a s t 0 = g e t ( h a n d l e s . i f a s t 0 , Value ) ;
22
24
26
28
ifast
ifast
= i f a s t 0+i f a s t 1;
fmTOT
= z e r o s ( f l o o r ( s i z e ( F a s t L i s t ) / ( i f a s t i f a s t 0 +1) ) , 5 0 ) ;
appAX
= z e r o s ( 5 0 , 3 0 0 , f l o o r ( s i z e ( F a s t L i s t ) / ( i f a s t i f a s t 0 +1) ) ) ;
ZZ
= appAX ;
YY
= appAX ;
indiciTOT=z e r o s ( f l o o r ( s i z e ( F a s t L i s t ) / ( i f a s t i f a s t 0 +1) ) , 5 0 ) ;
30
else
t t =1; aa=1;
32
end
h = w a i t b a r ( 0 , Subgroup a n a l y s i s . Wait . . . ) ;
NF F T
fs f requencys ensibility
(4.2.1)
i f s s==3
2
mac
= s t r 2 d o u b l e ( g e t ( h a n d l e s . mac , S t r i n g ) ) ;
= round (NFFT/ f s s t r 2 d o u b l e ( g e t ( h a n d l e s . n , S t r i n g ) )
);
After the modal domains are found [? ], the natural frequencies are identified
for each file. If the process is template-driven, then the first part was skipped
and the variables that define the modal domains are loaded from the template.
100
...
c l e a r v a r s e x c e p t h a n d l e s
i f g e t a p p d a t a ( 0 , u s i n g t e m p l a t e )==1
l o a d ( g e t a p p d a t a ( 0 , s a v e f i l e ) ) ; %c a r i c o i l s a v e f i l e d e l
template
l o a d ( g e t a p p d a t a ( 0 , i n d i c i ) ) ; %c a r i c o i l
f i l e i n d i c i del
template
else
load s a v e f i l e
load i n d i c i
11
end
l o a d ( g e t a p p d a t a ( 0 , FDD_location ) ) ;
13
...
The natural frequencies are then calculated and saved in the variable newf2.
The file PERDAMPING.mat contains the data needed for damping ratio calculation.
The frequency results are averaged excluding the outliers and displayed inside
the Results panel in order to provide a quick view of the results.
1
...
s a v e PERDAMPING SS0 Umodi NFFT f s newf2 f 1
FDD=g e t a p p d a t a ( 0 , FDD_location ) ;
l o a d (FDD, R e s u l t ) ;
f o r i =1: i f a s t 2
f o r j =1: s i z e ( INDICI , 2 )
R e s u l t ( i , j +1)=newf2 ( i , j ) ;
end
11
13
end
R e s u l t (~ R e s u l t )=nan ;
m o d e l i s t=f i n d o b j ( Tag , m o d e l i s t ) ;
15
f o r i =2: s i z e ( R e s u l t , 2 )
l i s t S T R { i 1}=[ Mode num2str ( i 1) : num2str ( trimmean (
101
R e s u l t ( : , i ) , 2 0 ) , 4 ) Hz ] ;
17
end
s e t ( modelist , String , listSTR ) ;
19
i f g e t a p p d a t a ( 0 , u s i n g t e m p l a t e )~=1
s e t ( f i n d o b j ( Tag , s v b u t t o n ) , Enable , on ) ;
21
end
23
25
s e t ( f i n d o b j ( Tag , f r e q u e n z e t e m p o ) , Enable , on ) ;
27
29
s e t ( f i n d o b j ( Tag , s t a t u s F ) , S t r i n g , OK , BackgroundColor , [ 0
1 0]) ;
s e t ( f i n d o b j ( Tag , s t a t u s D ) , V i s i b l e , on , S t r i n g , < ,
BackgroundColor , [ 0 . 9 4 1 0 . 9 4 1 0 . 9 4 1 ] ) ;
31
s e t ( f i n d o b j ( Tag , s a v e r e s ) , Enable , o f f ) ;
s e t ( f i n d o b j ( Tag , s a v e t e m p l a t e ) , Enable , o f f ) ;
33
s e t ( f i n d o b j ( Tag , v a l i d a t i o n ) , Enable , o f f ) ;
s e t ( f i n d o b j ( Tag , d a m p i n g v s f r e q u e n c i e s ) , Enable , o f f ) ;
35
37
The Singular values & MAC figure provides a plot of the Singular Values of
the Cross Power Spectral Density functions of the selected files.
1
% E x e c u t e s on button p r e s s i n s v b u t t o n .
f u n c t i o n svbutton_Callback ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o s v b u t t o n ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
5
% handles
FDD=g e t a p p d a t a ( 0 , FDD_location ) ;
7
l o a d (FDD) ;
102
11
13
15
i f a s t 0 = g e t ( h a n d l e s . i f a s t 0 , Value ) ;
ifast
ifast
= i f a s t 0+i f a s t 1;
fmTOT
= z e r o s ( f l o o r ( s i z e ( F a s t L i s t ) / ( i f a s t i f a s t 0 +1) ) , 5 0 ) ;
appAX
= z e r o s ( 5 0 , 3 0 0 , f l o o r ( s i z e ( F a s t L i s t ) / ( i f a s t i f a s t 0 +1) ) ) ;
ZZ
= appAX ;
YY
= appAX ;
indiciTOT=z e r o s ( f l o o r ( s i z e ( F a s t L i s t ) / ( i f a s t i f a s t 0 +1) ) , 5 0 ) ;
17
UUrif ( : , : ) =Umodi ( : , : , i f a s t 0 ) ;
19
f o r j=i f a s t 0 +1: i f a s t
f o r i =1:NFFT/2+1
UUrif2=UUrif ( i , : ) UUrif ( i , : ) ;
21
P=(UUrif ( i , : ) Umodi ( i , : , j ) ) . ^ 2 ;
u i=Umodi ( i , : , j ) Umodi ( i , : , j ) ;
23
25
end
27
STD=s t d (MACuu) ;
miniSTD=STD( 1 : 0 . 4 NFFT) ; % 40Hz : v a l o r e s c e l t o p e r a v e r e una
mSTD " p u l i t a "
29
31
end
33
DER=abs ( d i f f (MACuuMEDIO( : ) ) ) ;
miniDER=DER( 1 : 0 . 4 NFFT) ; % 40Hz : v a l o r e s c e l t o p e r a v e r e una
mDER " p u l i t a "
35
37
% G r a f i c i MAC medio e SV
x=0:NFFT;
39
y=xx+s t r 2 d o u b l e ( g e t ( h a n d l e s . mac , S t r i n g ) ) ;
41
43
45
movegui ( f i g u r e 1 , c e n t e r ) ;
subplot (2 ,1 ,1) ;
[AX, H1 , H2]= p l o t y y ( f 1 ( 1 : 0 . 4 NFFT+1) ,MACuuMEDIO( 1 : 0 . 4 NFFT
103
47
s c r i t t e y1
s e t (AX( 1 ) , YLim , [ 0 1 ] , YTick , [ 0 : 0 . 1 : 1 ] , XTick
,[0:1:0.4 fs ]) ;
s e t (AX( 1 ) , YColor , b ) ;
49
s e t ( g e t (AX( 2 ) , Y l a b e l ) , S t r i n g , SV( i ) , C o l o r , k ) ; %
s c r i t t e y2
s e t (AX( 2 ) , YLim ,[ 220 20] , YTick , [ 2 2 0 : 2 0 : 2 0 ] , XTick
51
,[0:1:0.4 fs ]) ;
p l o t ( x , y , r , l i n e w i d t h , 1 ) ;
s e t ( g e t ( gca , X l a b e l ) , S t r i n g , Frequency ( Hz ) , C o l o r ,
53
k);
t i t l e ( \ f o n t s i z e {12} S i n g u l a r v a l u e s r e f e r e n c e f i l e ) ;
subplot (2 ,1 ,2) ;
55
f o r i=i f a s t 0 : i f a s t
[AX, H1 , H2]= p l o t y y ( f 1 ( 1 : 0 . 4 NFFT+1) ,MACuuMEDIO( 1 : 0 . 4 NFFT
57
59
s e t (AX( 1 ) , YLim , [ 0 1 ] ) ;
61
end
s e t ( g e t (AX( 1 ) , Y l a b e l ) , S t r i n g , MAC , C o l o r , k ) ; %
s c r i t t e y1
s e t (AX( 1 ) , YTick , [ 0 : 0 . 1 : 1 ] , XTick , [ 0 : 1 : 0 . 4 f s ] ) ;
63
s e t (AX( 1 ) , YColor , b ) ;
s e t ( g e t (AX( 2 ) , Y l a b e l ) , S t r i n g , SV1 , C o l o r , k ) ; %
65
s c r i t t e y2
s e t (AX( 2 ) , YTick , [ 2 2 0 : 2 0 : 2 0 ] ) ;
p l o t ( x , y , r , l i n e w i d t h , 1 ) ;
67
s e t ( g e t ( gca , X l a b e l ) , S t r i n g , Frequency ( Hz ) , C o l o r ,
k);
69
t i t l e ( \ f o n t s i z e {12} F i r s t s i n g u l a r v a l u e a l l
files );
Natural frequencies trend button shows the trend over time of the natural
frequencies calculated for the selected measurements files.
1
104
R e s u l t=g e t a p p d a t a ( 0 , R e s u l t _ f r e q u e n c y ) ;
3
p l o t f r e q ( Result , 0 ) ;
f u n c t i o n p l o t f r e q ( Result , f r a x e s )
Result0 = Result ;
end
7
i f f r a x e s ~=0
axes ( f r a x e s ) ;
else
f i g u r e 1=f i g u r e ( C o l o r , [ 1 1 1 ] ) ;
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50
11
20]/2) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
13
end
maxf=max(max( R e s u l t ( : , 2 : end ) ) ) ;
15
f o r i = 2 : s i z e ( Result , 2 )
f r=num2str ( trimmean ( R e s u l t ( : , i ) , 2 0 ) , 4 ) ;
s e t _ l e g e n d ( i 1) = c e l l s t r ( [ Mode num2str ( i 1) : Hz f r
17
]) ;
end
19
23
s e t ( gca , P o s i t i o n , [ 0 . 1 3 0 . 1 0 5 7 1 4 2 8 5 7 1 4 2 8 6 0 . 6 3 3 5 1 3 5 1 3 5 1 3 5 1 4
0.811428571428571]) ;
legend ( set_legend , P o s i t i o n ,[0.809909909909913
0.0714285714285714 0.167567567567568 0.879706566220238]) ;
25
else
s e t ( gca , Tag , f r e q u e n z e ) ;
27
end
d a t e t i c k ( x , mmm yy , k e e p l i m i t s , k e e p t i c k s ) ;
29
x l a b e l ( Time , F o n t S i z e , 1 2 ) ; y l a b e l ( [ Hz ] , F o n t S i z e , 1 2 ) ;
105
y l a b e l ( N a t u r a l f r e q u e n c i e s ( Hz ) , F o n t S i z e , 1 2 ) ;
t i t l e ( [ \ f o n t s i z e {14} N a t u r a l f r e q u e n c i e s t r e n d ] ) ;
31
f u n c t i o n d a m p i n g v s f r e q u e n c i e s _ C a l l b a c k ( hObject , ev en td ata , h a n d l e s
)
l o a d DAMPING_RESULTS;
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50 2 0 ] / 2 ) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
box ( axes1 , on ) ;
h o l d ( axes1 , a l l ) ;
11
13
end
15
17
LineWidth , 2 ) ;
hold o f f ;
106
19
Mean damping vs frequencies button plots the averaged damping ratios related
to the corresponding averaged natural frequencies.
f u n c t i o n meanvsfrequency_Callback ( hObject , e ven td at a , h a n d l e s )
2
l o a d DAMPING_RESULTS;
f_mean_vs_d_mean ( f_mean , d_mean) ; %P l o t d e l damping medio vs l a
f r e q u e n z a media d e l modo
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50 2 0 ] / 2 ) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
box ( axes1 , on ) ;
h o l d ( axes1 , a l l ) ;
11
13
Marker , + , . . .
LineWidth , 2 ) ;
15
Box-plot button plots the box-plot representation of the damping ratios of each
mode related to the corresponding averaged natural frequency.
f u n c t i o n b o x p l o t _ C a l l b a c k ( hObject , e ve nt da ta , h a n d l e s )
107
l o a d DAMPING_RESULTS;
box_plot ( d _ r e s u l t s 0 , f_mean , d_mean) ; %P l o t d e l damping r i s p e t t o
a l l a f r e q u e n z a d e l modo
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50 2 0 ] / 2 ) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
box ( axes1 , on ) ;
h o l d ( axes1 , a l l ) ;
11
13
Selecting an entry on the Damping vs time drop-down menu displays the corresponding trend over time of the damping ratio for each structural mode.
f u n c t i o n dmode_Callback ( hObject , e ve nt da ta , h a n d l e s )
2
l o a d DAMPING_RESULTS;
i n d=g e t ( hObject , Value ) ;
i f ind>s i z e ( d _ r e s u l t s 2 , 2 ) | | i n d <= 0
e r r d l g ( I n d i c e non v a l i d o . ) ;
else
8
i f ind >1
f i g u r e 1 = f i g u r e ( Color , [ 1 1 1 ] ) ;
10
% Create axes
108
12
0.834549878345499 0.685015290519878]) ;
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50
20]/2) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
14
box ( axes1 , on ) ;
16
h o l d ( axes1 , a l l ) ;
18
20
,12) ;
y l a b e l ( Damping Ra ti o (%) , F o n t S i z e , 1 2 ) ;
t i t l e ( [ \ f o n t s i z e {14} Damping R a ti o Trend , Mode
22
num2str ( ind 1) ] ) ;
end
end
24
The button Validate simply launches a new interface, which contains tools to
display the intermediate results obtained in the calculation of damping.
...
% E x e c u t e s j u s t b e f o r e validate_dampingGUI i s made v i s i b l e .
f u n c t i o n validate_dampingGUI_OpeningFcn ( hObject , ev en tda ta ,
handles , varargin )
g u i d a t a ( hObject , h a n d l e s ) ;
R e s u l t=g e t a p p d a t a ( 0 , d a t e _ f i l e s ) ;
109
s e t ( h a n d l e s . date , S t r i n g , d a t e s t r ( R e s u l t ) ) ;
Selecting a date from the drop-down menu leads to the filling of the menu
containing the modal parameters found for each file.
% E x e c u t e s on s e l e c t i o n change i n d a t e .
2
l o a d ( h a n d l e s . f i l e v a l , damping , newf2 ) ;
f o r i =1: l e n g t h ( damping )
STR{ i }= [ num2str ( i ) : Frequency= num2str ( newf2 ( ind , i ) )
10
s e t ( h a n d l e s . mode , S t r i n g , STR) ;
s e t ( h a n d l e s . mode , Enable , on ) ;
14
s e t ( h a n d l e s . s p e c t r a l , Enable , on ) ;
s e t ( h a n d l e s . n o r m a l i z e d , Enable , on ) ;
16
s e t ( h a n d l e s . l o g a r i t m i c , Enable , on ) ;
s e t ( h a n d l e s . f f , Enable , on ) ;
The Spectral bell button displays the SDoF auto-spectral function corresponding to the selected mode for the selected file.
% E x e c u t e s on button p r e s s i n s p e c t r a l .
f u n c t i o n s p e c t r a l _ C a l l b a c k ( hObject , ev en tda ta , h a n d l e s )
load ( handles . f i l e v a l ) ;
c o n t e n t s = c e l l s t r ( g e t ( h a n d l e s . mode , S t r i n g ) ) ;
s e l e c t e d=c o n t e n t s { g e t ( h a n d l e s . mode , Value ) } ;
i n d e x=str2num ( s e l e c t e d ( 1 : ( s t r f i n d ( s e l e c t e d , : ) 1) ) ) ;
Fj=i n d e x ;
10
f i g u r e 1=f i g u r e ( C o l o r , [ 1 1 1 ] ) ;
a x e s 1 = a x e s ( Parent , f i g u r e 1 , YGrid , on , XGrid , on , . . .
110
12
14
movegui ( f i g u r e 1 , c e n t e r ) ;
p l o t 1=p l o t ( f 1 ( 1 : l e n g t h ( S e g n a l e ) ) , 2 0 l o g 1 0 ( S e g n a l e ) , f 1 ( 1 : l e n g t h (
S e g n a l e ) ) , 2 0 l o g 1 0 ( B e l l ( : , Fj ) ) ) ;
16
18
y l a b e l ( SV1 [ dB ] , F o n t S i z e , 1 2 ) ;
t i t l e ( \ f o n t s i z e {14} I d e n t i f i c a t i o n o f auto spectrum ) ;
The Spectral bell button displays the logarithmic decrement of the absolute
envelope function of the SDoF normalized correlation function corresponding
to the selected mode for the selected file.
1
% E x e c u t e s on button p r e s s i n l o g a r i t m i c .
3
f u n c t i o n l o g a r i t m i c _ C a l l b a c k ( hObject , e ven td at a , h a n d l e s )
load ( handles . f i l e v a l ) ;
c o n t e n t s = c e l l s t r ( g e t ( h a n d l e s . mode , S t r i n g ) ) ;
7
Fj=i n d e x ;
f i g u r e 1 = f i g u r e ( Color , [ 1 1 1 ] ) ;
11
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50 2 0 ] / 2 ) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
13
% Create axes
a x e s 1 = a x e s ( Parent , f i g u r e 1 , YGrid , on , XGrid , on , . . .
15
17
h o l d ( axes1 , a l l ) ;
t i t l e ( \ f o n t s i z e {14} V a l i d a t i o n o f Damping Ra ti o Estim ate ) ;
19
111
21
The Frequency (F) vs Frequency (T) displays the comparison between the
natural frequencies calculated in frequency domain and those estimated in
time domain a for the selected file.
% E x e c u t e s on button p r e s s i n f f .
f u n c t i o n f f _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
load ( handles . f i l e v a l ) ;
c o n t e n t s = c e l l s t r ( g e t ( h a n d l e s . mode , S t r i n g ) ) ;
s e l e c t e d=c o n t e n t s { g e t ( h a n d l e s . mode , Value ) } ;
i n d e x=str2num ( s e l e c t e d ( 1 : ( s t r f i n d ( s e l e c t e d , : ) 1) ) ) ;
Fj=i n d e x ;
10
f i g u r e 1 = f i g u r e ( Color , [ 1 1 1 ] ) ;
% Create axes
12
14
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50 2 0 ] / 2 ) ;
movegui ( f i g u r e 1 , c e n t e r ) ;
16
box ( axes1 , on ) ;
h o l d ( axes1 , a l l ) ;
18
20
The Normalized auto-correlation function displays the SDoF normalized correlation function corresponding to the selected mode for the selected file.
% E x e c u t e s on button p r e s s i n n o r m a l i z e d .
112
f u n c t i o n n o r m a l i z e d _ C a l l b a c k ( hObject , e ve nt da ta , h a n d l e s )
load ( handles . f i l e v a l ) ;
c o n t e n t s = c e l l s t r ( g e t ( h a n d l e s . mode , S t r i n g ) ) ;
6
Fj=i n d e x ;
Rectx =[MaxT( minTlag ( Fj ) , Fj ) MaxT( maxTlag ( Fj ) , Fj ) MaxT( maxTlag ( Fj ) ,
Fj ) MaxT( minTlag ( Fj ) , Fj ) MaxT( minTlag ( Fj ) , Fj ) ] ;
10
12
f i g u r e 1 = f i g u r e ( Color , [ 1 1 1 ] ) ;
s e t ( f i g u r e 1 , U n i t s , c e n t i m e t e r s , P o s i t i o n , [ 0 0 50 2 0 ] / 2 ) ;
14
movegui ( f i g u r e 1 , c e n t e r ) ;
% Create axes
a x e s 1 = a x e s ( Parent , f i g u r e 1 , YGrid , on , XGrid , on , . . .
16
18
h o l d ( axes1 , a l l ) ;
t i t l e ( \ f o n t s i z e {14} Normalized C o r r e l a t i o n Function o f
20
S i n g u l a r Value S p e c t r a l B e l l ) ;
p l o t ( Rectx , Recty , MaxT( minTlag ( Fj ) : maxTlag ( Fj ) , Fj ) , MaxTBell (
minTlag ( Fj ) : maxTlag ( Fj ) , Fj ) , iT ( 1 : l e n g t h ( TBell0 ) ) , TBell0 ( 1 :
l e n g t h ( TBell0 ) , Fj ) , LineWidth , 1 , C o l o r , [ 1 0 0 ] , . . .
DisplayName , f u n z i o n e d i a u t o c o r r e l a z i o n e n o r m a l i z z a t a )
22
;
x l a b e l ( { \ f o n t s i z e {12} Time Lag [ s ] } ) ;
24
y l a b e l ( { \ f o n t s i z e {12} Normalized C o r r e l a t i o n } ) ;
4.2.4
113
% E x e c u t e s on button p r e s s i n s a v e t e m p l a t e .
f u n c t i o n s a v e t e m p l a t e _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
% hObject
h a n d l e t o s a v e t e m p l a t e ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
5
% handles
NFFT=g e t ( h a n d l e s .NFFT, S t r i n g ) ;
NFFT=NFFT{ g e t ( h a n d l e s .NFFT, Value ) } ;
L=g e t ( h a n d l e s . L , S t r i n g ) ;
11
f s=g e t ( h a n d l e s . f s , S t r i n g ) ;
c h a n n e l s=g e t ( h a n d l e s . c h a n n e l s , S t r i n g ) ;
13
mac=g e t ( h a n d l e s . mac , S t r i n g ) ;
n=g e t ( h a n d l e s . n , S t r i n g ) ;
15
mac_damping=g e t ( h a n d l e s . mac_damping , S t r i n g ) ;
max_corr=g e t ( h a n d l e s . max_corr , S t r i n g ) ;
17
min_corr=g e t ( h a n d l e s . min_corr , S t r i n g ) ;
t e m p l a t e t y p e= AUTOEFDD ;
19
s t=s a v e t e m p l a t e ;
21
waitfor ( st ) ;
s e l e c t f i l e n a m e=g e t a p p d a t a ( 0 , tempname ) ;
23
d e s c r i p t i o n=g e t a p p d a t a ( 0 , tempdesc ) ;
a u t h o r=g e t a p p d a t a ( 0 , a u t h o r ) ;
25
image=g e t a p p d a t a ( 0 , tempimage ) ;
tempdate=d a t e s t r ( now , dd/mm/yy HH:MM ) ;
27
templatename=s t r r e p ( s e l e c t f i l e n a m e , , _ ) ;
29
i f ~ e x i s t ( . . \ template , f i l e )
mkdir ( . . \ t e m p l a t e ) ;
31
end
% templatename=s e l e c t f i l e n a m e { 1 } ;
33
s e l e c t f o l d e r =[ . . \ t e m p l a t e \ templatename ] ;
mkdir ( s e l e c t f o l d e r ) ;
35
114
d e s c r i p t i o n , author ) ;
c o p y f i l e ( s a v e f i l e . mat , [ s e l e c t f o l d e r \ s a v e f i l e . mat ] , f ) ;
c o p y f i l e ( image , [ s e l e c t f o l d e r \ tempimage . j p g ] , f ) ;
z i p ( [ . . \ t e m p l a t e \Template_ templatename . z i p ] , , [ . . \
t e m p l a t e \ templatename ] ) ;
m o v e f i l e ( [ . . \ t e m p l a t e \Template_ templatename . z i p ] , [ . . \
t e m p l a t e \Template_ templatename . e f d d ] , f ) ;
ok =0;
8
w h i l e ok==0
[ ok , message , m e s s a g e i d ]= rmdir ( s e l e c t f o l d e r , s ) ;
i f ok==0
10
pause ( 2 ) ;
end
12
end
14
s e t a p p d a t a ( 0 , templatename , templatename ) ;
setappdata (0 , savingtemplate ,1) ;
16
Results panel
The Save results panel saves the variables Result_f requency and Result_damping
to file.
If the process is template-driven, the program does not display any dialog and
automatically saves the results file inside the default directory.
115
f u n c t i o n s a v e r e s _ C a l l b a c k ( hObject , ev en td ata , h a n d l e s )
R e s u l t _ f r e q u e n c y=g e t a p p d a t a ( 0 , R e s u l t _ f r e q u e n c y ) ;
Result_damping=g e t a p p d a t a ( 0 , Result_damping ) ;
i f g e t a p p d a t a ( 0 , u s i n g t e m p l a t e )==1 | g e t a p p d a t a ( 0 , s a v i n g t e m p l a t e
)==1
f o l d e r n a m e =[ . . / R e s u l t s / g e t a p p d a t a ( 0 , templatename ) ] ;
end
e l e n c o= g e t a l l f i l e s ( f olde rna me , 1 ) ;
i n d =0;
f o r i =1: l e n g t h ( e l e n c o )
11
e l e m e n t o=e l e n c o { i } ;
i n d ( i )=s t r 2 d o u b l e ( e l e m e n t o ( ( f i n d s t r ( elemento , Result_ ) +7)
13
: ( f i n d s t r ( elemento , . mat ) 1) ) ) ;
end
indmax=max( i n d ) ;
15
i f indmax>=1
i n d i c e=indmax +1;
17
else
i n d i c e =1;
19
end
templatename=g e t a p p d a t a ( 0 , templatename ) ;
21
setappdata (0 , r e s u l t s f o l d e r , foldername ) ;
s a v e ( [ f o l d e r n a m e / Result_ num2str ( i n d i c e ) . mat ] ,
23
R e s u l t _ f r e q u e n c y , Result_damping , templatename ) ;
else
u i s a v e ( { R e s u l t _ f r e q u e n c y , Result_damping } , Result_ ) ;
25
end
27
s e t ( h a n d l e s . phase3 , BackgroundColor , [ 0 1 0 ] ) ;
29
hh=h e l p d l g ( R e s u l t s s u c c e s s f u l l y saved . ) ;
31
pause ( 3 ) ;
i f i s h a n d l e ( hh ) c l o s e ( hh ) ; end
Merge results button loads an interface used for joining multiple results files:
f u n c t i o n merge_Callback ( hObject , e ve nt dat a , h a n d l e s )
116
merge ;
If the process is driven by a template, the files contained in the default results
folder of the template are automatically loaded in the text list.
Otherwise, the user can select one file at a time pressing the Select results file
to merge button. The path of the file will then appear inside the text list
below the button.
The user is able to change the position of a selected file in the list by pressing
Move up and Move down buttons, while Remove button eliminates the file
from the list (it does not delete the actual file).
The core of the merging procedure resides in the merge Callback:
% E x e c u t e s j u s t b e f o r e merge i s made v i s i b l e .
f u n c t i o n merge_OpeningFcn ( hObject , e ve nt da ta , h a n d l e s , v a r a r g i n )
handle to f i g u r e
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
10
% handles
% varargin
12
g u i d a t a ( hObject , h a n d l e s ) ;
% Update h a n d l e s s t r u c t u r e
14
s e t a p p d a t a ( 0 , path , ) ;
16
i f g e t a p p d a t a ( 0 , mergetemplate )==1
s e t ( h a n d l e s . s o r t d a t e , Value , 1 ) ;
s e t ( h a n d l e s . s o r t u s e r , Value , 0 ) ;
18
s e t ( handles . f i l e s , S t r i n g , g e t a l l f i l e s ( getappdata (0 ,
r e s u l t s f o l d e r ) ,1) ) ;
[ h a n d l e s ]= merge_Callback ( hObject , e ven td at a , h a n d l e s ) ;
20
22
c l o s e _ C a l l b a c k ( hObject , e ve nt da ta , h a n d l e s ) ;
d e l e t e ( f i n d o b j ( Tag , mergepanel ) ) ;
end
24
117
% u i w a i t ( h a n d l e s . mergepanel ) ;
28
32
f u n c t i o n v a r a r g o u t = merge_OutputFcn ( hObject , ev en td at a , h a n d l e s )
% varargout
c e l l a r r a y f o r r e t u r n i n g output a r g s ( s e e VARARGOUT) ;
% hObject
handle to f i g u r e
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
34
% handles
36
38
v a r a r g o u t {1} = h a n d l e s . output ;
40
% E x e c u t e s on button p r e s s i n pushbutton1 .
42
44
f u n c t i o n pushbutton1_Callback ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o pushbutton1 ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
46
s e t a p p d a t a ( 0 , path , PathName ) ;
res_name =[PathName FileName ] ;
50
i f FileName~=0
F i l e s=g e t ( h a n d l e s . f i l e s , S t r i n g ) ;
F i l e s { l e n g t h ( F i l e s )+1}=res_name ;
52
s e t ( h a n d l e s . f i l e s , Value , l e n g t h ( F i l e s ) ) ;
set ( handles . f i l e s , String , F i l e s ) ;
54
i f ( l e n g t h ( F i l e s ) >0)
s e t ( h a n d l e s . remove , Enable , on ) ;
56
s e t ( h a n d l e s . moveup , Enable , on ) ;
s e t ( h a n d l e s . movedown , Enable , on ) ;
58
s e t ( h a n d l e s . merge , Enable , on ) ;
end
60
end
118
62
% E x e c u t e s on s e l e c t i o n change i n f i l e s .
64
66
f u n c t i o n f i l e s _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
% hObject
h a n d l e t o f i l e s ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
68
% H i n t s : c o n t e n t s = c e l l s t r ( g e t ( hObject , S t r i n g ) ) r e t u r n s f i l e s
contents as c e l l array
70
72
% E x e c u t e s d u r i n g o b j e c t c r e a t i o n , a f t e r s e t t i n g a l l
properties .
74
76
f u n c t i o n f i l e s _ C r e a t e F c n ( hObject , e ve ntd at a , h a n d l e s )
% hObject
h a n d l e t o f i l e s ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
empty h a n d l e s not c r e a t e d u n t i l a f t e r a l l
CreateFcns c a l l e d
78
82
end
84
86
% E x e c u t e s on button p r e s s i n remove .
f u n c t i o n remove_Callback ( hObject , e ve nt da ta , h a n d l e s )
88
% hObject
h a n d l e t o remove ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
90
% handles
c o n t e n t=g e t ( h a n d l e s . f i l e s , S t r i n g ) ;
92
i n d=g e t ( h a n d l e s . f i l e s , Value ) ;
119
94
content ( ind ) = [ ] ;
96
s e t ( h a n d l e s . f i l e s , Value , l e n g t h ( c o n t e n t ) ) ;
set ( handles . f i l e s , String , content ) ;
98
i f ( l e n g t h ( c o n t e n t )==0)
s e t ( h a n d l e s . remove , Enable , o f f ) ;
s e t ( h a n d l e s . moveup , Enable , o f f ) ;
100
s e t ( h a n d l e s . movedown , Enable , o f f ) ;
s e t ( h a n d l e s . merge , Enable , o f f ) ;
102
end
104
% E x e c u t e s on button p r e s s i n moveup .
106
108
f u n c t i o n moveup_Callback ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o moveup ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
110
c o n t e n t=g e t ( h a n d l e s . f i l e s , S t r i n g ) ;
i n d=g e t ( h a n d l e s . f i l e s , Value ) ;
112
i f ind >1
tmp=c o n t e n t { ind 1};
114
c o n t e n t { ind 1}=c o n t e n t { i n d } ;
c o n t e n t { i n d}=tmp ;
116
118
end
120
% E x e c u t e s on button p r e s s i n movedown .
122
124
f u n c t i o n movedown_Callback ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o movedown ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
126
c o n t e n t=g e t ( h a n d l e s . f i l e s , S t r i n g ) ;
i n d=g e t ( h a n d l e s . f i l e s , Value ) ;
128
i f ind<l e n g t h ( c o n t e n t )
130
tmp=c o n t e n t { i n d +1};
120
c o n t e n t { i n d+1}=c o n t e n t { i n d } ;
c o n t e n t { i n d}=tmp ;
132
134
end
136
% E x e c u t e s on button p r e s s i n merge .
138
140
f u n c t i o n [ h a n d l e s ]= merge_Callback ( hObject , e ve nt da ta , h a n d l e s )
% hObject
h a n d l e t o merge ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
142
% R e s u l t _ f r e q u e n c y , Result_damping
f i l e s =g e t ( h a n d l e s . f i l e s , S t r i n g ) ;
144
l e n =0;
dupl =0;
146
i n d e x =1;
d e l e t e d u p l i c a t e=g e t ( h a n d l e s . d u p l i c a t e , Value ) ;
148
f o r i =1: l e n g t h ( f i l e s )
150
%s e i f i l e s non contengono l e v a r i a b i l i R e s u l t _ f r e q u e n c y e
Result_damping non sono f i l e s d i r i s u l t a t i
152
v a r s=who ( f i l e , f i l e s { i } ) ;
i s o k=c e l l 2 m a t ( s t r f i n d ( vars , R e s u l t _ f r e q u e n c y ) )+c e l l 2 m a t (
s t r f i n d ( vars , Result_damping ) ) ;
154
i f isempty ( i s o k ) | | i s o k ~=2
e r r o r d l g ( [ The f i l e
f i l e s { i } i s not a r e s u l t f i l e . ] ) ;
return
156
end
158
160
load ( f i l e s { i }) ;
%s e i f i l e s p r e s e n t a n o un numero d i v e r s o d i modi non p o s s o n o
essere uniti .
i f i >1
162
i f s i z e ( R e s u l t _ f r e q u e n c y , 2 )~=modi
e r r o r d l g ( The s e l e c t e d r e s u l t f i l e s a r e not c o m p a t i b l e
. D i f f e r e n t number o f modes . ) ;
return
164
end
121
end
166
modi=s i z e ( R e s u l t _ f r e q u e n c y , 2 ) ;
168
%r i m o z i o n e d u p l i c a t i
i f i >1 && d e l e t e d u p l i c a t e==1
170
s i z e R e s=s i z e ( R e s u l t _ f r e q u e n c y , 1 ) ;
f o r k=1: s i z e R e s
172
i f f i n d ( Sequence_f ( : , 1 )==R e s u l t _ f r e q u e n c y ( s i z e R e s k
+1 ,1) , 1 , F i r s t )>0
R e s u l t _ f r e q u e n c y ( s i z e R e s k + 1 , : ) = [ ] ;
174
Result_damping ( s i z e R e s k + 1 , : ) = [ ] ;
dupl=dupl +1;
176
end
end
178
end
180
%merge
l e n=s i z e ( R e s u l t _ f r e q u e n c y , 1 )+l e n ;
182
Sequence_f ( i n d e x : l e n , : ) =R e s u l t _ f r e q u e n c y ( 1 : s i z e (
Result_frequency , 1 ) , : ) ;
Sequence_d ( i n d e x : l e n , : ) =Result_damping ( 1 : s i z e ( R e s u l t _ f r e q u e n c y
184
,1) ,:) ;
i n d e x=i n d e x+s i z e ( R e s u l t _ f r e q u e n c y , 1 ) ;
c l e a r R e s u l t _ f r e q u e n c y Result_damping ;
186
end
188
%ordinamento p e r data
i f g e t ( h a n d l e s . s o r t d a t e , Value )==1
Sequence_f=s o r t r o w s ( Sequence_f , 1 ) ;
190
Sequence_d=s o r t r o w s ( Sequence_d , 1 ) ;
192
end
194
R e s u l t _ f r e q u e n c y=Sequence_f ;
Result_damping=Sequence_d ;
196
d i a l o g s t r =[ num2str ( l e n g t h ( f i l e s ) ) r e s u l t s f i l e s merged .
num2str ( s i z e ( R e s u l t _ f r e q u e n c y , 1 ) ) t o t a l rows . ] ;
198
i f d e l e t e d u p l i c a t e==1
d i a l o g s t r =[ d i a l o g s t r num2str ( dupl ) d u p l i c a t e e n t r i e s d e l e t e d
. ];
200
end
122
hd=h e l p d l g ( d i a l o g s t r , Merge d e t a i l s ) ;
202
204
% w a i t f o r ( hd ) ;
i f g e t a p p d a t a ( 0 , mergetemplate )==1
s a v e ( [ g e t a p p d a t a ( 0 , r e s u l t s f o l d e r ) / c u r r e n t _ s e q u e n c e . mat ] ,
R e s u l t _ f r e q u e n c y , Result_damping ) ;
s e t a p p d a t a ( 0 , CurrentRes , [ g e t a p p d a t a ( 0 , r e s u l t s f o l d e r ) /
206
c u r r e n t _ s e q u e n c e . mat ] ) ;
208
else
[ FileName , PathName ] =u i p u t f i l e ( [ g e t a p p d a t a ( 0 , path )
Sequence_ ] , Save merged f i l e ) ;
s a v e ( [ PathName FileName ] , R e s u l t _ f r e q u e n c y , Result_damping ) ;
210
end
s e t ( h a n d l e s . view , Enable , on ) ;
214
s e t a p p d a t a ( 0 , mergetemplate , 0 ) ;
pause ( 3 ) ;
216
i f i s h a n d l e ( hd ) c l o s e ( hd ) ; end
218
% E x e c u t e s on button p r e s s i n c l o s e .
220
222
f u n c t i o n c l o s e _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
% hObject
h a n d l e t o c l o s e ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
224
226
% E x e c u t e s on button p r e s s i n s o r t d a t e .
228
230
f u n c t i o n s o r t d a t e _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
% hObject
h a n d l e t o s o r t d a t e ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
232
s e t ( h a n d l e s . s o r t u s e r , Value , 0 ) ;
123
236
% E x e c u t e s on button p r e s s i n s o r t u s e r .
f u n c t i o n s o r t u s e r _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
238
% hObject
h a n d l e t o s o r t u s e r ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
240
% handles
242
244
246
% E x e c u t e s on button p r e s s i n d u p l i c a t e .
f u n c t i o n d u p l i c a t e _ C a l l b a c k ( hObject , ev en td at a , h a n d l e s )
248
% hObject
h a n d l e t o d u p l i c a t e ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
250
% handles
252
254
% E x e c u t e s on button p r e s s i n view .
256
258
f u n c t i o n view_Callback ( hObject , ev en td at a , h a n d l e s )
% hObject
h a n d l e t o view ( s e e GCBO)
% eventdata
r e s e r v e d t o be d e f i n e d i n a f u t u r e v e r s i o n o f
MATLAB
% handles
260
s e t a p p d a t a ( 0 , C u r r e n t R e s u l t s , g e t a p p d a t a ( 0 , CurrentRes ) ) ;
viewresults ;
4.2.5
Menu elements
124
Chapter 5
5.1
Ponte Nuovo del Popolo bridge, often referred to in abbreviated form as Ponte
Nuovo, is located in the city center of Verona, on the Adige river. It is a
reinforced concrete bridge, three-span arched, with an outer coating made of
stone. The bridge was built just after World War II to replace the previous
bridge, which was inaugurated just six years before, and was destroyed in the
bombing.
125
5.1.1
The geometry of the structure is known based on some original drawings and
measurements performed at the intrados of the bridge in correspondence of
all three spans [? ]. The bridge has a total length of 90.5 meters. Regarding
the three spans, the central one has a length greater than the two lateral, in
particular, the central arch has a span of 33.42 meters, while the two lateral
arches have a span of 25.23 meters.
The overall width of the deck is 14.32 meters, the frame supports the roadway
with two lanes, one in each direction, plus two sidewalks on both ends of the
cross section. The sidewalks have a width of 2.55 meters each.
The top of the deck slab in reinforced concrete has a project thickness equal
to 18 cm.
The static scheme consists of seven main beams, placed longitudinally along
the length of the bridge, and eleven of the stiffening crosspieces, which connect
in the transverse direction all the main beams.
There are also transversal joists, smaller in size compared to the crosspieces,
which connect at regular intervals the five central longitudinal beams, that is,
from number 2 to number 6, they form a lattice of crosspieces, which complements a series of strengthening bars cross .
126
in the piers, in the section between the stack and the two adjacent transverse
stiffening crosspieces, the first towards the middle of the bridge, the second
in the side spans. The above intrados slab has a variable thickness: in correspondence of the stack is equal to 25 cm, while in correspondence of the first
stringers near the pier is equal to 10 cm [? ].
127
128
5.2
5.2.1
Inspection works
Materials testing
The knowledge of the characteristics of the materials that compose the bridge
is crucial for subsequent analysis. The purpose of the determination of the
mechanical characteristics of the materials was in fact to be able to calibrate a
finite element model of the bridge, in order to perform dynamic identification.
Following a series of inspections on the structure, an experimental investigation
aimed at providing all the real characteristics of the materials was performed.
In order to properly define the characteristics of the constituent materials, such
as steel and concrete, 4 pieces of reinforcing bars were extracted in places where
it would not aggravate the structural situation; 10 samples of concrete circular
with a diameter of 100 mm were also collected. In addition, the sclerometric
tests have been performed on site on the concrete forming the soffit of the
longitudinal beams and stringers[? ].
129
fck [MPa]
Longitudinal beams
21.9
Stringers
19.1
P (t)
(5.2.1)
d2
4
li (t)
(5.2.2)
l
The secant modulus of elasticity E (in compression) between the two stress
(t) =
i 0i
=
i
(5.2.3)
where:
: Stress Range;
i : Maximum stress of the test cycle
0i : Starting stress of the test cycle
: Unit change in length corresponding to this interval measured during
unloading.
For each considered structural element (longitudinal beams and stringers), a
value of the concrete secant modulus of elasticity in compression E is calculated
as the average of the respective samples from the corresponding element. The
values are given in the following table:
Structural part
Longitudinal beams
33040
Stringers
32562
131
= 144065M pa
(5.2.4)
The values of the project tensile strength for each element will be assumed
equal to the mean value of the yielding stress obtained with the tensile tests,
as reported in the following table:
Element
fyk [MPa]
Reinforcing bars
360.21
132
5.3
Modal analysis
5.3.1
Dynamic testing
The dynamic test is carried out in order to develop a system for dynamic
identification for the structure.
Firsts a FEM model of the bridge will be considered. The observed vibration
modes allow the configuration of the measurement system and monitoring of
the structure on the most significant points.
Subsequently, the measurements obtained from the structure will be processed
by means of methods based on Operational Modal Analysis. A comparison
between the results provided by the various methods will indicate the reliability
of the results.
Once OMA methods are validated, their results will provide a calibration for
the FEM model. It will also be possible to observe any change in the modal
parameters over time.
(5.3.1)
(5.3.2)
The m-set of Master DoFs is defined as the set of total DoFs that remain in
the previous equation. Analogously the s-set contains all DoFs that will be
eliminated:
m s = n,
n = DOFtotal ,
ms=
(5.3.3)
By partitioning the system matrices into block matrices that depend explicitly
on the m-set or s-set or a combination of them, the following re-ordered system
is obtained:
xm
xs
where:
=
M
Mmm Mms
Msm
Mss
+K
xm
xs
!
=
!
,
=
and K
fm
!
(5.3.4)
fs
Kmm Kms
Ksm
Kss
!
(5.3.5)
The second equation is solved for xs and its is assumed that there is no force
applied on the external DoFs, i.e fs = 0. The transformation matrix for the
static reduction is obtained by omitting the equivalent inertia terms:
!
!
xm
I
=
xm = Tstatic xm
(5.3.6)
1
xs
Kss
Ksm
Guyan reduction is a good approximation for the lower eigenfrequencies respectively eigenvectors.
135
(5.3.7)
which is then re-ordered into the block partitioned master/slave DoFs as defined previously, giving in that way the transformation matrix for the dynamic
reduction:
Tdynamic =
I
B()1
ss B()sm
(5.3.8)
where:
B()i,j = Mi,j 2 + Ki,j ,
i, j {s, m}
(5.3.9)
136
137
5.3.2
4.972
1.66
6.039
2.50
6.768
2.10
7.622
2.60
11.72
0.91
12.17
1.43
138
1
2
3
4
5
6
ARTeMIS (FDD with Peak-Picking The results, for the first 6 structural
modes, given by ARTeMIS FDD Peak-Picking procedure are:
Mode
4.980
6.250
6.738
7.422
8.691
8.960
139
140
141
5.4
Dynamic monitoring
The SHM system has been designed and installed on the Ponte Nuovo in
order to monitor its mechanical behaviour. The final aim is the acquisition
of the vibrational characteristics of the monument by means of acceleration
transducers The acquired data are constantly related to the environmental
parameters (temperature and relative humidity).
Insitutions involved
UNIPD
Period of implementation
Date of activation
Dynamic System
18/1/2013
Accelerometers Continuous Dynamic
monitoring system
Active
Undefined
5.4.1
143
Figure 5.15: Trend over time of the natural frequencies for Ponte Nuovo
(Jan. 13 - Apr. 13).
144
Figure 5.17: Mean values of the modal parameters (Jan. 13 - Apr. 13).
Figure 5.19: Trend over time of damping ratios for mode 1 (Jan. 13 - Apr.
13).
5.5
5.5.1
Structural analysis
Model preparation
A finite element model of the structure was developed using the Strand7 soft145
ware (HSH Computing, Padua).
elements, while the thickness variation of the bottom slab in the longitudinal direction of the bridge was obtained by varying the thickness of the plate
elements.
Figure 5.21: The lattice of deck girders, modelled with beam elements.
Figure 5.22: The rigid links that connect the bottom slab to the top.
5.5.2
Model calibration
fF EM fS
100
fF EM
(5.5.1)
where:
fF EM is the numerical frequency;
fS is the experimental frequency.
The MAC index is defined as:
P
| nj=1 X,j A,j |2
P
M AC(X, A) = Pn
| j=1 X,j X,j || nj=1 A,j A,j |
where:
X,j is the experimental mode shape vector;
A,j is the numerical mode shape vector.
147
(5.5.2)
148
References
[1] Allemang R.J.,Brown D.L., "Experimental modal analysis", Chapter 21.
[2] ASCE SEI Committee on Structural Identification of Constructed Systems "Structural Identification (St-Id) of Constructed Facilities", American Society of Civil Engineers, Structural Engineering Institute, 2011.
[3] Baker B., "How delta-sigma ADCs work", Texas Instruments Incorporated,Analog Applications Journal, 2011
[4] Bendat J.S., Piersol A.G., "Random Data: Analysis and Measurement
Procedures", Fourth Edition, Wiley Series in Probability and Statistics,
2010
[5] Biloov A., "Modal Testing", 2011.
[6] Bisson A., "Caratterizzazione strutturale ed identificazione dinamica di
due ponti stradali", 2011.
[7] Brinker R., Andersen P., "Understanding Stochastic Subspace Identification", Proceedings of the 24th International Modal Analysis Conference
(IMAC), St. Louis, Missouri, 2006
[8] Cooley J.W., Tuckey J.W., "An Algoritm for the Machine Calculation
of Complex Fourier Series", Mathematics of computation 1965.
[9] Cunha A., Caetano E, "Experimental Modal Analysis of Civil Engineering Structures", Sound and Vibration, June 2006.
[10] Ewins D. J., "Modal Testing - Theory and Practice", Research Studies
Press, 1984.
149
References
[11] Gade S., Mller N.B., Herlufsen H., Konstantin-Hansen H., "Frequency
Domain Techniques for Operational Modal Analysis", Brel & Kjr
Sound and Vibration Measurements A/S, IMAC-XXIV: Conference &
Exposition on Structural Dynamics - Looking Forward: Technologies for
IMAC, 2006
[12] He, J., Fu, Z.F., "Modal Analysis" Butterworth-Heinemann, 2001.
[13] Islami K., "Enhanced system identification and automatic SHM of bridge
structures", Ph.D. Thesis, University of Padua, Italy, 2013.
[14] Jacobsen N-J., Andersen P., Brinker R., "Using Enhanced Frequency Domain Decomposition as a Robust Technique to Harmonic Excitation in
Operational Modal Analysis", Proceedings of The 2nd International Operational Modal Analysis Conference (IOMAC), Copenhagen, Denmark,
2007.
[15] Koutsovalisis P., Beitelschmidt M., "Model Reduction of Large Elastic
Systems, A Comparison Study on the Elastic Piston Rod", 12th World
Congress in Mechanism and Machine Science, IFToMM, 2007.
[16] Ljung L., "System Identification: Theory for the User", Prentice Hall,
1987.
[17] Masjedian M.H., Keshmiri M., "A Review on Operational Modal Analysis Researches: Classification of Methods and Applications", IOMAC09
3rd International Operational Modal Analysis Conference, 2009
[18] Piovesan D., "Dynamic system identification of bridges: development of
automatic algorithms in the frequency domain for continuous monitoring.", Univerisit degli studi di Padova, 2013.
[19] Zhang L., Brincker R., Andersen P., "An Overview of Operational Modal
Analysis: Major Development and Issues", Proceedings of the 1st International Operational Modal Analysis Conference (IOMAC), Copenhagen,
Denmark, 2005
150