Abravibe A MATLAB/Octave Toolbox For Noise and Vibration Analysis and Teaching Revision 2.0
Abravibe A MATLAB/Octave Toolbox For Noise and Vibration Analysis and Teaching Revision 2.0
Abravibe A MATLAB/Octave Toolbox For Noise and Vibration Analysis and Teaching Revision 2.0
A MATLAB/Octave toolbox
for Noise and Vibration Analysis and
Teaching
Revision 2.0
Anders Brandt
Department of Technology and Innovation
University of Southern Denmark
abra@iti.sdu.dk
i
Contents
Contents ii
1 Introduction 1
1.1 Contents of the Toolbox . . . . . . . . . . . . . . . . . . . . 1
1.2 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 What’s New . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Notes to GNU Octave Users . . . . . . . . . . . . . . 5
2 Getting Started 6
2.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Installation Procedure . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Semi-Automatic Installation Procedure (MATLAB) . 7
2.2.2 Manual Installation Procedure for MATLAB . . . . . 7
2.2.3 Manual Installation Procedure for GNU Octave . . . 8
2.3 Testing That Everything Works . . . . . . . . . . . . . . . . 8
2.3.1 Software Quality Checks . . . . . . . . . . . . . . . . 9
2.4 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1 Documentation Files . . . . . . . . . . . . . . . . . . 9
2.4.2 Bug Reports . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Chapter Examples . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 For New Users to MATLAB . . . . . . . . . . . . . . . . . . 10
2.7 Functionality Not Available in GNU Octave . . . . . . . . . 10
2.8 Finding Your Way Around ABRAVIBE . . . . . . . . . . . . 10
3 Data Storage 12
3.1 Measurement Data Format . . . . . . . . . . . . . . . . . . . 12
3.1.1 Header Variables . . . . . . . . . . . . . . . . . . . . 13
3.1.2 Function Types . . . . . . . . . . . . . . . . . . . . . 15
3.2 Impact Test Data Format . . . . . . . . . . . . . . . . . . . 16
3.3 Modal Results File Format . . . . . . . . . . . . . . . . . . . 18
3.4 Universal File Import/Export . . . . . . . . . . . . . . . . . 20
ii
CONTENTS iii
4 Toolbox Functionality 22
4.1 Impact Testing . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Experimental Modal Analysis, EMA . . . . . . . . . . . . . 22
4.3 Operational modal analysis, OMA . . . . . . . . . . . . . . . 23
4.4 Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Bibliography 25
Appendix 26
Command List . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Chapter 1
Introduction
1
CHAPTER 1. INTRODUCTION 2
user interface (GUI) based features. I therefore no longer encourage the use
of ABRAVIBE with Octave, but leave it up to you to decide.
The toolbox comprises a comprehensive set of functions for generation
of test data, and for data analysis. This essentially means it includes func-
tionality similar to an advanced multi-channel measurement and analysis
system for noise and vibration analysis. In addition, the powerful method
for generating forced response data of a mechanical system (described in
Section 6.5 in [1]) is very attractive for teaching vibration analysis, as it
gives you a tool to create simulated data for virtually any mechanical sys-
tem. It is also important to validate a data analysis method you develop.
The toolbox can thus be used for analyzing synthetically generated data as
well as real, measured data, and it can cope with an unlimited number of
measurement channels, much thanks to the included data storage formats
(see Chapter 3).
The toolbox includes functions for noise and vibration analysis such as
1.2 License
The toolbox, except the animate command, is published under the GNU
General Public License (GNU GPL). For details of the legal information,
see the file gpl license ver3 2007.txt. For details of copyright and license
information for the animate command, please see inside the file anima-
tion.html in the help directory under the animate folder, or under the
animate -- Help -- Animation Help inside the animate GUI.
As laid out by the license file, you can essentially use the toolbox for
any purpose, commercial or noncommercial, as long as you keep the original
toolbox file information, and, if you make any changes or additions, as long
as you let your own software based on ABRAVIBE be published under
GNU GPL. You can modify the files as you please, as long as you keep
the original copyright information and clearly mark your changes. Good
practice is to store modified files under new file names, to avoid confusion
with the original.
If you find use of this toolbox outside the immediate scope (i.e. teaching
yourself or others vibration analysis), I will be glad if you let me know by
writing an email to abra@iti.sdu.dk. Also, if you use this toolbox for any
scientific work that you publish, I’d really appreciate if you reference it by
referring to this document [2].
fixes have also been made. The most important new functionality is the
GUI based impact testing software, and extended EMA and OMA support.
New or updated commands:
Changed commands:
adaqhelp
agetdata
arecdata
apreview
impacthelp
impproc
impsetup
All these commands are removed due to changes in hardware support (for
the data acquisition commands), or because they are obsolete once the
ImpactGui is available. The files for these commands are, however, still
available, for backward compatibility. Also, if you are using Octave, you
can still use the files for impact testing.
Getting Started
2.1 Prerequisites
The toolbox has been developed and tested in Windows, but it should most
likely work also under Linux. The instructions below assume you are using
Windows.
The requirements to run the toolbox is depending on whether you run
it under MATLAB or under GNU Octave
6
CHAPTER 2. GETTING STARTED 7
abrainst
• Start a file browser and locate the file octaverc in the startup folder
of the Octave installation. Open the file with, for example, WordPad,
and add the following lines at the end of the file
model, see Sections 3.4 and 4.4, respectively. You should also regularly
look at the website under ‘Learn More!’ since I sometimes publish videos
describing certain parts of ABRAVIBE functionality. Furthermore, I have
a YouTube channel called ‘Anders Brandt ABRAVIBE’.
Chapter 3
Data Storage
To allow storage of noise and vibration data from real measurements, the
following proposed file formats defined for measurement data can be used.
The described formats here can easily be extended for your personal use.
The proposed file format consists of three different types of files:
• Storage of general measurement data, in ‘standard’ MATLAB ‘*.mat’
files, as defined in Section 3.1,
• A special data storage format for impact test time data, in files with
extension ‘*.imptime’, see Section 3.2, and
• A storage format for ODS and modal test data (either EMA or OMA)
with geometry and mode shape information, see Section 3.3. These
files have an extension ‘.mod’.
12
CHAPTER 3. DATA STORAGE 13
Data imported using the universal file interface, see Section 3.4, are
automatically stored in this file format, with the header fields listed in
Section 3.1.1. If you write your own file import routine, it is a good idea to
store the data in the ABRAVIBE format, as it allows, for example, to use
the data browser to scroll through and plot your data (provided you are
using MATLAB).
• The Data variable is a cell array with the force signal in the first
cell, and then the time data of each response sensor (accelerometer)
in subsequent cells. Each cell has to contain data in a column
Table 3.3: Optional header fields for an ABRAVIBE file containing a spec-
tral density function
beam1.imptime
beam2.imptime
...
beam20.imptime
For processing, each of these files can be opened by using the syntax
(given as an example here for the first file)
load beam1.imptime -mat
where the option -mat at the end tells MATLAB/Octave that the file is
stored in MATLAB format despite its odd extension.
Once opened, if you type the command whos, you should get a list
similar to
Name Size Bytes Class Attributes
Table 3.6: Record fields for the GEOMETRY variable for modal data
Field Name Type Comment
node Integer Column vector with node labels
x Float Column vector with node X-axis data
y Float Column vector with node Y-axis data
z Float Column vector with node Z-axis data
conn Integer Row vector with node labels describing
the wireframe. A line-break (pen-up)
can use a NaN, 0, or -1 (double)
Table 3.7: Record fields for the MODAL variable for modal data . Each
mode shape is stored in a separate record MODAL(n)
animate command and described in Table 3.6 and Table 3.7, respectively,
and an extra field MHEADER which is specific to the ABRAVIBE toolbox
but not necessary for animate to work properly. See Section 4.4 for more
information about the animate command.
The header information in the variable MHEADER can be used to store
information about the modal analysis (or ODS) results, but is not required
by the animate command, and thus the header variable is optional. Note,
however, that some information in this header is necessary if data are to
be exported in universal file format. In addition, if universal file import of
modal data is used (see Section 3.4), MHEADER is automatically created by
the abra2modstr command. The fields of the MHEADER command are listed
in Table 3.8.
CHAPTER 3. DATA STORAGE 20
Table 3.8: Record fields for the MHEADER variable for modal data.
Information relating to each mode shape is stored in a separate record
MHEADER(n). For more specific information, see documentation of the
universal file format 55, for example at http://sdrl.uc.edu/sdrl/
referenceinfo/universalfileformats
Field Name Type Comment
Title String A free title line
Title2 String A free title line
Date String Date and time of analysis
Title3 String A free title line
Title4 String A free title line
ModelType Integer 1 means structural model
AnalysisType Integer 2=normal mode, 3=complex mode
DataChar Integer 2=only translational DOFs, 3=transla-
tional and rotational DOFs
SpecDataType Integer 8=displacement, 11=velocity, 12=ac-
celeration
DataType Integer 2=real, 5=complex
NumValuesPerNode Integer see unv55 format
NumIntDataValues Integer see unv55 format
NumRealDataValues Integer see unv55 format
LoadCase Integer see unv55 format
ModeNumber Integer Mode number
Eigenvalue Float Complex pole in radians/sec.
ModalA Float Modal A
ModalB Float Modal B
LastNo = unvread(FileName,Prefix,FirstNo)
Toolbox Functionality
>> ImpactGui
ir2ptime
frf2ptime
22
CHAPTER 4. TOOLBOX FUNCTIONALITY 23
in which cases the user is first asked to select the frequency range to be
used.
The functionality for EMA includes two single-degree-of-freedom meth-
ods, and the following multiple-degree-of-freedom methods
• Prony’s method, for one FRF or impulse response, or
• Least squares complex exponential (LSCE) method, for several FRFs
or IRs, but for only one reference, or
• Polyreference time domain method (PTD), for several FRFs or IRs,
and several references, or
• Modified multiple-reference Ibrahim time domain method, for several
FRFs or IRs, and several references.
For each of these MDOF methods, a GUI based stabilization diagram is
used, if used in MATLAB.
For mode shape estimation, there is one command which uses an MDOF
least squares fit in frequency domain. In addition, there are commands for
mode indicator functions, different mode scaling, mac matrix, etc. See the
help text for ABRAVIBE for the section on EMA.
Some important information about the implementation is required. The
curve-fitting algorithms implemented in ABRAVIBE assume measured data
are in the format of accelerance, i.e. acceleration over force. In addition,
all mode shapes are by default scaled for unity modal A (see Section 6.4.4
in [1]).
4.4 Animation
The full documentation of the animate1 program is found by starting the
program GUI by issuing the command animate, and then select Help --
Animation Help in the menu.
See Section 3.3 for documentation of the file format for modal data.
animate can also directly import a universal file consisting of geometry and
mode shape data.
1
Note that the animate program is supplied together with the ABRAVIBE toolbox,
but it is under special copyright. See the animate.m file for details
Bibliography
[1] A. Brandt. Noise and Vibration Analysis – Signal Analysis and Exper-
imental Procedures. John Wiley and Sons, 2011.
25
Appendix
Command List
A list of all commands available in ABRAVIBE is provided here in the same
format as results from the issue of
About
-------------------
abrabout - Type abrabout to print some information on screen
Helpful functions
-------------------
checksw - Check if running MATLAB or GNU/Octave
makexaxis - Create a time or frequency x axis
makepulse - Calculate a Gaussian or halfsine pulse
26
APPENDIX 27
Statistics analysis
-------------------
apdf - Calculate and plot probability density function, PDF
acrest - Calculate crest factor
akurtosis - Calculate kurtosis
amoment - Calculate statistical moment
arms - RMS calculation by ’analog’ or linear integration
askewness - Calculate skewness
framestat - Calculate frame statistics of signal
statchk - Create standard statistics for time signal(s) in matrix
statchkf - STATCHK Create standard statistics for time signal(s)
in AbraVibe files
teststat - Hypothesis test for stationarity
Frequency Analysis
-------------------
acsdsp - Cross-Spectral Density, CSD, by smoothed periodogram method
acsdw - Calculate cross PSD from time data, Welch’s method (standard)
aenvspec - Calculate envelope spectrum
alinspec - Calculate linear (rms) spectrum from time data
APPENDIX 28
plotrpmmapsc - Plot a color map of RPM map data from synchronuous sampling
plotrpmmapswf - Plot RPM map from synchronuous sampling in waterfall format
rpmmaps - Compute rpm/order spectral map for order tracking,
synchronuous sampling
synchsampr - Resample data synchronously with RPM, using rpm-time profile
synchsampt - Resample data synchronously with RPM, based on tacho signal