UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Design and performance of all-polymer acoustic sensors Sielmann, Christoph 2012

You don't seem to have a PDF reader installed, try download the pdf

Item Metadata

Download

Media
24-ubc_2012_fall_sielmann_christoph.pdf [ 13.34MB ]
Metadata
JSON: 24-1.0073105.json
JSON-LD: 24-1.0073105-ld.json
RDF/XML (Pretty): 24-1.0073105-rdf.xml
RDF/JSON: 24-1.0073105-rdf.json
Turtle: 24-1.0073105-turtle.txt
N-Triples: 24-1.0073105-rdf-ntriples.txt
Original Record: 24-1.0073105-source.json
Full Text
24-1.0073105-fulltext.txt
Citation
24-1.0073105.ris

Full Text

Design and Performance of All-Polymer Acoustic Sensors  by Christoph Sielmann B.Sc., University of Alberta, 2005  A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF  Master of Applied Science in THE FACULTY OF GRADUATE STUDIES (Electrical and Computer Engineering)  The University Of British Columbia (Vancouver) August 2012 c Christoph Sielmann, 2012  Abstract All-polymer flexural plate wave (FPW) sensors based on piezoelectric polyvinylidene fluoride (PVDF) thin-film with interdigital transducer (IDT) electrodes composed of poly(3,4-ethylenedioxythiophene) poly-(styrenesulfonate) (PEDOT: PSS) are studied, optimized, and assessed for their potential in various sensing applications. PVDF offers unique opportunities as a substrate material due to its low stiffness, low cost, low density, and ease of preparation compared with many other piezoelectric materials commonly used in acoustic sensing applications. Substrates are prepared using a variety of material thicknesses of PVDF through a stretching and poling process, followed by conductive IDT patterning by inkjet printing using a PEDOT: PSS-based ink. Sensor behaviour is studied using electrical and optical measurement techniques. Material and gas loading tests are performed to demonstrate gas sensing and polymer characterization applications. The devices demonstrate good adherence to analytical and FEA models, and although the high attenuation and low coupling coefficients of the substrate material reduce signal to noise ratio and quality factor, vapour sensing and polymer/absorbent material characterization applications are realized experimentally. Other factors such as environmental influences are also considered, demonstrating a very high sensitivity to temperature and humidity changes. The sensors also demonstrate high sensitivity to variations in substrate and sensing layer stiffness, reducing their effective mass sensitivity, but also increasing their potential for simultaneous mass and stiffness measurements. Parameter sensitivity studies are generated to better optimize the design and improve performance of the sensor for specific applications, suggesting benefits from thinner substrates, lower in-plane stress, and more IDT fingers.  ii  Preface Statement of Contributions The work described in Section 2.1 largely reflects the work of Robert Busch, with John Berring assuming many of the fabrication responsibilities after Robert’s graduation. Sample and sensor preparation was largely conducted by either Robert or John, with both individuals also contributing to experimental work described in Chapter 4. Initial sensor IDT design described in Section 3.3.1 was prepared by Robert with assistance from Derek Tsan. Photographic assistance for Chapter 2 was provided by Derek Tsan. The test chamber was designed in part by Chou Fan and Robert Busch. Robert also assisted with the design and construction of the gas calibration system described in Section 2.5. XRD measurements mentioned in Section 2.3 were performed by Lisheng Wang.  List of Publications or Submissions Some of the work presented in Section 2.1, Section 2.2, and Section 4.2.1 involving fabrication processes and mass loading results is addressed in: • J. R. Busch, “All-polymer flexural plate wave sensors,” Master’s thesis, The University of British Columbia, Canada, Oct. 2011. • J. R. Busch, C. Sielmann, G. Man, D. Tsan, K. Walus, and B. Stoeber, “Inkjet printed all-polymer flexural plate wave sensors,” in 2012 IEEE 25th International Conference on Micro Electro Mechanical Systems (MEMS), pp. 571574, IEEE MEMS, Feb. 2012. Modelling results and equations from Section 3.6.2 discussing stiffness effects iii  are included in C. Sielmann, B. Stoeber, and K. Walus, “Implications of a low stiffness substrate in lamb wave gas sensing applications,” in Proceedings of IEEE Sensors 2012, IEEE Sensors, Oct. 2012. Polymer material characterization theory and results discussed in Section 4.3.1 and Section 4.3.2 are included in C. Sielmann, J. Berring, K. Walus, and B. Stoeber, “Application of an all-polymer flexural plate wave sensor to polymer/solvent material characterization,” in Proceedings of IEEE Sensors 2012, IEEE Sensors, Oct. 2012.  iv  Table of Contents Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  ii  Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  iii  Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  v  List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  ix  List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  x  List of Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii List of Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 1  Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1  1.1  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2  1.2  Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  3  1.3  Design Constraints . . . . . . . . . . . . . . . . . . . . . . . . .  4  1.4  Acoustic Wave Microsensors . . . . . . . . . . . . . . . . . . . .  4  1.4.1  Acoustic Wave Types . . . . . . . . . . . . . . . . . . . .  6  1.4.2  Flexural Plate Waves . . . . . . . . . . . . . . . . . . . .  8  1.4.3  Gravimetric Sensing . . . . . . . . . . . . . . . . . . . .  11  Piezoelectric and Conductive Polymers . . . . . . . . . . . . . .  13  1.5.1  14  1.5  Piezoelectricity . . . . . . . . . . . . . . . . . . . . . . . v  2  3  1.5.2  Polyvinylidene Fluoride . . . . . . . . . . . . . . . . . .  15  1.5.3  Poly(3,4-ethylenedioxythiophene) poly(styrenesulfonate) .  17  Materials and Methods . . . . . . . . . . . . . . . . . . . . . . . . .  19  2.1  Fabrication Technology . . . . . . . . . . . . . . . . . . . . . . .  19  2.1.1  Stretching and Poling . . . . . . . . . . . . . . . . . . . .  19  2.1.2  Tensioning and Framing . . . . . . . . . . . . . . . . . .  22  2.1.3  Electrode Printing . . . . . . . . . . . . . . . . . . . . .  23  2.1.4  Application of Sensing Layers and Backplane . . . . . . .  25  2.2  Optical Vibration Measurements . . . . . . . . . . . . . . . . . .  27  2.3  X-Ray Diffraction and FTIR Measurements . . . . . . . . . . . .  28  2.4  Electrical Wave Measurements . . . . . . . . . . . . . . . . . . .  28  2.5  Gas Calibration Station . . . . . . . . . . . . . . . . . . . . . . .  32  2.6  Modelling Methods . . . . . . . . . . . . . . . . . . . . . . . . .  34  2.6.1  Finite Element Analysis . . . . . . . . . . . . . . . . . .  34  2.6.2  Analytical . . . . . . . . . . . . . . . . . . . . . . . . . .  37  Sensor Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38  3.1  Sensor Structure and Interface . . . . . . . . . . . . . . . . . . .  38  3.2  Acoustic Wave Form and Mode . . . . . . . . . . . . . . . . . .  40  3.2.1  Substrate Thickness . . . . . . . . . . . . . . . . . . . .  41  3.2.2  Wave Velocity . . . . . . . . . . . . . . . . . . . . . . .  41  Interdigitated Transducers . . . . . . . . . . . . . . . . . . . . .  44  3.3.1  Single Electrode Pair . . . . . . . . . . . . . . . . . . . .  45  3.3.2  Differential Isolated Electrodes . . . . . . . . . . . . . .  45  3.3.3  Differential Joined Electrodes . . . . . . . . . . . . . . .  49  3.3.4  Finger Ratios . . . . . . . . . . . . . . . . . . . . . . . .  52  3.3.5  Backplane . . . . . . . . . . . . . . . . . . . . . . . . . .  55  Excitation Waveforms . . . . . . . . . . . . . . . . . . . . . . . .  60  3.4.1  Pure Sinusoid . . . . . . . . . . . . . . . . . . . . . . . .  62  3.4.2  Pulse Train . . . . . . . . . . . . . . . . . . . . . . . . .  63  3.4.3  Binary Frequency Shift Key Waveform . . . . . . . . . .  63  3.4.4  Chirp . . . . . . . . . . . . . . . . . . . . . . . . . . . .  65  3.3  3.4  vi  3.5  Sorptive Polymer . . . . . . . . . . . . . . . . . . . . . . . . . .  65  3.5.1  Diffusion and Fick’s Law . . . . . . . . . . . . . . . . . .  65  3.5.2  Sensing Polymer Design . . . . . . . . . . . . . . . . . .  67  Sensor Detection Performance . . . . . . . . . . . . . . . . . . .  68  3.6.1  Mass-only Response . . . . . . . . . . . . . . . . . . . .  69  3.6.2  Stiffness Effects . . . . . . . . . . . . . . . . . . . . . .  70  3.6.3  Effects of Fluid Immersion . . . . . . . . . . . . . . . . .  77  Wave Amplitude . . . . . . . . . . . . . . . . . . . . . . . . . .  77  3.7.1  Comsol Model . . . . . . . . . . . . . . . . . . . . . . .  79  3.7.2  Energy Domain Transfer Modeling . . . . . . . . . . . .  79  3.7.3  Noise Floor . . . . . . . . . . . . . . . . . . . . . . . . .  81  3.8  Wave Attenuation . . . . . . . . . . . . . . . . . . . . . . . . . .  84  3.9  Quality Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . .  88  3.10 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  91  3.10.1 Frequency . . . . . . . . . . . . . . . . . . . . . . . . . .  91  3.10.2 Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . .  94  3.10.3 Amplitude . . . . . . . . . . . . . . . . . . . . . . . . .  95  3.10.4 Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . .  97  3.11 Design Integration . . . . . . . . . . . . . . . . . . . . . . . . .  98  3.6  3.7  4  Performance Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.1  4.2  4.3  Environmental Effects on PEDOT:PSS and PVDF . . . . . . . . . 106 4.1.1  Ambient Temperature . . . . . . . . . . . . . . . . . . . 106  4.1.2  Ambient Humidity . . . . . . . . . . . . . . . . . . . . . 108  Polymer Application on PVDF Substrate . . . . . . . . . . . . . . 109 4.2.1  Polyvinyl Alcohol . . . . . . . . . . . . . . . . . . . . . 111  4.2.2  Polyvinyl Acetate . . . . . . . . . . . . . . . . . . . . . . 112  Gas Analyte Exposure . . . . . . . . . . . . . . . . . . . . . . . 114 4.3.1  Water Vapour / Polyvinyl Alcohol . . . . . . . . . . . . . 115  4.3.2  Polymer Characterization . . . . . . . . . . . . . . . . . . 119  4.3.3  Acetone / Polyvinyl Acetate . . . . . . . . . . . . . . . . 123  4.4  Fluid Immersion . . . . . . . . . . . . . . . . . . . . . . . . . . . 124  4.5  Biosensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 vii  4.5.1 5  BSA Exposure to PVDF . . . . . . . . . . . . . . . . . . 126  Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . 129 5.1  Design Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 129  5.2  Summary of Results . . . . . . . . . . . . . . . . . . . . . . . . . 134  5.3  Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136  Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 A Electrical Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . 148 B DSP Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 C LabView Programming . . . . . . . . . . . . . . . . . . . . . . . . . 164 D Matlab Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 184 E Conference Material . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 F Delay Measurement Techniques . . . . . . . . . . . . . . . . . . . . 256 G Calibration System Rack Layout . . . . . . . . . . . . . . . . . . . . 272  viii  List of Tables Table 1.1  Properties associated with various acoustic modes in acoustic sensors [1], [2], [3], [4] . . . . . . . . . . . . . . . . . . . . .  Table 1.2  Properties of PVDF used in analytical and finite element analysis (FEA) modelling . . . . . . . . . . . . . . . . . . . . . . . . .  Table 3.1  17  Sensor parameters, measured frequency, and attenuation for three sensors tested using the laser Doppler vibrometer (LDV) . . . .  Table 5.1  7  86  Predicted improvements in performance based on the new design proposed in Figure 5.1 . . . . . . . . . . . . . . . . . . . 134  ix  List of Figures Figure 1.1  Illustration showing a) Lamb wave symmetric Mode, b) Lamb wave antisymmetric Mode (FPW) . . . . . . . . . . . . . . .  8  acoustic velocity for a substrate generated using FEA . .  9  Figure 1.2  PVDF  Figure 1.3  Multilayered sensor where hn indicates layer boundaries along the z-axis . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Figure 1.4  9  Multilayered gravimetric sensor showing substrate, affinity layer, and analyte gas . . . . . . . . . . . . . . . . . . . . . . . . .  12  Figure 1.5  Structure of PVDF . . . . . . . . . . . . . . . . . . . . . . . .  16  Figure 2.1  Two stretching/poling configurations . . . . . . . . . . . . . .  21  Figure 2.2  Contact pad methodology . . . . . . . . . . . . . . . . . . .  24  Figure 2.3  Completed sensor with leads . . . . . . . . . . . . . . . . . .  25  Figure 2.4  Schematic of LDV measurement system . . . . . . . . . . . .  28  Figure 2.5  Example output of LDV showing out of plane (z-axis) velocity of an acoustic wave travelling across a grey-scale image of the sensor surface with acoustic transmitting IDT on the left and receiving IDT on the right . . . . . . . . . . . . . . . . . . . .  29  Figure 2.6  Overview of electrical stimulation and data acquisition . . . .  31  Figure 2.7  Photo of data acquisition system . . . . . . . . . . . . . . . .  31  Figure 2.8  Owlstone Gas Calibration System in rack . . . . . . . . . . .  33  Figure 2.9  Comsol example showing a 2D model of the A0 mode of a 18 µm thick, 800 µm wavelength stress-free sensor . . . . . . .  35  Figure 2.10 Comsol example showing a 3D model of the electric field of two IDT fingers where the bottom side of the sensor is grounded 36 x  Figure 2.11 Comsol example showing acoustic waves propagating outward from a central four finger IDT stimulated with a sinc function .  36  Figure 3.1  Shielded BNC electrode for electrical driving . . . . . . . . .  39  Figure 3.2  Test chamber configuration . . . . . . . . . . . . . . . . . . .  40  Figure 3.3  A0 wave propagation as a function of time, modelled with Comsol for 800 µm wavelength, driven by sinc function . . . . . .  Figure 3.4  43  Non-apodized IDT configuration showing overlap amplitude and resulting frequency response, including side-lobes . . . .  46  Figure 3.5  Pattern used for single pair IDT design . . . . . . . . . . . . .  47  Figure 3.6  Pattern used for 800 µm thick isolated differential electrode design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47  Figure 3.7  Example electrical output of each channel of a fabricated sensor 48  Figure 3.8  Example data collected during humidity testing with polyvinyl alcohol (PVA) as the affinity layer and polyvinyl acetate (PVAC)  Figure 3.9  as the blocking layer . . . . . . . . . . . . . . . . . . . . . .  49  Concept for joint-electrode differential sensor . . . . . . . . .  51  Figure 3.10 Illustration showing energy domain transfer of an 18 µm thick, 800 µm wavelength sensor where blue lines represent acoustic transmitting IDT fingers, red lines represents acoustic receiving IDT  fingers, and the bright green line represents the reflection .  54  Figure 3.11 Analysis showing the effect of transmitter to total finger ratio on a) total received power and b) power mismatch across the receiver, in an impedance matched configuration for a 800 µm wavelength, 18 µm thick sensor for variations in attenuation .  56  Figure 3.12 Analysis showing the effect of transmitter to total finger ratio a) mean average received voltage and b) voltage mismatch across the receiver, in a high impedance receiver configuration for a 800 µm wavelength, 18 µm thick sensor for variations in attenuation . . . . . . . . . . . . . . . . . . . . . . . . . . .  57  Figure 3.13 Comsol model showing z-axis electric field strengths of a sensor with and without a backplane using Va = −50 V and Vb = 50 V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi  59  Figure 3.14 Electric field beneath an IDT finger based on a mathematical model using Equation 3.7 showing z-axis electric field strength with no backplane . . . . . . . . . . . . . . . . . . . . . . .  60  Figure 3.15 Results from a Comsol model showing z-axis electric field strengths of IDTs as a function of thickness using Va = −50 V and Vb = 50 V . . . . . . . . . . . . . . . . . . . . . . . .  61  Figure 3.16 Experimental comparison between an acoustic signal without a backplane (blue) and an acoustic signal with a backplane (red), measured electrically using the data acquisition (DAQ) at the electrical output IDT. The pulses on the left side of the plot show the electromagnetic interference (EMI) crosscoupling, with acoustic waves beginning at 38 µs. Saturation of the blue EMI is the result of a higher gain setting causing clipping of the waveform. . . . . . . . . . . . . . . . . . . . . .  62  Figure 3.17 LDV fast Fourier transform (FFT) image of a wave generated with a PEDOT: PSS backplane travelling across a substrate . . .  63  Figure 3.18 Pulse train showing 12 pulses of 550 kHz followed by zero excitation, repeated at 25 kHz . . . . . . . . . . . . . . . . .  64  Figure 3.19 binary frequency shift key (BFSK) waveform consisting of eight pulses at 500 kHz and 2 pulses at 600 kHz, repeated at 25 kHz  64  Figure 3.20 Chirp with passband from 400 kHz - 550 kHz for use with thicker sensor substrates, intended to cycle at 25 kHz . . . . .  66  Figure 3.21 Theoretical mass sensitivity plot for three different substrate thicknesses, as a function of sensing/polymer layer thickness. The change in frequency represents the change due to an exposure of approximately 1 ppm of a generic gas to a generic polymer of 1000 [kg/m3 ] density with a partition coefficient of 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  70  Figure 3.22 Theoretical change in frequency for a sensor with 60 MPa of in-plane stress, 800 µm wavelength, r = 1.2 × 10−3 [m3 /kg] (PVA [5]), ∆m = 1 µg/cm2 . . . . . . . . . . . . . . . . . . .  xii  74  Figure 3.23 FEA-generated frequency change of an 18 µm thick, 800 µm wavelength sensor as a function of PVA layer thickness for a 125 MPa tensioned substrate . . . . . . . . . . . . . . . . . .  75  Figure 3.24 FEA-generated individual and cumulative contributions of different physical effects on the resonance frequency of an 18 µm thick, 800 µm wavelength, untensioned sensor due to the addition of a 1 µm thick PVA layer . . . . . . . . . . . . . . . .  75  Figure 3.25 FEA-generated normalized change in resonance frequency for an 18 µm thick, 800 µm wavelength sensor exposed to a 10% change in relative humidity as a function of PVA thickness . .  76  Figure 3.26 FEA-modelled normalized change in resonance frequency for an untensioned, 5 µm thick, 800 µm wavelength sensor of various substrate materials . . . . . . . . . . . . . . . . . . . . .  76  Figure 3.27 Resulting steady-state amplitude of an 120 µm thick, 800 µm wavelength sensor stimulated with a periodic 100 Vpp sinusoid, showing peak displacement of 2 nm and peak velocity of 7.9 mm/s . . . . . . . . . . . . . . . . . . . . . . . . . . . .  80  Figure 3.28 Showing the approximation of the frequency spectrum (blue) as a second order polynomial (red) which is then combined with normalized voltage noise to determine frequency noise .  83  Figure 3.29 Two channel frequency noise measurement of an 18 µm thick, 800 µm thick sensor with a backplane . . . . . . . . . . . . .  84  Figure 3.30 Measured attenuation of an 120 µm thick, 800 µm wavelength sensor stimulated with a wideband chirp . . . . . . . . . . . .  86  Figure 3.31 Measured attenuation of an 120 µm thick, 400 µm wavelength sensor stimulated with a wideband chirp . . . . . . . . . . . .  87  Figure 3.32 Measured attenuation of an 18 µm thick, 800 µm wavelength sensor stimulated with a wideband chirp . . . . . . . . . . . .  88  Figure 3.33 Plotted linear attenuation fits for two types of PVDF stock materials, with markers showing sample points . . . . . . . . . .  89  Figure 3.34 a) Comsol model results of 120 µm thick, 800 µm wavelength sensor including complex material parameters, b) Wave extracted from Comsol (red) and exponential decay fit (red) . . . xiii  90  Figure 3.35 Electrical measurement of a 18 µm thick, 800 µm wavelength sensor with no backplane showing both measured waveform as well as rectangular-filter FFT . . . . . . . . . . . . . . . . . .  91  Figure 3.36 FFT of an LDV-measured travelling wave of an 18 µm thick, 800 µm wavelength sensor using the isolated differential IDT configuration. For four pair excitation the acoustic receiving IDT  is used as the transmitter, and for eight pair excitation the  transmitting IDT is used . . . . . . . . . . . . . . . . . . . .  92  Figure 3.37 Eight received acoustic waveforms within the digital signal processing unit (DSP) buffer . . . . . . . . . . . . . . . . . .  93  Figure 3.38 Plot of a sinc function showing frequency amplitude and phase for pass and stop bands . . . . . . . . . . . . . . . . . . . . .  95  Figure 3.39 Frequency vs. phase measurements from sweeping through a large range of humidities, illustrating a difference in response between frequency and phase . . . . . . . . . . . . . . . . . .  96  Figure 3.40 Figures comparing the signal to noise ratio performance of various delay measurement algorithms using an 120 µm thick, 800 µm wavelength sensor with no backplane . . . . . . . . .  98  Figure 3.41 Output power amplitude parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Figure 3.42 Mass sensitivity parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard101 Figure 3.43 Stiffness sensitivity parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard102 Figure 3.44 Quality factor parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard . . 103 Figure 3.45 Minimum detectable mass sensitivity study including signal to noise ratio (SNR), quality factor, and mass sensitivity effects using an 18 µm thick, 800 µm wavelength differential sensor design as a standard . . . . . . . . . . . . . . . . . . . . . . . 104  xiv  Figure 3.46 Minimum detectable stiffness sensitivity study including SNR, quality factor, and stiffness sensitivity effects using an 18 µm thick, 800 µm wavelength differential sensor design as a standard105 Figure 4.1  Temperature calibrations on single channel, 800 µm wavelength sensors without backplanes, showing both frequency as a function of time (left) and temperature (right) . . . . . . . . 107  Figure 4.2  Results of a PEDOT:PSS Resistance vs. Humidity study performed at room temperature . . . . . . . . . . . . . . . . . . 109  Figure 4.3  The signal amplitude of a 120 µm thick, 800 µm wavelength sensor with no backplane when exposed to variations in environmental humidity (shown as dew point temperature) . . . . 110  Figure 4.4  Results of cycling humidity levels on the top side of the sensor to assess contribution of variable humidity levels to signal noise 111  Figure 4.5  Frequency response of 18 µm thick, 800 µm wavelength, 125 MPa in-plane stress, differential sensor to varying loads of PVA . . 113  Figure 4.6  Frequency response of an 18 µm thick, 800 µm wavelength, 125 MPa in-plane stress, differential sensor to applied PVA . . 114  Figure 4.7  Phase response of a 18 µm thick, 800 µm wavelength sensor with 1 layer of drop cast PVA exposed to different humidities using building air . . . . . . . . . . . . . . . . . . . . . . . . 116  Figure 4.8  Phase response of a 18 µm thick, 800 µm wavelength sensor with 3 layers of drop cast PVA exposed to different humidities 118  Figure 4.9  Partition coefficient data showing the mass change convergence of 5.8522 g of PVA pellets when exposed to constant humidity  119  Figure 4.10 Phase response of a 18 µm thick, 800 µm wavelength sensor with 3, 4 and 5 layers (theoretically 2.2 µm/layer) of drop cast PVA exposed to different humidities . . . . . . . . . . . . . . 122 Figure 4.11 Calculated PVA material properties based on PVA/humidity testing and minimization of the analytical expressions . . . . . 122  xv  Figure 4.12 An example of expected PVA behaviour as a function of humidity derived from PVA with higher hydrolyzation (99% vs. 87 - 89% used) and molar mass (150,000 g/mol vs. 85,000 - 124,000 g/mol used) [5], [6] with superimposed calculated mechanical behaviour from Figure 4.11 . . . . . . . . . . . . 123 Figure 4.13 Frequency change of a 18 µm thick, 800 µm wavelength sensor with a backplane when 4 mL phosphate buffered saline (PBS) is gradually applied. The sensing channel A is coated with polystyrene (PS) and the reference channel B is coated with PVAC, both of which provided an electrical barrier between the ionic solution and backplane. . . . . . . . . . . . . 125 Figure 4.14 Measured propagation delays in both the sensing channel A and reference channel B when 100 µL of BSA was added to the 4 mL PBS solution on the sensor . . . . . . . . . . . . . . 127 Figure 5.1  Proposed sensor design . . . . . . . . . . . . . . . . . . . . . 133  xvi  List of Symbols %RH Relative humidity as a percentage of vapour pressure to saturation vapour pressure α  Attenuation  αm  Mechanical attenuation  β  Acoustic wavenumber of the fundamental mode, 2π/λ  ∆ fmin Minimum measurable change in frequency ∆m  Change in mass per unit area due to mass loading or analyte sorption  ∆mmin Minimum detectable mass change ∆Vnoise Signal noise maximum voltage δ  Evanescent decay length of an acoustic wave through a liquid  δm  Mechanical loss tangent  ε  Permittivity  ε0  Permittivity of free space  εr  Relative permittivity  λ  Wavelength  ν  Poisson ratio  xvii  ω  Angular frequency of a wave  Φ  Analyte concentration in diffusion  φ  Wave signal phase  ΦE  Electric flux density  ρ  Density  σ  Stress vector  a  Fitting constant for parabolic computation of frequency noise  A0  Normalized amplitude fitting constant for parabolic computation of frequency noise  AD  Deflection of a substrate deformed by an acoustic wave  AF  Area of a film  Anoise Amplitude of the noise component of a signal Asignal Amplitude of a signal C  Concentration  c  Molar concentration of an analyte in its carrier gas  Cg  Concentration of an analyte in a carrier gas  Cs  Concentration of an analyte in a solid absorbent or adsorbent  C1,2,3,4 Fitting constants that do not vary with changes in the sensing layer Cbp  Capacitance between an IDT finger pair and a backplane  D  Stiffness term of a thin plate  d  Thickness  DF  Diffusion coefficient xviii  Dp  Adjusted stiffness coefficient  dP  Piezoelectric charge constant  E  Electric field  e  Piezoelectric stress constant  EY M  Young’s modulus  EY M  Adjusted Young’s modulus  f  Frequency  F( f )  Fourier domain amplitude as a function of frequency  f3dB  Frequencies of a waveform where the frequency spectrum amplitude drops 3 dB below the peak at the centre frequency  fres  Resonance frequency  g  Piezoelectric voltage constant  H  Rotary inertia term of a thin plate  J  Analyte diffusion flux  Jn  Modal scaling factor for surface acoustic wave (SAW) and acoustic plate mode (APM) devices  K  Partition coefficient  k  Electromechanical coupling coefficient  K(ν) Sensitivity factor for SAW devices M  Linear inertia term of a thin plate  Ma  Molar mass of an analyte  ms  Equivalent mass of a substrate deformed by an acoustic wave  xix  m0  Initial mass of the sensing layer  madd  Increase in mass resulting from absorption or adsorption  Mpoly Mass per unit area of a polymer affinity layer MPV DF Mass per unit area of the PVDF substrate P  Pressure  PV  Electric dipole per unit volume (Polarization)  Pnoise  Power of the noise component of a signal  Psat  Saturation pressure of vapour under the given environmental conditions  Psignal Power of a signal Q  Quality factor  R  Ideal gas constant  r  Scaling ratio for a change in thickness due to a change in mass per unit area for an analyte/affinity layer combination  S  Material compliance matrix  s  Strain vector  SD  Stiffness sensitivity  SM  Mass sensitivity  SAPM  Mass sensitivity of an acoustic plate mode acoustic sensor  SDM  Sensitivity incorporating mass and thickness change of a flexural plate wave acoustic sensor  SFPW  Mass sensitivity of the fundamental antisymmetric mode of a flexural plate wave acoustic sensor  Sliquid Mass sensitivity of a sensor where one side is exposed to a liquid xx  SSAW  Mass sensitivity of a surface acoustic wave acoustic sensor  ST SM  Mass sensitivity of a thickness shear mode acoustic sensor  SNR  Signal to noise ratio  T  In-plane stress term of a thin plate  t  Time  tD  Time delay  Teq  Equilibrium temperature  U  Total energy of an acoustic wave  u  Displacement of an acoustic wave, typically along a specific axis  Uk  Total kinetic energy of an acoustic wave  Up  Total potential energy of an acoustic wave  V  Voltage  v  Acoustic wave velocity  Vnorm  Normalized voltage  v pa  Acoustic wave phase velocity  Vpoly  Volume of a polymer  x  Position along the x-axis, the direction of wave propagation  z  Position along the z-axis, perpendicular to the direction of wave propagation  z0  z-axis position of the plane of no net force during flexure  xxi  List of Abbreviations ADC  analog digtial converter  APM  acoustic plate mode  BAW  bulk acoustic wave binary frequency shift key  BFSK BSA  bovine serum albumin  DAQ  data acquisition  DMA  direct memory access  DMSO  dimethylsulfoxide  DSP  digital signal processing unit  EMI  electromagnetic interference  FEA  finite element analysis  FFT  fast Fourier transform  FLL  frequency locked loop  FPW  flexural plate wave  FTIR  Fourier transform infrared spectrometry  HSP  Hansen solubility parameters xxii  IDT  interdigital transducer  LDV  laser Doppler vibrometer  MFC  mass flow controller  PBS  phosphate buffered saline  PCB  printed circuit board  PEDOT: PSS  parallel port interface  PPI PS  poly(3,4-ethylenedioxythiophene) poly-(styrenesulfonate)  polystyrene  PVA  polyvinyl alcohol  PVAC  polyvinyl acetate  PVC  polyvinyl chloride  PVDF  polyvinylidene fluoride  QCM  quartz crystal microbalance  RMS  root mean square  SAW  surface acoustic wave  SMPS  switch mode power supply  SNR  signal to noise ratio  TSM  thickness shear mode  VOC  volatile organic compound  XRD  x-ray diffraction  xxiii  Acknowledgments I wish to thank my supervisors, Dr. Konrad Walus and Dr. Boris Stoeber, who have both contributed tremendously to the development of this project. Their insight, encouragement, patience and understanding have embodied the very best of my expectations in supervisors. I wish to thank Dr. Edmond Cretu for offering his time to chair the committee as well as the use of his laser Doppler vibrometer, and Dr. Karen Cheung for providing us with phosphate buffered saline and bovine serum albumin (BSA) for our biosensing experiments. I would like to acknowledge the support provided by the BCFRST Natural Resources and Applied Science (NRAS) Endowment through the Research Team Program and the Fraser Basin Council through the BC Clean Air Research (BC CLEAR) program, as well as additional funding and equipment support received from NSERC and CFI. I wish to thank my lab colleagues, particularly Robert Busch and John Berring, both of whom have shown infinite patience and tenacity through all the printer and PVDF troubles. Lisheng Wang, Derek Tsan, Simon Beyer, and Anas Bsoul all served as (un)willing sounding boards at various stages throughout the project, often offering practical advice or new perspectives. I wish to thank my family for their encouragement, and particularly for the many hours of blank yet attentive stares while I rambled about my lab work and theories. Finally, I wish to extend my deep and unreserved appreciation and gratitude to my wife, Sara. Her endless patience, delicate yet persistent prodding, and willingness to support us through this experience have made this work possible.  xxiv  Chapter 1  Introduction Sensors are a fundamental part of modern technology. They are our portal into the physical world, and make possible intentional and controlled interaction with our environment. In technology, they can be found in every technical discipline monitoring voltage, position, temperature, chemical concentrations, light intensity, and a large collection of other physical parameters. In public policy development, sensors provide the feedback mechanisms that allow scientists and engineers to assess and monitor the safety of our living environment, the stability of our food production, and the quality of air that we breathe. Unfortunately, no sensor is perfect. Fabrication impurities, poor quality factors and signal to noise ratios, environmentally-induced inaccuracies, drift, and cost all affect the performance and viability of sensors in many applications. The need to mitigate some of these imperfections to meet application demand is a constant influence on sensors research, affecting all fields of engineering. This work examines the viability of using all polymer materials to fabricate an acoustic sensor with applications including gravimetric gas sensing, material mechanical characterization, and biosensing. The sensor substrate is specially-treated piezoelectric polyvinylidene fluoride (PVDF), offering new potential in low cost, disposable sensing but also presenting many restrictions and design challenges. The behaviour of PVDF in fully integrated, all-polymer sensors is explored in gas sensing, material characterization, and biosensing applications. Different configurations are tested and compared to theoretical/analytical approximations and fi1  nite element analysis (FEA) models. Parameter sensitivity studies are generated to better optimize the design and improve performance of the sensor for specific applications. Other factors such as the effects of temperature and environmental humidity are also investigated.  1.1  Motivation  Recent work with piezoelectric PVDF in sensor technologies [7], [8] has demonstrated the possibility of using PVDF film in all-polymer acoustic sensing applications. Acoustic sensing has many applications (see Section 1.4), including selective volatile organic compound (VOC) gas sensing, which in turn has applications in air quality monitoring and targeted chemical detection. An ideal sensor targeted for this application involves a matrix of individual acoustic sensor cells, each coated with a particular polymer VOC affinity layer. The cells selectively absorb targetted analyte gases and the sensor matrix provides the concentrations of particular VOCs in the test air. A good example of a successful system performing this function is discussed by Cai et al. [9]. This sensor represents the ideal concept driving the development of the sensor platform explored in this work, although it is not the only application considered. A platform based on piezoelectric PVDF and printable conductive polymers is intended to improve on current commercial sensor systems primarily by reducing cost in both the sensor and the sensor platform. Sensors that can be screen printed on conventional equipment on rolls of PVDF offer potentially significant cost savings compared to photolithographic processes requiring a clean environment. The sensor platform also has the potential for being lower cost as the sensor design promotes lower frequency operation compared with conventional commercial surface acoustic wave (SAW) sensors. Other properties of PVDF, such as its low Young’s modulus (see Section 1.5.2), also open up new possibilities for different sensing functions not ideal for other SAW and flexural plate wave (FPW) acoustic sensing systems.  2  1.2  Objectives  The objective of the research is to examine the behaviour of fabricated all-polymer FPW  sensors based on PVDF, optimize their performance, and determine the fea-  sibility for using them in sensing platforms for various applications. The primary applications considered are VOC detection and polymer material mechanical characterization. The following details the specific objectives: • Verify FPW acoustic and electronic transmission of a signal from a transmitter interdigital transducer (IDT) to receiver IDT; • Collect signals and assess how well the fabricated sensors match theoretical and finite element analysis (FEA) modelled behaviour; • Expose the sensors to various gases and mechanical loads and compare results with the theory; • Assess suitability of the sensor for selective gas sensing applications; • Perform parameter sensitivity studies and propose improvements to sensor and sensor platform design. Leveraging the work performed by Busch [10], Man [11], and He [12], PVDF substrates will be tested using a laser Doppler vibrometer (LDV) to confirm the presence and propagation of FPW acoustic waves. Based on the wave velocities of the travelling waves, a gas calibration system and an electronic data acquisition (DAQ) platform will be designed and constructed to perturb the sensor and measure the response. A preliminary assessment will be made to ascertain the potential of the sensor platform in VOC measurement. In order to determine how best to optimize the sensor, operational behaviour will be measured and sensor performance will be compared with applicable theory. The behavioural aspects under investigation include acoustic and electronic wave frequencies, phase, amplitude, sensitivities, and attenuation. Theory will be explored both analytically and through FEA modelling. If good agreement between experimental and theoretical results is demonstrated, a numerical/analytical model will be constructed to predict sensor behaviour in different configurations. 3  This work will focus on the performance characterization and optimization of fundamental aspects of acoustic sensor design, including experimental, analytical, and numerical experiments and theory. Experimental data will be produced through both electronic and optical (LDV) measurements. Theoretical data for comparison with experimental results will be generated using Comsol (FEA) models and Matlab (analytical) projects. These same tools will then be used to predict the performance of the sensor in different physical configurations, assess usefulness in certain end applications, and propose revisions to the fabrication process and design to improve overall sensor performance.  1.3  Design Constraints  In optimizing the design and fabrication procedure of the sensor, certain design constraints are assumed. These constraints are subject to funding and project scope and serve to limit the scope of the optimization procedure: • The device substrate material must be PVDF; • The device must be prepared with printable inks and cannot undergo any high cost or photolithographic processes; • Only the piezoelectric properties of the PVDF are being considered, meaning that alternative excitation and measurement modes such as electrostrictive excitation and optical measurement are not considered; • The optimization of the sensor is guided primarily by the application described in Section 1.1. These constraints are selected primarily to meet the intent of the research by emphasizing low cost fabrication and measurement systems.  1.4  Acoustic Wave Microsensors  Acoustic wave microsensors are devices containing a vibrating substrate that varies measurably in its vibration as a function of one or more external stimuli. They have traditionally been seen as mass detectors capable of discerning very small 4  changes in mass through the impact of mass, volume, or density changes on sensor frequency or wave velocity. Mass sensing can be augmented to perform chemical sensing through the addition of a selective polymer layer that absorbs or adsorbs chemicals in vapour or liquid form. The form factor and design of the sensor is highly dependent on the nature of the acoustic waves involved, which in turn is often determined by the intended application. The most common types of acoustic wave sensors use SAW, FPW, and bulk acoustic wave (BAW) (thickness shear mode (TSM) waves and acoustic plate mode (APM) waves) [1]. Acoustic sensors require both an actuation and detection mechanism. The actuation mechanism generates the acoustic vibrations in the substrate which is mechanically coupled to the sensing material. Actuation can be performed through piezoelectric, electrostrictive, electromagnetic, optical excitation, or through direct mechanical coupling [2]. The actuation mechanism used depends on the properties of the substrate material and the desired acoustic wave type. Once the waves have been generated and perturbed by the measurand, a detection mechanism then converts the acoustic wave energy from the acoustic domain back to the electrical domain for analysis. Detection occurs through direct electronic (admittance), capacitive, piezoelectric, optical, or electromagnetic measurements, or through direct mechanical coupling [2]. The form of the actuation and detection mechanisms are often dependent on the sensor materials, operating frequencies, and acoustic wave types. There are multiple categories of information that can be extracted from acoustic waves, including signal resonant frequencies, phase/time delay, and amplitude/attenuation [13]. Resonant frequency devices operate continuously, discontinuously, or through frequency sweeping to locate the frequency corresponding to the largest amplitude in the range of interest. The signal maxima occurs at a particular resonance frequency where attenuation is minimized, with sharpness in the frequency domain represented by the mechanical quality factor of the sensor. Resonant frequency operation is available to most acoustic sensor designs. Phase/Time delay devices send a wavelet across a substrate where wave velocity varies as a function of the material property being measured. These devices typically operate over longer distances to reduce the time resolution required for sensitive measurements. Amplitude/Attenuation devices directly measure the amplitude of the re5  ceived signal in one or more locations along the path of signal propagation. The amplitude or attenuation will vary as a complex function of the property being measured. Many references are available to discuss acoustic sensors in greater detail [1], [3], [13], [14], [15], [16].  1.4.1  Acoustic Wave Types  The four acoustic wave types commonly used in sensors have widely differing characteristics, including differences in transduction mechanism, form factor, and sensitivity. Their main applications and relative sensitivities are shown in Table 1.1. The sensitivity functions of each acoustic wave type can provide significant insight into the effectiveness of that acoustic type for specific applications. Mass sensitivity based on relative resonant frequency change for each acoustic wave type is ST SM = −2/ρλ ,  (1.1)  SAPM = −Jn /ρd,  (1.2)  SSAW = −K(ν)/ρλ ,  (1.3)  SFPW = −1/2ρd,  (1.4)  where ρ represents density, λ is the acoustic wavelength, d is the substrate thickness, Jn is a modal scaling factor where n represents the harmonic of the oscillation such that J0 = 1/2 and Jn = 1 for n ≥ 1, and K(ν) is a function related to the Poisson ratio of the substrate [13]. Note that the TSM acoustic wave and SAW acoustic wave sensitivities are functions of wavelength such that smaller wavelengths (and correspondingly larger frequencies) are important in achieving higher sensitivities. In contrast, the APM acoustic mode and FPW antisymmetric mode (A0 ) acoustic mode (Equation 1.4) sensitivities depend on substrate mass per unit area. In all cases, mass sensitivity is a function of linear inertia, which is dependant on the amount of mass sent in motion by the acoustic wave. For devices where sensitivity is a function of frequency, higher frequencies involve less penetration into the substrate material, setting less mass in motion and correspondingly rendering the sensor more sensitive to mass change. For devices where the substrate is thin, such 6  Acoustic Wave TSM  (BAW)  APM  (BAW)  Chemical sensors (gas phase), Particle detectors  SAW  FPW  Mass Applications Film thickness monitor, Particle detector, Chemical sensor (gas and liquid phase) Chemical sensors (liquid phase)  A0  Chemical sensors (gas and liquid phase)  Viscoelastic Applications Polymer transitions, Film resonance, Chemical sensors  Density Viscosity Yes  Sensitivity  Polymer curing, High freq viscosity Polymer transitions, Film resonance, Vapour sensing Polymer transitions, Vapour sensing, Gels  Microliter viscometer  −Jn /ρd  N/A  −K(ν)/ρλ  Yes  −1/2ρd  −2/ρλ  Table 1.1: Properties associated with various acoustic modes in acoustic sensors [1], [2], [3], [4] as sensors based on FPWs, reducing the thickness of the substrate further reduces the mass set in motion by the wave, increasing the sensor sensitivity. Of the four available modes, the two of interest in this work are SAWs and FPW s, representing Rayleigh waves and Lamb waves respectively [13].  Rayleigh or  Lamb waves involve travelling waves that propagate transversely across a medium. In many configurations, including the configuration considered here, the waves are generated by IDTs (Section 3.3). The type of wave generated by IDTs is dependent on the ratio of the substrate thickness (d) to acoustic wavelength (λ ), where a large d/λ produces SAW and a small d/λ produces FPW. There are many reasons why flexural plate waves were selected over surface acoustic waves for the scope of this research. The mass sensitivity of SAW devices depends primarily on operating frequency, whereas the sensitivity of flexural plate wave devices depends on sensor mass per unit area [17]. An all-polymer design necessitates a large wavelength and low frequency. The poor spatial resolution of inkjet and screen printing favours larger wavelengths, encouraging a FPW configu7  Figure 1.1: Illustration showing a) Lamb wave symmetric Mode, b) Lamb wave antisymmetric Mode (FPW) ration. The lower operating frequency also allows for less expensive, lower power electronics to serve as the DAQ interface. The low density of the PVDF compared to many other piezoelectric crystalline materials offers an immediate advantage, and the cost savings by using thinner PVDF film are notable. Working with thinner films is also easier as less tension must be applied during the stretching and poling phase of the film (see Section 2.1.1).  1.4.2  Flexural Plate Waves  Flexural plate waves are travelling Lamb waves that occur when the plate or film thickness is much less than the acoustic wavelength. The waves involve the entire thickness of the substrate and can be separated into two categories: Symmetric and Antisymmetric [2]. Symmetric waves typically occur at higher frequencies than antisymmetric waves and are characterized by the substrate expanding and contracting along the z-axis. Antisymmetric waves occur when the top and bottom sides of the substrate move in tandem. Both waveforms are shown in Figure 1.1. In addition to operating in different modes, each mode has multiple harmonics. Only the fundamental symmetric mode 0 (S0 ) and antisymmetric mode 0 (A0 ) are considered in this work, as higher harmonics present too much attenuation travelling through the PVDF substrate [18]. Figure 1.2 shows the FEA-modelled A0 and S0 modes and the transition from FPW to SAW as d/λ increases, causing the two modes to converge and produce Rayleigh waves [2]. Although exact solutions for FPW waves exist [19], a good approximation for  8  Figure 1.2: PVDF acoustic velocity for a substrate generated using FEA  Figure 1.3: Multilayered sensor where hn indicates layer boundaries along the z-axis A0 will be leveraged in this work. The approximation uses the differential equation for wave properties of thin plates subjected to in-plane tension. The approximation is adequate in scenarios where d/λ is small and becomes exact where d/λ approaches 0. The approximation supports multilayered structures, viscoelastic loading media, and variations in material parameters, providing a good analytical basis for assessing sensor performance and optimizing its design. The equation,  9  following Wenzel [2] and Grate [4], is T  ∂ 2 uz ∂ 4 uz ∂ 4 uz ∂ 2 uz − D 4 + H 2 2 − M 2 = 0, 2 ∂x ∂x ∂ x ∂t ∂x  (1.5)  where uz is the displacement function along the z-axis of the film, x is the position along the direction of wave propagation, t is the time, and 0  T=  σS,x (z)dz,  (1.6)  z=−d  represents in-plane stress of the material (along the x-axis, or direction of wave propagation). σS,x is the x-component of stress in [N/m2 ]. The integration sums the stress of each layer in multilayer configurations and is in [N/m]. D=  1 N ∑ EY M,n [(hn − z0 )3 − (hn−1 − z0 )3 ], 3 n=1  (1.7)  represents the stiffness term of the sensor shown in Figure 1.3 in [Nm], where n is the layer number, and z0 is the plane of no net force during flexure defined by z0 =  ∑Nn=1 EY M,n (h2n − h2n−1 ) , 2 ∑Nn=1 EY M,n (hn − hn−1 )  (1.8)  where EY M is the adjusted Young’s modulus defined by EY M =  EY M , (1 − ν 2 )  (1.9)  here EY M and ν are the material’s Young’s modulus and Poisson ratio respectively. A special case occurs when the sensor consists of only one layer. In this case, D simplifies to D= 0  H= z=−d  EY M d 3 . 12  ρ(z)(z − z0 )2 dz,  10  (1.10)  (1.11)  is the resistance of the film to rotary inertia in [kg]. Finally, 0  M=  ρ(z)dz,  (1.12)  z=−d  is the linear inertia term in [kg/m2 ] of the sensor, integrated along the z-axis. A solution to the differential equation, neglecting attenuation cut-off modes and focusing strictly on the lowest order antisymmetric mode A0 phase velocity, is ω =β  T + β 2D , M + β 2H  (1.13)  where ω is the angular frequency of the wave and β=  2π , λ  (1.14)  is the wavenumber in [m−1 ]. The rotary inertia term, β 2 H, can be neglected as it is at least one order of magnitude less than the linear interia term, M, provided that the entire thickness of the sensor is less than 140 µm and the wavelength is 800 µm, which applies to all experiments herein where experimental data is fit against analytical approximations. Dividing by β (Equation 1.14) gives us the FPW phase velocity as v pa =  T + β 2D . M  (1.15)  These equations form much of the theoretical basis of this work. The solution for phase velocity can be used to derive mass sensitivity, stiffness sensitivity, and predict other behaviours of the fabricated sensors.  1.4.3  Gravimetric Sensing  In acoustic gravimetric sensing based on FPW and SAW, the velocity of a travelling wave is perturbed by a change in mass or density along the path of propagation [18]. It is clear from Equation 1.15 that a change in mass per unit area of the substrate influences the velocity of the travelling wave, which can then be measured as either  11  Figure 1.4: Multilayered gravimetric sensor showing substrate, affinity layer, and analyte gas a shift in resonance frequency or propagation delay (see Section 1.4). A very common application of gravimetric sensing is the detection of changes in ambient gas analyte concentrations with the use of a polymer affinity layer. An example configuration showing a FPW sensor in a gas analyte gravimetric sensing configuration is shown in Figure 1.4. In simple gas analyte gravimetric sensing applications, the following assumptions are made to simplify the models and theory: • The polymer layer is a viscoelastic medium perfectly coupled to the sensor substrate; • There is a linear relationship between gaseous analyte concentrations and analyte concentrations within the affinity layer, captured by the so-called partition coefficient; • Changes in gas analyte concentration affect only the density of the affinity layer, changing mass without affecting stiffness. Given these assumptions, the velocity of a FPW sensor (Equation 1.15) can be adapted to v pa =  T + β 2D . MPV DF + Mpoly + ∆m  (1.16)  where MPV DF , Mpoly and ∆m represent the mass per unit area of the substrate, polymer affinity layer, and absorbed gas analyte respectively. Similarly, the sensitivity  12  equation (Equation 1.4) can also be modified: SFPW =  −1 . 2(MPV DF + Mpoly + ∆m)  (1.17)  Examples of gravimetric sensing systems are numerous both in research and in commercial equipment [4], [9], [17–23]. Examples also exist that do not rely on travelling acoustic waves, such as the work produced by Dong et al. based on cantilever networks [24]. The optimization of affinity layer thickness will be discussed in greater detail in Section 3.5 and Section 3.6.  1.5  Piezoelectric and Conductive Polymers  One of the design constraints is the use of piezoelectric and conductive polymers. Organic polymers are long chains of carbon-based molecular units that can have special mechanical or electrical properties to suit a wide range of applications. Depending on the polymers involved, benefits can include: • Low cost • Biocompatibility • Resiliency to corrosives and solvents • Low Young’s modulus • Low friction • Low density • Multifunctional surfaces • Conductive, semi-conductive, or insulating electric properties Two polymers, PVDF and poly(3,4-ethylenedioxythiophene) poly-(styrenesulfonate) (PEDOT: PSS), are emphasized and used in this research.  13  1.5.1  Piezoelectricity  The piezoelectric effect is an electromechanical effect that permits a material to generate a voltage in response to applied mechanical stress [25]. The effect is found in particular materials containing a crystalline structure that deforms with applied stress in such a way that an internal dipole is created. If the crystalline structures are aligned within the material then a net dipole effect yields a field and corresponding voltage across the material. Similarly, the inverse piezoelectric effect generates a stress, and typically a strain, with the application of a voltage across a piezoelectric material. If Hooke’s Law applies to the material, which is often the case over small strains, then the following characteristic equations can be used to describe the piezoelectric effect [25]. ΦE = dP σ + ε σ E,  (1.18)  where ΦE is the electric flux density defined by ΦE = ε0 E + PV ,  (1.19)  where E is the electric field and PV is the polarization (electric dipole moment per unit volume). The piezoelectric charge constant, dP , is a tensor in [C/N] or [V/m], quantifying the piezoelectric strength of a material, σ is a vector representation of the stress applied along the various orientations of the material, and ε σ is the electrical permittivity of the material under constant stress. A similar expression for mechanical strain resulting from the piezoelectric effect is s = SE σ + dPt E,  (1.20)  where s is a strain vector, SE is the material compliance matrix (inverse of the stiffness matrix) at a constant electric field, and dPt is the transposed piezoelectric charge constant. Other important relationships include g=  dP , σ  14  (1.21)  where g is the piezoelectric voltage constant in [V/Nm], and e=  dP , SE  (1.22)  where e is the piezoelectric stress constant in [Nm/V]. Practically, when considering the effectiveness of a piezoelectric material, the electromechanical coupling coefficient, k, plays an important role. It is defined as k2 =  Energy Converted d2 = σ PE , Input Energy ε S  (1.23)  and is very important in assessing materials for acoustic sensing as it directly influences the signal strength of the travelling acoustic and received electrical waves. A low coupling coefficient weakens the effects that the electrical and mechanical energy domains have on each other, restricting the ability to generate, guide, reflect, and absorb acoustic waves propagating throughout the substrate. The low coupling coefficient of PVDF has been a barrier in other experimental sensing work [26], [27].  1.5.2 PVDF  Polyvinylidene Fluoride is a complex and interesting piezoelectric polymer chosen to form the sub-  strate of the sensor examined in this work. It can be characterized as an orthotropic, thermorheologically stable long chain, semi-crystalline polymer with time-varying mechanical properties that under certain conditions can be treated using principles of linear hereditary viscoelasticity [28]. It demonstrates piezoelectric, pyroelectric, and ferroelectric properties both in a pure form and in a copolymer. The molecular unit cell of PVDF consists of a structure as shown in Figure 1.5 that is inherently polar and demonstrates good chemical resiliency [29]. As a sensing material, PVDF is already commonly used in a variety of sensory applications including non-destructive testing [8], [30], [31], acoustic biosensing [32], and curvature sensing [7], although it sees more applications as a chemically resistant building or coating material in specialized fluid applications [33], [34]. It demonstrates one of the highest piezoelectric constants among known organic compounds [28] which asserts itself predominantly through intermolecular forces 15  Figure 1.5: Structure of PVDF among aligned β -phase polymer chains [35]. PVDF  comes in a variety of molecular weights with mechanical and electri-  cal properties that vary widely depending on the PVDF type and method of formation [36], [37], [38]. Extruded PVDF films applicable to acoustic piezoelectric applications must first be stretched and poled to establish a high concentration of aligned, β -phase polymer chains. Once stretched, poled, cooled, and given 24 hours to relieve any internal stresses (discussed in Chapter 2), PVDF is a long-term stable piezoelectric material, with piezoelectric properties varying less than 15% over a one year period [29], [39]. The material constants shown in Table 1.2 were selected for modelling purposes based on a literature survey of published PVDF parameters [26], [28], [40], [41], [42]. The survey indicated a high degree of consistency in mechanical properties such as stiffness and density, with some variation in electrical and piezoelectric parameters such as relative permittivity and piezoelectric coefficients. Analytical models use the indicated Young’s modulus, Poisson ratio and electromechanical coupling coefficient whereas FEA models use stiffness, piezoelectric coefficient, and permittivity matrices. Note that stiffness and permittivity matrices are symmetric and not all coefficients are listed. For coefficients with imaginary components, the imaginary component represents losses in the material [13]. In the case of the stiffness coefficient, as the material flexes, some of the flexural energy is converted into waste heat. Similarly, for relative permittivity, dielectric losses in the material allow some of the energy applied across the material to dissipate into waste heat. These effects are further discussed in Section 3.8. The piezoelectric charge constant is a special case where the imaginary component represents the losses associated with the reorganization of dipoles within the material that facilitate either the formation of charge or me-  16  Symbol cE11 cE12 cE13 cE22 cE23 cE33 dP,31 dP,32 dP,33 dP,24 dP,15 εr11 εr22 εr33 EY M ν kt  α  Property Stiffness Coefficients  Piezoelectric Charge Constant  Relative Permittivity Young’s Modulus Poisson’s Ratio Transverse Electromechanical Coupling Coefficient Attenuation  Value 3.61 + i0.11 1.61 + i0.04 1.42 + i0.04 3.13 + i0.10 1.32 + i0.04 1.60 + i0.12 13.7 + i2.34 1.95 + i0.51 −30.0 − i4.09 −19.6 − i1.93 −19.9 − i0.90 6.6 + i0.3 8.2 + i0.2 7.4 + i0.2 1.3 − 2.8 0.35 0.12 − 0.15  Unit [GPa] [GPa] [GPa] [GPa] [GPa] [GPa] [pC/N] [pC/N] [pC/N] [pC/N] [pC/N]  19  [dB/cm/MHz]  [GPa]  Table 1.2: Properties of PVDF used in analytical and FEA modelling chanical movement, losses impacting both mechanical and electrical domains (see Equation 1.18 and Equation 1.21). PVDF  from multiple sources was used, including McMaster Carr Inc., Solef R ,  and Professional Plastics Inc. Of the varieties tested, only the McMaster Carr PVDF film demonstrated good piezoelectric properties under the stretching and poling configuration used to prepare the films in this work. Additional research is ongoing to determine the cause of the low β -phase content in the other purchased films.  1.5.3  Poly(3,4-ethylenedioxythiophene) poly(styrenesulfonate)  PEDOT: PSS  is an organic, conductive polymer blend that forms the basis of the ink  used in the electrode printing process described in Section 2.1.3. The ink consists  17  of 95 wt% Clevios PH 1000 PEDOT: PSS, 5 wt% dimethylsulfoxide (DMSO) and 0.1 wt% Triton X100 (surfactant). In thin layers, PEDOT: PSS can appear transparent, encouraging its use in transparent coating applications, organic LED displays, solar cells, anti-static packaging, and many others applications [43]. It is biocompatible, has a high electrical conductivity, and good thermal and chemical stability [44]. The addition of poly(styrenesulfonate) to the poly(3,4-ethylenedioxythiophene) stabilizes the PEDOT ions [43] while the DMSO solvent is shown to improve the conductivity of the deposited film [43]. Unfortunately, PEDOT: PSS film is also very brittle [44], and changes properties when exposed to varying levels of humidity [45]. Investigating this behaviour in an effort to understand sensor performance in different environmental conditions forms a part of this work. The Triton added to the ink solution acts as a surfactant to help in adhering the ink to the hydrophobic PVDF film. Further information on PEDOT: PSS  and the ink used in this work can be found in Section 2.1.3 and in the  work by Man [11].  18  Chapter 2  Materials and Methods A number of materials and methods formed the basis of the experimental and theoretical portion of this work. This section describes the sensor fabrication procedure, testing equipment, and modelling methodology used.  2.1  Fabrication Technology  The fabrication procedure of the sensors will only be addressed briefly in this document as the majority of the work was developed and published by others [11], [46]. Fabrication of the sensors begins with sheets of unpoled PVDF purchased directly from a supplier. Sections of the material are cut out, stretched within an oven, poled using an electric field, then set aside to cool. The cooled films are framed either with or without pre-applied tension, then printed with an IDT pattern. The final step involves connecting leads to the sensor to allow interfacing the substrate with electrical equipment.  2.1.1  Stretching and Poling  The stretching and poling of PVDF is necessary to convert purchased PVDF from a primarily α-phase configuration (non-piezoelectric) to an aligned β -phase configuration. The polymer chains form lamellae which in turn produce spherulites during cooling after extrusion [35]. The random alignment of the CH2 and CF2 intramolecular units along the polymer chains represents the α state of the mate-  19  rial. The stretching process deforms the spherulites in such a manner as to align the intramolecular units and create dipoles along the polymer chains. This process is very sensitive to polymer temperature, duration, and PVDF mechanical characteristics [36]. The poling process involves the application of an electric field through the film to align the β -phase dipoles in the same direction, creating a net dipole through the material that demonstrates piezoelectric properties (Section 1.5.1). Measurements of film phase content is discussed further in Section 2.3. Stretching and poling of functional, experimental films used in testing is performed using a vice clamp to stretch the material in a temperature chamber and electrodes to apply the field across the film as shown in Figure 2.1a. Although an automated stretching and corona pole system is in development [47] as shown in Figure 2.1b, it was not used to produce any substrates within the scope of this work. Stretching and poling is performed in accordance with the methodology described by Huan et al. [48]. A 10 cm by 7.5 cm piece of unpoled PVDF is first cut out of sheet stock and clamped in the vice in the closed position. The apparatus is placed in a temperature-controlled chamber and raised to 120◦ C. The vice is then gradually opened at a rate of approximately 6.7 mm/min until the film has stretched to 4.5× its original length [46]. The film is allowed to cool while still under tension in the vice, followed by the placement of electrodes on either side of the film. With the electrodes in place, the film is reheated to 120◦ C and an electric field of 125 MV/m is applied to the film for 50 minutes [10]. The film must remain at high temperature during poling to allow the β -phase polymer chains to align with the applied electric field. Once the poling time has elapsed, the film is cooled with the field still applied, the field is deactivated, and the apparatus is removed from the oven with the film still under tension. The effect of heating and cooling the film under tension is a subject of ongoing research within the group. There is evidence, both in experimental work within the group, and through other research [49] that the cooling of polymers under tension can result in thermal stress stored in the film. The existence of latent stress is relevant to the sensor behaviour and therefore needs to be taken into account in both the pretensioning process (Section 2.1.2) as well as in fitting untensioned sensors to theoretical models (Section 2.6).  20  (a) Manual stretching and poling using a static field, contact poling method  (b) Automated stretching and poling using corona poling  Figure 2.1: Two stretching/poling configurations  21  2.1.2  Tensioning and Framing  As shown in Equation 1.15, in-plane stress plays a significant role in the phase velocity of the A0 FPW mode. Adjusting film stiffness and mass per unit area is difficult, leaving film stress as the most easily adjusted parameter for guiding operating frequency. Applying more stress also reduces the sensitivity of the sensor to changes in tension and stiffness without impacting the mass sensitivity. Preliminary measurements with the LDV (see Section 2.2) suggested that the tension was necessary for acoustic wave propagation across the film [10], although further experimentation, as discussed in Section 4.3, with films of varying tensions has shown this not to be the case. To tension the film after poling and stretching, the film is first left to cool in the vice while under tension. A clamping apparatus designed for framing the sensor is secured with two frame pieces, and a torque wrench is connected to the vice and torqued to apply a stress of 110 ± 20 MPa to the film. With the film suitably tensioned, bolts are tightened in the clamping apparatus to force the top and bottom frame pieces together, squeezing the film between them and removing the tensile load from the vice. Eight screws are then secured in the frame, tightened until nearly cross-threaded, and the clamping apparatus is removed. In the event of clamping films under 30 µm in thickness, an additional piece of unpoled PVDF is added between the poled film and the top frame to act as a gasket and help prevent the poled film from slipping and relieving stress. If the film is not to be pretensioned, then it is removed from the vice prior to framing and left to settle for 48 hours. It was observed that if the film was framed within 8 hours after cooling, cold creep would occur and the film would tension itself. This behaviour is not unexpected [39] but does reinforce the possibility of stored elastic energy within the stretched and poled films. No fully strain-relieved films have been successfully produced, with all sensors in untensioned configurations (even without frames) exhibiting a phase velocity that is consistent with some in-plane stress. The framing of untensioned sensors is similar to framing tensioned sensors, although adjustments are required to minimize wrinkling. The application of a small amount of stress perpendicular to the direction of stretching and poling seems to help reduce wrinkling of the framed sensor.  22  2.1.3  Electrode Printing  Once the film has been framed and shows a wrinkle-free surface, electrodes are inkjet printed onto one side of the film substrate. Printing an organic conductive polymer using an inkjet printer allows for low-cost, rapid variation of designs [11], [50]. The printing system was custom designed and fabricated for printing a variety of different inks with line widths down to 100 µm resolution. Printing of the electrode pattern using PEDOT: PSS ink described in Section 1.5.3 is done with a Microfab Inc. 40 µm orifice size piezoelectric nozzle. The minimum line width suggests that a 400 µm wavelength acoustic sensor is the smallest possible design using these tools [46]. Other printing equipment and technologies may be able to achieve thinner line widths, permitting small wavelengths. In preparation for printing, the printer is commanded to execute several dry cycles. This practice allows the printing platform to warm which helps the ink dry more quickly during printing, yielding a better print job. The sensor is placed on the printing platform and is aligned to ensure that the printing occurs over the poled area of the substrate. The printing program prints the entire sensor design continuously. Thin lines such as the IDT fingers are printed first, followed by pads. Each printing cycle deposits three layers of ink, and the cycle is repeated typically three times in order to achieve a visible, highly conductive pattern on the substrate. The printing of the IDT lines requires a special sequence developed by Man [11] to maximize the consistency of the lines. If ink drops are placed closely in a linear configuration, there is a tendency for the drops to coalesce due to the hydrophobicity of the substrate surface and surface tension of the ink, which causes a beading effect that may result in open and short circuits. The sequence first involves placing drops 200 µm apart, followed by another pass at 200 µm but at a 100 µm offset, and then a third pass at 100 µm spacing interconnecting the drops from the previous two passes. This methodology allows drops to dry on the substrate without causing beading [11]. Ambient humidity and temperature both highly impact the performance of the print. Research is ongoing to determine the best humidity and temperature profiles for the ink and printing equipment being used. Once the printing is complete, the sensor is set to dry for 2 hours at which point  23  Figure 2.2: Contact pad methodology leads are connected to the PEDOT: PSS pads to facilitate an electronic interface between the sensor and DAQ. Due to the brittle nature of PEDOT: PSS, an intermediate layer of copper tape is attached to the substrate surface. The copper tape is bonded to the substrate with an adhesive and conductive glue and then further secured and electrically connected to the IDT pads with conductive carbon wire bonding glue. The leads are 10 cm long, 30 AWG single core aluminium wires with two leads required for each IDT. The ends of the leads are stripped and then taped to the frame of the sensor using Kapton tape to help immobilize the leads. The leads connecting to the substrate are manoeuvred above the copper tape then secured with more carbon bonding glue. Care is taken to isolate the carbon glue bonding the wire to the copper and the glue bonding the copper to the PEDOT: PSS as the glue is stiff and flexure along the y-axis of the substrate can cause the PEDOT: PSS to be lifted off the surface of the substrate. Various elements of the contact pad are shown in Figure 2.2. A sensor with leads applied but no affinity layer or backplane is shown in Figure 2.3.  24  Figure 2.3: Completed sensor with leads  2.1.4  Application of Sensing Layers and Backplane  With the sensor printed and bonded to leads, the underside of the substrate can now be coated with conductive material and/or polymer affinity layers. When used, a backplane must be placed on the underside of the sensor to provide the increase in capacitance needed to boost signal strength as discuss in Section 3.3.5. Polymer affinity layers may be added to either the top and/or bottom of the sensor, but in scenarios where polymer layers are added and then removed, it is best to apply the layers to the bottom of the sensor to minimize damage to the IDTs during polymer removal. Three methods have been explored to apply polymer layers to the sensor underside: Air brush spray-coating, inkjet printing, and drop casting. Spray-coating is a common method of applying polymer layers to gas analyte acoustic sensors [17]. The method involves dissolving the polymer in a solvent and using compressed air or nitrogen to spray the polymer through a nozzle over a mask dictating the deposition pattern. The large size of the sensor in this work permits the 25  use of a Badger Basic Spray Gun driven by compressed air. A cardboard mask was constructed to ensure that only the desired area beneath the IDTs was coated. The mask is placed on the sensor substrate, and the airbrush is activated facing away from the substrate and then swept quickly over the mask once a consistent spray is achieved. Spraying a predictable and consistent amount of polymer for comparison with theoretical predictions proved difficult. Examination of the deposited polymer showed inconsistent coating and substantial beading due to the large droplet size of the spray. This method of applying polymer was not used in any experimental work described herein. Inkjet printing polymer onto the substrate is performed in much the same way that IDT patterns are printed. A low viscosity polymer solution is produced using solvents compatible with the printer tubing and nozzle. The printer is then configured to print a grid pattern on the sensor substrate at 100 µm drop spacing. Although more successful than the spray-coating method, the polymers form visibly inconsistent layers due to beading resulting from the high hydrophobicity of the PVDF surface. The mass of the printed polymer can be determined using a high sensitivity scale and weighing the sensor before and after printing. Experimentally, films produced using this method exhibited an unexpectedly low density as revealed through theoretical fitting [46]. Visual examination of the printed layers showed poor overlap between layers and a matte texture suggesting inconsistent flatness across the surface of the film. Printing multiple, superimposed layers may have caused air entrapment between the layers, reducing the density of the printed layers. The printed films are dry by the time the printing is complete. Drop casting involves the dissolution of a polymer in a solvent and the use of a pipette to drop a small quantity of solvated polymer on to the PVDF surface. It was found in this case that the hydrophobicity of the PVDF serves as an asset as once the solution is deposited, it can be carefully drawn over the desired surface area using the tip of the pipette. The solution then self-smooths over the coated area, leaving a reasonably consistent layer. This method allows for the rapid, accurate, and consistent coating of sensors, and is used extensively in experimental work.  26  The thickness of the resulting cast film is determined by d f ilm =  CVsol ρsol , AF ρ poly  (2.1)  where C is the unitless mass concentration ratio of polymer within the solvent, and AF is the area of the film covered. For a typical 10 µL application of polyvinyl alcohol (PVA) at 2% solution in water, cast over the receiving IDT and half the transmitting IDT, the deposited affinity layer thickness is 2 µm. Backplanes consisting of PEDOT: PSS are applied exclusively using this technique. For drop cast PEDOT: PSS consisting of layers thinner than 3 µm, one hour of drying time is necessary. Thin polymer layers (less than 3 µm in thickness, 2% solution by mass) such as polyvinyl acetate (PVAC) and PVA dry within 30 minutes of drop casting the solution on the substrate in a well ventilated area. Drop casting is also used in similar sensor assemblies [21], [51].  2.2  Optical Vibration Measurements  Optical vibration measurements were performed using a Polytec MSA-500 Scanning Laser Doppler Vibrometer. A scanning LDV uses one or multiple lasers to scan the two dimensional surface of a reflective vibrating body. The vibrations cause a Doppler shift in the reflected laser light that can be detected and measured. Either velocity or displacement can be measured, although the velocity detection mode is used exclusively in this work. The data is presented as a frequency spectrum where 360 degrees of phase information is available for each point in two dimensional space (limited by grid size) for each frequency (limited by FFT size). The velocity measurement can be integrated using frequency to determine displacement. The LDV also incorporates a function generator capable of electrically driving the acoustic output IDTs with either continuous sinusoidal waveforms or spread spectrum chirps. The output of the LDV must be boosted using a TREK Model 2100HF piezodriver, which is capable of providing 50× voltage signal gain without significant distortion up to approximately 1.5 MHz. A schematic of the setup can be seen in Figure 2.4. An example LDV output, Figure 2.5, shows a travelling wave from the acoustic  27  Figure 2.4: Schematic of LDV measurement system output IDT (left) to the acoustic input IDT (right) resulting from a series of chirp waveforms. The image represents the out-of-plane (z-axis) velocity of the surface of the sensor at its resonance frequency. The LDV is used to measure acoustic wave amplitude, quality factor, and attenuation.  2.3  X-Ray Diffraction and FTIR Measurements  Material characterization systems such as x-ray diffraction (XRD) and Fourier transform infrared spectrometry (FTIR) expose a sample to x-ray and infrared energy (respectively) and detect the interaction between that energy and molecules within the sample. The energy absorbed and/or re-emitted by the sample provides insights into the nature of the molecular bonds and orientations within the sample. These technologies are used for examining PVDF prior to stretching and poling, after stretching, and after stretching and poling. Measurements of stretched and poled PVDF demonstrated a significant increase in β -phase content consistent with other published works [10]. As these results have already been addressed in works by Robert Busch, they will not be discussed in detail here [10], [46].  2.4  Electrical Wave Measurements  An overview of the electrical wave DAQ is shown in Figure 2.6. The DAQ was designed, programmed, and tested within the scope of this work for the purpose of  28  Figure 2.5: Example output of LDV showing out of plane (z-axis) velocity of an acoustic wave travelling across a grey-scale image of the sensor surface with acoustic transmitting IDT on the left and receiving IDT on the right examining the performance of an all-polymer FPW sensor. Electric wave measurements use a DAQ to collect and process the electrical energy converted piezoelectrically from the substrate by an IDT acoustic receiver. As the acoustic waves pass the acoustic receiving IDTs, part of the energy of the travelling wave is converted to electrical energy. The electrical energy passes to a very high impedance (2 GΩ differential input impedance) AD8253 instrumentation amplifier configured for either 100× (no backplane) or 10× gain (with backplane). The purpose of the amplifier is to minimize the flow of charge from the acoustic receiving IDT to maintain a voltage on the IDT greater than the noise (see Equation 1.18). Preliminary capacitance calculations (see Section 3.3) suggest a 29  sensor output impedance in configurations lacking a backplane in excess of 10 GΩ, rendering matching between the sensor output and electronic input practically unrealizable. Future work will examine impedance matching once a sensor with a sufficiently low output impedance can be reliably fabricated. This goal may be realized by reducing film thickness and using a backplane to increase the capacitance of the IDTs. Charge amplifiers may also provide a method for electrical power collection by providing a very low input impedance but measuring the current or charge produced piezoelectrically in the receiving IDT. The DAQ consists of two input instrumentation amplifiers to accommodate a fully differential sensor topology. Both sensor channel output signals are fed through an analog digtial converter (ADC) buffer to a two channel, 16-bit, 168 MHz, Delta Sigma AD9262 ADC. The ADC is configured in a pipelined oversampling mode that simultaneously measures voltage from both channels and pipes the information on request to a Blackfin 506F digital signal processing unit (DSP). The DSP  operates at 400 MHz and uses the direct memory access (DMA) and the par-  allel port interface (PPI) modules to sample the ADC at rates up to 50 MHz in 10 50 µs bursts depending on the sensor A0 frequency. The data is averaged between 1000 and 5000 times per second and sent to a LabView application 8 times per second. A custom DSP/ADC configuration was constructed as a cost effective and customizable lab tool to pre-process the 200 MBit/s of data being extracted from the sensor. Complete schematics can be found in Appendix A and DSP programming can be found in Appendix B. A photo of the fabricated DAQ is shown in Figure 2.7. In the original configuration, a 4-pole bandpass filter was also included to further amplify the input signal and reduce out-of-band noise. Although the filter did help reduce 60 Hz and higher frequency switching noise from a switch mode power supply (SMPS) and other nearby noise sources, the phase shift introduced by the filter complicated phase and delay measurements. The Sigma Delta converter in the ADC was leveraged in its place to remove high frequency noise and 60 Hz noise was predominantly removed by DSP and LabView filtering. The packets of averaged wave data from both channels are passed by the DSP to a dedicated laptop running LabView. The LabView application collects the data from the DSP, and calculates, monitors, displays, and stores channel frequency, 30  Figure 2.6: Overview of electrical stimulation and data acquisition  Figure 2.7: Photo of data acquisition system  31  phase, delay, and amplitude information. The application also has the ability to interact with the gas calibration system, execute schedules of commands to vary gas concentrations exposed to the sensor, and trend all results. The LabView programming is located in Appendix C. With the exception of oscilloscope waveform snapshots, all of the electronic data collected and experiments performed utilized the DAQ and software described in this section.  2.5  Gas Calibration Station  The Gas Calibration System is a rack-mounted assembly constructed to provide a platform for generating precisely controlled vapours and analyte gases to expose to sensors. The core of the system comprises the Owlstone OVG-4 gas calibration generators, as shown in Figure 2.8. The system is inspired by similar systems used in acoustic gravimetric sensing research [23], [52]. The complete rack assembly design is shown in Appendix G. The calibration system consists of the following modules and functionality: • OFC-1 Mass Flow Controller – Gas mass flow controller (MFC) 100 mL/min (off) - 3000 mL/min – Controllable from LabView project – Configured as bypass flow control for OVG-4 modules • OVG-4 Gas Generator (×2) – Oven for liquid analyte diffusion tube, controllable from 25◦ C to 120◦ C – Gas MFC 50 mL/min (off) - 500 mL/min – Bypass located downstream connected to the OFC-1 module – Can output VOC gas concentrations from approximately 0.1 - 200 ppm, depending on the analyte. – Oven and MFC controllable from LabView project • OHG-4 Humidity Generator – Bubbler for generating humid air 32  Figure 2.8: Owlstone Gas Calibration System in rack – Manual needle valves that regulate relative output of dry and wet air – Gas MFC 300 mL/min - 3000 mL/min for regulating total flow output – Dew point humidity sensor and display (not readable from LabView) – Gas MFC is controllable from LabView project, but output humidity must be set and monitored manually – Low closed-loop feedback humidity control All components upstream of the sensor are interconnected with stainless steel or glass tubing; venting and exhaust outputs are vinyl or polyvinyl chloride (PVC) tubing. The gas calibration system is used to generate VOC-laden and humid air for all tests discussed in this work. For testing where accuracy and consistency of data 33  is not critical, lab/building air is used. When higher accuracy tests are performed, such as those described in Section 4.3.1 and Section 4.3.2, a compressed air tank is used as the air source.  2.6  Modelling Methods  Numerous modelling tools were used to verify the behaviour of the fabricated sensors against expected results and extrapolate their behaviour in different configurations. FEA models more complicated structures and materials by breaking down objects into a fine mesh, applying differential equations and boundary conditions to all elements of the mesh, and then numerically solving the system. Analytical models use generally simplified mathematical formulae intended to directly solve for a variety of material and performance parameters.  2.6.1  Finite Element Analysis  All FEA analysis performed in this work uses Comsol versions 4.1 and 4.2. Material parameters for PVDF and PEDOT: PSS are based on parameters listed in Table 1.2, although losses are not always included [53]. All models use the piezoelectric physics engine to model the behaviour of the PVDF and the linear elastic physics engine to model the behaviour of the PEDOT: PSS and affinity layer polymers. The models used to provide the FEA data and images discussed in this work can be separated into four categories: • Both 2D and 3D models for performing eigenvalue studies on mechanical resonance frequencies of the modelled sensor. This model assumes an infinite, periodic IDT and calculates the various resonance modes of the sensor. The A0 and S0 modes are then visually identified from the listed resonance frequencies. An example is shown in Figure 2.9. • Both 2D and 3D models for capacitance and field calculations between two IDT  fingers. An example is shown in Figure 2.10.  • Both 2D and 3D models integrated with Matlab for time-dependent tracking of travelling waves. These models have a four fingered IDT, excess length  34  Figure 2.9: Comsol example showing a 2D model of the A0 mode of a 18 µm thick, 800 µm wavelength stress-free sensor to allow the travelling waves to propagate away from the IDT and will either operate with or without complex material coefficients for travelling wave decay. Examples are shown in Figure 2.11 and Figure 3.3 (Chapter 3). • 2D models with affinity layers and parametric, eigenvalue solvers for tracking changes in A0 resonance frequency as a function of variations to PVDF and affinity layer material parameters. This model is used extensively in Chapter 3 and Section 4.3.1. FEA  models serve as numerical approximations of more complex material con-  figurations, methods of solving time-dependent models of acoustic wave transport, and as a visualization tool.  35  Figure 2.10: Comsol example showing a 3D model of the electric field of two IDT fingers where the bottom side of the sensor is grounded  Figure 2.11: Comsol example showing acoustic waves propagating outward from a central four finger IDT stimulated with a sinc function  36  2.6.2  Analytical  Analytical models are implemented in Matlab to approximate the behaviour of simplified sensor models based on clearly established theoretical principles such as the differential wave equations for thin plates described in Section 1.4.2, inter-domain energy relationships as introduced in Section 1.5, Hooke’s Law, and Fick’s Law. These analytical equations form the basis of Matlab code which generates performance information and is compared to experimental results to better understand the behaviour of the sensor. Many of the Matlab implementations can be found in Appendix D, including functions for calculating the resonance frequency of a sensor coated with an affinity layer, and approximations on power transfer from electrical/acoustic/electrical domains of sensors in various configurations. The equations and methodology will be discussed in more detail in Chapter 3 and Chapter 4.  37  Chapter 3  Sensor Design This section discusses the design decisions made in fabricating the initial sensors, the measurements of key parameters of the sensors’ operation, and a design sensitivity study predicting where the greatest improvements in performance can be found.  3.1  Sensor Structure and Interface  The sensor fundamentally consists of five components: • Substrate • IDTs • Backplane and affinity layer coating • Frame or support structure • External interface The substrate is a thin and fragile PVDF film that may or may not be tensioned. It must be supported in such a fashion as to minimize wrinkling, deformation, and environmental effects on the material. The IDT design is critical as it determines the properties of the waves induced on the substrate. The backplane and affinity layer coating must be carefully designed to optimize the performance of the sensor. The frame or support structure must support the substrate in tensioned and/or 38  Figure 3.1: Shielded BNC electrode for electrical driving untensioned configurations while allowing portability, wear resiliency, chemical resistance, and the ability to attach the sensor to an interface system. The external interface method must perturb the substrate as little as possible while being strain-relieved, robust enough to tolerate multiple connections and disconnections, and electrically shielded. The gas chamber in which the sensor operates must also minimize the volume of gas required to fill the cavity beneath the sensor in order to minimize the required analyte. The preliminary designs for the sensor and test chamber are based on concepts put forth in analyte gravimetric publications [2], [3], [18]. The sensor, as shown in Figure 2.3, consists of a simple, water cut stainless steel frame with enough mechanical strength to support fully tensioned 120 µm thick substrates. The extra space surrounding the sensor IDTs allows for experiments involving multiple printed IDTs or very wide IDTs. The connector shown in Figure 3.1 is shielded to minimize the emission of electromagnetic interference (EMI) with contacts that can be placed on the acoustic output IDTs of the sensor. The copper pad configuration lends strength to the PVDF to help reduce tearing of the membrane. The test chamber, shown in Figure 3.2, is composed of aluminium and uses an extruded area beneath the sensor substrate area to minimize the volume of gas  39  Figure 3.2: Test chamber configuration beneath the sensor. The frame forms a face seal with the test chamber with the chamber lid applying the force necessary to form the seal. Pin holes on the underside of the chamber allow for the addition of contact pins if the sensor is mounted with IDTs facing down. In configurations involving the chamber pins or the BNC electrode, force is applied on the substrate surface, creating a slight variation in measurement behaviour with every reconnection. Proposed improvements to the overall structure of the sensor include reducing the substrate size to the minimum area required for surrounding the IDTs. A corresponding reduction in test chamber and frame size would also be necessary. If tensioned film is not required, then the frame can be replaced with a thinner polymer frame as a further cost saving measure. A different electrical interface method that avoids applying pressure to the substrate directly would also be beneficial and has been successfully tested in 18 µm substrate thickness configurations using a backplane.  3.2  Acoustic Wave Form and Mode  As discussed in Section 1.4, the A0 FPW mode is the superior choice for gas analyte sensing applications involving PVDF substrates and inkjet printed IDTs. Although FPW sensors suffer from high temperature sensitivity, particularly with a  40  tensioned film [3], the ability to improve gravimetric mass sensitivity by reducing film thickness rather than increasing frequency is necessary in designing a competitive, printed, all-polymer sensor. Using FPWs also permits the application of affinity layers to both sides of the sensor, biosensing and other fluid sensing applications, and polymer characterization applications (see Section 4.3.2).  3.2.1  Substrate Thickness  Substrate thickness has a critical impact on overall sensor performance when FPWs are used. Figure 1.2 shows the change in A0 phase velocity as a function of the ratio d/λ . As the film becomes thinner, the phase velocity and corresponding operating frequency of the sensor drops. A lower velocity increases delay times in delay measurements, requires lower cost and complexity DAQ designs, and reduces attenuation as discussed in Section 3.8. More importantly, the sensor mass per unit area drops, which improves the gravimetric mass sensitivity of the sensor as shown by Equation 1.4. There are challenges to thinning the substrate. The commercial availability of unpoled PVDF film limits access to film thicknesses below 0.001” (25.4 µm). Thinner films are also more brittle and fragile, necessitating extra care in the fabrication and use of the sensor. Sensors based on 0.001” films (5.6 µm after stretching) may be impractical due to their fragility. There is also the possibility that the spherulites that are necessary for β -phase in the film may be lower concentration or less stable at very thin film thicknesses, a subject under current research. Although 0.001” PVDF was successfully stretched and poled, the piezoelectric charge constant of the  film was too low to test its sensing capability. Sensors based on 0.020” (120 µm after stretching), 0.010” (60 µm after stretching), and 0.003” (18 µm after stretching) film thicknesses were stretched, poled, and rendered into sensors.  3.2.2  Wave Velocity  Wave velocity of the A0 mode of a FPW is approximated by Equation 1.15. There are four parameters that fundamentally impact the phase velocity of the acoustic wave and the corresponding resonance frequency of the sensor: • In-plane stress in the direction of acoustic propagation 41  • Stiffness of the film • Linear inertia (mass per unit area) of the film • Wavelength of the IDTs In-plane stress is adjustable through tensioning the substrate prior to mounting the substrate in a frame. It is also affected by a force along the z-axis of the film such as differential pressure, fluid loading, self-loading, and electrical probes; environmental factors such as variations in temperature causing the film to expand and contract; expansion and contraction of affinity layers; and cold creep of the PVDF  causing internal stresses.  The stiffness of the film is a complex function of the stiffness matrix of the film, which can be approximated using Young’s modulus and Poisson’s ratio as shown in Equation 1.9. When applying this simplification, and assuming that the film is a single layer of PVDF, Equation 1.10 states the stiffness to be roughly proportional to Young’s modulus and the cube of the thickness, D=  EY M d 3 . 12(1 − ν 2 )  (3.1)  It is the cubic relationship with thickness that allows the phase velocity to drop with thinner films despite the decrease in mass per unit area. Figure 3.3 shows the wave propagation for two different substrate thicknesses as a function of time. The linear inertia is most effectively adjusted by varying the thickness of the substrate and adjoined polymer layers, as the density of the materials are unlikely to change significantly. With that in mind, it is the variation in density of the affinity layer that allows gravimetric sensing in acoustic applications to work, as discussed in Section 1.4.3. The relationship between velocity and wavelength is complex due to the influence of wavelength on the stress/stiffness term of the velocity equation. Equation 1.15 can be rewritten to better convey this effect, v pa =  1 λ  λ 2 T + 4π 2 D . M  42  (3.2)  (a) 120 µm thick PVDF  (b) 18 µm thick PVDF  Figure 3.3: A0 wave propagation as a function of time, modelled with Comsol for 800 µm wavelength, driven by sinc function  43  For scenarios where there is no in-plane stress, the phase velocity is inversely proportional to the acoustic wavelength, meaning that acoustic frequency is inversely proportional to the square of the wavelength. If in-plane stress is non-negligible then the relative influence of stress and stiffness is in part dictated by the magnitude of the acoustic wavelength. For very large in-plane stress, the wavelength dependence in the equation cancels out, leading to a frequency inversely proportional to wavelength for a constant phase velocity. Limitations in the fabrication process prevent acoustic wavelengths of less than 400 µm and other constraints, such as available substrate material, prevent excessively large wavelengths.  3.3 IDTs  Interdigitated Transducers are comb-like structures situated on the piezoelectric substrate that, when ex-  posed to a time-varying voltage, generate standing waves with travelling waves launched from the edges of the transducers. Multiple IDT patterns have been considered in the scope of the design and optimization of this sensor, some of which demonstrated reasonable complexity [3], [54]. The design of the IDTs must ideally generate highly directional and efficient travelling waves with a large quality factor and signal to noise ratio. Numerous models exist for analyzing the behaviour of IDTs with the intent of reducing spectral noise and distortion [55], a process known  as band shaping. For two identical “square” IDTs, meaning that all fingers have the length and spacing as discussed in Section 3.3.1, the frequency behaviour of the output waveform can be approximated with F( f ) ∝  sin( f + fres ) f + fres  2  = sinc( f + fres )2 ,  (3.3)  where f denotes a frequency offset from the resonance frequency, fres . The bandwidth of the configuration is inversely proportional to the number of fingers in each transducer [56]. This expression derives from the connection between the geometric structure of the IDTs and their frequency domain representation. As a first order approximation, the overlap between finger pairs in the IDT analogously correlates to a sinusoidal wave of that amplitude, such that four finger pairs would yield four  44  consecutive sinusoidal waves. For an IDT pattern where the overlap between the fingers are all identical, this pattern produces a square wave modulated at a carrier frequency, as shown in Figure 3.4. The frequency response is then the Fourier transform of that function. The sinc function in the frequency domain is not particularly desirable due to the large centre lobe bandwidth and large side-lobes. A large bandwidth results in lower quality factor and poor side-lobe suppression can cause frequency tracking errors and lower power density in the main lobe. Modifying the design of the IDTs allows for filtering functions which can allow side-lobe suppression and thereby improve spectral signal to noise ratio. The most common method of achieving better performance is through apodization of the IDTs [55], [56], using functions similar to Fourier transform windowing functions to band shape the frequency response of the IDTs. Unfortunately, analytical modelling shows that applying this function also reduces finger overlap and acoustic wave signal strength. Due to restrictions caused by weak signal strength, no apodization techniques were attempted in the scope of this work.  3.3.1  Single Electrode Pair  The first IDT configuration is a simple rectangular configuration with ten pairs of fingers in each IDT, and two IDTs per sensor as shown in Figure 3.5. One transducer is used to actuate the waves and the other to measure the waves. Actuating this configuration in both the LDV and the DAQ yielded a measurable, low amplitude acoustic signal. It was determined using this configuration that the sensitivity of the FPWs to temperature during normal operation would be prohibitive for sensing small variations in mass and stiffness (see Section 4.1.1 for more discussion). Consequently, a differential IDT configuration was realized to help compensate for environmental effects such as temperature.  3.3.2  Differential Isolated Electrodes  The differential isolated electrodes design, shown in Figure 3.6, consists of a larger inner electrode that transmits the acoustic waves and two outer electrodes that act as receivers. Both 400 µm and 800 µm wavelength versions of this design were  45  (a) IDT overlap pattern  (b) Frequency Response of IDT Pattern and Sinc(x)  Figure 3.4: Non-apodized IDT configuration showing overlap amplitude and resulting frequency response, including side-lobes 46  Figure 3.5: Pattern used for single pair IDT design  Figure 3.6: Pattern used for 800 µm thick isolated differential electrode design  47  Figure 3.7: Example electrical output of each channel of a fabricated sensor fabricated. Each output channel is connected to an amplifier and receives one of the travelling waves propagating from the centre electrode. The intent of the differential design is to mitigate both environmental and material influences such as temperature, variations of in-plane stress, and ageing, while also permitting for discrimination between two affinity layer effects. In a fully compensated, differential configuration, an affinity layer with high sensitivity is coated on the bottom side of channel A (exposed to analyte) and the top side of channel B (not exposed). Similarly, the bottom side of channel B is coated with a low sensitivity layer along with the top of channel A. This configuration allows for variations in polymer properties resulting from ageing to affect both channels while allowing the analyte or other measurand to only affect one channel. It can also be used to match the resonance frequency of both channels for better compensation. A similar device can be found in the work of Ho et al. [21]. Although the waveforms do not match perfectly, as shown in Figure 3.7, they can still track closely and comparison data as shown in Figure 3.8. The effectiveness of this concept is discussed further in Section 3.10.2, Section 4.1.1 and Section 4.3. 48  Figure 3.8: Example data collected during humidity testing with PVA as the affinity layer and PVAC as the blocking layer  3.3.3  Differential Joined Electrodes  The differential joined electrode configuration is in many respects similar to the differential isolated electrode configuration, with the exception that the acoustic receiving electrodes are electrically connected in opposing phase to electrically subtract the incoming waves and yield only one output channel, as shown in Figure 3.9. Other design features such as larger, internally situated pads, are intended to provide the following additional functionality: • Pads are 1/4 wavelength away from acoustic transmitting IDTs to provide reflection and increase the signal strength of the outgoing wave; • Acoustic receiving IDTs are connected to allow signal differentiation in the electrical domain, thereby allowing the mixing to occur before entering the digital domain with its associated noise; • Contact pads are larger for ease of locating pins and probes on sensor substrate; 49  • Changing the frequency component of the receiver signal reduces signal interference from crosstalk; • The measurable quantity is directly proportional to signal amplitude. The mathematical basis for the differentiation is based on subtractive signal mixing, sin(u) − sin(v) = 2cos  u+v u−v sin , 2 2  (3.4)  forms the basis of the used identity, where sin(u) and sin(v) represent the two received sinusoidal acoustic travelling waves with slightly varying frequency and phase, u = 2π f1t + φ1 ,  (3.5)  v = 2π f2t + φ2 .  (3.6)  u and v are ideally very similar with differences in f1 , f2 and φ1 , φ2 being caused by the influence of an analyte or differences between properties of sensing and blocking layers. The cosine term of Equation 3.4 essentially doubles the frequency of the incoming wave, thereby differentiating the received signal from the driving signal EMI, which uses a lower frequency component. The sine term creates a scaling beat pattern for the new waveform which, for short duration, synchronized measurements, creates a relationship between signal amplitude gain and channel phase/delay difference. If there is no difference between the signals due to an analyte concentration of 0 ppm (or zero differential mass), the amplitude of the signal approaches zero. Consequently, the DAQ requires only a single channel to record a signal at twice the driving frequency where amplitude is approximately proportional to the measurand effect on the sensor. Measuring amplitude rather than frequency can also provide for a very low cost, purely analog method of responding to a differential analyte signal, particularly useful in threshold detection applications. Although testing did confirm the overall expected behaviour of the sensor design, several problems prevented the successful use of the sensor in gravimetric 50  (a) Joined electrode design concept  (b) Pattern used for 800 µm sensor  Figure 3.9: Concept for joint-electrode differential sensor  51  and stiffness sensing applications. The poor repeatability in the film and printing fabrication process prevented perfectly matched channels, resulting in significant imbalances in signal strength between the channels and poor sensitivity. To compensate for the imbalance, varying amounts of polymer was added to each side of the sensor until the resulting differential amplitude was close to zero. Although the imbalance was always at least two orders of magnitude higher than desired, it was determined that the majority of the signal noise occurred prior to the DAQ input amplifiers, rendering the use of a gain block ineffective. The low electromechanical coupling coefficient of the PVDF also prevented the centre pads from reflecting the transmitting acoustic waves, resulting in an overall reduction of acoustic signal strength for both channels.  3.3.4  Finger Ratios  In addition to examining different electrode configurations, a detailed study was performed to assess appropriate ratios between acoustic transmitting and receiving fingers given a spatially confined substrate. The high attenuation, non-linear superposition of acoustic waves contributed by finger pairs, and potential for acoustic reflection suggests an imbalanced design. To study this effect, a Matlab application was developed that analytically approximated the construction, propagation, and reflection of waves throughout the substrate. An example output of this code is shown in Figure 3.10. The underlying assumptions in the model are as follows: • Waves are generated and summed using energy domain transfer models (see Section 3.7.2); • Wave summation occurs twice per wavelength (every IDT finger); • All acoustic power absorbed by the receiving IDT is rectified and summed (only valid in zero-field conditions) in power mode (matched impedance), and averaged in voltage mode (high impedance receiver); • All electric power converted to the acoustic domain is assumed to behave as a plane (2D approximation).  52  Although acoustic reflection was included in the model, reflectors were never successfully implemented in the fabricated sensor. Typical reflectors would consist of appropriately spaced, shorted fingers that cause wave interference in the path of the propagating wave, increasing acoustic impedance, and prompting the wave to reflect constructively back to the source. The low electromechanical coupling coefficient combined with the high attenuation of the PVDF made implementing such a reflector impractical. Many finger pairs would be required to form the reflector, and any substantial, reflected wave would attenuate before providing much benefit. The possibility of precisely cutting the film to form the acoustic reflector, or shrinking the frame to form an acoustic boundary, may be investigated in the future.  53  54 Figure 3.10: Illustration showing energy domain transfer of an 18 µm thick, 800 µm wavelength sensor where blue lines represent acoustic transmitting IDT fingers, red lines represents acoustic receiving IDT fingers, and the bright green line represents the reflection  Two simulations were run. Figure 3.11 considers an impedance-matched configuration where all power is removed from the acoustic receiving IDT. To achieve optimum power transfer, a balanced finger ratio between the transmitter and receiver is ideal. As the attenuation of the substrate increases, the system slightly favours having more transmitting fingers to overcome the loss in power. In Figure 3.12, a high impedance (ie. instrumentation amplifier) electrical input is assumed where only the generated electric field becomes relevant, rather than the total amount of power collected at the acoustic receiving IDT. To maximize performance, more transmitting fingers are preferred as the mean receiving electric field is stronger if there are fewer fingers in the receiving IDT and correspondingly less voltage gradient. without contributions from weaker components of the signal resulting from IDT fingers exposed to a highly attenuated signal. The contribution from weaker components becomes very significant with higher attenuations. The sensor tested experimentally behaves between these two extremes as the high output impedance of the sensor is difficult to match electronically (see Section 2.4).  3.3.5  Backplane  A backplane is a thin conductive surface on the opposite side of the sensor from the IDTs. The backplane provides a reference “ground”, or charge reservoir, for the IDTs  through the substrate, effectively increasing the z-axis electric field compo-  nent. The larger z-axis electric field component is critical to piezoelectric processes dependant on dP,31 and dP,33 , both of which contribute to A0 Lamb waves [57]. A Comsol comparison between the two configurations can be seen in Figure 3.13. From [3] the equation for a single finger pair without a conductive backplane is E(z) = β  −Va sinh(β z) −Vb sinh(z − d) , sinh(β d)  (3.7)  where E(z) is the z-axis electric field as a function of depth, Va and Vb represent half potentials applied to separate adjacent fingers, β is the wavenumber, and d is the total thickness of the substrate. This equation assumes an infinite number of equally spaced fingers and describes the z-axis electric field extending down from the fingers to the bottom edge of the substrate. The result from an analytical  55  (a) Total received power (arb)  (b) Power mismatch the across receiver IDT  Figure 3.11: Analysis showing the effect of transmitter to total finger ratio on a) total received power and b) power mismatch across the receiver, in an impedance matched configuration for a 800 µm wavelength, 18 µm thick sensor for variations in attenuation 56  (a) Average received voltage (arb)  (b) Voltage mismatch across the receiver IDT  Figure 3.12: Analysis showing the effect of transmitter to total finger ratio a) mean average received voltage and b) voltage mismatch across the receiver, in a high impedance receiver configuration for a 800 µm wavelength, 18 µm thick sensor for variations in attenuation 57  investigation using Equation 3.7 is shown in Figure 3.14. Equivalent Comsol FEA modelling is shown in Figure 3.15a, demonstrating reasonable agreement between analytical and FEA modelled results. For the Comsol model, the electric field is calculated on the edge of the inner finger. The capacitance between two fingers is dependent on both the electric field between the fingers through the air as well as through the substrate and affinity layers. FEA modelling of a PVDF sensor with no affinity layer indicated a capacitance range of 20 - 150 fF per finger pair for the configurations considered in this work. This exceptionally low capacitance contributes to the high output impedance of the acoustic receiving IDTs. The Ez of a finger pair with a backplane can be approximated using the simple relationship, E(z) =  (Va −Vb ) , 2d  (3.8)  which can be seen in Figure 3.15b. This equation assumes that electrode finger width is much greater than substrate thickness, d. Figure 3.15 shows that the strength of the electric field is substantially greater with a backplane in place, resulting in a larger acoustic wave. It is primarily for this increase in signal strength that conductive backplanes are included in many FPW designs [58]. Experimental data was collected using an 18 µm thick, 800 µm wavelength sensor with and without a backplane, shown in Figure 3.16. The capacitance in the configuration including a backplane is much higher, and can be approximated analytically, Cbp =  ε0 εr Am , d  (3.9)  where Cbp is the backplane capacitance, ε0 is the permittivity of free space, εr is the relative permittivity of the substrate, Am is the total surface area of a finger pair, and d is the thickness of the substrate. FEA modelling has demonstrated excellent agreement with Equation 3.9, revealing a capacitance range from 1 - 6 pF per finger pair for the configurations considered in this work. Poling the PVDF and rendering the substrate piezoelectric is reported to slightly increase the permittivity of the material, although not significantly enough at lower frequencies to warrant further discussion [48]. 58  (a) Without backplane  (b) With backplane  Figure 3.13: Comsol model showing z-axis electric field strengths of a sensor with and without a backplane using Va = −50 V and Vb = 50 V There are limitations resulting from the additon of a PEDOT: PSS backplane to the sensor substrate. The additional mass of the material reduces the mass sensitivity of the sensor as demonstrated by Equation 1.4, and PEDOT: PSS is not as chemically resilient as PVDF, requiring an additional protective coating in some applications. Ripples in the passband of the acoustic wave were also measured using the LDV, as shown in Figure 3.17, after a backplane was applied, suggesting increased reflections between fingers and IDT boundaries [56]. 59  Figure 3.14: Electric field beneath an IDT finger based on a mathematical model using Equation 3.7 showing z-axis electric field strength with no backplane The benefits of applying a backplane outweigh the drawbacks in scenarios where high signal to noise ratio (SNR) is necessary, meaning that all experiments involving gas sensing and biosensing are performed with a PEDOT: PSS backplane. The backplane consists of 2 µL PEDOT: PSS drop cast on the back of each receiving IDT  and 3 µL PEDOT: PSS drop cast on the back of the transmitting IDT. At these  volumes, the coating thickness of the PEDOT: PSS is approximately 800 nm using Equation 2.1. The receiving and transmitting IDT backplanes are left disconnected from each other and any ground references to allow the transmitting backplane to float at a higher potential than the receiving backplanes.  3.4  Excitation Waveforms  Excitation waveforms are the electrical waves used to excite the sensor. Different wave configurations are used depending on the test being performed. When operating with a continuously driven, sinusoidal signal, the EMI crosstalk from the acoustic transmitting IDTs generates an electromagnetically coupled waveform on 60  (a) Without backplane  (b) With backplane  Figure 3.15: Results from a Comsol model showing z-axis electric field strengths of IDTs as a function of thickness using Va = −50 V and Vb = 50 V  61  Figure 3.16: Experimental comparison between an acoustic signal without a backplane (blue) and an acoustic signal with a backplane (red), measured electrically using the DAQ at the electrical output IDT. The pulses on the left side of the plot show the EMI crosscoupling, with acoustic waves beginning at 38 µs. Saturation of the blue EMI is the result of a higher gain setting causing clipping of the waveform. the receiving IDTs that overwhelms the acoustic signal. For this reason, the sensor is predominantly driven discontinuously, where short bursts of waves applied to the transmitting IDT to create gaps in the EMI for measuring the acoustic response. This reception pattern can be seen in Figure 3.16.  3.4.1  Pure Sinusoid  A purely sinusoidal excitation mode is used rarely as the signal strength of the acoustic wave under ideal conditions is approximately equal to that of the EMI crosstalk generated by the acoustic transmitting IDTs.  62  Figure 3.17: LDV FFT image of a wave generated with a PEDOT: PSS backplane travelling across a substrate  3.4.2  Pulse Train  A pulse train is a series of pulses followed by a period of no excitation. The pulses generate the acoustic waves and are disabled prior to the acoustic waves being detected at the acoustic receiving IDTs, thereby completely eliminating the effects of eletromagnetic crosstalk. A pulse train or similar discontinuous waveform is also commonly used in time of flight measurements. A 550 kHz pulse train example for the Agilent function generator can be seen in Figure 3.18  3.4.3  Binary Frequency Shift Key Waveform  A binary shift key response is similar to a pulse train but with variable frequency. The intention of the binary frequency shift key (BFSK) waveform is to provide a detectable, frequency modulated, threshold between two frequencies for time of flight calculations. An example BFSK waveform is shown in Figure 3.19.  63  Figure 3.18: Pulse train showing 12 pulses of 550 kHz followed by zero excitation, repeated at 25 kHz  Figure 3.19: BFSK waveform consisting of eight pulses at 500 kHz and 2 pulses at 600 kHz, repeated at 25 kHz 64  3.4.4  Chirp  The chirp is a specially designed waveform that disperses excitation energy across a wide range of frequencies. This waveform is useful in that it provides a excitation that is roughly flat in the frequency domain throughout the frequency range of interest, reducing the possibility of warping or biasing the detected resonance frequency of the sensor. By dispersing the energy through a large range of frequencies, the resulting power spectral density at the resonance frequency is much lower, resulting in lower SNR. The chirp is designed using finite impulse response algorithms in Matlab along with manual waveform editing to flatten the wave in the region where acoustic waves are measured. An example chirp spanning the 400 kHz - 650 kHz range can be seen in Figure 3.20.  3.5  Sorptive Polymer  The sorptive polymer layer is the affinity layer that varies in properties with the absorption or adsorption of an analyte. Sorptive polymer layers are used in both gas sensing and biosensing applications.  3.5.1  Diffusion and Fick’s Law  Diffusion is a process by which a substance moves from higher concentration to lower concentration. It is a critical component of polymer/analyte-based gas sensing in acoustic sensors [9]. Fick’s first law of diffusion for a one dimensional system is J = −DF  δΦ , δz  (3.10)  where J is the diffusion flux in [mol m−2 s−1 ], DF is the Fickian diffusion coefficient in [m2 s−1 ], Φ for ideal mixtures is the concentration in [mol m−3 ] and z is the depth of penetration in the polymer. For a continuous source of an absorptive analyte resulting in a concentration gradient through the polymer, the first law indicates that a diffusion flux will form that is proportional to the gradient of analyte concentration. As more analyte enters the polymer, the gradient of concentration decreases, as will the rate of absorption. For simple, 1D homogeneous polymers 65  (a) Time domain signal  (b) Frequency domain  Figure 3.20: Chirp with passband from 400 kHz - 550 kHz for use with thicker sensor substrates, intended to cycle at 25 kHz  66  of finite thickness and a constant analyte concentration outside the polymer, the diffusion flux exponentially decays with time, ultimately reaching zero.  3.5.2  Sensing Polymer Design  There are three important competing factors relevant to selecting an appropriate polymer thickness. The first effect is absorption rate. As described in Section 3.5.1, diffusion flux is a function of the diffusion coefficient and concentration gradient. Given a limited rate of diffusion, as determined by the diffusion coefficient, thicker polymers will require more time to reach equilibrium, reducing the response rate of the sensor. The second effect is response magnitude. The total mass and stiffness responses resulting from absorption are functions of polymer thickness, where greater thickness independently increases the response. Generally speaking, sensors with thicker polymer layers show greater overall response to a change in analyte concentration, but respond much more slowly and require a large amount of analyte to reach equilibrium. Sensor response is discussed in greater detail in Section 3.6. The third effect in polymer layer design involves selecting a polymer to match an analyte. Within the scope of this work, Hansen solubility parameters (HSP) comparisons are used for this purpose [59]. HSP examines the compatibility and selectivity of a polymer/analyte combination by comparing the compatibility of polymers and analytes by using hydrogen bonds (δ H), polar bonds (δ P), and dispersion bonds or van der Waals forces (δ D). The more similar the properties between polymers and analytes in these three categories, the higher the diffusion coefficient and partitions coefficient (K). The partition coefficient when applied to a gas/polymer interface describes a linear ratio of concentration of the analyte inside the polymer to the analyte in the gas external to the polymer [21], [60], K=  Cs , Cg  (3.11)  where Cs and Cg are the unitless concentrations by mass of the analyte in the solid and carrier gas respectively. A common method for using the partition coefficient involves the calculation of the partial density (ρ partial ) of the analyte within the 67  polymer, ρ partial = KMa c,  (3.12)  where ρ partial is the partial density of the analyte within the polymer in [kg m−3 ], K is the partition coefficient, Ma is the molar mass of the analyte, and c is the molar concentration of the analyte in the carrier gas, c=  Cg P , RTeq  (3.13)  where P is the carrier gas pressure in units of [Pa], R is the ideal gas constant, and Teq is the equilibrium temperature in [K]. A larger partition coefficient will yield a higher concentration of the analyte within the polymer, increasing the sensitivity of the sensor to that analyte. As many polymers absorb multiple analytes, it becomes necessary to select several polymers with different absorption parameters for the target analyte to isolate the concentration of the analyte in question. If multiple analytes are measured, multiple complementary polymers must be selected both to absorb and mask specific analytes under test. Another consideration involves selecting masking or blocking layers for the sensor. Some analytes with small molecular structures, such as water vapour, can adsorb within polymer structures that have no absorptive affinity for the analyte by wicking into small cavities present in porous structures [61], [62]. This behaviour can be distinctly non-Fickian, leading to poor selectivity, cross-contamination, and ineffective reference channels.  3.6  Sensor Detection Performance  There are many factors that influence overall sensor performance, and they can be broadly grouped into three categories: • Sensitivity: Refers to the gain between the change in measurable quantity (measurand) such as mass or stiffness and the change in normalized signal (e.g. frequency, phase, delay, etc), typically expressed in [cm2 /g] or a similar unit. See Equation 3.15 for an example of usage. 68  • Signal resolution: Refers to the minimum detectable change in the normalized signal, as typically determined by SNR, represented by ∆ fmin where f is replaced by different signal types. Signal resolution is expressed in the units of the signal being measured (I.e. Hz, s, V). • Measurand resolution: Represents a complete assessment of the ability of the sensor to realistically detect a change in a measurable quantity such as mass, incorporating both sensitivity and signal resolution. A higher resolution indicates a smaller minimum detectable change in measurand. Maximizing the measurand resolution of the sensor is critical to detecting very small changes in affinity layer properties. As discussed in Section 1.4.2, there are many variations in sensor mechanical properties that can be detected using A0 Lamb waves. The most significant effects are mass change and stiffness change, with the former traditionally being the focus in gravimetric applications due to the inherent stiffness of the substrate [2], [63]. Using a low stiffness polymer substrate raises some new challenges and opportunities in optimizing sensitivity, resolution and overall sensor performance.  3.6.1  Mass-only Response  The mass-only sensitivity of the sensor, measured in [cm2 /g], assumes that the only effect in the sensing or affinity layer of the sensor that perturbs the output signal is the linear interia, typically expressed as a change in material density. This approach is reasonable in many cases as the sensor substrate has a large Young’s modulus or is particularly thick such as in the case of a quartz crystal microbalance (QCM) or SAW  sensors. For a FPW A0 mode sensor, the mass sensitivity can be expressed as SM =  δv δM  v  ,  (3.14)  which yields Equation 1.17. The ideal expression for normalized frequency change based on mass sensitivity is ∆f = SM ∆m, f 69  (3.15)  Figure 3.21: Theoretical mass sensitivity plot for three different substrate thicknesses, as a function of sensing/polymer layer thickness. The change in frequency represents the change due to an exposure of approximately 1 ppm of a generic gas to a generic polymer of 1000 [kg/m3 ] density with a partition coefficient of 2000 where ∆m represents the total change in mass per unit area in [g/cm2 ]. Since ∆m is a function of polymer thickness as discussed in Section 3.5, both the mass sensitivity, SM , and change in mass per unit area, ∆m, conflict in their optimization as shown in Figure 3.21. Where a thinner polymer sensing layer would improve sensitivity, it would also reduce the change in mass per unit area due to absorption of the analyte. When optimizing for mass sensitivity, choosing a polymer thickness at the “knee” of the response curve will give the best compromise between response speed, sensitivity, and overall performance.  3.6.2  Stiffness Effects  Unlike substrates made of silicon, zinc oxide, and other crystalline materials, PVDF has a Young’s modulus similar to many polymer affinity layers. FPWs are also influenced by in-plane stress more significantly than SAW sensors [63]. Consequently, changes in sensing layer stiffness caused by transitioning states, variations in crys-  70  tallinity, weakening or rearranging of internal bonds, or changes in layer thickness can all play a significant role in sensor response [64]. As a conceptual analogy to mass sensitivity, stiffness sensitivity can be analytically determined by considering how gas absorption affects affinity layer stiffness independent from any mass change effects. Similarly, SD =  δv δD  v  ,  (3.16)  which yields SD =  β2 , 2(T + β 2 D)  (3.17)  where removing the in-plane stress term yields an isolated stiffness sensitivity very similar to that of the mass sensitivity, Equation 1.17. The ideal expression for normalized frequency change based on stiffness sensitivity is ∆f = SD ∆D, f  (3.18)  where D is defined by Equation 1.7 for a uniform material and can be simply approximated as proportional to Young’s modulus and thickness cubed. It is obvious that when the sensing layer stiffness changes due to gas exposure there will also be some mass change. In a simplified model based on Equation 1.10, stiffness changes can be caused by either changes in polymer Young’s modulus and/or Poisson ratio, or by a change in polymer thickness. Experiments with polymers and their analytes show that both stiffness factors and density can be affected [5]. To further this model, assume that only thickness varies as a linear function of mass absorbed, that both the substrate and affinity layer polymer have the same Young’s modulus, and that variations in polymer stiffness do not significantly affect the plane of zero tension. To explore this scenario mathematically, consider r, which represents the ratio of change in affinity layer thickness to change in mass, r=  ∆d poly . ∆m poly  71  (3.19)  For example, r = 1.2 × 10−3 [m3 kg−1 ] for PVA assuming a 10% increase in thickness for a 7% increase in mass [5]. The expression for v pa can then be combined with Equation 1.10 and written as, T + β 2 D p (dPV DF + d poly,0 + r∆m)3 , MPV DF + Mpoly,0 + ∆m  v pa =  (3.20)  where d poly,0 is the initial thickness of the polymer, ∆m is the change in mass, and D p is from Equation 1.10, Dp =  EY M . 12(1 − ν 2 )  (3.21)  Applying Equation 3.14, then assuming ∆m is negligible when summed against initial mass to thickness, and simplifying yields SDM = −  3rβ 2 D p (dPV DF + d poly,0 )2 1 + , 2(MPV DF + Mpoly,0 ) 2(T + β 2 D p (dPV DF + d poly,0 )3 )  (3.22)  which shows two separate sensitivity terms, with the former representing the mass sensitivity term Equation 1.17, and the latter being an expression for stiffness sensitivity through volumetric swelling (related linearly to mass change). The expression can be further simplified if in-plane stress is zero, SDM = −  1 3r + . 2(MPV DF + Mpoly,0 ) 2(dPV DF + d poly,0 )  (3.23)  Although Equation 3.23 is not an exact model, it does provide some insights into the potential influence of stiffness. First, the mass and stiffness effects will work to oppose one another as the two terms have different signs. Second, unlike the simpler models discussed earlier, if tension is not negligible then the sensitivity is influenced by additional system parameters such as in-plane stress and wavelength. Third, optimizing for sensors influenced by mass and stiffness requires an understanding of how the polymer affinity layer stiffness is affected by both the analyte to which it is sensitive and potentially other air-borne contaminants, greatly increasing the complexity of the design. It is also apparent that if r = 0, there is no change in stiffness and the system behaves as Equation 1.4. 72  An analytical examination of the balance between mass and stiffness effects as a function of contrasting polymer thicknesses is shown in Figure 3.22, which assumes r = 1.2 × 10−3 [m3 /kg] and a change in mass ∆m = 1 µg/cm2 . To confirm the importance of stiffness, a mass loading study was performed, with experimental, analytically modelled, and Comsol modelled results shown in Figure 3.23. The negative trend at the beginning of the plot shows that mass effects dominate, though the sensitivity is not as high as theoretically predicted by mass sensitivity alone due to the influence of stiffness. As the polymer layer becomes thicker, the stiffness effects dominate, forcing the trend upward. In Figure 3.24, a Comsol model is used to theoretically predict and separate the individual components affecting the change in velocity for a PVA/humidity sensor, again highlighting the contrasting influences of mass loading and stiffness change on phase velocity. The effects of humidity on Young’s modulus, volumetric swelling, and density are determined from literature [5], [6] and implemented as linear functions within Comsol. In the case of PVA, the density of the material drops with increasing humidity concentration, explaining the slightly increasing trend within the plot. The influence of swelling and Young’s modulus on the stiffness substantially exceed the influence of density on the overall behaviour of the sensor, although it should be noted that in PVA, as in many other polymers, the swelling and Young’s modulus effects oppose one another. Thicknesses can be selected to reduce the influence of stiffness by capitalizing on this effect. Figure 3.25 shows the importance of both in-plane stress and polymer layer thickness in the sensor design. Adding in-plane stress can reduce the influence of the stiffness term, as is apparent in Equation 3.22, however a new possibility is also elucidated: the potential for stiffness sensing. The low stiffness of the substrate, particularly when the substrate is very thin, suggests that stiffness sensing may yield much greater sensitivity to gas concentration than mass sensing. The importance of PVDF as a material for stiffness sensing is shown in Figure 3.26, where the normalized resonance frequency of a PVDF sensor is compared to that of the same sensor under the same polymer loading conditions but with different substrate materials. The value of stiffness sensing in gas analyte detection applications is also dependent on finding selective polymers that vary in stiffness with analyte absorption. Stiffness as a sensing mechanism is discussed further in Section 4.3.2. 73  (a) Excluding stiffness effects  (b) Simplified stiffness model  Figure 3.22: Theoretical change in frequency for a sensor with 60 MPa of in-plane stress, 800 µm wavelength, r = 1.2 × 10−3 [m3 /kg] (PVA [5]), ∆m = 1 µg/cm2  74  Figure 3.23: FEA-generated frequency change of an 18 µm thick, 800 µm wavelength sensor as a function of PVA layer thickness for a 125 MPa tensioned substrate  Figure 3.24: FEA-generated individual and cumulative contributions of different physical effects on the resonance frequency of an 18 µm thick, 800 µm wavelength, untensioned sensor due to the addition of a 1 µm thick PVA layer  75  Figure 3.25: FEA-generated normalized change in resonance frequency for an 18 µm thick, 800 µm wavelength sensor exposed to a 10% change in relative humidity as a function of PVA thickness  Figure 3.26: FEA-modelled normalized change in resonance frequency for an untensioned, 5 µm thick, 800 µm wavelength sensor of various substrate materials 76  3.6.3  Effects of Fluid Immersion  Unlike SAW sensors, FPW sensors can be used to measure density and viscosity in solution [2]. The low phase velocity of the designs proposed in this work couple very well in common fluids such as water as the phase velocity of the travelling wave is below the speed of sound in many liquids. Being below the speed of sound of the medium, the acoustic energy is able to couple into the liquids and evanescently decay, permitting the measurement of fluid properties such as density and viscosity, as well as adsorption measurements of material suspended in a liquid that bonds to the surface of the sensor substrate [2]. When immersed in liquid, there is a corresponding drop in mass sensitivity. This drop is due to the additional mass loading of the liquid on the substrate and can be approximated by Sliquid = −  1 , 2(MPV DF + ρliquid δ )  (3.24)  where δ is the evanescent decay length of the acoustic wave in the liquid medium approximated by δ=  λ , 2π  (3.25)  when the phase velocity of the acoustic wave is much less than the speed of the sound in the liquid medium [2]. For large wavelengths, this greatly reduces the mass sensitivity of the sensor, suggesting that mass sensing in liquid environments is not a good application for this technology.  3.7  Wave Amplitude  The wave amplitude of both the acoustic travelling wave and the electrical output of the acoustic receiving IDT are essential in assessing the performance of a sensor. The magnitude of the wave amplitude over conflicting signals such as broadband (white) noise and signal crosstalk is the SNR, which influences the minimum de-  77  tectable frequency change, (3.26)  ∆ fmin = 3∆ fnoise ,  where ∆ fnoise is the frequency domain root mean square (RMS) noise of the signal, discussed further in Section 3.7.3. The scaling factor of 3 ensures that small changes in mass can unambiguously be distinguished from one another. For a gravimetric FPW sensor, using Equation 3.15, ∆mmin =  1 ∆ fmin . SM f  (3.27)  As the acoustic wave travels across the substrate, its energy transfers between two energy domains [13], which in the case of an antisymmetric wave is the velocity of the particle motion along the z-axis and the displacement of the substrate material in the roughly z-axis direction. The amplitude of a travelling acoustic wave is related to the power of the wave in that the peak velocity amplitude occurs at the point of zero displacement and vice-versa, 1 1 1 U = Uk +Up = ms ω 2 A2D = ks A2peak = ms v2peak , 2 2 2  (3.28)  where U is total energy, Uk is total kinetic energy, Up is total potential energy, ms is mass, ω is angular velocity, ks is an elastic constant, AD represents the displacement amplitude along the z-axis of the substrate, A peak is the peak displacement, and v peak represents the peak velocity amplitude of the moving substrate particles. Both the square of the amplitude of the displacement and velocity are related to total energy of the system. This dependence on energy typically results in amplitude and noise being studied through its relationship to power such that SNR = 10 log  Psignal Pnoise  = 20 log  Asignal Anoise  .  (3.29)  In an effort to analytically predict the amplitude of the travelling acoustic wave as a function of input parameters, models have been constructed and compared to experimental results.  78  3.7.1  Comsol Model  Comsol can be used to both theoretically predict the capacitance between finger pairs, which is useful in energy domain transfer modelling (see Section 3.7.2), and to generate and propagate a wavefront along a section of substrate. The former is discussed in Section 3.3.5 and the latter is shown in Figure 3.27. Experimental data collected using the LDV from a fabricated sensor is shown in Figure 2.5, providing peak velocity of 5.1 mm/s and displacement of 1.2 nm at a resonance frequency of 585 kHz. The peak amplitudes of the Comsol model as shown in Figure 3.27 are 7.9 mm/s and 2.1 nm. The model compares favourably with the experimental result, with the discrepancy potentially caused by electric and acoustic losses in the PEDOT: PSS that are not fully modelled in Comsol. The sensor was also over 4 months old when tested, and may have lost piezoelectric strength with age [36].  3.7.2  Energy Domain Transfer Modeling  The amplitude of the travelling wave can also be approximated mathematically by using the energy relationships shown in Equation 3.28 and the electromechanical coupling coefficient defined in Equation 1.23. The total electrical energy at peak voltage amplitude stored by the IDTs is 1 U = CV 2 , 2  (3.30)  which fits well with our equations of wave energy. Electrode capacitance is discussed in Section 3.3.5. The geometry of the IDTs can provide the capacitance as shown in Section 3.3, which leads to the calculation of peak stored electrical energy at the fingers. The amount of energy transferred to the acoustic domain can be calculated using Equation 1.23, which can in turn be used with Equation 3.28 to calculate peak velocities and displacements. When these principles are applied to the Matlab application described in Section 3.3.4, it becomes possible to sum the energy contributions for individual finger pairs and approximate the energy of the travelling wave based on the geometry of the IDTs. When applied, the analytical result for the peak wave velocity of the sensor described in Section 3.7.1 is 8.8 mm/s, assuming a coupling coefficient of k = 0.15. This result is slightly  79  (a) Generated z-axis amplitude  (b) Generated z-axis velocity  Figure 3.27: Resulting steady-state amplitude of an 120 µm thick, 800 µm wavelength sensor stimulated with a periodic 100 Vpp sinusoid, showing peak displacement of 2 nm and peak velocity of 7.9 mm/s  80  higher than the Comsol and experimental results, but considering the assumptions it is a reasonably close approximation.  3.7.3  Noise Floor  In a discontinuous operating mode, the noise floor of the sensor and DAQ combination can be examined in terms of ∆V or ∆ f . The former is caused by spread spectrum noise from EMI and digitization limitations of the ADC, and the latter is predominantly a function of the voltage noise and quality factor of the sensor [65]. The DAQ when running with inputs shorted has a measured amplitude noise of less than 1 µV on both channels. When a sensor is connected, the voltage noise level typically remains below 10 µV depending on the sensor configuration. A number of factors improve the voltage noise floor of the DAQ: • Shielding and grounding leads wherever possible; • Keeping leads as short as possible; • Covering the sensor chamber with grounded aluminium or a similar conductive shield; • Disconnecting any pulse switch mode power supplies nearby, particularly those for laptops; • Setting the DSP averaging algorithm to average as many times as possible within the sampling time window. The majority of the noise experienced by the DAQ is contributed by the high impedance instrumentation amplifiers and poorly shielded wiring between the DSP and ADC boards. Once clearer design parameters for a DAQ have been established, a printed circuit board (PCB) can be designed to greatly reduce the amount of noise caused by digital switching logic and communication pathways. Fortunately, most of the noise is high frequency which is filtered effectively by the DSP averaging and ADC Delta Sigma filter. The second component to noise is the quality factor of the sensor. If the sensor has a low quality factor then small variations in voltage amplitudes can yield 81  wide changes in frequency. For analytically describing frequency noise for the purpose of optimization, the quality factor of the sensor is presumed to be constant between cycles and the amplitude noise is ratiometrically projected into the frequency domain. The quality factor is used to approximate a second order parabolic frequency spectrum where voltage amplitude uncertainty is projected on the y-axis and the resulting frequency uncertainty is calculated on the x-axis. This approximation is demonstrated in Figure 3.28 where it can be shown that a higher quality factor will yield a narrower frequency band and less frequency noise. To start, Vnorm ( f ) = −a f 2 + A0 ,  (3.31)  where Vnorm ( f ) is the normalized voltage as a function of frequency ( f ) such that Vnorm ( fres ) = 1, and a and A0 are fit constants. Using Equation 3.40 where a 3 dB loss represents a normalized amplitude of 0.7079, ∆ f3dB =  fres , 2Q  (3.32)  where Q is quality factor and fres is the fundamental resonance frequency. Combining Equation 3.31 and Equation 3.32, setting A0 = 1 (peak normalized amplitude), and solving for a, a=  (1 − 0.7079) fres 2 ( 2Q )  = 1.168  Q fres  2  .  (3.33)  The expression for a can now be used with Equation 3.31 and ∆Vnoise = A0 −Vnorm ,  (3.34)  where ∆Vnoise is the normalized noise voltage amplitude, to calculate an expression for the noise floor, ∆ fnoise = 2  82  ∆Vnoise , a  (3.35)  Figure 3.28: Showing the approximation of the frequency spectrum (blue) as a second order polynomial (red) which is then combined with normalized voltage noise to determine frequency noise where the multiplication by 2 covers the range from the negative to the positive worst case, resulting in ∆ fnoise =  1.85 fres Q  ∆Vnorm .  (3.36)  As can be seen from Equation 3.36 and Equation 3.27, improving the quality factor of the sensor will significantly improve the minimum detectable mass and/or stiffness in gravimetric applications. Two methods for improving quality factor are increasing the sampling window size, which is limited by signal duration, and reducing attenuation. Using the noise floor of Vnoise = 10 µV, the differential sensor data shown in Figure 3.29, and given a measured quality factor Q = 13, the theoretical frequency noise ∆ fnoise = 90 Hz, which is consistent with the observed noise level.  83  Figure 3.29: Two channel frequency noise measurement of an 18 µm thick, 800 µm thick sensor with a backplane  3.8  Wave Attenuation  Attenuation for a travelling wave represents the loss in wave amplitude as it travels across a lossy medium. Attenuation fits the wave equation [13] u = u0 Re e−αx e j(ωt−β x) ,  (3.37)  where α is the attenuation constant in [Np m−1 ]. Conventionally, attenuation is expressed in units of [dB/m] or [dB/cm/MHz] where [13] α [dB/m] = 8.686α [Np/m].  (3.38)  Attenuation can be represented by the imaginary components of complex material coefficients such as permittivity and elasticity [26], [28], [41], [66]. Many factors contribute to attenuation, including relaxation time, substrate and affinity layer viscosity, molecular relaxation, and thermal conduction [13]. A simplified expression  84  for acoustic attenuation in PVDF is [66] αm = ω  ρ cos(0.5δm ), cD 33  (3.39)  where αm is the mechanical attenuation in [Np m−1 ], ω is the angular frequency, ρ is the density, cD 33 is the z-axis term of the material stiffness matrix, and δm is the mechanical loss tangent which represents the real to imaginary ratio of a complex compliance coefficient. Equation 3.39 shows a linear relationship between attenuation and frequency, suggesting that reducing operational attenuation necessitates either altering material parameters or reducing the operating frequency of the sensor. PVDF  has a particularly large attenuation when compared to similar polymers  such as Nylon, HDPE, and Hydex [66]. Some published values for attenuation range from 4.5 - 13 dB/cm/MHz, with values varying as a function of material thickness and source [66]. The attenuation of the PVDF used in this work was measured using the LDV as shown in Figure 3.30, Figure 3.31, and Figure 3.32 with a summary of sensor parameters and results shown in Table 3.1. To vary the operating frequency, both the wavelength and substrate thickness were adjusted in various fabricated sensors. The wave travelling from the edge of the acoustic transmitting IDT was optically measured and averaged over the entire length of the receiving IDT to generate a wave profile. A Matlab application then fit the profile to Equation 3.37 to determine the attenuation coefficients. Given a linear relationship between attenuation and frequency, the calculated attenuations are 53 dB/cm/MHz, 52 dB/cm/MHz, and 19 dB/cm/MHz respectively. The first two samples are made from the same PVDF stock with the third sample being made from a separate, thinner stock (same supplier). The fits are shown in Figure 3.33. The results confirm that the attenuation of PVDF can vary widely with fabrication parameters, and that the attenuation trends linearly with frequency. A Comsol model was also produced as shown in Figure 3.34 with programmed complex material coefficients to estimate the attenuation of PVDF. The resulting waveform was passed through the same fitting algorithm used for the LDV data and resulted in an attenuation of 22.4 dB/cm/MHz, close to that of Figure 3.32. Since attenuation is a highly non-linear component of the wave equation, selecting 85  (a) LDV Measurement  (b) y-axis average and exponential fit  Figure 3.30: Measured attenuation of an 120 µm thick, 800 µm wavelength sensor stimulated with a wideband chirp Sensor Thickness 120 µm 120 µm 18 µm  Sensor Wavelength 800 µm 400 µm 800 µm  Number Fingers 12 24 12  Frequency Measured 592 kHz 1.536 MHz 335 kHz  Attenuation [dB/cm/MHz] 53 52 19  Table 3.1: Sensor parameters, measured frequency, and attenuation for three sensors tested using the LDV  86  (a) LDV Measurement  (b) y-axis average and exponential fit  Figure 3.31: Measured attenuation of an 120 µm thick, 400 µm wavelength sensor stimulated with a wideband chirp an appropriate attenuation is necessary in performing any parameter sensitivity studies as the attenuation can radically change the results of the study. For the studies performed in this work, an attenuation coefficient of 19 dB/cm/MHz was chosen as the majority of experimental work was performed using the same 0.003” (18 µm after stretching) stock material.  87  (a) LDV Measurement  (b) y-axis average and exponential fit  Figure 3.32: Measured attenuation of an 18 µm thick, 800 µm wavelength sensor stimulated with a wideband chirp  3.9  Quality Factor  The quality factor is the ratio of centre frequency to -3 dB bandwidth, Q=  fres , ∆ f3dB  (3.40)  which limits the precision with which the centre frequency of a travelling wave can be determined. Q values in excess of 50 are typically required for effective sensing, 88  Figure 3.33: Plotted linear attenuation fits for two types of PVDF stock materials, with markers showing sample points as lower values result in significant frequency noise as discussed in Section 3.7.3. Calculation of Q in this work leverages the Kolsky model for energy dissipation and dispersion in plane waves [67]. The Kolsky model defines Q as Q=  1 2  α(ω)v(ω) ω − , α(ω)v(ω) ω  (3.41)  showing the sensitivity of the quality factor to attenuation, frequency, and wave velocity. The quality factor must also be further adjusted to include the filtering function of the IDTs which have a quality factor proportional to the number of finger pairs in each IDT, as discussed in Section 3.3. This adjustment is performed ratiometrically based on measured values of Q, leading to a calculated Q = 13 for an 18 µm thick, 800 µm wavelength, 125 MPa in-plane stress configuration. Q was measured using both electrical measurements and LDV measurements. Chirp excitations were used in both cases, with the former being measured at the electrical output of the acoustic receiving IDT, and the latter representing a measurement including the final finger pair of the acoustic transmitting IDT, the space  89  Figure 3.34: a) Comsol model results of 120 µm thick, 800 µm wavelength sensor including complex material parameters, b) Wave extracted from Comsol (red) and exponential decay fit (red) between IDTs and nearly the entire receiving IDT. The electrical measurement, shown in Figure 3.35, demonstrate a Q measurement of 11. The LDV measurements, shown in Figure 3.36, demonstrate a Q of 4.75 and 9.62 respectively. Since the acoustic wave has not travelled through both sets of IDTs in the LDV measurements, we can expect the quality factor to be lower than both the electrical measurements and theoretically predicted value. That the Q of the 8-finger pair electrode is 2.03 times larger than the Q of the 4-finger pair electrode strongly supports the conclusion that quality factor is proportional to the number of finger pairs. Quality factor can be improved in many ways: • Increasing the number of fingers; 90  Figure 3.35: Electrical measurement of a 18 µm thick, 800 µm wavelength sensor with no backplane showing both measured waveform as well as rectangular-filter FFT • Reducing the operating frequency of the sensor; • Reducing the dissipative (imaginary) components of the substrate material parameters.  3.10  Signals  Signals refer to the types of meaningful data that can be extracted from the received acoustic waves by the DAQ. Frequency, amplitude, and delay information can be collected from the received waveform with phase and delay behaving similarly. Eight successive waveforms as received by the DSP are shown, before averaging, in Figure 3.37.  3.10.1  Frequency  The resonance frequency of the sensor is determined by the interaction between acoustic velocity and wavelength enforced by the IDTs. When travelling across a 91  (a) Four finger pair excitation  (b) Eight finger pair excitation  Figure 3.36: FFT of an LDV-measured travelling wave of an 18 µm thick, 800 µm wavelength sensor using the isolated differential IDT configuration. For four pair excitation the acoustic receiving IDT is used as the transmitter, and for eight pair excitation the transmitting IDT is used  92  Figure 3.37: Eight received acoustic waveforms within the DSP buffer lossy substrate, phase velocity is affected by conventional perturbative factors discussed in Section 1.4.3. Measured phase velocity can also be impacted by changes in acoustic attenuation when operating in a discontinuous signal mode, though this effect on frequency is largely ignored within the scope of this work [2]. As perturbations affect the phase velocity of the antisymmetric wave, the resonance frequency shifts proportionally, which forms the measurable the ∆ f / f discussed in Section 3.6. The resonance frequency is extracted from the waveform through a LabView frequency detection block which uses a modified Hanning window and FFT to detect the frequency within the waveform that represents the largest amplitude. The block returns the frequency, its spectral amplitude within the signal, and its phase. Frequency domain resolution is a function of time domain window size. The limitation in frequency measurement resolution can only be overcome by larger sampling windows, which first require less attenuation so that dispersion effects and spectral bleeding do not increase the frequency noise floor. Another challenge with measuring frequency is in the driving signal. In a discontinuous operating mode where chirps are provided to the sensor and the trans93  fer function is measured, any non-linearity in the passband of the chirp can be reflected in the measured transfer function. This challenge presented itself in some experimental studies where very narrow chirps were used to maximize the signal amplitude. The resulting frequency measurements were non-linear with significant hysteresis, rendering the data unusable. Similar problems occur if the passband of the sensor is not perfectly flat, providing a non-linear biasing of frequencies as discussed in Section 3.3.5, generating a source for additional error. Although frequency is ideally the signal used when running experiments, the frequency measurement is also dependent on the quality factor of the sensor, which is particularly poor for PVDF substrates due to the large attenuation. Significant improvements in the performance of the sensor can be achieved by reducing the attenuation of the wave by improving the material or reducing the frequency, or by increasing its amplitude substantially above the crosstalk of the sensor and operating in a feedback-controlled, single frequency mode (ie. frequency locked loop (FLL)). Providing compensation for non-linearities in both the driving waveform and sensor response would also help produce a linear correlation between perturbations and response frequency.  3.10.2  Phase  The measurement of phase is intrinsically connected to the measurement of frequency as the same LabView block provides the information, and the phase is also associated with the detected resonant frequency of the waveform. Unlike frequency, phase represents a type of delay measurement as per tD =  φ , 2π f  (3.42)  where tD is the time delay and φ is phase in radians. The phase of the resonance frequency is determined by calculating the angle of the complex frequency of the FFT  at the resonance frequency, making phase calculations unique among the vari-  ety of proposed delay measurement methods with its dependence on the frequency domain. A significant challenge in delay-based measurements in this application is establishing linearity between the magnitude of the measurand perturbation and the 94  Figure 3.38: Plot of a sinc function showing frequency amplitude and phase for pass and stop bands response in the time domain. Acoustic wave sensors using IDTs act as filters which ideally produce a linear phase response in the pass band, as shown in Figure 3.38, but can produce non-linearities resulting from imperfections in the fabrication of the IDTs or internal acoustic reflections [56]. Non-linear, hysteresis effects have also been observed, as shown in Figure 3.39. When using a differential IDT design involving two dissimilar polymer affinity layers at low operating frequency, the reduced wave attenuation can allow for interference between the channels. This interference impacts frequency differently than phase, particularly if the analyte is varied rapidly, creating a large mismatch between the affinity layer characteristics on both sides of the channel. Frequency, being a representative of the filtering functions of both the transmitting and receiving IDT, is particularly susceptible to small changes in transfer functions. The phase is also a function of propagation delay as shown by Equation 3.42, and so is strongly affected by acoustic transit between the transmitting and receiving IDT.  3.10.3  Amplitude  The amplitude in this context is calculated through the same LabView block as frequency and phase, and refers to the peak amplitude of the strongest frequency component in the received waveform. The amplitude of the waveform is affected predominantly by changes in electromechanical coupling and attenuation, differentiating the information from frequency, phase, and delay measurements. Am95  (a) PVA on channel A and PVAC on channel B  (b) PVA on both channels  Figure 3.39: Frequency vs. phase measurements from sweeping through a large range of humidities, illustrating a difference in response between frequency and phase  96  plitude measurements have not been closely studied within the scope of this work due to their notoriously high drift and unstable nature. Attenuation can permanently change with ageing, temperature, humidity effects, and other environmental phenomena to which frequency and delay measurement present a degree of immunity. Amplitude measurements are also extremely sensitive to the conductivity and integrity of the PEDOT: PSS that form the electrodes and DAQ electronics which can cause amplitude shifts in the event of any damage or change in resistance. For these reasons, amplitude measurements are informative regarding the overall health of the sensor, but the information is not used in measuring important physical changes.  3.10.4  Delay  Delay measurements are similar to phase measurements in that they measure small variations in time. Unlike phase measurements, delay measurements do not necessarily require the frequency domain, nor are they associated with a resonance frequency. Delay measurements measure time directly and with the assumption that the sensor does not change in dimension, delay measurements represent a direct measurement of group velocity. Since the signal transmitted across the sensor is reasonably narrow-band, the acoustic waveform is predominantly sinusoidal, limiting the effectiveness of delay measurements through many of the same mechanisms as phase measurements. There are many examples of delay or time of flight measurements being performed with acoustic sensors [31], [68], [69], [70]. Numerous delay measurement algorithms were implemented and tested to determine which provide the best SNR and how that SNR compared to frequency and phase measurements. A description of every algorithm, including underlying theory and implementation can be found in Appendix F. A summary of the results of the testing can be seen in Figure 3.40. The experiment was performed with both pulse train and BFSK excitation waveforms, showing generally expected results. The pulse train excitation yields better performance than BFSK excitation in almost every case, including the BFSK cos method, which likely leverages the spectral bleeding of the center frequency lobe due to exponential decay to pin point the 500/600 kHz split. Direct frequency measurements perform well, with  97  (a) Pulse train excitation  (b) BFSK excitation  Figure 3.40: Figures comparing the signal to noise ratio performance of various delay measurement algorithms using an 120 µm thick, 800 µm wavelength sensor with no backplane cross-correlation, zero-cross detection, and peak detection also showing excellent performance. Unfortunately, despite the excellent performance of some of the delay measurement algorithms, the non-linear behaviour discussed in Section 3.10.2 makes delay measurements prohibitive for the purpose of theoretical analysis until the challenges can be resolved. Delay measurements can still be used provided the delay outputs are calibrated against known standards and the environmental effects on delay response are thoroughly understood.  3.11  Design Integration  This section uses the relationships explored throughout the chapter to assess the current state of the design of the sensor and propose priorities for further research.  98  A complete analytical model in Matlab calculates the approximate signal strength, sensitivities, quality factor, and resolutions for sensors where eleven different parameters are independently scaled from 1/4× to 4× and plotted together. An 18 µm thick, 800 µm wavelength pre-tensioned (125 MPa) sensor with a backplane and consisting of eight transmitting and four receiving IDTs is used as a benchmark. The calculations assume that frequency is used as the measurand and does not speculate on any changes to the DAQ as a consequence of the examined parameters. Complete Matlab code for the implementation of this optimization package can be found in Appendix D. Increasing signal amplitude can improve SNR, which contributes to the measurand resolution of the sensor. The sensitivity study for signal amplitude is shown in Figure 3.41. Obvious methods for improvement include increasing the electromechanical coupling coefficient of the PVDF and applied voltage to the acoustic transmitting IDTs. Reducing the thickness of the substrate can help improve signal amplitude by increasing the capacitance of the fingers, thereby adding more electrical power to the system for conversion into acoustic power. Increasing the number of fingers can also provide some small improvement. It is more important that the number of finger pairs not be reduced as the signal amplitude begins to drop off quickly. The other examined parameters do not play a significant role. It should also be noted that if the signal strength can be increased significantly, it might be possible to operate the sensor in a continuous excitation mode with benefits to the measurand resolution. The mass sensitivity study shown in Figure 3.42 is based on Equation 1.4 and consequently can only be affected by changes in material density or thickness. Both values affect the sensitivity in the same way and are overlapping in the figure. Similarly, the remainder of the parameters are overlapping as they all have no effect on the mass sensitivity of the sensor. The stiffness sensitivity study shown in Figure 3.43 is based on Equation 3.17 and, like mass sensitivity, can only be affected by a small number of parameters: wavelength, in-plane stress, Young’s modulus, Poisson’s ratio, and wavelength. Reducing in-plane stress is of high priority according to the figure. Reducing the in-plane stress to zero would remove any impact of wavelength on the sensitivity, but if the stress is not removed, then reducing wavelength has a significantly 99  Figure 3.41: Output power amplitude parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard positive effect on stiffness sensitivity, encouraging the possibility of switching to a 400 µm wavelength sensor. Somewhat surprisingly, the importance of Young’s modulus and Poisson’s ratio is reasonably small when compared to the influence of in-plane stress. This result shows that stress is a very significant impediment toward achieving much higher stiffness sensitivity. Figure 3.44 shows how quality factor is affected by varying sensor design parameters. The dependence of quality factor on attenuation and phase velocity, as discussed in Section 3.9, shows nearly every parameter to be important. The most significant methods for improving quality factor come with reducing material attenuation and increasing the number of finger pairs in the IDTs. Reducing the former will reduce spectral bleeding, while increasing the latter will improve the filtering effects in the transducers. Increasing the density of the PVDF helps to re100  Figure 3.42: Mass sensitivity parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard duce the phase velocity of the travelling wave, reducing the effect of attenuation as shown by Equation 3.39. Decreasing in-plane stress has a similar effect, reducing the phase velocity of the travelling wave. One of the more important plots, Figure 3.45, shows the minimum detectable mass change of the sensor assuming no stiffness effects, incorporating the effects of signal strength, mass sensitivity, and quality factor. Unlike the previous figures, a lower minimum mass is desirable. Many parameters can be varied to reduce the minimum detectable mass with the most significant improvements coming from increasing the number of finger pairs, reducing the thickness, and reducing the attenuation. Increasing the coupling coefficient, though still effective, is not as important considering the difficulty in improving the piezoelectric coefficients so substantially. Increasing the applied voltage can provide similar benefits by increasing the signal strength. Of the options presented, increasing the number of  101  Figure 3.43: Stiffness sensitivity parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard fingers, applied voltage, reducing substrate thickness, and reducing in-plane stress are the most effective and simplest to realize experimentally. The last figure, Figure 3.46, examines the minimum detectable stiffness change of the sensor. There is tremendous room for improvement as the sensor was never optimized for measuring stiffness. First and foremost, reducing the in-plane stress is essential. Doing so will reduce the operating frequency and attenuation of the sensor while also increasing the stiffness sensitivity and removing the influence of the acoustic wavelength. Reducing the Young’s modulus can generate a marginal improvement, but thickness changes through swelling are the primary contributor to stiffness sensitivity. Similar to Figure 3.45, adding fingers, increasing applied voltage, and improving coupling coefficient can better performance by increasing signal strength and quality factor. One limitation in single variable sensitivity studies that warrants consideration  102  Figure 3.44: Quality factor parameter sensitivity study using an 18 µm thick, 800 µm wavelength differential sensor design as a standard is that of variable codependency. The majority of parameters studied in this section do not change behaviour substantially as a function of other parameters, but there are some exceptions. Attenuation as a function of frequency is exponentially related to signal amplitude and non-linearly related to quality factor. A high coefficient of attenuation can place greater emphasis on any methods that reduce operating frequency in order to maintain a reasonable SNR. Similarly, a low coefficient of attenuation encourages designs with higher frequencies, which would change the behaviour of parameters that influence frequency such as in-plane stress, stiffness, and linear inertia. Another codependent pair is wavelength and in-plane stress. As in-plane stress approaches zero, wavelength ceases to play a significant role in stiffness sensitivity, dramatically affecting the outcome of Figure 3.43. The recommendations made in this section, specifically a reduction in thickness, increase in number of fingers, higher operating voltage, and reduction of 103  Figure 3.45: Minimum detectable mass sensitivity study including SNR, quality factor, and mass sensitivity effects using an 18 µm thick, 800 µm wavelength differential sensor design as a standard in-plane stress, do not inflect as they are changed within reasonable constraints on fabrication. The optimal thickness is as thin as possible without detriment to successful fabrication or piezoelectric poling; similarly, more fingers are better within the scope of available space, and zero in-plane stress is ideal for maximizing measurand resolution. Further analysis of the relative importance of each parameter in improving the overall sensor design are discussed in Section 5.1.  104  Figure 3.46: Minimum detectable stiffness sensitivity study including SNR, quality factor, and stiffness sensitivity effects using an 18 µm thick, 800 µm wavelength differential sensor design as a standard  105  Chapter 4  Performance Results This chapter examines the performance of sensors in environmental, mass loading, and gas sensing applications. Tests were performed over a period of 16 months using a variety of different sensor configurations with some experiments showing clear performance improvements in sensitivity or noise floor. Where the information is useful to understanding an improvement or change in performance, it is detailed in the section discussing the experiment. For all experiments, it can be assumed that the driving voltage applied to the acoustic transmitting IDT is between 100 and 125 Vpp.  4.1  Environmental Effects on PEDOT:PSS and PVDF  Environmental effects are changes in signals resulting from the influence of the ambient operating environment on the sensor. The two most common environmental factors that may affect acoustic sensing are temperature and humidity, though air pressure and movement can also have an effect.  4.1.1  Ambient Temperature  The effect of temperature on PVDF polymer acoustic sensors has already been explored [10], demonstrating a significant sensitivity to temperature, a limitation known in FPW sensing configurations requiring careful design [2]. The temperature effects are a result of a combination of influences, including changes in material  106  (a) 120 µm thick substrate  (b) 18 µm thick substrate  Figure 4.1: Temperature calibrations on single channel, 800 µm wavelength sensors without backplanes, showing both frequency as a function of time (left) and temperature (right) mechanical and electrical properties such as material stiffness, piezoelectric coefficients, electromechanical coupling coefficients, permittivity, dielectric constants, and mechanical loss tangents [30], [71]. The variations in material properties coupled with changes in in-plane stress due to material expansion and contraction result in changes to phase velocity, attenuation, and quality factor [30]. The behaviour is also not linear or consistent for differential substrate configurations as shown by Figure 4.1. Locating sensor configurations with a plateau around the operating temperature of the sensor could be useful as the influences of temperature is reduced. 107  Several methods have been deployed to compensate for temperature effects, including careful monitoring of temperature using a separate temperature probe [9] and building temperature-stable testing environments [23]. The solution proposed in this work is the use of a differential IDT configuration as shown in Section 3.3 to compensate for the effects of operating temperature on the substrate. The effectiveness of this technique is dependent on equal balancing of mechanical properties and layout between the channels as temperature effects may not be precisely mirrored if there are discrepancies between the two channels. The solution also assumes a low hysteresis temperature response with good repeatability.  4.1.2  Ambient Humidity  Humidity effects are changes in sensor performance resulting from the presence of water vapour in either the analyte sample or immediate operating environment around the sensor. Water vapour both adsorbs and absorbs in many polymers, including PVDF to a small extent [37]. The effects of humidity on PEDOT: PSS are significant and well known [45], causing large changes in the mechanical properties of the polymer while also causing finger delamination in high humidity environments [72], [73]. Electrical tests were performed on drop cast PEDOT: PSS wires to ascertain the effect of humidity on the conduction of the polymer with results shown in Figure 4.2. Combining these results with the possibility for mechanical perturbation, humidity changes to the PEDOT: PSS IDTs or backplane must be considered an important environmental influence. Figure 4.3 examines the effect of humidity on both sides of a PVDF sensor without a PEDOT: PSS backplane. The results show that variations in humidity do not have a significant effect on the behaviour of the sensor if the variation influences only the PVDF of the substrate and not the PEDOT: PSS of the IDTs. Frequency signal variations behave similarly as amplitude signals in the tests performed. The effect was explored further qualitatively as shown by the data in Figure 4.4 where an air hose with a constant 100 mL/min of air from the gas calibration humidity generation system was swept at 10 second intervals over the top surface of the sensor. The step down of the sensor during the sweeping is an effect caused by the variation in temperature between the sweeping air and the sensor substrate. When the output  108  Figure 4.2: Results of a PEDOT:PSS Resistance vs. Humidity study performed at room temperature of the calibration gas was very humid, the oscillation of the output frequency was much larger than the dry air, indicating a greater sensitivity of the sensor to variations in humid air. This greater sensitivity is caused by changes in the mechanical and electrical characteristics of the PEDOT: PSS and can be a significant source of error if not properly compensated through either a separate humidity measurement, protection of the IDTs with a humidity-impermeable material, or differential IDT configuration. The same concerns apply to using PEDOT: PSS as a backplane as well, strongly endorsing both a differential design and the application of a protective coating on the backplane to maximize long term stability of the measurement under different ambient operating conditions.  4.2  Polymer Application on PVDF Substrate  The application of polymer to the PVDF substrate is necessary to build reference and affinity layers in gas analyte and biological detection applications. Polymers were dissolved in solvents and applied using a variety of techniques discussed in Section 2.1.4. 109  (a) Top side of sensor  (b) Bottom side of sensor  Figure 4.3: The signal amplitude of a 120 µm thick, 800 µm wavelength sensor with no backplane when exposed to variations in environmental humidity (shown as dew point temperature)  110  Figure 4.4: Results of cycling humidity levels on the top side of the sensor to assess contribution of variable humidity levels to signal noise  4.2.1 PVA  Polyvinyl Alcohol  is a synthetic resin, synthesized through the hydrolysis of PVAC and is the  largest volume water-soluble polyhydroxyl polymer produced internationally [74]. It demonstrates good chemical resistance to a variety of other solvents and when deposited as a film has mechanical properties similar to PVDF, including a Young’s modulus that reportedly varies from 107 through 1010 Pa depending on the method of forming the film, degree/type of impurities, and environmental conditions [6], [44], [75], [76]. The film used in this work is a Sigma Aldrich 87-89% hydrolyzed, 85,000 - 124,000 molecular weight PVA/PVAC blend that exhibits a Young’s modulus near 2 GPa when drop cast as a film (experimentally determined). To form a solution, PVA pellets are combined with distilled water to form a 2% solution by mass. The polymer solution is applied to the PVDF using two methods. The first method involves inkjet printing the solution onto the substrate in a grid pattern and the second method involves drop casting the solution. The former method was used to perform a loading test on a PVDF sensor [46] and confirm its mass and stiffness sensitivity. In the experiment, an 18 µm thick, 800 111  µm wavelength pretensioned sensor without a backplane was used. Channel A was loaded with PVA layers, allowed to dry, then tested for 15 minutes using the DAQ. Channel B was left unloaded to act as a reference. The first 10 minutes of the test were to allow the sensor to thermally stabilize and so only the final 5 minutes of each test were averaged to determine the sensor’s response. The mass of PVA was measured through a reference measurement where 100,000 drops of PVA were deposited and allowed to dry on a PVDF substrate. The resulting mass per unit area per layer of PVA was measured to be 0.0301 mg/cm2 . The results for each test are shown in Figure 4.5. The data in channel A was compensated linearly by shifting channel B to achieve a straight line and applying the same offset to channel A. The response is calculated by mean averaging each 5 minute sampled period, and the results are plotted against the mass per unit area, shown in Figure 4.6. The response demonstrates a clear curve demonstrating both mass and stiffness influences. The fit curve was generated by varying unknown material parameters within acceptable tolerances, yielding pre-tensioned stress of 125 MPa, average Young’s modulus of 2.65 GPa for PVA and PVDF combined, and a PVA density of 0.42 g/cm3 . The low density of the PVA is disconcerting as the reported density of the PVA prior to producing a solution is 1.27 g/cm3 [5]. Examination of the deposited PVA film showed significant inconsistency with the printed layer and a potential for air entrapment. It is in part due to the poor consistency of the film that drop casting PVA  was chosen in future experiments. This preliminary experiment successfully  demonstrates the mass and stiffness loading effects on a FPW sensor based on a multichannel PVA / reference configuration, while also emphasizing the need for careful optimization of film thickness as discussed in Section 3.6.2.  4.2.2 PVAC  Polyvinyl Acetate is a nontoxic vinyl polymer mechanically similar to PVA and used predomi-  nantly in adhesive applications for pulp and paper, textiles, and food products [77]. PVAC  is predominantly soluble in esters, ketones, and various aromatics. Based  on HSP, PVAC serves as a good affinity layer for acetone, toluene, xylene, styrene, and similar aromatic compounds. Although the water uptake can be up to 6% [77],  112  (a) Uncompensated channels  (b) Channel A compensated from channel B  Figure 4.5: Frequency response of 18 µm thick, 800 µm wavelength, 125 MPa in-plane stress, differential sensor to varying loads of PVA  113  Figure 4.6: Frequency response of an 18 µm thick, 800 µm wavelength, 125 MPa in-plane stress, differential sensor to applied PVA PVAC  is insoluble in water and was selected in vapour experiments to act as a bar-  rier or reference.  4.3  Gas Analyte Exposure  In gas analyte exposure experiments, a sensor is placed within the test chamber and the gas calibration system is used to generate a known concentration of a gas analyte for detection by the sensor. To facilitate this detection, a polymer affinity layer is used as discussed in Section 1.4.3. Ideally, a reference layer is also selected that shows no affinity for the analyte being detected, allowing for compensation of other effects such as a change in environmental temperature or in-plane stress. The reference layer can also be used to equalize the frequency between the sensing and reference channels by careful loading of the reference channel. The gas calibration system can produce VOCs in concentrations below approximately 200 ppm depending on the molar mass of the analyte, and vapour up to approximately 75% relative humidity. Although several tests were performed with VOC s,  particularly toluene, acetone and PVAC, the total sensitivity of the sensor 114  is not significant enough to yield consistent, meaningful results. For this reason, greater emphasis has been placed on water vapour/PVA testing as vapour can be produced at higher concentrations (1000s of ppm) and can also serve to better understand and verify the sensor’s operation for the purposes of improving sensitivity.  4.3.1  Water Vapour / Polyvinyl Alcohol  A series of water vapour / PVA experiments were conducted to develop insights into the sensor’s performance in gas sensing applications. PVA is known to absorb water vapour and has been used extensively in water and vapour sensing [6], [78], [79]. Its swelling mechanism is well understood, as are the corresponding changes to volume and density as functions of relative humidity [5], [52], [80], [81]. Another important factor is how the stiffness of PVA changes as a function of humidity. Work performed by Konidari et al. shows the relationship between tensile strength, Young’s modulus, and glass transition temperature of PVA films exposed to different humidities. There is also a general consensus that increasing the water concentration within PVA films lowers the glass transition temperature, which makes the polymer more pliable [5], [82], [83]. The sensor consisted of an 18 µm thick McMaster Carr PVDF substrate with a PEDOT: PSS backplane. The isolated, differential IDT configuration was used to maximize the information extracted from the sensor, and a moderate in-plane stress (approximately 60 MPa) was used to improve performance over more strongly tensioned sensors. A single 10 µL drop cast layer (1.9 µm thickness) of PVAC solution was used to coat the channel B PEDOT: PSS backplane to act as a reference, and varying quantities of 10 µL (1.9 µm) drop cast layers of PVA were used to coat the sensing channel. Between batches of experiments, the sensing layers, including the PEDOT: PSS backplane, were removed using a combination of xylene, methanol, isopropanol, and distilled water. After the application of any layers, one hour was provided for the sensor to dry beneath a fume hood. Examination of the layers showed good uniformity over the sensing area. Tests were initially performed using the general lab air supply based on outdoor air flowing at 500 mL/min. An example result set from these tests is shown in Figure 4.7, showing humidity and each channel independently, and the differential  115  (a) Sensing channel A (PVA) and reference channel B (PVAC)  (b) Differential measurement and humidity  Figure 4.7: Phase response of a 18 µm thick, 800 µm wavelength sensor with 1 layer of drop cast PVA exposed to different humidities using building air  116  compensated output. Although it was first speculated that the drift in the reference channel B as a function of humidity was caused by a shift in temperature resulting from the vapourization of additional water at higher humidities, further research suggests the effect is non-Fickian adsorption of water vapour into the PVAC structure, as discussed briefly in Section 4.2.2 and Section 3.5.1. This later realization invalidates the use of PVAC as a reference layer in vapour experiments, necessitating the selection of a more appropriate reference polymer layer. It can also be noted in the data that phase, rather than frequency, is shown. The excitation of the acoustic transmitter in these experiments used a single frequency pulse train, resulting in high non-linearities and poor hysteresis in the frequency response. Further experiments will use chirps to improve linearity in the passband for both channels, at the cost of signal strength. Lastly, the measured humidity is not very stable when using building air. This issue was resolved in further testing by switching the air supply to dehumidified, pressurized tank air flowing at 350 mL/min, as shown in Figure 4.8. Once tank air was used, both humidity and the response signal stabilized significantly. A useful value for gravimetric sensing is the partition coefficient of the gas analyte and the polymer, as discussed in Section 1.4.3 and Section 3.5.1. Although there are many reported values for this partition coefficient for PVA and water vapour, varying degrees of hydrolyzation and molecular mass change necessitate a measurement for the PVA used in this work. The experiment involved placing a measured mass of 5.8522 g of PVA within a glass vial and exposing the PVA  to first -3.0 ◦ C then 14.6 ◦ C dew point. The difference in measured mass once  the PVA mass stabilized represents the change in water content within the PVA. Equation 3.12 can be rewritten as K=  madd , CgVpoly  (4.1)  and the ideal gas law can be used to calculate Cg =  PV Ma PV Mw (%RH) Psat Ma = = , RT V RT 100 RT  117  (4.2)  (a) Phase and Humidity  (b) Phase vs. Humidity  Figure 4.8: Phase response of a 18 µm thick, 800 µm wavelength sensor with 3 layers of drop cast PVA exposed to different humidities  118  Figure 4.9: Partition coefficient data showing the mass change convergence of 5.8522 g of PVA pellets when exposed to constant humidity and finally K=  madd ρ poly (100RT ) , ∆(%RH)Psat Ma minitial  (4.3)  where madd is the increase in mass due to the vapour absorption, Psat is the saturation pressure of vapour under the given environmental conditions, Ma is the molar mass of water, and minitial is the initial mass of the PVA at the initial humidity. The result of the experiment is shown in Figure 4.9, where the saturation change in mass is used with Equation 4.3 to calculate a partition coefficient between 19,500 and 20,500.  4.3.2  Polymer Characterization  An examination of Equation 1.15 shows that for a constant stress, stiffness and mass parameters can be uniquely derived from regression fitting of experimental  119  data. These relationships can be expressed as (v pa + ∆v pa )2 ∝  1 , M + ∆M  (4.4)  (v pa + ∆v pa )2 ∝ C1 (d + ∆d) +C2 (d + ∆d)3 ,  (4.5)  (v pa + ∆v pa )2 ∝ C3 +C4 (EY M + ∆EY M ),  (4.6)  where C1,2,3,4 are constants that do not vary with analyte concentration or number of sensing layers. The three equations show how mass per unit area, thickness, and Young’s modulus, respectively, proportionately affect phase velocity. There is some speculation as to the extent the affinity layer stress varies as a function of analyte concentration or number of sensing layers. The use of a reference electrode along the same plane helps to mitigate any effects caused by stress. Preliminary calculations also suggest that affinity layer stress does not have a significant impact provided that the substrate has a non-trivial amount of in-plane stress (> 20 MPa) and is at least twice as thick as the affinity layer. Equation 4.5 assumes similar Young’s modulus between the sensing layer and substrate, allowing the use of Equation 1.10. Similarly, Equation 4.6 assumes that changes in Young’s modulus due to changes in the sensing layer do not significantly impact the plane of no net force during bending. These equations are purely descriptive and are used to illustrate the general relationships between the terms to assess uniqueness of solutions. All fitting in this section is performed using the full set of equations with no assumptions regarding stiffness similarities between substrate and sensing layer. Using these relationships, it becomes possible to calculate material parameters of polymers by performing experiments involving multiple polymer layers and a gaseous analyte at varying concentrations. The data can then be regression fitted and applied to a Monte Carlo simulation to calculate the material parameters as a function of analyte concentration. Examples of parameters that can be calculated include partition coefficient, Young’s modulus as a function of analyte concentration, volumetric swelling as a function of analyte concentration, and density as a function of analyte concentration. There is potential value in calculating both mass and stiffness-related polymer parameters using a single, simple test appara-  120  tus; a potential made possible by the low Young’s modulus of the PVDF substrate. Precedent for such a process using attenuation is demonstrated by Monkhouse et al. [31]. A series of three experiments were performed using an 18 µm thick, 800 µm wavelength, isolated differential sensor with backplanes using PVAC as the reference layer and PVA as the water vapour affinity layer. Each PVA or PVAC layer represents 10 µL of 2% solution by mass (1.8 - 2.2 µm). Tank air and the gas calibration station were used to generate the water vapour, with example results shown in Figure 4.8 and Figure 4.10. A single frequency pulse train was used to excite the sensor, yielding frequency measurement non-linearities and preferring the phase channel for analysis. Unfortunately, phase non-linearities were also discovered, necessitating a correctional algorithm for the data which improved the fit, but also contributed error to the final results shown in Figure 4.11. The possible causes for phase non-linearities are discussed in Section 3.10.2, with the porosity of PVA allowing water vapour to influence the PEDOT: PSS, and the effects of stress change influencing the fit being other potential sources of error. The fit shown in black lines in Figure 4.10, based on the material properties shown in Figure 4.11, assumes that the examined material properties change linearly in the examined humidity range. This behaviour is supported by other evidence showing that the humidity variations are small and are not in proximity to the glass transition temperature of the polymer [5], [6]. The glass transition temperature of a material represents the temperature at which an amorphous material transitions from a hard or brittle state to a molten or rubber-like state. The temperature can be influenced by solvent concentration and, while in the transition region, the polymer mechanical behaviour varies non-linearly as a function of concentration. The glass transition threshold of PVA at room temperature is near 55% relative humidity, and the experiment was conducted 10% RH below this threshold in order to maintain the sensing layer in the linear region. The fitting system uses a modified Matlab implementation of the Nelder-Mead Simplex nonlinear optimizer [84], modified to support boundary conditions through an intermediate layer that passes results through a sinusoidal filter to limit output minimum and maximum values. This method yields a partition coefficient of 19,941 and PVA dry density of 1.266 g/cm3 . The experiment performed in Section 4.3.1 suggests a partition co121  Figure 4.10: Phase response of a 18 µm thick, 800 µm wavelength sensor with 3, 4 and 5 layers (theoretically 2.2 µm/layer) of drop cast PVA exposed to different humidities  Figure 4.11: Calculated PVA material properties based on PVA/humidity testing and minimization of the analytical expressions 122  Figure 4.12: An example of expected PVA behaviour as a function of humidity derived from PVA with higher hydrolyzation (99% vs. 87 89% used) and molar mass (150,000 g/mol vs. 85,000 - 124,000 g/mol used) [5], [6] with superimposed calculated mechanical behaviour from Figure 4.11 efficient between 19,500 and 20,500, and the MSDS for the PVA used indicates a density of 1.268 g/cm3 . The calculated trends in density, Young’s modulus, and volumetric swelling can be compared to Figure 4.12 and data in [6]. Although the Young’s modulus shows excellent agreement with the results shown by Konidari et al., the other trends suggest that the PVA examined has a high propensity for increasing in density rather than volume, disagreeing with the behaviour reported by Krzeminski et al.. This variation is not unexpected due the differences in chemical properties between the variants of PVA examined. The non-linearity in phase also has a direct impact on this ratio as velocity has a high order dependence on volumetric swelling as shown by Equation 4.5.  4.3.3  Acetone / Polyvinyl Acetate  Numerous tests were performed using a combination of acetone, toluene and PVAC. Based on QCM experiments, the partition coefficient of toluene and PVAC is approx123  imation 2,000 [12], much less than that of PVA and water vapour. No measurable responses to toluene and acetone were achievable within the conventional range of the gas calibration system output. A calibration tube was modified to release vapour at a higher, but less predictable rate, yielding some possible results as discussed in [10]. These results were not repeatable and could have been an artifact of noise or temperature variation. Although the latest sensor technology should be able to achieve a consistent response to a change in gas analyte, additional tests with higher concentrations of toluene and acetone were not performed due to a lack of sufficiently stable, high concentration analyte output. Based on the ongoing sensor research, focusing on choosing polymers that respond with a variation in stiffness rather than strictly mass has the potential to yield far larger responses to low concentrations of gaseous analyte.  4.4  Fluid Immersion  As discussed in Chapter 1 and Section 3.6.3, it is possible to operate FPW sensors immersed in fluid provided the fluid does not interfere with the electrical operation of the design. Although the sensor could potentially operate completely immersed, the most common application involves immersing the side of the sensor without the electrical connectivity/probes and IDTs. Fluid immersion tests are performed with the sensor inverted and the frame and PVDF substrate providing a fluid reservoir with an approximate 4 mL capacity. The device has been tested with both ionic phosphate buffered saline (PBS) and non-ionic fluids. The application of a non-ionic fluid to the substrate must be performed very carefully. If fluid is placed between the backplane of the centre transmitting IDT and a receiving IDT, the signal becomes unreadable. The potential of the transmitting backplane varies with the applied voltage relative to the receiving IDTs as the piezoamplifier does not produce a fully differential output. Consequently, adding water between the two IDTs increases the capacitive coupling between the two backplanes, inducing a non-zero voltage on the receiving IDT  backplane and shifting the measured acoustic signal out of the common mode  range of the instrumentation amplifier. If ionic water is used and makes contact with the conductive, grounded sensor frame, then the fluid is grounded, preventing  124  Figure 4.13: Frequency change of a 18 µm thick, 800 µm wavelength sensor with a backplane when 4 mL PBS is gradually applied. The sensing channel A is coated with PS and the reference channel B is coated with PVAC , both of which provided an electrical barrier between the ionic solution and backplane. the acoustic transmitting backplane from interfering with the receiving IDTs. All experiments were performed with 7.4 pH PBS as the ionic medium and sensors were cleaned several times using distilled water between experiments. The frequency change resulting from adding PBS to one side of the sensor substrate is shown in Figure 4.13. The PBS was applied drop by drop, with the intermittent instability cause by poor grounding of the ionic liquid prior to it contacting the metal frame of the sensor. The final frequency shift is caused by the additional mass loading of the liquid.  4.5  Biosensing  Biosensing involves the detection of biological compounds by a sensor. When applied to gravimetric acoustic sensing, biosensing typically involves the functionalization of a surface with molecules that demonstrate significant affinity to specific 125  bioactive compounds. A solution containing these compounds is then applied to the surface and as the compounds interact with the surface functionalization acoustic wave perturbation can be detected [85]. PVDF is of particular interest in biosensing applications because the polymer is biocompatible, meaning that it has a low rate of adsorption of bioactive materials when not functionalized [8]. PVDF can be functionalized through a variety of processes including microwave plasmas and chemical activation [86], [87], [88], [89]. FPW sensors have been used in gravimetric biosensing applications for the detection of E. coli cells [90], [91].  4.5.1  BSA Exposure to PVDF  A common protein used in biosensing, bovine serum albumin (BSA) is extracted from bovine blood and is used in assessing biosensing performance due to its comparatively low cost, ease of purification, and high tendency to adsorb on a variety of surfaces [92]. Although BSA will bond directly to unactivated PVDF under certain conditions, at low ionic drive and high solution pH, the adherence is minimal [93]. An experiment was conducted using Gibco Fraction V 7.5% BSA and Gibco 7.4 pH PBS .  Based on the work of Suzawa et al. [92], PS has a particular affinity for ad-  sorbing BSA while PVAC does not at higher pH values. An 18 µm thick, 800 µm wavelength differential sensor with a backplane was prepared with sensing channel A coated with 10 µL (2.1 µm thick layer) of a 2% PS solution in toluene and channel B was coated with 10 µL (1.9 µm thick) of a 2% PVAC solution. The layers were permitted to dry for 2 hours prior to experimentation. The experiment consisted of adding 4 mL of PBS to the underside of the prepared sensor and allowing time for the sensor to stabilize. 100 µL drops of BSA were added to the sensor and the frequency response of both channels was analyzed. The result of a test is shown in Figure 4.14. The addition of the BSA at the 1.8 hour time mark caused a jump in the delay measurement of both channels, likely resulting from a small discrepancy in temperature between the BSA droplet and PBS solution. The difference gradually equalized as shown by 4.14b, achieving a new delay stability above the original, suggesting the attachment of BSA proteins to the PS sensing layer coating. Unfortunately, due to the drop in mass sensitivity resulting from the additional mass loading of the PBS and the large wavelength of  126  (a) Both channels (Sensing channel A - PS, Reference channel B - PVAC)  (b) Differential of signal  Figure 4.14: Measured propagation delays in both the sensing channel A and reference channel B when 100 µL of BSA was added to the 4 mL PBS solution on the sensor  127  the sensor creating a long evanescent decay (see Equation 3.24), the sensor was unable to clearly and repeatably discern a frequency shift on one channel relative to the other in the experiments performed. An improvement in the gravimetric sensitivity or reduction in wavelength as suggested by Equation 3.24 would be necessary before clear results could be attained. Between tests, the substrates were cleaned first with distilled water, then xyleneo, methanol, isopropanol, and distilled water to remove all biological compounds and affinity/reference layers. It cannot be confirmed that the biological compounds were removed due to their tendency to adhere persistently to PVDF [94], yet with the removal of the affinity layers it is likely there was no interference with repeated testing using the same substrate.  128  Chapter 5  Conclusions and Future Work 5.1  Design Discussion  The design of all-polymer, FPW sensors is informed by applications and limited by restrictions in materials and fabrication methodology. Fabricated sensors show the potential for both gravimetric and stiffness measurements with demonstrated applications involving gravimetric sensing, gas analyte sensing, and polymer mechanical characterization. Practically realizing their full potential in commercial applications is limited by many factors, including the low electromechanical coupling coefficient and high attenuation of PVDF, the thickness of the substrate, very high temperature sensitivity, and a tendency for the PVDF to sag or deform if not held under tension. Once the underlying theories and behaviours of the sensor were established through experimental, FEA model, and theoretical investigations, it became possible to build an analytical model to predict the change in performance of the sensor with the variation of design parameters. This parameter sensitivity study, focusing on signal strength, quality factor, mass sensitivity, stiffness sensitivity, and ultimate performance in mass and stiffness detection provides insights into prioritizing design changes to optimize sensing performance in specific applications. Combining this information with fabrication experience and insight into environmental affects encourages a set of recommended improvements for future designs and testing based on the technology discussed in this work. 129  • PVDF density: Although the density of the PVDF is not simple to change, copolymers and blends may have an effect. Reducing the density of the PVDF will aid with mass sensitivity but hinder stiffness sensitivity by nearly the same proportion, suggesting that the density can be varied to preferentially bias either stiffness or mass effects, but as the effect on sensitivity is minute compared to the realistic variation in density, changing PVDF density should not be considered critical. • Young’s modulus and Poisson’s ratio: Reducing the Young’s modulus or Poisson’s ratio of the PVDF will improve the stiffness sensitivity of the sensor without significantly impacting the mass sensitivity, but the effect is relatively small, predominantly due to the overwhelming effect that in-plane stress has on sensitivity. If the in-plane stress can be entirely removed, then reducing Young’s modulus will have a very significant impact on sensitivity, necessitating a recreation of the sensitivity plots to reassess the value of this parameter. • Thickness: Modifying the thickness of the PVDF has a very pronounced impact on both mass and stiffness sensitivity. Reducing the thickness of the substrate enhances signal amplitude by increasing the capacitance through the PVDF, and consequently increasing the SNR by transferring more energy into the acoustic domain. A lower thickness also improves mass sensitivity by reducing the mass per unit area of the substrate and stiffness sensitivity by reducing the overall stiffness of the substrate. Thinning the PVDF to submicron scales offers the greatest potential for improving overall sensor performance and realizing meaningful minimum mass and stiffness detection thresholds, although there are significant challenges in fabrication, poling, and durability to overcome before testable sensors can be produced at these thicknesses. • Attenuation: The attenuation of the PVDF varies with the variety of PVDF warranting further exploring into the exact attenuative mode and alternative fabrication technologies that can reduce the intrinsic attenuation of the material. The benefits are most obvious in improving signal strength and quality 130  factor, both of which would lead to nearly linear improvements in minimum detectable mass and sensitivity. • Coupling coefficient: Although improving the coupling coefficient by reducing permittivity, reducing compliance, or increasing the piezoelectric constants of the material (most effective) significantly improves signal strength, the overall impact to the sensor performance is only moderate, particularly considering the difficulty in improving the coupling coefficient. • In-plane stress: Reducing in-plane stress as much as possible while retaining PVDF  integrity (minimize wrinkling) is extremely valuable to stiffness sen-  sitivity and moderately valuable to minimum detectable mass. However, in some applications such as polymer characterization, a non-negligible stress is necessary to keep the solution unique and allow the calculation of density, Young’s modulus, and swelling. Work on reducing in-plane stress is underway by varying stretching, poling, and framing procedures. • Wavelength: Although wavelength is shown to be a significant factor in stiffness sensitivity, analytically the wavelength term disappears from the equation as in-plane stress approaches zero. If the stress cannot be brought to zero, then improvements in stiffness sensitivity can be realized by reducing the wavelength. Reducing the wavelength also has the benefit of improving mass sensitivity in fluid applications and increasing quality factor significantly by allowing more finger pairs to fit within the design space. The penalty for smaller wavelength is a higher incidence of defective sensors due to finger shorting and an increase in resonance frequency and corresponding attenuation. • Applied voltage: The dielectric strength of PVDF permits excitation fields of approximately 125 MV/m (varying with type of PVDF), which for all but the thinnest of designs allows for much greater voltages than those used in the experiments herein, limited by the output of the piezoamplifier. A different amplifier with a larger output voltage would have the potential to increase signal strength and the SNR, leading to a moderate improvement in  131  both minimum detectable mass and stiffness. Due to the lack of commercial availability of an affordable unit, one can be constructed to serve this function. • IDT fingers: The number of fingers plays an important role in the quality factor and amplitude of the signal where more fingers can lead to significant improvements in overall performance. The number of fingers is only limited by the availability of space within the poled region of the substrate. For small values of attenuation (< 50 dB/cm/MHz) in a power-optimized configuration, there should be an equal number of transmitting and receiving fingers for optimum performance. In addition to the above recommendations specifically derived from a theoretical model of wave propagation, the following broader improvements can also be made: • With a backplane in place, for thin (< 18 µm) sensors, the acoustic receiver output impedance is large enough to permit electrical impedance matching and an improved SNR. • As the in-plane stress of the sensor decreases, applying probes to the substrate surface will have an increasingly pronounced effect leading to large error. The backplane dampens EMI to a point permitting short distances of unshielded wire, which can run from the pads on the substrate to the frame, reducing the need to place probes directly on the substrate surface. • A reduction in in-plane stress also removes the need for steel frames to hold the tension, opening an opportunity for lower cost polymer frames. If the frame is constructed with PVDF then any chemical interactions between test analytes and the frame could be mitigated, allowing the testing of high corrosives, something not possible with many other substrate types. • As the in-plane stress and thickness of the PVDF are reduced, the phase velocity will drop as well, negating the need for a high end DAQ and possibly supporting microcontroller data acquisition or a similar lower cost technology. 132  Figure 5.1: Proposed sensor design • With a stronger signal strength and more fingers, apodization of the IDTs can improve performance without significant penalties, making an apodized design worth exploring experimentally. • Extending beyond the initial constraints of the design to incorporate other methods of excitation such as electrostriction [2], [95], [96] can potentially dramatically improve signal strength. • The polymer layer thickness must be designed carefully to maximize performance for either stiffness or mass sensitivity, or rate of response. A mock-up of a new sensor/frame composition implementing many of the suggestions from the above is shown in Figure 5.1. The substrate is stress relieved with a thickness of 500 nm, leading to many significant improvements in performance as 133  Criteria Volume Operating Frequency Signal Strength Quality Factor Mass Sensitivity Stiffness Sensitivity ∆mmin ∆Dmin  Current 18 µm Design 3.75 cm3 215 kHz 9.68 µW 13.3 -156 cm2 /g 32570 /Nm 4.80 µg/cm2 2.30 × 10−8 Nm  Future 0.5 µm Design 1.65 cm3 9.5 kHz 100 µW 308 -4682 cm2 /g 5 × 106 /Nm 4.1 ng/cm2 3.85 × 10−18 Nm  Table 5.1: Predicted improvements in performance based on the new design proposed in Figure 5.1 shown in Table 5.1. The new model assumes that there are no major impediments or changes in material properties as the piezoelectric PVDF approaches 500 nm in thickness, which is suggested by literature [97], and that a method for equalizing pressure beneath and external to the sensor can be achieved. No films are commercially available that would permit for the fabrication of such thin piezoelectric substrates, meaning that a method would have to be developed to extrude or otherwise produce PVDF film of such small thickness. Compromises may be necessary, but further analysis is beyond the scope of this work.  5.2  Summary of Results  A variety of acoustic sensor configurations were fabricated in an effort to develop an understanding of the behaviour of FPWs generated, propagated, and received using an all-polymer design based on piezoelectric PVDF and conductive PEDOT: PSS. The varied fabrication parameters included: • PVDF material source (McMaster Carr, Professional Plastics Inc., Solef R ); • PVDF thickness (0.02” (508 µm), 0.01” (254 µm), 0.003” (76.2 µm), 0.001” (25.4 µm) prestretched); • IDT wavelength (800 µm, 400 µm);  134  • IDT configuration (Single pair, isolated differential, joined differential); • Substrate pretensioning (125 MPa, 60 MPa, and lower values); • Presence and type of a backplane; • Type and thickness of affinity layers (PVA, PVAC, PS); • Methods of affinity layers application (inkjet printed, spray coated, drop cast). Measurements were performed using various instruments including a LDV and a DAQ developed specifically for the application. Excitation of the sensor involved continuous sinusoidal waves, pulse trains, and chirps, each type intended to reveal another aspect of the behaviour of the sensor. Waveform frequencies, phases, amplitudes, and delays were captured for analysis using numerous algorithms from basic filtering and fitting to advanced simplex optimization. Models were constructed using finite element analysis and custom Matlab applications to compare the experimental results with simulated theoretical versions. Through a combination of experimental and theoretical analysis of sensors, correlations between observed behaviour and theoretically predicted behaviour were developed. These correlations were built into a model which was used to predict the impact of adjusting design parameters. The effects of varying design parameters on signal strength, quality factor, mass sensitivity, stiffness sensitivity, and ultimate performance in mass and stiffness sensing applications were analyzed, proposing that the greatest improvements in design could be achieved by reducing substrate thicknesses, in-plane stress, and increasing the number of IDT finger pairs and applied voltage. The environmental effects, including temperature and humidity, on the sensor were experimentally and theoretically considered. The FPW mode is highly susceptible to variations in temperature, but in a manner dependent on the physical parameters of the sensor. Compensation is necessary in all cases, which in this work involved the addition of a differential reference electrode to cancel as many temperature-induced effects as possible. Humidity effects on both the PVDF substrate and the PEDOT: PSS electrodes were examined, with the PVDF showing high 135  resistance to moderate changes in environmental humidity and the PEDOT: PSS electrode fingers and backplane changing in both mechanical and electrical properties with varying humidity levels. A solution was proposed and partially implemented that involved the coating of any exposed PEDOT: PSS to prevent the ingress of humidity, despite the negative consequences to mass and stiffness sensitivity. Fabricated sensors were tested in mass loading, gas sensing, and polymer characterization experiments. The sensor response to loading with thin films of polymer showed influences from both mass and stiffness contributions to phase velocity, underlining the significance of load substrate stiffness, with experimental data fitting theoretically modelled curves. Gas sensing testing using humidity and PVA demonstrated the improved performance by using tank air rather than building air and demonstrated polymer/analyte acoustic sensing with repeatable and consistent results. The polymer characterization experiment demonstrated the feasibility of an intriguing and unexpected application leveraging the low stiffness of the sensor substrate. The ability to use low cost disposable sensors to profile the mechanical behaviour of thin polymer layers when exposed to vaporous solvents bears further exploration as a useful research tool.  5.3  Future Work  The fundamental challenge with the technology is in the poor piezoelectric characteristics of the PVDF, its high attenuation, and the difficulty in locating thin films for very thin substrates. A detailed parameter study was performed based on the established theory, concluding that respectable performance that permits VOC sensing would be achievable with a thinner material, more IDT finger pairs, less in-plane stress, higher operating voltage, and lower material attenuation. A new concept design for a sensor was prepared and discussed with the goal of future work to realize some of the recommendations made for improving the performance of the sensing platform. New opportunities may also present themselves in exploring electrostriction and other methods of excitation and signal reception not discussed in detail in this work. The sensor in its present iteration offers unique opportunities in the low stiffness and high chemical resiliency of its substrate material, low cost of materials,  136  and low frequency operation, but otherwise lags behind other existing and well established acoustic sensing technologies. Significant improvements in the substrate design are necessary to achieve selective gas analyte sensing, particularly in fast response applications. The low stiffness of the substrate offers an intriguing new direction for exploration with the potential of diverging from gravimetric sensing and attempting gas analyte sensing by measuring changes in affinity layer stiffness. It also offers opportunities to combine mass and stiffness sensing to engage in polymer mechanical characterization under the influence of various vaporous solvents. With these new possible applications on the horizon and the opportunity to make several improvements in the substrate design, further work in this sensing platform can yield many new and interesting innovations in the field of low cost acoustic sensing.  137  Bibliography [1] J. W. Grate, S. J. Martin, and R. M. White, “Acoustic wave microsensors. part II,” Analytical Chemistry, vol. 65, pp. 987A–996A, Nov. 1993. → pages ix, 5, 6, 7 [2] S. Wenzel, Applications of Ultrasonic Lamb Waves. Doctoral dissertation, Berkeley, 1992. → pages ix, 5, 7, 8, 10, 39, 69, 77, 93, 106, 133 [3] A. V. Mamishev, K. Sundara-Rajan, F. Yang, Y. Du, and M. Zahn, “Interdigital sensors and transducers,” Proceedings of the IEEE, vol. 92, pp. 808– 845, May 2004. → pages ix, 6, 7, 39, 41, 44, 55 [4] J. W. Grate, S. W. Wenzel, and R. M. White, “Flexural plate wave devices for chemical analysis,” Anal. Chem., vol. 63, pp. 1552–1561, Sept. 2011. → pages ix, 7, 10, 13 [5] J. Krzeminski and H. Molisak-tolwinska, “The structure of Water-Swollen Poly(Vinyl alcohol) and the swelling mechanism,” Journal of Macromolecular Science: Part A - Chemistry, vol. 28, no. 3-4, pp. 413–429, 1991. → pages xii, xvi, 71, 72, 73, 74, 112, 115, 121, 123 [6] M. V. Konidari, K. G. Papadokostaki, and M. Sanopoulou, “Moisture-induced effects on the tensile mechanical properties and glass-transition temperature of poly(vinyl alcohol) films,” Journal of Applied Polymer Science, vol. 120, pp. 3381–3386, June 2011. → pages xvi, 73, 111, 115, 121, 123 [7] D. Preethichandra and K. Kaneto, “SAW sensor network fabricated on a polyvinylidine difluoride (PVDF) substrate for dynamic surface profile sensing,” Sensors Journal, IEEE, vol. 7, no. 5, pp. 646–649, 2007. → pages 2, 15  138  [8] P. Walton, M. O’Flaherty, M. Butler, and P. Compton, “Gravimetric biosensors based on acoustic waves in thin polymer films,” Biosensors and Bioelectronics, vol. 8, no. 9-10, pp. 401–407, 1993. → pages 2, 15, 126 [9] Q. Cai, J. Park, D. Heldsinger, M. Hsieh, and E. T. Zellers, “Vapor recognition with an integrated array of polymer-coated flexural plate wave sensors,” Sensors and Actuators B: Chemical, vol. 62, pp. 121–130, Feb. 2000. → pages 2, 13, 65, 108 [10] R. Busch, “All-polymer flexural plate wave sensors,” Master’s thesis, The University of British Columbia, Vancouver, Oct. 2011. → pages 3, 20, 22, 28, 106, 124 [11] G. Man, “Towards all-polymer surface acoustic wave chemical sensors for air quality monitoring,” Master’s thesis, The University of British Columbia, Vancouver, Dec. 2009. → pages 3, 18, 19, 23 [12] K. He, “Characterizing polymer sensing layers for air quality monitoring,” tech. rep., EECE 400, The University of British Columbia, 2010. → pages 3, 124 [13] J. David, Fundamentals and Applications of Ultrasonic Waves. CRC Press, Apr. 2002. → pages 5, 6, 7, 16, 78, 84 [14] D. S. B. Jr, R. M. White, S. J. Martin, A. J. Ricco, E. T. Zellers, G. C. Frye, and H. Wohltjen, Acoustic Wave Sensors: Theory, Design, & Physico-Chemical Applications. Academic Press, 1 ed., Oct. 1996. → pages 6 [15] B. Auld, Acoustic fields and waves in solids. New York: Wiley, 1973. → pages 6 [16] I. Viktorov, Rayleigh and Lamb waves: physical theory and applications. New York: Plenum Press, 1967. → pages 6 [17] J. W. Grate, S. W. Wenzel, and R. M. White, “Flexural plate wave devices for chemical analysis,” Anal. Chem., vol. 63, no. 15, pp. 1552–1561, 1991. → pages 7, 13, 25 [18] S. W. Wenzel and R. M. White, “A multisensor employing an ultrasonic lamb-wave oscillator,” Electron Devices, IEEE Transactions on, vol. 35, pp. 735–743, June 1988. → pages 8, 11, 13, 39  139  [19] H. Lamb, “On waves in an elastic plate,” Proceedings of the Royal Society of London. Series A, Containing Papers of a Mathematical and Physical Character, vol. 93, pp. 114–128, Mar. 1917. → pages 8, 13 [20] Y. Bao and P. W. Walton, “Real-time measurement of mass accumulation on filters using acoustic-wave techniques,” Sensors and Actuators, A: Physical, vol. 44, no. 1, pp. 45–49, 1994. Compendex. → pages 13 [21] C. K. Ho, E. R. Lindgren, K. S. Rawlinson, L. K. McGrath, and J. L. Wright, “Development of a surface acoustic wave sensor for In-Situ monitoring of volatile organic compounds,” Sensors, vol. 3, pp. 236–247, July 2003. → pages 13, 27, 48, 67 [22] A. Choujaa, N. Tirole, C. Bonjour, G. Martin, D. Hauden, P. Blind, A. Cachard, and C. Pommier, “AlN/silicon lamb-wave microsensors for pressure and gravimetric measurements,” Sensors and Actuators A: Physical, vol. 46, pp. 179–182, Jan. 1995. → pages 13 [23] S. W. Wenzel and R. M. White, “Flexural plate-wave gravimetric chemical sensor,” Sensors and Actuators A: Physical, vol. 22, pp. 700–703, June 1989. → pages 13, 32, 108 [24] Y. Dong, W. Gao, Q. Zhou, Y. Zheng, and Z. You, “Characterization of the gas sensors based on polymer-coated resonant microcantilevers for the detection of volatile organic compounds,” Analytica Chimica Acta, vol. 671, pp. 85–91, June 2010. → pages 13 [25] E. Cretu, “Eece 509. advanced microsystems design: Piezoelectric sensing and actuation.” University Lecture, The University of British Columbia, 2011. → pages 14 [26] M. L. Thompson, H. A. Sosa, and Drexel University, On the Material Properties and Constitutive Equations of Piezoelectric Poly Vinylidene Fluoride (PVDF). PhD thesis, Drexel University, Philadelphia, 2002. → pages 15, 16, 84 [27] L. N. Bui, H. J. Shaw, and L. T. Zitelli, “Study of acoustic wave resonance in piezoelectric PVF2Film,” IEEE Transactions on Sonics and Ultrasonics, vol. 24, pp. 331– 336, Sept. 1977. → pages 15 [28] A. Vinogradov and F. Holloway, “Electro-mechanical properties of the piezoelectric polymer PVDF,” Ferroelectrics, vol. 226, no. 1, p. 169, 1999. → pages 15, 16, 84 140  [29] D. K. Das-Gupta and K. Doughty, “The stability and aging of poled polyvinylidene fluoride (PVF2) electrets,” Ferroelectrics, vol. 60, no. 1, pp. 51–59, 1984. → pages 15, 16 [30] L. F. Brown and J. L. Mason, “Disposable PVDF ultrasonic transducers for nondestructive testing applications,” IEEE Transactions on Ultrasonics, Ferroelectrics and Frequency Control, vol. 43, pp. 560–568, July 1996. → pages 15, 107 [31] R. Monkhouse, P. Wilcox, and P. Cawley, “Flexible interdigital PVDF transducers for the generation of lamb waves in structures,” Ultrasonics, vol. 35, pp. 489–498, Nov. 1997. → pages 15, 97, 121 [32] P. Inacio, J. N. Marat-Mendes, and C. J. Dias, “Development of a biosensor based on a piezoelectric film,” in 11th International Symposium on Electrets, 2002. ISE 11. Proceedings, pp. 287– 290, IEEE, 2002. → pages 15 [33] Arkema Inc., Kynar ADX: PVDF Resin-Based Metal Coatings, 2008. → pages 15 [34] Arkema Inc., Kynar PVDF Components - Solving the World’s Water Challenges, 2012. → pages 15 [35] M. Broadhurst and G. Davis, “Physical basis for piezoelectricity in PVDF,” Ferroelectrics, vol. 60, pp. 3–13, 1984. → pages 16, 19 [36] R. Betz, “Properties and aging of SOLEF PVDF piezo- and pyroelectric films for medical transducers,” Ferroelectrics, vol. 60, no. 1, pp. 37–43, 1984. → pages 16, 20, 79 [37] Arkema Inc., Kynar and Kynar Flex PVDF: Performance Characteristics and Data, 2009. → pages 16, 108 [38] Solvay Specialty Polymers, Solef PVDF: A Remarkable Combination of Properties, 2012. → pages 16 [39] A. M. Vinogradov, V. Hugo Schmidt, G. F. Tuthill, and G. W. Bohannan, “Damping and electromechanical energy losses in the piezoelectric polymer PVDF,” Mechanics of Materials, vol. 36, pp. 1007–1016, Oct. 2004. → pages 16, 22 [40] V. Varadan, Y. Roh, V. Varadan, and R. Tancrell, “Measurement of all the elastic and dielectric constants of poled PVDF films,” in Ultrasonics Symposium, 1989. Proceedings., IEEE 1989, pp. 727–730 vol.2, 1989. → pages 16 141  [41] Y. Roh, V. V. Varadan, and V. K. Varadan, “Characterization of all the elastic, dielectric, and piezoelectric constants of uniaxially oriented poled PVDF films,” IEEE Transactions on Ultrasonics, Ferroelectrics and Frequency Control, vol. 49, pp. 836–847, June 2002. → pages 16, 84 [42] J. P. Tamez, A Polyvinylidene Fluoride (PVDF) Piezoelectric Biomedical Transducer for Intravascular Monitoring of Blood Pressure, and Arterial Blood Flow Rate. PhD thesis, University of Texas at San Antonio, 2009. → pages 16 [43] A. Lenz, H. Kariis, A. Pohl, P. Persson, and L. Ojame, “The electronic structure and reflectivity of PEDOT:PSS from density functional theory,” Chemical Physics, vol. 384, pp. 44–51, June 2011. → pages 18 [44] C.-h. Chen, A. Torrents, L. Kulinsky, R. D. Nelson, M. J. Madou, L. Valdevit, and J. C. LaRue, “Mechanical characterizations of cast Poly(3,4-ethylenedioxythiophene):Poly(styrenesulfonate)/Polyvinyl alcohol thin films,” Synthetic Metals, vol. 161, pp. 2259–2267, Dec. 2011. → pages 18, 111 [45] U. Lang, N. Naujoks, and J. Dual, “Mechanical characterization of PEDOT:PSS thin films,” Synthetic Metals, vol. 159, pp. 473–479, Mar. 2009. → pages 18, 108 [46] J. R. Busch, C. Sielmann, G. Man, D. Tsan, K. Walus, and B. Stoeber, “Inkjet printed all-polymer flexural plate wave sensors,” in 2012 IEEE 25th International Conference on Micro Electro Mechanical Systems (MEMS), pp. 571–574, IEEE, Feb. 2012. → pages 19, 20, 23, 26, 28, 111 [47] T. Miller, “Design of corona poling apparatus,” tech. rep., Department of Engineering Physics, The University of British Columbia, 2011. → pages 20 [48] Y. Huan, Y. Liu, and Y. Yang, “Simultaneous stretching and static electric field poling of poly(vinylidene fluoride-hexafluoropropylene) copolymer films,” Polymer Engineering & Science, vol. 47, no. 10, p. 16301633, 2007. → pages 20, 58 [49] S. H. Lee and Y. C. Bae, “Thermal stress analysis for polyimide thin film and a substrate layer system,” Macromolecular Chemistry and Physics, vol. 201, pp. 1286–1291, Aug. 2000. → pages 20 [50] B. Chen, T. Cui, Y. Liu, and K. Varahramyan, “All-polymer RC filter circuits fabricated with inkjet printing technology,” Solid-State Electronics, vol. 47, pp. 841–847, May 2003. → pages 23 142  [51] M. Johnston, H. Edrees, I. Kymissis, and K. Shepard, “Integrated VOC vapor sensing on FBAR-CMOS array,” in Micro Electro Mechanical Systems (MEMS), 2012 IEEE 25th International Conference on, pp. 846 –849, Feb. 2012. → pages 27 [52] L. Deng and M. Hgg, “Swelling behavior and gas permeation performance of PVAm/PVA blend FSC membrane,” Journal of Membrane Science, vol. 363, pp. 295–301, Nov. 2010. → pages 32, 115 [53] P. Wilcox, R. Monkhouse, P. Cawley, M. Lowe, and B. Auld, “Development of a computer model for an ultrasonic polymer film transducer system,” NDT & E International, vol. 31, pp. 51–64, Feb. 1998. → pages 34 [54] C. Wen, C. Zhu, Y. Ju, H. Xu, and Y. Qiu, “A novel dual track SAW gas sensor using Three-IDT and Two-MSC,” Sensors Journal, IEEE, vol. 9, pp. 2010 –2015, Dec. 2009. → pages 44 [55] T. L. Szabo, “Interdigital transducer models: Design options,” in 1978 Ultrasonics Symposium, pp. 701– 704, IEEE, 1978. → pages 44, 45 [56] P. Smith, Studies of Surface Acoustic Wave Interdigitated Transducers. PhD thesis, McMaster University, Aug. 1987. → pages 44, 45, 59, 95 [57] A. A. Nassar and E. L. Adler, “Propagation and electromechanical coupling to plate modes in piezoelectric composite membranes,” in 1983 Ultrasonics Symposium, pp. 369– 372, IEEE, 1983. → pages 55 [58] S. G. Joshi and Y. Jin, “Propagation of ultrasonic lamb waves in piezoelectric plates,” Journal of Applied Physics, vol. 70, p. 4113, 1991. → pages 58 [59] C. M. Hansen, Hansen solubility parameters :a user’s handbook. New York: CRC Press, 2007. → pages 67 [60] Comsol, Inc., Comsol 4.1: SAW Gas Sensing, 2010. → pages 67 [61] Z. Miyagi and K. Tanaka, “Sorption of water vapor by poly(vinyl acetate),” Colloid & Polymer Science, vol. 257, no. 3, pp. 259–265, 1979. → pages 68 [62] B. Katchman and A. D. McLaren, “Sorption of water vapor by proteins and polymers. IV1,2,” J. Am. Chem. Soc., vol. 73, no. 5, pp. 2124–2127, 1951. → pages 68 [63] E. T. Zellers, R. M. White, and S. W. Wenzel, “Computer modelling of polymer-coated ZnO/Si surface-acoustic-wave and lamb-wave chemical 143  sensors,” Sensors and Actuators, vol. 14, pp. 35–45, May 1988. → pages 69, 70 [64] G. Frye and S. Martin, “Velocity and attenuation effects in acoustic wave chemical sensors,” in Ultrasonics Symposium, 1993. Proceedings., IEEE 1993, pp. 379–383, IEEE, oct-3 nov 1993. → pages 71 [65] A. Mauder, “SAW gas sensors: comparison between delay line and two port resonator,” Sensors and Actuators B: Chemical, vol. 26, no. 1-3, pp. 187–190, 1995. → pages 81 [66] P. E. Bloomfield, W. Lo, and P. A. Lewin, “Experimental study of the acoustical properties of polymers utilized to construct PVDF ultrasonic transducers and the acousto-electric properties of PVDF and P(VDF/TrFE) films,” IEEE Transactions on Ultrasonics, Ferroelectrics and Frequency Control, vol. 47, pp. 1397– 1405, Nov. 2000. → pages 84, 85 [67] H. Kolsky, Stress Waves in Solids. Courier Dover Publications, Feb. 2003. → pages 89 [68] P. Daponte, F. Maceri, and R. S. Olivito, “Ultrasonic signal-processing techniques for the measurement of damage growth in structural materials,” IEEE Transactions on Instrumentation and Measurement, vol. 44, pp. 1003–1008, Dec. 1995. → pages 97 [69] G. Andria, “Digital signal processing techniques for accurate ultrasonic sensor measurement,” Measurement, vol. 30, pp. 105–114, Sept. 2001. → pages 97 [70] C. Papageorgiou, C. Kosmatopoulos, and T. Laopoulos, “Automated characterization and calibration of ultrasonic transducers,” in Electrotechnical Conference, 1998. MELECON 98., 9th Mediterranean, vol. 2, pp. 1214–1218 vol.2, IEEE, May 1998. → pages 97 [71] H. Ohigashi, “Electromechanical properties of polarized polyvinylidene fluoride films as studied by the piezoelectric resonance method,” Journal of Applied Physics, vol. 47, no. 3, p. 949, 1976. → pages 107 [72] C. Ishiyama and Y. Higo, “Effects of humidity on young’s modulus in poly(methyl methacrylate),” Journal of Polymer Science Part B: Polymer Physics, vol. 40, pp. 460–465, Mar. 2002. → pages 108  144  [73] L. Smith and V. Schmitz, “The effect of water on the glass transition temperature of poly(methyl methacrylate),” Polymer, vol. 29, pp. 1871–1878, Oct. 1988. → pages 108 [74] F. L. Marten and F. L. Marten, “Vinyl alcohol polymers, vinyl alcohol polymers,” in Kirk-Othmer Encyclopedia of Chemical Technology, Kirk-Othmer Encyclopedia of Chemical Technology, John Wiley & Sons, Inc., John Wiley & Sons, Inc., June 2002. → pages 111 [75] R. Schellekens and C. Bastiaansen, “The drawing behavior of polyvinylalcohol fibers,” Journal of Applied Polymer Science, vol. 43, pp. 2311–2315, Dec. 1991. → pages 111 [76] W. Chen, X. Tao, P. Xue, and X. Cheng, “Enhanced mechanical properties and morphological characterizations of poly(vinyl alcohol)carbon nanotube composite films,” Applied Surface Science, vol. 252, pp. 1404–1409, Dec. 2005. → pages 111 [77] J. Mark, Polymer Data Handbook. Oxford University Press, 1999. → pages 112 [78] T. Venugopalan, T. L. Yeo, T. Sun, and K. Grattan, “LPG-Based PVA coated sensor for relative humidity measurement,” IEEE Sensors Journal, vol. 8, pp. 1093–1098, July 2008. → pages 115 [79] M. Penza and V. Anisimkin, “Surface acoustic wave humidity sensor using polyvinyl-alcohol film,” Sensors and Actuators A: Physical, vol. 76, pp. 162–166, Aug. 1999. → pages 115 [80] Y. Xianda, W. Anlai, and C. Suqin, “Water-vapor permeability of polyvinyl alcohol films,” Desalination, vol. 62, no. 0, pp. 293–297, 1987. → pages 115 [81] H. Tadokoro, S. Seki, and I. Nitta, “The crystallinity of solid high polymers. i. the crystallinity of polyvinyl alcohol film,” Bulletin of the Chemical Society of Japan, vol. 28, no. 8, pp. 559–564, 1955. → pages 115 [82] S. A.-C., G. B., A. C., and J. D., “Glass transition induced by solvent desorption for statistical MMA/nBMA copolymers - influence of copolymer composition,” Polymer, vol. 42, no. 4, pp. 1383–1391, 2001. → pages 115 [83] A. J. Nolte, N. D. Treat, R. E. Cohen, and M. F. Rubner, “Effect of relative humidity on the youngs modulus of polyelectrolyte multilayer films and related nonionic polymers,” Macromolecules, vol. 41, no. 15, pp. 5793–5798, 2008. → pages 115 145  [84] J. C. Lagarias, J. A. Reeds, M. H. Wright, and P. E. Wright, “Convergence properties of the Nelder-Mead simplex method in low dimensions,” SIAM Journal of Optimization, vol. 9, p. 112147, 1998. → pages 121 [85] J. Goddard and J. Hotchkiss, “Polymer surface modification for the attachment of bioactive compounds,” Progress in Polymer Science, vol. 32, pp. 698–725, July 2007. → pages 126 [86] C. Vasile, M. C. Baican, C. M. Tibirna, C. Tuchilus, D. Debarnot, E. Pslaru, and F. Poncin-Epaillard, “Microwave plasma activation of a polyvinylidene fluoride surface for protein immobilization,” Journal of Physics D: Applied Physics, vol. 44, p. 475303, Nov. 2011. → pages 126 [87] M. Mller and C. Oehr, “Plasma aminofunctionalisation of PVDF microfiltration membranes: comparison of the in plasma modifications with a grafting method using ESCA and an amino-selective fluorescent probe,” Surface and Coatings Technology, vol. 116119, pp. 802–807, Sept. 1999. → pages 126 [88] H. Chen, L. Yuan, W. Song, Z. Wu, and D. Li, “Biocompatible polymer materials: Role of proteinsurface interactions,” Progress in Polymer Science, vol. 33, pp. 1059–1087, Nov. 2008. → pages 126 [89] D. Klee, Z. Ademovic, A. Bosserhoff, H. Hoecker, G. Maziolis, and H. Erli, “Surface modification of poly(vinylidenefluoride) to improve the osteoblast adhesion,” Biomaterials, vol. 24, pp. 3663–3670, Sept. 2003. → pages 126 [90] J. C. Pyun, H. Beutel, J. U. Meyer, and H. H. Ruf, “Development of a biosensor for e. coli based on a flexural plate wave (FPW) transducer.,” Biosensors and Bioelectronics, vol. 13, no. 7-8, pp. 839–845, 1998. → pages 126 [91] S. E. Cowan, J. Black, J. D. Keasling, and R. M. White, “Ultrasonic flexural-plate-wave sensor for detecting the concentration of settling e. coli w3110 cells.,” Analytical Chemistry, vol. 71, no. 16, pp. 3622–3625, 1999. → pages 126 [92] T. Suzawa, H. Shirahama, and T. Fujimoto, “Adsorption of bovine serum albumin onto homo- and copolymer latices,” Journal of Colloid and Interface Science, vol. 86, pp. 144–150, Mar. 1982. → pages 126 [93] W. Bowen and Q. Gan, “Properties of microfiltration membranes: Adsorption of bovine serum albumin at polyvinylidene fluoride 146  membranes,” Journal of Colloid and Interface Science, vol. 144, pp. 254–262, June 1991. → pages 126 [94] E. R. Tovey and B. A. Baldo, “Protein binding to nitrocellulose, nylon and PVDF membranes in immunoassays and electroblotting,” Journal of Biochemical and Biophysical Methods, vol. 19, pp. 169–183, Sept. 1989. → pages 128 [95] R. Casalini and C. M. Roland, “Highly electrostrictive poly(vinylidene fluoridetrifluoroethylene) networks,” Applied Physics Letters, vol. 79, pp. 2627–2629, Oct. 2001. → pages 133 [96] G. S. Buckley, C. M. Roland, R. Casalini, A. Petchsuk, and T. C. Chung, “Electrostrictive properties of poly(vinylidenefluoridetrifluoroethylene-chlorotrifluoroethylene),” Chemistry of Materials, vol. 14, pp. 2590–2593, June 2002. → pages 133 [97] E. Husler, W. Kaufmann, J. Petermann, and L. Stein, “Microstructure and piezoelectric properties of PVDF films,” Ferroelectrics, vol. 60, no. 1, pp. 45–50, 1984. → pages 134  147  Appendix A  Electrical Schematics Electronic schematics for the data acquisition system.  148  1  2  3  4  +6V  COU1 U1 COP1 P1  A  1  COF1 F1 1 PIP101 2 PIP102 3 PIP103  PIU101  PIF101  PIF102  PIC102 PIC101  2.0 A  DC 6V  COC1 C1 Cap 100uF  PID102 PID10  2  COD1 D1 10BQ015TRPBF  PIU102  Value: 15 V  3  PIU103  1  6  COVR1 VR1  6  PIU106  COE1 E1  ADP3339AKCZ-5-RL PIVR101  5  2  5  PIU105  3  4  PIU104  PIC202 PIC201  4  BNX016-01  PIC302 PIC301  PIVR102  COC2 C2 Cap 1 uF  2 PIE102  115 R  1  COE3 E3  ADP3339AKCZ-3.3-RL  Power Protection, Regulators and Converters  +12V -12V  1 PIP201 2 PIP202 3 PIP203  PIC902  PIC901  PS 12V  COC9 C9 Cap 10 uF  PIC10 2 PIC10 1  PIC502 PIC501  1 PIE301  Vin Vout PIVR203 GND  PIC602  PIVR20  COC5 C5 Cap 1 uF  PIC601  PIC701  PIC1 02 PIC1 01  1  PIE401  COC11 C11 Cap 10 uF  PIR202  COE5 E5 1  PIR201  PIE501  Res1 4.3 R +3.3V  PIR301  COR3 R3  PIC1202 PIC1201  Res1  2 3  PIU203  4  POSDA SDA  PIU204  POSCL SCL  PIU205  5  A  10 PIU2010  AD0  B  PIU209  AD1  VCC  PIU208  SDA  7 GND PIU207  SCL  VLOGIC  AD5258  COU3 U3  PIR401  9  COR4 R4  8  PIR4021.0 K  1  PIU301  Res1  6  PIU206  PIC1902 PIC1901  D  PIC20 2 PIC20 1  COC19 COC20 C19 C20 0402 Cap 0.1 uF 4.7 uF  PIR501  COR5 R5  PIR502  PIC1702 PIC1701  Res1 2.67 K  2  PIC1802 PIC1801  PIU302  COC18 C18 0402 0.01 uF  3  PIU303  4  PIU304  PIC2102 PIC2101  8  EN  GND  PIU308  IN  GND  PIU307  OUT  6 GND PIU306  ADJ  GND  7  COC17 C17 Cap 4.7 uF  PID20 PID201  COC12 C12 Cap 1 uF  D2 COD2 VESD01-02V-GS08  Vin Vout GND  PIE601  PIC1302 PIC1301  DVDD  115 R  COC13 C13 Cap 1 uF  2  PIE602  PIC1402 PIC1401  COC14 C14 Cap 4.7 uF  PIC1502 PIC1501  COC15 C15 Cap 4.7 uF  PIC1602 PIC1601  COC16 C16 Cap 4.7 uF  DGND  Value: 1.0 V  5  PIU305  ADP1715  PIR601  COC21 COR6 C21 R6 Cap Res1 4.7 uF 10 K  Title  PIR602  AGND  DGND  GND  Size  DGND  Date: File: 2  3  149  D  All-Polymer Sensor DAQ Rev 0 Number  Revision  Legal  DGND  1  1  PIVR303  PIVR302  C  COE6 E6  ADP3339AKCZ-1.8-RL PIVR301  CVDD 2  PIE502  115 R  COVR3 VR3  VDDINT  PIR3021.2 K  COU2 U2  AVDD 2  PIE402  115 R  1.1 - 1.4 V @ 500 mA  PIU202  PIC801  COC8 C8 Cap 4.7 uF  PIR101  Res1 4.3 R COR2 R2  GND  W  PIC802  COE4 E4 PIR102  COP3 P3  1 PIU201  COC7 C7 Cap 1 uF  DGND  COR1 R1  -5V  Header 2  B  PIC702  COC6 C6 Cap 1 uF  COC10 C10 Cap 10 uF POEXT0WAKE EXT_WAKE  C  +3.3V 2 PIE302  115 R  GND  1 PIP301 2 PIP302  PIE202  115 R  COVR2 VR2  COP2 P2  DRVDD 2  PIE201  B  COC4 C4 Cap 1 uF  COE2 E2  DGND  PIVR201  PIC402 PIC401  COC3 C3 Cap 1 uF  DGND GND  A  +5V  1 PIE101  Vin Vout PIVR103 GND  04/10/2011 D:\Projects\..\Sheet 1 - Power.SchDoc  Sheet of Drawn By: 4  1  2  3  4  VDDEXT  Blackfin DSP with Internal SRAM and Flash Memory Operating at 400 MHz  A  VDDEXT  1 6 15 20 23 26 30 41 51 59 62 64 66 67 112 116  PIR702 PIR701 B  PIR10 2 COR10 PIR10 1  R10 Res3 10 K  POD3 D3 POD4 D4 POD5 D5 POD6 D6 COR7 R7 POD7 D7 Res3 POD8 D8 10 K POD9 D9 POD10 D10 POD11 D11 POD12 D12 POD13 D13 POD14 D14 POD15 D15  PODCLK DCLK COS1 S1  11 12  PIU4011  PIS101  PIS102  PIU4012  RESET  PPI_D0 PPI_D1 PPI_D2 PPI_D3 PPI_D4 PPI_D5 PPI_D6 PPI_D7 PPI_D8 PPI_D9 PPI_D10 PPI_D11 PPI_D12 PPI_D13 PPI_D14 PPI_D15 PPI_FS1 PPI_CLK  PG1 PG6 PG7 PG8 PG9 PG10 PG11 PH0 PH1 PH2  NMI RESET  PIU504  1  PIU501  OE  0402 0.1 uF  COU5 U5  4  PIR1701  PIC5301  Res3 10 K  25 MHz OSC DGND  PIU502  PIR1502  To onboard emulation and debugging system  COC24 C24 0402 0.1 uF  PIC2502 PIC2501  COC25 C25 0402 0.1 uF  POADC0CLK ADC_CLK  PIR802  COR8 R8  PIU4013 PIU4017 PIU4018 PIU4019 PIU4012 PIU402 PIU40 2 PIU4052 PIU4053 PIU4061 PIU4065 PIU4017 PIU4025 PIU4063 PIU4069  PIR902  Res3 10 K  39 40  PIU4039  PIR801  PIU4040  PIC2602 PIC2601  COC26 C26 0402 0.1 uF  PIC2702 PIC2701  COC27 C27 0402 0.1 uF  PIC2802 PIC2801  COC28 C28 0402 0.1 uF  PIC2902 PIC2901  COC29 C29 0402 0.1 uF  PIC30 2 PIC30 1  COC30 C30 0402 0.1 uF  A  COC31 C31 0402 0.1 uF  PIC3202 PIC3201  COC32 C32 0402 0.1 uF  PIC3 02 PIC3 01  COC33 C33 0402 0.1 uF  PIC3402 PIC3401  COC34 C34 0402 0.1 uF  PIC3502 PIC3501  COC35 C35 0402 0.1 uF  PIC3602 PIC3601  COC36 C36 0402 0.1 uF  PIC3702 PIC3701  COC37 C37 0402 0.1 uF  PIC3802 PIC3801  COC38 C38 0402 0.1 uF  PIC3902 PIC3901  COC39 C39 0402 0.1 uF  DGND  PIC40 2 PIC40 1  COR9 R9 Res3 100 K  COC40 C40 0402 0.1 uF  PIC4102 PIC4101  COC41 C41 0402 0.1 uF  PIC4202 PIC4201  COC42 C42 0402 0.1 uF  PIC4302 PIC4301  COC43 C43 0402 0.1 uF  PIC4 02 PIC4 01  COC44 C44 0402 0.1 uF  PIC4502 PIC4501  COC45 C45 0402 0.1 uF  PIC4602 PIC4601  COC46 C46 0402 0.1 uF  PIC4702 PIC4701  COC47 C47 0402 0.1 uF B  PIR901  43 PIU4043  44 45 PIU4045 46 PIU4046 113 PIU40113 115 PIU40115 114 PIU40114 PIU4044  PIR1 02  PIR1 01  COR11 R11 Res3 33 K  VDDINT  0402 220 pF  DGND  PIR1202  COR16 R16  PIR1601  Res1 33 R  PIR1302  COR12 R12 Res1  PIR120133 R  COC49 C49 0402 0.1 uF  PIC50 2 PIC50 1  COC50 C50 0402 0.1 uF  PIC5102 PIC5101  COC51 C51 0402 0.1 uF  PIC5202 PIC5201  COC52 C52 0402 0.1 uF  PIR1402 COR13 R13 Res3 1.2 K  PIR1301  DVDD  PIC4902 PIC4901  +3.3V  PIR1602  58 BMODE0 PIU4058 57 BMODE1 PIU4057 56 BMODE2 PIU4056  COR14 R14 Res3 1.2 K  DGND  PIR1401  C  PIR1802 PIR1801  3 OUT PIU503  DGND  COC48 C48 VDDFLASH  55 SCL 54 SDA PIU4054  VDDFLASH  PIC4802 PIC4801  POEXT0WAKE EXT_WAKE  PIU4055  VDDFLASH1 VDDFLASH2 VDDFLASH3  COR17 R17  GND VDD  C  COC53 C53  25 63 69  PIR1702  Res1 33 R  VDDINT1 VDDINT2 VDDINT3 VDDINT4 VDDINT5 VDDINT6 VDDINT7  COR15 R15  24 42 52 53 61 65 117  PIR1501 PIC5302  GND GND GND GND GND  DGND +3.3V  EMU TRST TCK TMS TDI TDO  0402 0.1 uF  PIC2402 PIC2401  VDDINT  POU0TX U_TX  120 EXTCLK PIU40120  13 17 108 109 121  68 37 PIU4037 PODSP0EMU1 DSP_EMU1 34 PIU4034 PODSP0EMU2 DSP_EMU2 35 PIU4035 PODSP0EMU3 DSP_EMU3 33 PIU4033 PODSP0EMU4 DSP_EMU4 36 PIU4036 PODSP0EMU5 DSP_EMU5  COC23 C23  +3.3V  POU0RX U_RX  28 PIU4028  70 EXT_WAKE PIU4070 71 PG PIU4071  110 CLKIN 111 PIU40111 XTAL PIU4068  118 UA0_RX PIU40118 119 UA0_TX PIU40119 50 TMR1 PIU4050  PIU40110  PODSP0EMU0 DSP_EMU0  PIC2302 PIC2301  DGND  PIC3102 PIC3101  COU4 U4 ADSP-BF506F 29 SPI1_SEL1 PIU4029 POC\S\0\ CS0 31 SPI1_CLK PIU4031 POSCLK SCLK 32 SPI1_MOSI PIU4032 POMOSI MOSI 38 SPI1_MISO PIU4038 POMISO MISO  VDDEXT1 VDDEXT2 VDDEXT3 VDDEXT4 VDDEXT5 VDDEXT6 VDDEXT7 VDDEXT8 VDDEXT9 VDDEXT10 VDDEXT11 VDDEXT12 VDDEXT13 VDDEXT14 VDDEXT15 VDDEXT16  POD0 D0 POD1 D1 POD2 D2  +3.3V  22 21 PIU4021 19 PIU4019 18 PIU4018 16 PIU4016 14 PIU4014 10 PIU4010 9 PIU409 2 PIU402 4 PIU404 3 PIU403 5 PIU405 7 PIU407 8 PIU408 48 PIU4048 47 PIU4047 49 PIU4049 27 PIU4027  COC22 C22 0402 0.1 uF  VDDEXT  PIU401 PIU406 PIU4015 PIU402 PIU4023 PIU4026 PIU403 PIU401 PIU4051 PIU4059 PIU4062 PIU406 PIU406 PIU4067 PIU4012 PIU4016  PIU4022  +3.3V  PIC2 02 PIC2 01  COR18 R18 Res3 10 K  PIR1902  COR19 R19  PIR1901  POSCL SCL POSDA SDA  Res3 10 K  2  DGND DGND  DGND  D  Title  Size  D  All-Polymer Sensor DAQ Rev 0 Number  Revision  Legal Date: File: 1  2  3  150  04/10/2011 D:\Projects\..\Sheet 2 - DSP.SchDoc  Sheet of Drawn By: 4  1  2  3  4  A  A  UART Level Converter and Line Driver  +3.3V  PIC5402 PIC5401  B  PIC5702 PIC5701  COU6 U6 COC54 C54 0402 0.1 uF  COC57 C57  5  PIU605  0402 0.1 uF  PIR2002  PIU6012  Res1 33 R  C1+ C1C2+ C2-  11 T1IN 10 T2IN 12 R1OUT 9 PIU609 R2OUT PIU6011  PIU6010  COR20 R20 PIR2001  3  PIU603  4 PIU604  POU0TX U_TX  POU0RX U_RX  1 PIU601  16 VCC PIU6016 2 V+ PIU602 6 V- PIU606 15 PIU6015 GND  COC55 C55 PIC5502  PIC5501  0402 0.1 uF  PIC5602 PIC5601  B  COC56 C56 COJ1 J1 1 6 PIJ106 2 PIJ102 7 PIJ107 3 PIJ103 8 PIJ108 4 PIJ104 9 PIJ109 5 PIJ105  0402 0.1 uF  PIJ101  14 T1OUT PIU6014 7 T2OUT PIU607 13 R1IN PIU6013 8 R2IN PIU608  COC58 C58 ADM3202ARNZ  PIC5802  PIC5801  0402 0.1 uF  11  PIJ1011  10  PIJ1010  GND  D Connector 9  DGND  GND  C  C  D  Title  Size  D  All-Polymer Sensor DAQ Rev 0 Number  Revision  Legal Date: File: 1  2  3  151  04/10/2011 D:\Projects\..\Sheet 3 - Devices.SchDoc  Sheet of Drawn By: 4  1  2  3  PIR2102 POADC0CLK ADC_CLK  COC59 C59  COT1 T1 PIT101  PIT103  PIT102  PIT104  PIC5902 PIC5901  ETC1-1-13  PIR2402  DGND  COR24 R24 Res3 24.9 R  PIR2401  COD3 D3  PIC6002 PIC6001  PIR2302 COR23 R23 Res3 24.9 R  16-bit 168 MSPS 2-channel Sigma-Delta ADC Using Internal Reference  COR21 R21 Res3 100 R  PIR2101  0402 1 uF COC60 C60  A  PID302  0402 1 uF  PID301  4  A  COD4 D4 PID402  HSMS-2812BLK  PIR2 02  PID401  HSMS-2812BLK  PIR2 01  PIR2301  PIC6101 PIC6102  COR22 R22 Res3 100 R  COC61 C61  PIC6201 PIC6202  Cap 10 uF  COC62 C62 0603 0.1 uF  PIC6302 AGND  PIC6301  PIC6402  COC63 C63  PIC6401  Cap 10 uF  PIC6502  COC64 C64 Cap 10 uF  PIC6501  PIC6 02  COC65 C65 Cap 10 uF  PIC6 01  COC66 C66 Cap 10 uF  AGND +3.3V  DRVDD  +3.3V  C  PID501 PID502  DRVDD  54 53  CFILT VREF  VIN-A VIN+A  51 62  60 59  VIN-B VIN+B  AGND AGND  57 56  CGND CVDD  DGND  PIU80 PIU8023 PIU8041 PIU807 PIU8024 PIU8042 PIU806 PIU8025 PIU8043 PIU8063 PIU802 63 2  RESET  D0B D1B D2B D3B D4B D5B D6B D7B D8B D9B D10B D11B D12B D13B D14B D15B ORB  DVDD DVDD DVDD  PIU803  6 25 43  3 4 PIU804 5 PIU805 9 PIU809 10 PIU8010 11 PIU8011 12 PIU8012 13 PIU8013 14 PIU8014 15 PIU8015 16 PIU8016 17 PIU8017 18 PIU8018 19 PIU8019 20 PIU8020 21 PIU8021 22 PIU8022  PIS202  GND GND GND  COS2 S2 PIS201  DRVDD DRVDD DRVDD  PIU801  8 23 41  64 CLK+ 1 CLK50 PIU8050 RESET PIU8064  AVDD AVDD AVDD AVDD  61 58 55 52  PIU8061 PIU805 PIU805 PIU8052 PIU8051 PIU8062 PIU806 PIU8059 PIU8057 PIU8056 PIU8054 PIU8053  D5 COD5 RED  Res3 10 K  DGND  PIU705  DGND  49 CSB PIU8049 48 SCLK PIU8048 47 SDIO PIU8047 26 DCO PIU8026 27 28 PIU8028 29 PIU8029 30 PIU8030 31 PIU8031 32 PIU8032 33 PIU8033 34 PIU8034 35 PIU8035 36 PIU8036 37 PIU8037 38 PIU8038 39 PIU8039 40 PIU8040 44 PIU8044 45 PIU8045 46 PIU8046 PIU8027  POC\S\0\ CS0 POSCLK SCLK  COC68 C68 0402 0.1 uF  DGND  1  POMOSI MOSI  PIU701  3  PIU703  PODCLK DCLK  PIR30 2  POD0 D0 POD1 D1 POD2 D2 POD3 D3 POD4 D4 POD5 D5 POD6 D6 POD7 D7 POD8 D8 POD9 D9 POD10 D10 D11 POD11 POD12 D12 POD13 D13 D14 POD14 POD15 D15  COR30 R30 Res3 10 K  COU7 U7 NC7WZ07P6X  COR26 R26 PIR2501  PIR2602  Res3 1.07 K  PIR2601  Res3 1.07 K  Y1  PIU706  A2  Y2  PIU704  B  COR29 R29 Res3 1.07 K  PIR2902  6  A1  PIR2901  4  POMISO MISO  PIU702  PIR30 1  DGND  C  PID601 PID602  CVDD  PIC6802 PIC6801  PIR2502  PIR2801  COU8 U8 AD9262  D0A D1A D2A D3A D4A D5A D6A D7A D8A D9A D10A D11A D12A D13A D14A D15A ORA  COR25 R25  COC67 C67 0402 0.1 uF  5  PIR2701  COR28 R28  VCC  AGND  7 24 42  B  PIC6702 PIC6701  PIR2802  POVIN0BPOVIN0B POVIN0APOVIN0A VIN-B VIN+B  Res3 10 K  GND  AVDD  COR27 R27  VIN-A VIN+A  PIR2702  AGND  2  AGND  D6 COD6 RED  DGND AGND  AVDD D  DRVDD  PIC6902 PIC6901  COC69 C69 0402 0.1 uF  PIC70 2 PIC70 1  COC70 C70 0402 0.1 uF  PIC7102 PIC7101  COC71 C71 0402 0.1 uF  PIC7202 PIC7201  COC72 C72 0402 0.1 uF  PIC7302 PIC7301  COC73 C73 0402 0.1 uF  PIC7402 PIC7401  COC74 C74 0402 0.1 uF  PIC7502 PIC7501  COC75 C75  Title  0402 0.1 uF Size  D  All-Polymer Sensor DAQ Rev 0 Number  Revision  Legal AGND  DGND 1  Date: File: 2  3  152  04/10/2011 D:\Projects\..\Sheet 4 - ADC.SchDoc  Sheet of Drawn By: 4  1  2  Input Instrumenation Amplifier Configured for 100x Gain  A  3  4  4-pole Butterworth Filter with 4V/V Passband Gain with Flow = 400 kHz, Fhigh = 1200 kHz  ADC Input Driver/Amplifier Configured for 1x Gain  A  +5V +12V  PIC7801 PIC7802  PIC7601 PIC7602  COC78 C78  B  Cap 1 uF  COC76 C76 0603 0.1 uF  PIC7 01 PIC7 02  COC77 C77 Cap 10 uF B +5V  10  COU10 U10 +VS  8  +IN  7 OUT PIU907  4 PIU904  A0  9 REF PIU909  5 6  PIU906  A1  PIU902  -VS  PIU903  PIU1001  COC87 C87  2  PIC8701 PIC8702  1206 560 pF  2  DGND  WR  1  PIU908  PIU9010  PIU905  PIC7901  AGND  -IN  COR33 R33  PIR3301  COR34 R34 PIR3401  PIR3402  PIR3302  Res1 3.4 K  Res1 1.54 K  3  INV A  3 PIU1003  SA  4  PIU1004  5 6  PIU1006  AGND  7  PIU1007  8  PIU1008  PIC8 01 PIC8 02  COC88 C88  PIC7902  16  PIU10016  15 INV B PIU10015 14 SB PIU10014 13  OUT  OUT  PIU10013  OUT  OUT  PIU10012  GND  11 GND PIU10011  12  COR31 R31 PIR3101  COR32 R32 PIR3102  Res1 1.33 K  PIR3201  PIR3501  EN  PIU10010  V-  V-  PIU1009  PIR3602  PIR3701  COR38 R38  COR41 R41 Res1  9  PIR410227 R  AGND  COC89 C89 0603 0.1 uF  PIC90 1 PIC90 2  PIC8201 COC81 C81 Cap 10 uF  PIC8202  PIC8301 COC82 C82 0603 0.1 uF  PIC8302  PIU103 PIU104 PIU1 09 PIU10 PIU107 PIU101  AGND  PIR3601  PIR3802  COR39 R39  PIR4101  PIR3901  Res1 200 R  COR40 R40 PIR4002  +5V  PIR4001  Res1 200 R  COR42 R42 PIR4202  24 1 2 23 PIU11023 18 PIU11018 19 PIU11019 20 PIU11020  PIR3801 PIU11024  Res1 200 R  PIU1101 PIU1102  VIN+A POVIN0A POVIN0A VIN-A  PIR4201  +IN1 -IN1 FB+OUT1 FB-OUT1 +OUT1 -OUT1 PD1  Res1 10 K  -5V  PIC8901 PIC8902  PIC8102  Res1 200 R  COR37 R37 Res1 60.4 R  AGND  Cap 1 uF  PIC8101 COC80 C80 0603 0.1 uF  PIC8401 COC83 C83 Cap 10 uF  PIC8402  PIC8501 COC84 C84 0603 0.1 uF  PIC8502  PIC8601 COC85 C85 Cap 10 uF  PIC8602  COC86 C86 0603 0.1 uF  PIR3202  PIR3702  LT1568 AGND  PIC80 2  COR36 R36 PIR3502  Res1 1.33 K  10  NC  PIC80 1 COC79 C79 Cap 10 uF  Res1 1.33 K  COR35 R35  PIR3902  -12V  C  V+  PIU1002  PIU1005  AD8253  V+  3 4 9 10 17 11  PIP402  1  PIU901  COU11 U11 ADA4937-2  AGND  +VS1 +VS1 +VS2 +VS2 VCOM1 VCOM2  Sensor  PIP401  -VS1 -VS1 -VS2 -VS2  1 2  6 +IN2 PIU1106 7 -IN2 PIU1107 8 FB+OUT2 PIU1108 5 FB-OUT2 PIU1105 12 +OUT2 PIU11012 13 -OUT2 PIU11013 14 PD2 PIU11014  C  COR43 R43 PIR4302  PIR4301  Res1 10 K  PIU102 PIU102 PIU106 PIU105  21 22 16 15  AGND COU9 U9  COP4 P4  AGND  COC90 C90  AGND  Cap 10 uF  AGND AGND  D  Title  Size  D  All-Polymer Sensor DAQ Rev 0 Number  Revision  Legal Date: File: 1  2  3  153  04/10/2011 D:\Projects\..\Sheet 5 - Analog 1.SchDoc 4  Sheet of Drawn By:  Appendix B  DSP Programming C++ Program for the Blackfin DSP used as part of the data acquisition system.  154  /***************************************************************************** * Sensor1.c * * Program to acquire high speed data from an external ADC and serve that data * to LabView via UART0. *****************************************************************************/ #include #include #include #include  <cdefBF506F.h> <ccblkfn.h> <sys/exception.h> "bfrom.h"  //Define statements #define SCLK_MHZ 100 #define CCLK_MHZ 400 #define BAUDRATE 500000 //Non-standard! converter #define SPIBAUD 250000 #define PPISAMPLES 500 #define NUMAVG 1500 TWOCHANNEL mode ////#define DELAY_WIDTH 600 default, 2000 for 18um //#define DELAY_WIDTH 1000 string, 1000 for 525/575 #define DELAY_WIDTH 1500 string, 1000 for 525/575 //#define DELAY_WIDTH 700 #define DELAY_AMP 25 #define TWOCHANNEL 1 channel mode #define SKIPNUM 1 Rate / SKIPNUM  Need appropriate (ideally FTDI) Serial->USB  //Default - 5000, 3000 for 18um, half for //In 10ns increments, after trigger - 600 //TOF Mode, 800 for half duty cycle pulse //TOF Mode, 800 for half duty cycle pulse //For TOF BFSK 500/600 //In 10ns increments, after trigger //Set to one to operate in two input //Reduces acquisition rate:  #pragma symbolic_ref #pragma section("L1_code") const char __argv_string[] = "-abc -xyz"; //Global variable definitions struct flags_struct { char uartSend; char uartTransmitting; char adcArrived; char txBuffer; char dataReady; char medianCalc; char syncPeriod; char chanActive; } flags; long int uartTX1[PPISAMPLES * 2 + 1]; long int uartTX2[PPISAMPLES * 2 + 1]; int chanTXBufOffset = 0; int chanppiBuf = 0; char uartRX[10];  155  NewRate =  short int ppiBuf[8][PPISAMPLES * SKIPNUM]; short int bufi = 0; char medianVec[PPISAMPLES * SKIPNUM]; //Function definitions void void void void void void void void void char void void void void char  bufMedian(void); initialize(void); initClock(void); initTimer(void); initUART(void); initSPI(void); initPPI(void); initAmp(void); initSync(void); spiReadWrite(char); spiCS(char); initADC(void); wait( volatile unsigned long int ); adcWriteByte( unsigned int, char ); adcReadByte( unsigned int );  EX_INTERRUPT_HANDLER(int_sync) { if( *pTIMER_STATUS & TIMIL2 ) { //Delay is complete, acquire data *pTIMER_STATUS = TIMIL2; //Clear interrupt *pDMA0_CONFIG |= 0x0001; *pPPI_CONTROL |= 0x0001; //Fetch next sample flags.medianCalc = 1; } if( *pTIMER_STATUS & TIMIL3 ) { //Delay is complete, swich amp status *pTIMER_STATUS = TIMIL3; //Clear interrupt } if( *pPORTGIO & PG6 ) { //Time delay *pPORTGIO_CLEAR = PG6; if( flags.syncPeriod >= 0 ) { flags.syncPeriod = 0; *pTIMER_ENABLE = TIMEN2; *pTIMER_ENABLE = TIMEN3; } else flags.syncPeriod++; }  //Start post-trigger acq delay //Start post-trigger amp delay  } EX_INTERRUPT_HANDLER(int_uart) {  156  int temp; //Check for UART transmit - disable transmitter if( *pSIC_ISR0 & 0x00800000 ) { *pDMA9_CONFIG &= 0xfffe; *pUART0_IER_CLEAR = 0x2; *pDMA9_IRQ_STATUS = 0x03; //Reset DMA module flags.uartTransmitting = 0; } //Check for UART receive - send next block if( *pSIC_ISR0 & 0x00400000 ) { temp = *pUART0_RBR; flags.uartSend = 1; } } EX_INTERRUPT_HANDLER(int_ppi) { *pDMA0_CONFIG &= 0xfffe; *pPPI_CONTROL &= 0xfffe; *pDMA0_IRQ_STATUS = 0x03; flags.adcArrived = 1; }  //Disable PPI //Reset DMA  int main( int argc, char *argv[] ) { int i; int acqNum = 0; initialize(); while( 1 ) { if( flags.adcArrived ) { flags.adcArrived = 0; if( flags.dataReady ) continue;  //Halt acquisition until next packet ready  //Post-process data if( flags.txBuffer == 0 ) { int lsample = ppiBuf[bufi + chanppiBuf][0]; int val = 0; //Work in uartTX2 for( i = 0; i < PPISAMPLES; i++ ) { val = ppiBuf[bufi + chanppiBuf][i * SKIPNUM]; if( abs(val) < abs(lsample) + 2000 ) against bad bits  157  //Protect  uartTX2[i + chanTXBufOffset + 1] += (long int)val; else uartTX2[i + chanTXBufOffset + 1] += (long int)lsample; lsample = val; } } else { int lsample = ppiBuf[bufi + chanppiBuf][0]; int val = 0; //Work in uartTX1 for( i = 0; i < PPISAMPLES; i++ ) { val = ppiBuf[bufi + chanppiBuf][i * SKIPNUM]; if( abs(val) < abs(lsample) + 2000 )  //Protect  against bad bits uartTX1[i + chanTXBufOffset + 1] += (long int)val; else uartTX1[i + chanTXBufOffset + 1] += (long int)lsample; lsample = val; } } acqNum++; //Increment buffer pointer and setup for next transfer if( TWOCHANNEL ) { if( flags.chanActive == 1 ) //If in two channel mode and channel B just completed bufi++; } else bufi++; if( bufi > 3 ) bufi = 0; //Switch channel if necessary if( TWOCHANNEL ) { if( flags.chanActive == 0 ) { *pPPI_CONTROL &= 0xbfff; chanTXBufOffset = PPISAMPLES; chanppiBuf = 4; flags.chanActive = 1; //Set to channel B } else { *pPPI_CONTROL |= 0x4000; chanTXBufOffset = 0; chanppiBuf = 0; flags.chanActive = 0; //Set to channel A }  158  } //Set PPI buffer location *pDMA0_START_ADDR = ppiBuf[chanppiBuf + bufi]; //If total number of samples reached then break off until next time if( acqNum == NUMAVG ) { flags.dataReady = 1; } } //While acquiring new data set, perform median calc on other three buffers if( flags.medianCalc ) { flags.medianCalc = 0; //Generate median vector on 3 rolling input buffers bufMedian();  // }  //New data available and not transmitting? if( flags.dataReady && !flags.uartTransmitting ) { //Switch buffers if( flags.txBuffer ) flags.txBuffer = 0; else flags.txBuffer = 1; flags.dataReady = 0; acqNum = 0; //Clear old buffer if( flags.txBuffer == for( i = 0; i < uartTX2[i else for( i = 0; i < uartTX1[i  0 ) PPISAMPLES * 2; i++ ) + 1] = 0; PPISAMPLES * 2; i++ ) + 1] = 0;  } if( flags.uartSend ) { if( flags.txBuffer == 0 *pDMA9_START_ADDR else *pDMA9_START_ADDR  //Transmit data if requested ) = uartTX1; = uartTX2;  flags.uartSend = 0; *pDMA9_CONFIG |= 0x0001; *pUART0_IER_SET = 0x0002; flags.uartTransmitting = 1; } } }  159  //Active UART send  void bufMedian() { int i; //Determine buffers char b0, b1, b2; char ind = 35; switch( bufi ) { case 0: b0 = 1; b1 = 2; b2 = 3; break; case 1: b0 = 0; b1 = 2; b2 = 3; break; case 2: b0 = 0; b1 = 1; b2 = 3; break; default: b0 = 0; b1 = 1; b2 = 2; break; } b0 += chanppiBuf; b1 += chanppiBuf; b2 += chanppiBuf; /*  Consumes too much power, switch for single point test */ //Calculate median value of three unused buffers for( i = 0; i < 1; i++ ) { if( ppiBuf[b1][i] < ppiBuf[b0][i] ) { if( ppiBuf[b0][i] < ppiBuf[b2][i] ) medianVec[i] = b0; else if( ppiBuf[b2][i] < ppiBuf[b1][i] ) medianVec[i] = b1; else medianVec[i] = b2; } else { if( ppiBuf[b0][i] > ppiBuf[b2][i] ) medianVec[i] = b0; else if( ppiBuf[b2][i] > ppiBuf[b1][i] ) medianVec[i] = b1; else  160  medianVec[i] = b2; } } /* if( ppiBuf[b1][ind] < ppiBuf[b0][ind] ) { if( ppiBuf[b0][ind] < ppiBuf[b2][ind] ) medianVec[0] = b0; else if( ppiBuf[b2][ind] < ppiBuf[b1][ind] ) medianVec[0] = b1; else medianVec[0] = b2; } else { if( ppiBuf[b0][ind] > ppiBuf[b2][ind] ) medianVec[0] = b0; else if( ppiBuf[b2][ind] > ppiBuf[b1][ind] ) medianVec[0] = b1; else medianVec[0] = b2; } */ } void initClock() { u32 SIC_IWR1_reg; ADI_SYSCTRL_VALUES sysctrl ={  /* backup SIC_IWR1 register */ 0x0000, 0x2080,  /* (25MHz CLKIN x  0x0004,  /* (200MHz/(SSEL=  (MSEL=8))::CCLK = 200MHz */ 2))::SCLK = 100MHz */ 0x0000, 0x0000 }; SIC_IWR1_reg = *pSIC_IWR1; 00-0432 */ *pSIC_IWR1 = 0; SIC_IWR1 */  /* save SIC_IWR1 due to anomaly 05/* disable wakeups from  bfrom_SysControl( SYSCTRL_WRITE | SYSCTRL_PLLCTL | SYSCTRL_PLLDIV, &sysctrl, NULL ); *pSIC_IWR1 = SIC_IWR1_reg; 05-00-0432 */ }  /* restore SIC_IWR1 due to anomaly  void initTimer() { //Configure 50MHz output pulse for TMR1 to drive ADC CLK *pPORTG_MUX = *pPORTG_MUX | 0x8000; *pPORTG_FER = *pPORTG_FER | 0x8000; *pTIMER1_WIDTH = 0x0001; *pTIMER1_PERIOD = 0x0002;  161  *pTIMER1_CONFIG = 0x0009; *pTIMER_ENABLE = 0x0002;  //Continuous PWM out mode //Enable Timer1  } void initUART() { //Port setup *pPORTF_MUX = *pPORTF_MUX | 0x0005; *pPORTF_FER = *pPORTF_FER | 0x0003; //Data register setup uartTX1[0] = 0xa5a55a5a; uartTX2[0] = 0xa5a55a5a; //UART setup *pUART0_LCR = 0x0003; //N81 *pUART0_MCR = 0x0000; *pUART0_DLH = ( SCLK_MHZ * 1000000 / 16 / BAUDRATE ) >> 8; *pUART0_DLL = ( SCLK_MHZ * 1000000 / 16 / BAUDRATE ) & 0xff; *pUART0_GCTL = 0x0001; //Enable UART clock, /16 prescaler //DMA/Interrupt configuration - default IVG10 register_handler( ik_ivg10, int_uart ); *pIMASK = *pIMASK | 0x400; *pSIC_IMASK = *pSIC_IMASK | 0x00c00000; //Activate RX/TX DMA interrupts *pDMA9_START_ADDR = uartTX2; //Transmit buffer *pDMA9_X_COUNT = PPISAMPLES * 8 + 4; //Header + PPISAMPLES channel A + PPISAMPLES channel B 8-bit words in buffer *pDMA9_X_MODIFY = 0x0001; //8-bit transfers *pDMA9_CONFIG = 0x00a1; //FLOW_STOP | WDSIZE_8 | DI_EN | SYNC | DMAEN (z) //Initiate buffer empty interrupt to start transfer *pUART0_IER_SET = 0x3; //ETBEI and ERBEI } void initSPI() { //Port setup *pPORTG_MUX = *pPORTG_MUX | 0x0000; *pPORTG_FER = *pPORTG_FER | 0x0038; //SPI setup *pSPI1_BAUD = SCLK_MHZ * 1000000 / 2 / SPIBAUD; *pSPI1_CTL = 0x5c01; //SPI Master, software CS control, clock active low ssync(); //Chip select *pPORTGIO_SET = PG2; *pPORTGIO_DIR |= PG2; //Clear buffer spiReadWrite( 0x00 ); } void initPPI()  162  { //Port setup *pPORTF_MUX = *pPORTG_MUX = *pPORTF_FER = *pPORTG_FER = //  *pPORTF_MUX *pPORTG_MUX *pPORTF_FER *pPORTG_FER  | | | |  0xaaa0; 0x2001; 0xfffc; 0x3001;  *pPORTF_HYSTERESIS = 0x0000; //DMA/Interrupt setup register_handler( ik_ivg9, int_ppi ); *pIMASK = *pIMASK | 0x200; *pSIC_IMASK = *pSIC_IMASK | 0x00004000;  //Activate PPI interrupts  *pDMA0_START_ADDR = ppiBuf[0]; //Receive buffer *pDMA0_X_COUNT = PPISAMPLES * SKIPNUM; //PPISAMPLES 16-bit words in buffer *pDMA0_X_MODIFY = 0x0002; //16-bit transfers *pDMA0_CONFIG = 0x00a6; //PPI setup *pPPI_DELAY = 0x0000; //Not used *pPPI_COUNT = PPISAMPLES * SKIPNUM - 1; //Channel buffer setup chanTXBufOffset = 0; chanppiBuf = 0; if( TWOCHANNEL ) { *pPPI_CONTROL = 0x787c; flags.chanActive = 0; } else *pPPI_CONTROL = 0x387c;  // }  //To initiate *pDMA0_CONFIG *pPPI_CONTROL *pPPI_CONTROL  //Set for channel A  //Polarities are fine  PPI data collection, set bit 0 of PPI_CONTROL |= 0x0001; //Activate DMA channel |= 0x0001; //Activate PPI |= 0x0201; //Activate PPI  void initAmp() { //No longer used } char test; void initADC() { //Read a byte to verify connection test = adcReadByte( 0x1 ); //ID = 0x22 //Write PLL register for 1.25 GHz internal clock adcWriteByte( 0x0a, 0x19 ); //Enable the PLL adcWriteByte( 0x09, 4 );  163  Appendix C  LabView Programming LabView programming for the data acquisition system.  164  Connector Pane Front.vi  Front Panel FPW SENSOR CONTROL PANEL Temperature Controller 1 VISA resource name  Flow Controller 1 VISA resource name  Temperature Controller 2 VISA resource name  Flow Controller 2 VISA resource name  Keithley Sensor  Calibration Module  Keithley VISA  Signal Acquisition  Duplicate Charting  Cal  VISA resource name Calibration Sequence  COM3  COM3  COM3  COM3  Unit Address  Unit Address  Unit Address  Unit Address  4  5  4  COM4  5  0 Acknowledge All Alarms  Acknowledge All Alarms  Acknowledge All Alarms  Acknowledge All Alarms  Activate  Temperature 1 (C)  Flow Rate 1 (mL/min)  0  Temperature 2 (C)  0  Active Setpoint  Flow Rate 2 (mL/min)  0  Active Setpoint  0  Active Setpoint  COM4  Path for CSV Cal File  Agilent Sensor  Active Setpoint  Time (s)  Temp (C)  Flow (mL/min)  0.02  Frequency A (Hz)  0  0.000  0.000  0.000  0.01  Amplitude A (V)  0  0.000  0.000  0.000  0  Phase A (deg)  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  Agilent VISA  0  0  Manual Setpoint 0  0  Manual Setpoint  0  Manual Setpoint 0  0  Time Elapsed (s)  COM4  0  -0.01  Agilent Measurand 0  Activate  Activate  3E-5  Filtered  0.015 0.01  0  0  Delay A (arb units)  0  1E-5  2E-5  3E-5  0  Frequency B (Hz)  0  Amplitude B (V)  0  Phase B (deg)  -0.01 -0.015  Delay B (arb units)  0  0  0  Time (s)  0  Activate  2E-5  Waveform Channel B  Sensor Temperature (C)  Activate  1E-5  0  0.005 0 -0.005  Manual Setpoint 0  Filtered  Waveform Channel A  Keithley Measurand  Activate  Activate Calibration Module  165  Activate  Log File Path  Activate Logging  Block Diagram  Activate  Activate  True  Activate  True  True  VISA resource name  VISA resource name  VISA resource name  Unit Address  Unit Address  Unit Address  Acknowledge All Alarms  New ALARM ! 2  Acknowledge All Alarms  Flow Rate 1 (mL/min)  New ALARM !  Acknowledge All Alarms  Temperature 1 (C)  True  Temperature 2 (C)  True  Cal Update  False  Cal Update  Cal Update  Cal Flow 1  Cal Temp 1 Active Setpoint  Adjust Setpoint 4  Active Setpoint  Active Setpoint  Manual Setpoint  500  Activate Logging  True %T,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f\n  Log File Path  open or create  end Frequency A (Hz) Temperature 1 (C) Flow Rate 1 (mL/min) Keithley Measurand Temperature 2 (C) Flow Rate 2 (mL/min) Agilent Measurand Amplitude B (V)  0  1  2  Delay A (arb units) 3  4  5  6  Phase A (deg)  0  1  2  Delay B (arb units) 3  4  5  6  Amplitude A (V) Frequency B (Hz) Phase B (deg)  Activate Calibration Module  True Calibration Sequence  Cal Temp 1 1  Cal Flow 1  Path for CSV Cal File  2  Cal Temp 2  166  New ALARM ! 3  Activate  True VISA resource name  Unit Address  Acknowledge All Alarms  New ALARM ! 4  Flow Rate 2 (mL/min) False Cal Update  Adjust Setpoint 3 Active Setpoint  Manual Setpoint  167  Cal Temp 2 116  0  Double  3  ,  Cal Flow 2 4  Cal Update  -1 0 0.5  Activate  Time Elapsed (s)  True Delay A (arb units)  Waveform Channel A VI  Cal  FP.Open  500  Activate  Frequency A (Hz)  Duplicate  State  True Waveform Channel A Delay B (arb units)  VISA resource name  Phase A (deg) Phase B (deg)  Phase A (deg) Waveform Channel B Frequency B (Hz)  Waveform Channel B  Amplitude A (V)  Phase B (deg)  Amplitude B (V)  1000  VI  FP.Open Charting  Activate State  Amplitude B (V) Amplitude A (V) Keithley Measurand Frequency A (Hz) Frequency B (Hz) Phase A (deg) Phase B (deg) Agilent Measurand  Delay B (arb units) 0  Delay A (arb units) 0  1000  Activate  True Keithley VISA  Keithley Measurand  1000  Activate  True Agilent Measurand  Agilent VISA  Sensor Temperature (C) 3348 / ( ln(x / 1222)+3348 / 294.87) - 273.15  168  Connector Pane AcqData.vi  VISA resource name  Locations A Waveform Channel A detected frequency A detected phase A (deg) detected amplitude A detected frequency B detected phase B (deg) detected amplitude B Waveform Channel B Locations B  169  Front Panel VISA resource name  ID Query? (T: Yes) Reset? (T: Yes)  Yes  Yes  No  No  Plot 0  Waveform Channel A  -0.45  0.4  -0.46  0.3  -0.47  detected frequency A  -0.48  0.2 0.00  -0.49  0.1  -0.5  detected phase A (deg)  0  -0.51  0.00  -0.1  -0.52  -0.2  Linear Adjust  Add Delay  Plot 0  Adjusted Channel A  0.5  Delay Length  -0.53  -0.3  -0.54  -0.4  -0.55  -0.5  -0.56  0  2E-6  0  4E-6  6E-6  8E-6  -1  -0.8 -0.6 -0.4 -0.2  Time (s) Plot 0  Dedecay capture plot  Dedecay  0.4  0.6  0.8  1  Plot 0  Normalize capture plot  90  50  80  45  70  40  Normalize  35  60  Dedecay capture  0.2  0  Time (s)  30  Normalize capture  50  25 40 20  polynomial order  30  15  4  20  10  10  5  0  0  50  0  100  150  200  250  300  350  400  450  500  0  50  100  Sample Buffer  150  200  250  300  350  Sample Buffer  Plot 0  Waveform Channel B 1  0.8  Locations A  Amplitudes A  0  2  0.00  0.00  0.6 detected amplitude A  0.4 detected frequency B 0.00  0.00  0.2  detected phase B (deg) 0  0.00  detected amplitude B  -0.2  0.00  -0.4 Locations B 0  0.00  -0.6  Amplitudes B  -0.8  0  0.00  -1 0  2E-6  4E-6  6E-6 Time (s)  170  8E-6  1E-5  1.2E-5  Block Diagram Waveform Channel A  Y dt Waveform Channel B detected frequency B Locations B  Filter5  VISA resource name  Signal Filtered Signal 1000  Dedecay capture  Filter7  True  detected phase B (deg)  Signal  1  Peaks  Filtered Signal  exp(x)  0  Dedecay capture plot  25  False Linear Adjust  True  polynomial order  Filter6 Signal  Normalize capture  detected amplitude B  Peaks 0  Filtered Signal  25  Amplitudes B 0  0  0  0  Amplitudes A  ID Query? (T: Yes)  Reset? (T: Yes)  171  detected frequency A Locations A  Filter Signal Filtered Signal  Normalize  Add Delay  True  True  Adjusted Channel A  True  Filter2 Y  Dedecay capture plot  Dedecay  none Delay Length  detected amplitude A  Signal  Y  Y  Filtered Signal  0  detected phase A (deg) Filter3 Signal Filtered Signal  1  Normalize capture plot  172  Connector Pane Delay.vi  waveform Frequency in Phase in  Delay Outputs  173  Front Panel waveform  Phase in Y  t0 00:00:00 PM DD/MM/YYYY dt  1.000000  0 0 0  0  Delay Outputs  Frequency in 0  0  0  0  0  0  0  0  0  0  0 1 2 3 4 5 6  0 0  Peak Detect Enable  -  Peak Detect BFSK cos Hilbert Transform Zero cross BFSK Goertzel DFT Freq/Phase CC to Hist  # Found 0  Plot 0  Delinearization  cos BFSK Enable  Plot 0  Normalization  1.5  1.5  0.008  1.25  1.25  1  1  0.75  0.75  0.006 0.004  0.5  0.002  0.25  0  0  -0.002  -0.25  0.5 0.25 0  -0.25  -0.5  -0.004  -0.5  -0.75 -0.006  -0.75  -1  -0.008  -1.25  -0.01  -1.5 0  50  100  150  200  250  300  350  400  450  -1 -1.25  500  0  50  100  Sample Buffer  150  200  250  300  350  400  450  500  0  50  100  150  Sample Buffer  Plot 0  Hilbert Output  Hilbert Enable  Plot 0  Decoding  0.01  200  250  300  350  400  450  500  Sample Buffer  Plot 0  Hilbert Magnitude  Plot 0  Hilbert Phase  0.01  0.01  2200  0.008  0.009  2000  0.006  0.008  0.004  0.007  0.002  0.006  1200  0  0.005  1000  -0.002  0.004  800  -0.004  0.003  -0.006  0.002  -0.008  0.001  0  -0.01  0  -200  1800 1600 1400  600 400  0  200  400  600  800  200  1000  0  50  100  150  Sample Buffer  200  250  300  350  400  450  500  0  50  100  Sample Buffer  150  200  250  300  350  400  450  500  Sample Buffer  Zero-cross Enable  Plot 0  Goertzel Mags Geortzel BFSK Enable  Plot 0  Goertzel Phases  0.11  3000  0.1  2750 2500  0.09  2250  0.08  2000  0.07  1750  0.06  1500  0.05  1250  0.04  1000 750  0.03  500  0.02  250  0.01  0  0  -250 0  50  100  150  200  250  300  350  400  450  0  50  100  150  Sample Buffer  200  250  300  350  400  450  Sample Buffer  Freq/Phase Enable  CC Enable  CC Capture  Plot 0  CC Capture Plot  Plot 0  Cross Correlation Input  0.01  0.01  0.008  0.008  0.006  0.006  0.006  0.004  0.004  0.004  0.002  0.002  0.002  0  0  0  -0.002  -0.002  -0.002  -0.004  -0.004  -0.004  -0.006  -0.006  -0.006  -0.008  -0.008  -0.01  -0.008  -0.01 0  5E-6  1E-5  1.5E-5  2E-5  Sample Buffer  2.5E-5  3E-5  Plot 0  Cross Correlation Output  0.01 0.008  -0.01 0  50  100  150  200  250  300  Sample Buffer  174  350  400  450  500  0  200  400  600  Sample Buffer  800  1000  Block Diagram Peak Detect waveform  True  Peak Detect Enable  Peaks  25  Wavform in Y  # Found  dt  Valleys  Linear Rectangular (none)  0  1  Hilbert Transform True Waveform in  Hilbert Output  Y  Hilbert Enable  dt 0  radian in, degree out  0  2  Phase in  Calculated Frequency in  Frequency in Freq/Phase Enable  Cross Correlation True 0  frequency domain  CC Capture  none False  50  Y dt  CC Enable  Peaks  Waveform in Y  CC Capture Plot  dt  Cross Correlation Input  Goertzel BFSK True Waveform in Geortzel BFSK Enable  Goertzel Phases  radian in, degree out  Y 50  dt  0  0  0  0  0  0  0  0  600000  500000  radian in, degree out  cos BFSK True cos BFSK Enable Peaks  Normalization 0 25  exp(x)  Delinearization cos(2*pi*600000*x) cos(2*pi*500000*x)  Wavform in 200  Y dt Delay out  Zero-cross Detect True Zero-cross Enable  Y dt 21  True Waveform in  0  0 10  175  Delay Outputs  Filter17  Filter16 0  Signal  Delay Out  Signal Filtered Signal  Filtered Signal  Filter14 Signal Filtered Signal Filter15 1  Signal Filtered Signal  Hilbert Magnitude  Hilbert Phase  Filter19 Signal Filtered Signal Filter20 Signal Filtered Signal  Freq/Phase True Calculated Phase in Calculated Frequency in  Delay out  360  dt  Waveform in  Filter26 Signal  Delay out  Filtered Signal  Cross Correlation Output  Cross Correlation Input  Goertzel Mags  Filter25 Signal Filtered Signal Delay Out  Decoding  Filter18 Signal Filtered Signal  Filter23 2  Signal Filtered Signal  176  Connector Pane CalData.vi  Channel A Waveform Channel A Channel B Waveform Channel B Front Panel Filtered  Differential Phase 16.5  Zero Cal Point  16  15.5 Zero Cal Value  15  0  14.5 14  Waveform Channel A  13.5  Filtered  0.02  13  12.5  0.01  12  0  11.5 -0.01  11  1E-5  0  2E-5  3E-5  10.5 10  Channel A 0  Hz  9.5 Waveform Channel B  9  8.5  0.015 0.01  8  0.005  Filtered  0  7.5  -0.005 -0.01 -0.015  7  6.5  0  1E-5  2E-5  3E-5  6  4:00:00.000 PM 31/12/1903  6:00:00.000 PM 31/12/1903  8:00:00.000 PM 31/12/1903  10:00:00.000 PM 31/12/1903  Time (s)  177  11:50:07.784 PM 31/12/1903  Channel B 0 Clear Plot  Hz  Block Diagram Channel A  Channel B Filter Differential Phase  Signal  100  Filtered Signal  True Zero Cal Value Zero Cal Point  True Differential Phase  Clear Plot  History 0  Waveform Channel A  0  00:00:00.000 PM DD/MM/YYYY 1 0  Waveform Channel B  178  0  Connector Pane DSPADCBoard.vi  VISA resource name General Settings:Timeout Value  Waveform Channel A Waveform Channel B error out  Front Panel VISA resource name  error out  code  status Serial Settings:End Mode for Reads None  0  source  Serial Settings:End Mode for Writes None  Filtered  Waveform Channel A  0.3 General Settings:Timeout Value 0.2  0 Serial Configuration  0.1  Baud Rate <500000>  500000  Flow Control None  -0.1 0  -0.2  Parity None  0  0  -0.3  8  1E-5  1.5E-5  2E-5 Filtered  Waveform Channel B 10  2.5E-5  Time (s)  8  Stop Bits 1.0  5E-6  0  Data Bits  1  0.75  0.5 0.25 0  -0.25 -0.5 -0.75 -1 0  5E-6  1E-5  1.5E-5 Time (s)  179  2E-5  2.5E-5  Block Diagram t0 dt Y[]  0  1  VISA resource name Instr  VISA Defaults  Timeout General Settings:Timeout Value  Baud  C0  4096  0  0  0  30  :  4004  0  error out  0  4.96E-8  1.0172526E-8  t0  dt  Waveform Channel A  Y  500 500  t0 dt Y[]  1/5000 to complete mean average x 2/65536 for bits->V conversion  Flow Cntrl Parity Data Bits Baud Rate Serial Configuration  0  Stop Bits  Flow Control  ASRL End In  Parity  ASRL End Out  4.96E-8  t0  dt Y  Data Bits Stop Bits Serial Settings:End Mode for Reads  Serial Settings:End Mode for Writes  voltage = (Averaged input) / 5000 * (2 Vpp) / (65536 levels)  180  Waveform Channel B  Connector Pane Goertzel.vi  Signal Sample Rate Frequency  Real  Imag  Front Panel Sample Rate  Real  0  0  Imag  Frequency  0  0  Signal 0  0  Block Diagram  0  0  Frequency 2  Real  Signal  Imag  Sample Rate  2 3.141592653589  181  Connector Pane Graphs1.vi  Delay A Amp B Amp A Keithley FreqA Freq B Phase A Phase B Agilent Delay B Front Panel  Clear all  Frequency (Hz)  Freq  Amp  Amplitude (V)  350000  0.006  300000  0.005  1  0.75  0.5 0.004  0.25  250000 0.003  0  200000  -0.25  0.002  -0.5  150000  0.001  100000  -0.75 -1  0 0  20  40  60  80  100  120  0  20  40  Time (s)  60  80  100  122.5  0  Phas  Delay  Delay (arb)  1  125  175  0.75  100  150  0.5  125  0.25  75 50 25 0  100  0  75  -0.25  -25  50  -0.5  -50  25  -0.75  -75  Time (s)  80  100  120  80  100  120  Amp  -1  0 60  60  Agilent Measurement  200  40  40  Time (s)  150  20  20  Time (s)  Phase (deg)  0  Amp  Keithley Measurement  0  20  40  60  Time (s)  182  80  100  120  0  20  40  60  Time (s)  80  100  120  Block Diagram FreqA  Frequency (Hz)  Freq B  Clear all  True Delay (arb) 0  0 0  History  Amplitude (V) 0  0 0  History  Phase (deg) 0  0 0  History Agilent Measurement  0  0  History Frequency (Hz)  0  0 0  History Keithley Measurement  0  Phase A  0  History  Phase (deg)  Phase B  Amp A  Amplitude (V)  Amp B  Delay A  Delay (arb)  Delay B  Keithley  Agilent  Keithley Measurement  Agilent Measurement  183  Appendix D  Matlab Programming Matlab programming for modelling, simulation, and data analysis.  184  1 2 3 4 5 ); 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48  % Load LabView data file into Matlab clear all; close all; dat = importdata( 'C:\Projects\pvdfsensor\Calibration Data\May19HumidSensor5PVAcOnly'  datStart = 1; %datEnd = 83500; datEnd = size( dat.data, 1 ); stamps = false; %Standard data logFreq = dat.data(datStart:datEnd, 1); logPhase = dat.data(datStart:datEnd, 2); logAmplitude = dat.data(datStart:datEnd, 3); logDelay(:,1) = dat.data(datStart:datEnd, 4); logDelay(:,2) = dat.data(datStart:datEnd, 5); logDelay(:,3) = dat.data(datStart:datEnd, 6); logOvenTemp1 = dat.data(datStart:datEnd, 7); logFlowRate1 = dat.data(datStart:datEnd, 8); logKeithley = dat.data(datStart:datEnd, 9); logOvenTemp2 = dat.data(datStart:datEnd, 10); logFlowRate2 = dat.data(datStart:datEnd, 11); logAgilent = dat.data(datStart:datEnd, 12); logFreq2 = dat.data(datStart:datEnd, 13); logPhase2 = dat.data(datStart:datEnd, 14); logAmplitude2 = dat.data(datStart:datEnd, 15); logDelay2(:,1) = dat.data(datStart:datEnd, 16); logDelay2(:,2) = dat.data(datStart:datEnd, 17); logDelay2(:,3) = dat.data(datStart:datEnd, 18); logDelay(:,4) = dat.data(datStart:datEnd, 19); logDelay(:,5) = dat.data(datStart:datEnd, 20); logDelay(:,6) = dat.data(datStart:datEnd, 21); logDelay(:,7) = dat.data(datStart:datEnd, 22); logDelay2(:,4) = dat.data(datStart:datEnd, 23); logDelay2(:,5) = dat.data(datStart:datEnd, 24); logDelay2(:,6) = dat.data(datStart:datEnd, 25); logDelay2(:,7) = dat.data(datStart:datEnd, 26); %Timestamp if stamps == true disp( 'Converting timestamps' ); for i = 1:(datEnd - datStart) times = sscanf( char( dat.textdata(i) ), '%f:%f:%f %s %f/%f/%f' );  185  49 if times(4) == 80 %PM? 50 times(1) = times(1) + 12; 51 end 52 if times(1) == 24 53 times(1) = 0; 54 end 55 56 logStamp(i, :) = datestr( [times(8) times(7) times(6) times(1) times(2) times (3)] ); 57 if mod( i, 1000 ) == 0 58 i 59 end 60 end 61 62 clear i; 63 clear times; 64 end 65 66 clear stamps 67 clear datStart 68 clear datEnd 69  186  1 % LDV Attenuation calculator 2 3 clear all; close all 4 5 dat = importdata( 'd:/Projects/thesis/LDV Measurements/LDV Sept 27 - 3 sensor atten/18_800_33469.txt' ); 6 %dat = importdata( 'd:/Projects/thesis/LDV Measurements/LDV Sept 27 - 3 sensor atten/125_400_153625.txt' ); 7 %dat = importdata( 'd:/Projects/thesis/LDV Measurements/LDV Sept 27 - 3 sensor atten/125_800_59219.txt' ); 8 9 width = 53; 10 11 %Determine line width 12 for i = 1:width 13 linedata(i) = dat((i-1) * 39 + 1, 2); 14 end 15 x = 1:width; 16 a = polyfit( x, linedata, 1 ); 17 samplewidth = a(1); 18 19 %Map displacements into matrix 20 k = 1; 21 for i = 1:width 22 for j = 1:39 23 matr(j, i) = dat(k, 5); 24 k = k + 1; 25 end 26 end 27 28 figure('Color',[1 1 1]); 29 xx = (1:width) * samplewidth; 30 y = (1:39) * samplewidth; 31 contourf( xx, y, matr, 50, 'edgecolor', 'none' ); 32 set(gca,'Fontsize',16); 33 %title( 'x-y Contour Map of LDV Data' ); 34 xlabel( 'x-axis position (m)' ); 35 ylabel( 'y-axis position (m)' ); 36 37 for i = 1:width 38 vect(i) = mean( matr(:, i) ); 39 end 40 41 amp = ( max( vect ) - min( vect ) ) / 2; %First approximation 42 43 % Now determine frequency 44 45 numtests = 1000; 46 x = 1:width;  187  47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95  % First linearly compensate and shift to 0 figure('Color',[1 1 1]); set(gca,'Fontsize',16); linfit = polyfit( x, vect, 1 ); vectcomp = vect - polyval( linfit, x ); %vect = vectcomp; %OPTIONAL plot( xx * 1e3, vect, 'b', 'Linewidth', 2 ); % Next locate points of zero crossing vectcompi = interp( vectcomp, 100 ); zeros = []; for i = 1:(width*100 - 1) if( vectcompi(i) < 0 && vectcompi(i + 1) > 0 ) zeros(end + 1) = i; end end % Now determine frequency from crossings for i = 1:(length( zeros ) - 1) periods(i) = zeros(i + 1) - zeros(i); end period = mean( periods ); f = width / period * 100; %Phase offset x = 1:width; phases = linspace( 0, 2 * pi, numtests ); for i = 1:numtests phase = phases(i); phaseStrength(i) = sum( amp * cos( 2 * pi * f * x / width + phase ) .* vect ); end [b,i] = max( phaseStrength ); phi = phases(i); % Now amplitude and attenuation numtests = 100; attentest = linspace( .1, 1, numtests %attentest = linspace( 1, 3, numtests %attentest = linspace( 5, 7, numtests amptest = linspace( 0.75 * amp, 1.5 *  ); %in per cm ); %in per cm ); %in per cm amp, numtests );  for i = 1:numtests  188  96 for j = 1:numtests 97 stddev(i, j) = std( amptest(i) * exp( -attentest(j) * samplewidth * 100 * x ) .* cos( 2 * pi * f * x / width + phi ) - vect ); 98 end 99 end 100 101 [a,b] = min( stddev(:) ); 102 j = floor( b / numtests ); 103 i = mod( b, numtests ); 104 amp = amptest(i); 105 atten = attentest(j); 106 107 % Generate fit wave 108 for i = 1:width 109 outwave(i) = amp * exp( -atten * samplewidth * 100 * i ) * cos( 2 * pi * f * x (i) / width + phi ); 110 end 111 112 hold on 113 plot( xx*1e3, outwave, '--r', 'Linewidth', 2 ); 114 115 %title( 'Wave Amplitude vs. Position' ); 116 xlabel( 'Position (mm)' ); 117 ylabel( 'Amplitude (m)' ); 118 legend( 'LDV Data', 'Calculated Fit Curve', 'Location', 'Best' ); 119 120 disp( sprintf( 'Amplitude: %f m', amp ) ); 121 disp( sprintf( 'Attenuation: %f /cm', atten ) ); 122 disp( sprintf( 'Attenuation: %f dB/cm', 8.6859 * atten ) ); 123 124 125 126  189  1 2 3 4 5 6 7  %For plotting pre-prepared humidity/PVA data clear all close all %First big experiment w and w/o tank air %fname = 'd:\projects\thesis\Calibration Data\May09HumidSensor5.mat'; %1 Layer, Test  1 8 %fname = 'd:\projects\thesis\Calibration Data\May10HumidSensor5.mat'; %1 Layer, Test 2 9 %fname = 'd:\projects\thesis\Calibration Data\May13HumidSensor5Layer2.mat'; %2 Layer, Test 1 10 %fname = 'd:\projects\thesis\Calibration Data\May14HumidSensor5Layer2.mat'; %2 Layer, Test 2 11 %fname = 'd:\projects\thesis\Calibration Data\May15HumidSensor5Layer3.mat'; %3 Layer, Test 1 12 %fname = 'd:\projects\thesis\Calibration Data\May16HumidSensor5Layer3Tank.mat'; %3 Layer, Test 2, Tank air 13 %fname = 'd:\projects\thesis\Calibration Data\May17HumidSensor5Layer3Tank.mat'; %3 Layer, Test 3, Tank air 14 %fname = 'd:\projects\thesis\Calibration Data\May17HumidSensor5TankLayer4x2.mat'; % 4 Layer, Test 1/2, Tank air 15 %fname = 'd:\projects\thesis\Calibration Data\May18HumidSensor5TankLayer5.mat'; %5 Layer, Test 1, Tank air 16 17 %Second big experiment, all tank air and frequency 18 %fname = 'd:\projects\thesis\Calibration Data\July12HumidSensor8TankLayer1.mat'; %1 Layer, Test 1 19 %fname = 'd:\projects\thesis\Calibration Data\July13HumidSensor8TankLayer1.mat'; %1 Layer, Test 2 20 %fname = 'd:\projects\thesis\Calibration Data\July13HumidSensor8TankLayer2.mat'; %2 Layer, Test 1 21 %fname = 'd:\projects\thesis\Calibration Data\July14HumidSensor8Layer2.mat'; %2 Layer, Test 2 22 fname = 'd:\projects\thesis\Calibration Data\July15HumidSensor8Layer3.mat'; %3 Layer, Test 1/2 23 24 disp('Loading data...'); 25 load(fname); 26 clear sensOut; 27 logPhase = logDelay(:,1); 28 logPhase2 = logDelay2(:,1); 29 30 %Some preparation 31 disp('Generating tables...'); 32 exPressure = 102; %in kPa 33 x = 1:length(logPhase); 34 exTemp = interp1(logOther(:,1), logOther(:,4), x)'; 35 exDP = interp1(logOther(:,1), logOther(:,2), x)';  190  36 for i = 1:length(exTemp) 37 if isnan(exTemp(i)) 38 exTemp(i) = exTemp(i - 1); 39 exDP(i) = exDP(i - 1); 40 end 41 end 42 43 %Calculate humidity PPM 44 satPress = exp(77.345 + 0.0057 .* (exTemp + 273.15) - 7235 ./ (exTemp + 273.15)) ./ (exTemp + 273.15) .^ 8.2; %In Pa 45 relHumidity = 100 .* ( (112 - 0.1 .* exTemp + exDP ) ./ (112 + 0.9 .* exTemp) ) .^ 8; %http://www.ajdesigner.com/phphumidity/dewpoint_equation_relative_humidity.php 46 47 %Prep data for display 48 %diff = logPhase2 - logPhase; 49 diff = logPhase; 50 for u = 1:length(diff) 51 if(diff(u) > 100) 52 diff(u) = diff(u) - 360; 53 end 54 end 55 56 diffavg = sgolayfilt( diff, 2, 1001 ); 57 xTime = x / 7200; 58 59 logPhase = logPhase - min(logPhase); 60 logPhase2 = logPhase2 - min(logPhase2); 61 62 sclA = (max( logPhase ) - min( logPhase )); 63 sclB = (max( logPhase2 ) - min( logPhase2 )); 64 if sclA > sclB 65 scl = sclA; 66 else 67 scl = sclB; 68 end 69 70 xmin = 0; 71 xmax = xTime(end); 72 73 %Plots 74 75 %Raw data 76 77 %Comparison between channels 78 figure('Color', [1 1 1]); 79 [haxes, hline1, hline2] = plotyy( xTime, logPhase, xTime, logPhase2, 'plot', 'plot' ); 80 set( haxes(1), 'FontName', 'Times', 'FontSize', [16], 'YTickMode', 'auto', 'box', 'off' );  191  81 set( haxes(2), 'FontName', 'Times', 'FontSize', [16], 'YTickMode', 82 set(hline1, 'LineStyle', 'x'); 83 set(hline2, 'LineStyle', 'x'); 84 axes(haxes(1)); 85 hold on 86 ylabel( 'Channel A Phase (deg)' ); 87 axis( [xmin xmax 0 scl] ); 88 axes(haxes(2)); 89 hold on 90 axis( [xmin xmax 0 scl] ); 91 ylabel( 'Channel B Phase (deg)' ); 92 xlabel( 'Time (h)' ); 93 linkaxes( haxes, 'x' ); 94 95 %Plot vs. Humidity 96 figure('Color', [1 1 1]); 97 [haxes, hline1, hline2] = plotyy( xTime, relHumidity, xTime, diff, 98 set( haxes(1), 'FontName', 'Times', 'FontSize', [16], 'YTickMode', 'off' ); 99 set( haxes(2), 'FontName', 'Times', 'FontSize', [16], 'YTickMode', 100 set(hline2, 'LineStyle', 'x'); 101 axis( [xmin xmax min(relHumidity) max(relHumidity)*1.05] ); 102 axes(haxes(1)); 103 hold on 104 set(hline1, 'Linewidth', 2.0 ); 105 plot( logOther(:,1)/7200, relHumidity(logOther(:,1)), 'go' ); 106 set(hline1, 'LineStyle', '-'); 107 axis( [xmin xmax min(relHumidity) max(relHumidity)*1.05] ); 108 ylabel( 'Relative Humidity (%)' ); 109 axes(haxes(2)); 110 hold on 111 plot( xTime, diffavg, 'r', 'Linewidth', 2.0 ); 112 ylabel( 'Phase (deg)' ); 113 axis( [xmin xmax min(diff) max(diff)] ); 114 xlabel( 'Time (h)' ); 115 linkaxes( haxes, 'x' ); 116 117 %Sensitivity stuff 118 disp( 'Sensitivity calculations...' ); 119 120 %Loop through and calculate mean average data in specified ranges 121 for i = 1:length( logSens(:, 1) ) 122 dData = diff(logSens(i, 1):logSens(i, 2)); 123 hData = relHumidity(logSens(i, 3):logSens(i, 4)); 124 psensS(i) = mean( dData ); 125 esensSL(i) = (psensS(i) - min( dData )) * 5; 126 esensSH(i) = (max( dData ) - psensS(i)) * 5; 127 psensH(i) = mean( hData ); 128 end  192  'auto' );  'plot', 'plot' ); 'auto', 'box', 'auto' );  129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167  %Sort data [psensS, i] = sort(psensS); esensSL = esensSL(i); esensSH = esensSH(i); psensH = psensH(i); p1 = polyfit(psensH((end-3):end), psensS((end-3):end), 1); p2 = polyfit(psensH, psensS, 2); x = linspace( min(psensH), max(psensH), 100 ); p1fit = polyval(p1, x); p2fit = polyval(p2, x); p1fitS = polyval(p1, psensH); p2fitS = polyval(p2, psensH); %Adjust data to remove non-linear distortion psensSadj = psensS;% + (p1fitS - p2fitS) / 1.2; figure( 'Color', [1 1 1] ); set( gca, 'FontName', 'Times', 'FontSize', [16] ); %errorbar( psensH, psensS, esensSL, esensSH, 'bx' ); %hold on %plot( x, p2fit, 'b' ); errorbar( psensH, -psensSadj, esensSL, esensSH, 'xk' ); hold on plot( x, -p1fit, 'k' ); xlabel( 'Relative Humidity (%)' ); ylabel( 'Phase Shift (deg)' ); sensOut(:,1) sensOut(:,2) sensOut(:,3) sensOut(:,4)  = = = =  psensSadj; esensSL; esensSH; psensH;  %Saving sensitivity data disp( 'Saving Sensitivity Data...' ); save(fname, 'sensOut', '-append');  193  1 % Program for optimizing IDT design given a finite amount of space and wave 2 % generation/propagation parameters 3 4 clear all; close all; 5 6 %Configurable parameters 7 atten = 19; %Attenuation in dB/cm/MHz 8 k = 0.15; %Electromechanical coupling factor 9 lambda = 800e-6; %IDT wavelength in m 10 ref = 0.5; %Reflection effectiveness (0-1) 11 12 %Material parameters 13 d = 18e-6; %Thickness in m 14 l = 0.01; %Sensor length in m 15 S = 125e6; %In-plane stress in Pa 16 E = 2.65e9; %Young's Modulus in Pa 17 theta = 0.35; %Poisson's ratio 18 rho = 1.78; %PVDF density in g/cm^3 19 20 %Temporary constants 21 %velamp = 8000e-6; 22 velamp = 8000e-6 / 2 / sqrt(2); %Energy calculation, corrected for RMS,mass reduction 23 24 %Grand iterator 25 plotstuff = 1; 26 paramnum = 1; 27 paramlist = linspace( 19, 19, paramnum ); 28 for j = 1:paramnum 29 atten = paramlist(j); 30 31 %Calculations 32 D = E / 12 / ( 1 - theta^2 ) * d ^ 3; 33 v = sqrt( ( S * d + ( 2 * pi / lambda ) ^ 2 * D ) / ( rho * 1000 * d ) ); 34 f = v / lambda; 35 alpha = atten * f / 1e6 / 8.6854 * 100; 36 37 %Prep canvas 38 39 totfingpairs = round( l / lambda - 1 ); 40 recpwr = []; 41 ewave = []; 42 43 %Iterate to find best configuration 44 for transfingpairs = 1:( totfingpairs - 2 ) 45 if plotstuff 46 figure( 'Color', [1 1 1] ); 47 end 48 h = [];  194  49 recfingpairs = totfingpairs - transfingpairs - 1; 50 51 %Superposition of transmitting fingers 52 twave = zeros(100000, 1)'; 53 cwave = 0; 54 for i = 1:transfingpairs 55 x = 0:10e-6:(2 * l); 56 wave = velamp * exp( -alpha * x ) .* sin( 2 * pi * x / lambda ); 57 jjj = 0; 58 if i ~= transfingpairs + 1 59 for jj = (lambda / 2 / 10e-6):(2 * l / 10e-6) %Replicate for additional energy contribution 60 wave(jj) = sign(wave(jj)) * sqrt( wave(jj) ^ 2 + (velamp * exp( alpha * jjj * 10e-6 ) * sin( 2 * pi * jjj * 10e-6 / lambda)) ^ 2 ); 61 jjj = jjj + 1; 62 end 63 end 64 65 %Draw fingers 66 xx = i * lambda; 67 y = -(velamp):(velamp/20):(velamp); 68 if plotstuff 69 plot( xx, y, 'bx' ); 70 hold on; 71 plot( xx + lambda / 2, y, 'bx' ); 72 end 73 74 %Draw wave 75 xx = ((i - 0.25) * lambda):10e-6:((totfingpairs+1) * lambda); 76 if plotstuff 77 h(1) = plot( xx, wave(1:length(xx)), 'b' ); 78 end 79 tin = round( xx(1) / 10e-6 ); 80 tlen = round( 2 * l / 10e-6 ); 81 cwave = wave(1:tlen); 82 twave(tin:(tin + tlen - 1)) = sign(cwave) .* sqrt(twave(tin:(tin + tlen 1)).^2 + cwave.^2); %Big wave 83 end 84 85 x = 0:10e-6:l; 86 if plotstuff 87 h(2) = plot( x, twave(1:length(x)), 'color', [0 0 0.5] ); 88 end 89 90 %Receiving fingers 91 for i = 1:recfingpairs 92 93 %Draw fingers 94 xx = (transfingpairs + i + 1) * lambda;  195  95 y = -(velamp):(velamp/20):(velamp); 96 97 if plotstuff 98 plot( xx, y, 'rx' ); 99 hold on; 100 plot( xx + lambda / 2, y, 'rx' ); 101 end 102 103 %Remove power from wave 104 tin = round( xx / 10e-6 ); 105 twave(tin:end) = sign( twave(tin:end) ) .* sqrt( twave(tin:end) .^ 2 .* ( 1 - k ^ 2 ) ); 106 end 107 108 x = 0:10e-6:l; 109 if plotstuff 110 h(3) = plot( x, twave(1:length(x)), 'color', [0.5 0 0] ); 111 end 112 113 %Reflector 114 115 %Draw fingers 116 xx = (totfingpairs + 1) * lambda; 117 y = -(velamp*2):(velamp/20):(velamp*2); 118 if plotstuff 119 plot( xx, y, 'gx' ); 120 end 121 122 %Now generate wave in opposite direction 123 xstart = xx / 10e-6; 124 xstop = xstart + ( recfingpairs + 1 ) * lambda / 10e-6; 125 nwave = zeros( length(twave), 1 )'; 126 for i = xstart:xstop 127 nwave(round(xstart * 2 - i + 1)) = ref * twave(round(i - 2)); 128 end 129 130 x = 10e-6 * ((2*xstart-xstop+1+0.25*lambda/10e-6):(xstart)); 131 if plotstuff 132 h(4) = plot( x, nwave(round(x/10e-6)), 'g' ); 133 end 134 135 %Final receiving wave 136 rwave = twave + nwave; 137 x = 10e-6 * ((2*xstart-xstop+1+0.25*lambda/10e-6):xstart); 138 if plotstuff 139 h(5) = plot( x, rwave(round(x/10e-6)), 'color', [0 0.5 0], 'linewidth', [1] ); 140 end 141  196  142 %Calculate final received power and stability - TODO - fix? 143 xx = round( x / 10e-6 ); 144 ewave(1:round(l/10e-6), transfingpairs) = zeros(round(l/10e-6), 1)'; 145 ewave(xx, transfingpairs) = sign( rwave(xx) ) .* sqrt( ( rwave(xx) .^ 2 .* (k + 1) ^ 2 ) .* k ^ 2 ); 146 recpwr(transfingpairs) = sum( abs( ewave(:, transfingpairs) ) ) / sum( ewave (:, transfingpairs) ~= 0 ); 147 148 if plotstuff 149 set( gca, 'fontsize', 14 ); 150 title( 'Simulation of Wave Generation, Propagation, and Absorbtion' ); 151 legend( h, 'Each transmitting wave', 'Total transmitting wave', 'Receiving wave with power removed', 'Reflected wave', 'Total receiving wave', 'Location', 'Best' ); 152 ylabel( 'Out of Plane Velocity (m/s)' ); 153 xlabel( 'Displacement (m)' ); 154 end 155 end 156 157 %Plot ewaves together 158 if plotstuff 159 figure( 'Color', [1 1 1] ); 160 title( 'Electronic waveforms' ); 161 xlabel( 'Displacement (m)' ); 162 ylabel( 'Amplitude (m/s)' ); 163 hnew = plot( ewave ); 164 legs = []; 165 for i = 1:size( ewave, 2 ) 166 legs{i} = sprintf( 'Rec Fingers: %d, Sum: %f', size( ewave, 2 ) - i + 1, recpwr(i) ); 167 end 168 legend( legs, 'Location', 'Best' ); 169 end 170 171 for mi = 1:100 172 xi = mi / 100 * totfingpairs; 173 pwrplot(mi, j) = interp1( recpwr, xi ); 174 end 175 176 %Standard deviation 177 ewavedev = []; 178 for r = 1:size(ewave, 2) 179 samples = []; 180 for t = 1:totfingpairs 181 s = ewave(round(t * lambda / 10e-6), r); 182 if s ~= 0 183 samples(end + 1) = s; 184 end 185 end  197  186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234  ewavedev(r) = ( std(samples - mean(samples) ) ) / mean(samples); end for mi = 1:100 xi = mi / 100 * totfingpairs; devplot(mi, j) = interp1( ewavedev, xi ); end end %Sensitivity study plot figure( 'Color', [1 1 1] ); y = (1:size(pwrplot,1)) / 100; x = paramlist; surf( x, y, pwrplot ); %title( 'Sensitivity Study of Attenuation' ); ylabel( 'Trans/Total finger ratio' ); xlabel( 'Attenuation (dB/cm/MHz)' ); zlabel( 'Acoustic Amplitude (arb)' ); view( -59.5, 22 ); figure( 'Color', [1 1 1] ); contourf( y, x, pwrplot', 50, 'edgecolor', 'none' ); %title( 'Sensitivity Study of Attenuation' ); ylabel( 'Attenuation (dB/cm/MHz)' ); xlabel( 'Trans/Total finger ratio' ); zlabel( 'Acoustic Amplitude (arb)' ); colorbar; %Deviation study plot figure( 'Color', [1 1 1] ); y = (1:size(pwrplot,1)) / 100; x = paramlist; surf( x, y, devplot ); %title( 'Normalized Receiver Deviation' ); ylabel( 'Trans/Total finger ratio' ); xlabel( 'Attenuation (dB/cm/MHz)' ); zlabel( 'Normalized Amplitude' ); view( -59.5, 22 );  %Interpolate for trend fitting %x = (1:size( pwrplot, 2 ))'; %xx = linspace( 1, size( pwrplot, 2 ), 100 ); %for i = 1:size( pwrplot, 2 ) % pfit = polyfit( x, pwrplot(:,i), 2 ); % maxplotx(i) = -pfit(2) / 2 / pfit(1); % maxploty(i) = -(pfit(2) ^ 2 - 4 * pfit(1) * pfit(3)) / 4 / pfit(1); %end  198  235 236 237 238 239 240 241 242  %legs = []; %for i = 1:size( pwrplot, 2 ) % legs{i} = sprintf( 'Coefficient: %.2f', paramlist(i) ); %end %legend( legs, 'Location', 'Best' ); %plot( maxplotx, maxploty, 'x', 'linewidth', 2.0, 'color', [0 0 0] ); %plot( maxplotx, maxploty, 'linewidth', 2.0, 'color', [0 0 0] );  199  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  %Sensor optimizer % Examines sensitivity of all parameters given certain material properties clear all close all %Constants eta0 = 8.85418782e-12; %Material constants and sensor starting parameters PVDF.density = 1780; %kg/m^3 PVDF.YM = 1.375e9; %Young's Modulus PVDF.PR = 0.35; %Poisson ratio %PVDF.d = 26e-6; %Thickness, m PVDF.d = 18e-6; %Thickness, m %PVDF.d = 0.6e-6; %Thickness, m PVDF.atten = 19; %Attenuation, dB/cm/MHz PVDF.k = 0.12; %Electromechanical coupling coefficient PVDF.S = 50e6; %Stress, Pa %PVDF.S = 0; %Stress, Pa PVDF.etar = 7; %Relative permittivity lambda = 800e-6; %Wavelength of IDTs, m Vapp = 100; %Applied voltage, Vpp nTrans = 8; %Number of transmitter finger pairs nRec = 4; %Number of receiver finger pairs %nRec = 8; %Number of receiver finger pairs recImp = 1e6; %Receiver impedance fingWidth = lambda / 4; %Finger width of IDT fingLength = 0.008; %Finger length in m %Sensitivity analysis wgp = 1; %With ground plane vars = linspace(0.25, 4, 100); %Variation of each parameter %vars = linspace(0.8, 1.2, 3); %Variation of each parameter %Prep paramo(1) = PVDF.density; paramo(2) = PVDF.YM; paramo(3) = PVDF.PR; paramo(4) = PVDF.d; paramo(5) = PVDF.atten; paramo(6) = PVDF.k; paramo(7) = PVDF.S; paramo(8) = lambda; paramo(9) = Vapp; paramo(10) = nTrans; paramo(11) = nRec;  200  50 legs = {'Density', 'Young''s Modulus', 'Poisson''s Ratio', 'Thickness', 'Attenuation', 'Coupling Coeff', 'In-plane Stress', 'Wavelength', 'Applied V', '#T Fingers', '#R Fingers'}; 51 52 %Iterator and calculations 53 v = []; 54 f = []; 55 sig = []; 56 sensM = []; 57 sensD = []; 58 Q = []; 59 delfmin = []; 60 minM = []; 61 minD = []; 62 for p = 1:length(paramo) 63 for j = 1:length(paramo) 64 param(j) = paramo(j); 65 end 66 for i = 1:length(vars) 67 fprintf(1, 'Analyzing parameter %d, scaling %f\n', p, vars(i)); 68 param(p) = paramo(p) * vars(i); 69 if param(3) > 0.5 70 param(3) = 0.5; 71 end 72 param(10) = round(param(10)); 73 param(11) = round(param(11)); 74 75 %Calculator - resonance frequency 76 T = param(7) * param(4); 77 B = 2 * pi / param(8); 78 Eprime = param(2) / (1 - param(3) ^ 2); 79 D = Eprime * (param(4) ^ 3) / 12; 80 M = param(1) * param(4); 81 v(i,p) = sqrt( (T + B ^ 2 * D) / M ); 82 f(i,p) = v(i,p) / param(8); 83 84 %Mass and stiffness sensitivity 85 sensM(i,p) = -1 / 2 / M; 86 sensD(i,p) = (B ^ 2) / 2 / ((B ^ 2) * D + T); 87 88 %Amplitude 89 l = round(param(8) * 1e6); 90 l = l + mod(l,2); 91 x = 1:((param(10) + 2 + param(11)) * l); %1 um resolution 92 y = 0 * x; 93 alpha = param(5) / 8.685 / 1e4 * (f(i,p) / 1e6); %Convert to /um 94 95 %Calculate amplitude/power scaling coefficient 96 cap = eta0 * PVDF.etar * 2 * fingLength * fingWidth / param(4);  201  97 energy = 1/2 * cap * (param(9) / 2) ^ 2; 98 scl = param(6) ^ 2; 99 100 %Generation/Transmitters 101 for j = 1:(param(10) * 2 - 1) %Half wavelength steps 102 x0 = 1 + (j - 1) * l / 2; 103 sgn = pi * mod(j - 1, 2); 104 for k = x0:max(x) 105 wave = exp( -alpha * (k - x0) ) * sin( 2 * pi * (k - x0) / ); 106 y(k) = sign(wave) * sqrt( y(k) ^ 2 + scl * energy * wave ^ 107 end 108 end 109 110 %Receivers 111 x0 = (param(10) + 2) * l; 112 xend = (param(10) + 2 + param(11)) * l; 113 rec = []; 114 for k = x0:xend 115 after = sign(y(k)) * sqrt( y(k) ^ 2 - scl * y(k) ^ 2 ); 116 rec(k - x0 + 1) = sign(y(k)) * sqrt( scl * y(k) ^ 2 ); 117 y(k) = after; 118 end 119 120 avgpwr = mean(rec .^ 2); 121 sumpwr = zeros(l,1)'; 122 for k = 1:param(11) 123 sumpwr = sumpwr + rec(((k - 1) * l + 1):(k * l)) .^ 2; 124 end 125 126 sig(i,p) = max(sumpwr .^ 0.5); 127 128 %Q-Factor - Kolsky model 129 alpha = param(5) / 8.685 * 100 * (f(i,p) / 1e6); %Units of per 130 w = 2 * pi * f(i,p); 131 Q(i,p) = 0.5 * (w / (alpha * v(i,p)) - (alpha * v(i,p)) / w) / 2 / 132 Q(i,p) = Q(i,p) * (param(10) / nTrans) * (param(11) / nRec); inversely proportional 133 134 %Noise Floor 135 signf(i,p) = 10e-6; %+/- Volts, measured 136 137 %Combination 138 sigV = sqrt( sig(i,p) * recImp ); 139 a = sigV * 1.1684 / (f(i,p) / Q(i,p)) ^ 2; 140 fnoise = 2 * sqrt(signf(i,p) / a); %+/141 delfmin(i,p) = 3 * fnoise; 142 minD(i,p) = delfmin(i,p) / f(i,p) / sensD(i,p); 143 minM(i,p) = -delfmin(i,p) / f(i,p) / sensM(i,p);  202  l + sgn 2 );  metre pi; %Roughly  144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192  end end %Normalize for i = 1:length(param) sigSF = interp1(vars, sig(:,i), 1) sig(:,i) = sig(:,i) / sigSF; sensMSF = interp1(vars, sensM(:,i), 1); sensM(:,i) = sensM(:,i) / sensMSF; sensDSF = interp1(vars, sensD(:,i), 1); sensD(:,i) = sensD(:,i) / sensDSF; QSF = interp1(vars, Q(:,i), 1); Q(:,i) = Q(:,i) / QSF; minDSF = interp1(vars, minD(:,i), 1); minD(:,i) = minD(:,i) / minDSF; minMSF = interp1(vars, minM(:,i), 1); minM(:,i) = minM(:,i) / minMSF; end %Plots colororder = [ 0.00 0.00 1.00 0.00 0.50 0.00 1.00 0.00 0.00 0.00 0.75 0.75 0.75 0.00 0.75 0.75 0.75 0.00 0.25 0.25 0.25 0.75 0.25 0.25 0.95 0.95 0.00 0.25 0.25 0.75 0.75 0.75 0.75 0.00 1.00 0.00 0.76 0.57 0.17 0.54 0.63 0.22 0.34 0.57 0.92 1.00 0.10 0.60 0.88 0.75 0.73 0.10 0.49 0.47 0.66 0.34 0.65 0.99 0.41 0.23 ]; set(0,'DefaultAxesColorOrder',colororder) %Signal Strength figure( 'Color', [1 1 1] ); set( gca, 'Fontsize', 16 ); plot( vars, sig, 'Linewidth', 2 ); legend( legs );  203  193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 ); 237 238 239 240  xlabel( 'Input Variation' ); ylabel( 'Normalized Output Response' ); %title( 'Signal Strength' ); text( 0, 0.8 * max(max(sig)), sprintf( 'Current: %f uW', sigSF * 1e6 ) ); %Mass sensitivity figure( 'Color', [1 1 1] ); set( gca, 'Fontsize', 16 ); plot( vars, sensM, 'Linewidth', 2 ); legend( legs ); xlabel( 'Input Variation' ); ylabel( 'Normalized Output Response' ); %title( 'Mass Sensitivity' ); text( 0, 0.8 * max(max(sensM)), sprintf( 'Current: %f cm^2/g', sensMSF * 10 ) ); %Stiffness sensitivity figure( 'Color', [1 1 1] ); set( gca, 'Fontsize', 16 ); plot( vars, sensD, 'Linewidth', 2 ); legend( legs ); xlabel( 'Input Variation' ); ylabel( 'Normalized Output Response' ); %title( 'Stiffness Sensitivity' ); text( 0, 0.8 * max(max(sensD)), sprintf( 'Current: %f /Nm', sensDSF ) ); %Quality Factor figure( 'Color', [1 1 1] ); set( gca, 'Fontsize', 16 ); plot( vars, Q, 'Linewidth', 2 ); legend( legs ); xlabel( 'Input Variation' ); ylabel( 'Normalized Output Response' ); %title( 'Quality Factor' ); text( 0, 0.8 * max(max(Q)), sprintf( 'Current: %f', QSF ) ); %Minimum measurable mass change figure( 'Color', [1 1 1] ); set( gca, 'Fontsize', 16 ); plot( vars, minM, 'Linewidth', 2 ); legend( legs ); xlabel( 'Input Variation' ); ylabel( 'Normalized Output Response' ); %title( 'Minimum Measurable Mass Change' ); text( 0, 0.8 * max(max(minM)), sprintf( 'Current: %f ug/cm^2', minMSF / 10 * 1e6 )  %Minimum measurable stiffness change figure( 'Color', [1 1 1] ); set( gca, 'Fontsize', 16 );  204  241 242 243 244 245 246 247 248  plot( vars, minD, 'Linewidth', 2 ); legend( legs ); xlabel( 'Input Variation' ); ylabel( 'Normalized Output Response' ); %title( 'Minimum Measurable Stiffness Change' ); text( 0, 0.8 * max(max(minD)), sprintf( 'Current: %e Nm', minDSF ) );  205  1 2 3 4 5 6  % Compensate and present data from Sept, 2011 PVA layer load testing clear all; close all; dat = importdata( 'd:/Projects/thesis/Calibration Data/Sept09MassSenseTesting5.csv'  ); 7 8 datStart = 1; 9 datEnd = size( dat.data, 1 ); 10 stamps = false; 11 12 %Standard data 13 14 logFreq = dat.data(datStart:datEnd, 1); 15 logPhase = dat.data(datStart:datEnd, 2); 16 logAmplitude = dat.data(datStart:datEnd, 3); 17 logDelay1 = dat.data(datStart:datEnd, 4); 18 logDelay2 = dat.data(datStart:datEnd, 5); 19 logDelay3 = dat.data(datStart:datEnd, 6); 20 logOvenTemp1 = dat.data(datStart:datEnd, 7); 21 logFlowRate1 = dat.data(datStart:datEnd, 8); 22 logTime = logDelay2; 23 logKeithley = dat.data(datStart:datEnd, 9); 24 logOvenTemp2 = dat.data(datStart:datEnd, 10); 25 logFlowRate2 = dat.data(datStart:datEnd, 11); 26 logAgilent = dat.data(datStart:datEnd, 12); 27 logFreq2 = dat.data(datStart:datEnd, 13); 28 logPhase2 = dat.data(datStart:datEnd, 14); 29 logAmplitude2 = dat.data(datStart:datEnd, 15); 30 logDelay21 = dat.data(datStart:datEnd, 16); 31 logDelay22 = dat.data(datStart:datEnd, 17); 32 logDelay23 = dat.data(datStart:datEnd, 18); 33 34 % Break up into individual tests 35 % In order: None, 1 tape, None, 2 tape, None, 3 tape, None, 4 tape 36 37 %timesA = [12117 13344;14377 16045;18336 19655;19656 21057;23799 25247;25248 26629; 29507 30854;30855 32034;34134 35417]; 38 %timesB = [10838 12116;16046 17165;17166 18335;21058 22546;22547 23798;26630 28235; 28236 29506;32035 33274;33275 34133]; 39 %num = 9; 40 41 %In order: None, 2 layer, 4 layer, 8 layer, 16 layer, None, 1 layer, None 42 %timesA = [0001 1368;3118 4473;5937 7424;14487 16054;16055 18544;18545 20811;20812 22671;24124 25613]; 43 %timesB = [1369 3117;4474 5936;7425 9360;12766 14486;12766 14486;12766 14486;22672 24012;25614 27174]; 44 %num = 8;  206  45 46 %Smaller set of 18 um data 47 timesA = [0001 1368;3118 4473;5937 7424;14487 16054;16055 18544;20812 22671]; 48 timesB = [1369 3117;4474 5936;7425 9360;12766 14486;12766 14486;22672 24012]; 49 num = 6; 50 51 logData = logFreq; 52 53 fig1 = figure( 'Color', [1 1 1 ] ); 54 55 %subplot( 2, 1, 1 ); 56 57 xComp = 1:600; 58 for i = 1:num 59 xA = timesA(i, 2) - xComp; 60 yA = logData( xA ); 61 xB = timesB(i, 2) - xComp; 62 yB = logData( xB ); 63 mA(i) = mean( yA ); 64 mB(i) = mean( yB ); 65 66 %Optionally compensate using unloaded channel 67 %%%yA = yA + ( mA(1) - mA(i) ); 68 %%%yB = yB + ( mA(1) - mA(i) ); 69 yA = yA + ( mB(1) - mB(i) ); 70 yB = yB + ( mB(1) - mB(i) ); 71 72 mA(i) = mean( yA ); 73 mB(i) = mean( yB ); 74 stdA(i) = std( yA ); 75 stdB(i) = std( yB ); 76 77 %Extrapolate for 10 min long windows 78 79 plot( xComp + ( i - 1 ) * 600, yA, 'r.' ); 80 hold on 81 plot( xComp + ( i - 1 ) * 600, yB, 'b.' ); 82 83 %Show average values 84 disp( sprintf( 'For stage %d: Channel A = %.3f, Channel B = %.3f', i, mean( yA ), mean( yB ) ) ); 85 end 86 87 %Labels/Misc 88 set( gca, 'fontsize', 15 ); 89 xlabel( gca, 'Test Condition (5 min sample period per condition)' ); 90 ylabel( gca, 'Frequency (Hz)' ); 91 %leg = legend( 'Side A (Unloaded)', 'Side B (Loaded)', 'Location', 'Best' ); 92  207  93 %leg = legend( 'Side A (Loaded)', 'Side B (Unloaded)', 'Location', 'Best' ); 94 %set( leg, 'FontSize', 16 ); 95 set( gca, 'XTickLabel', '' ); 96 set( gca, 'XTick', [] ); 97 98 %Apply vertical division lines to plot 99 str = 'k:'; 100 %vline( 0, str, 'None' ); vline( 600, str, 'One' ); vline( 1200, str, 'None' ); vline( 1800, str, 'Two' ); vline( 2400, str, 'None' ); vline( 3000, str, 'Three' ); vline( 3600, str, 'None' ); vline( 4200, str, 'Four' ); vline( 4800, str, 'None' ); 101 vline( 0, str, 'None' ); vline( 600, str, 'Two' ); vline( 1200, str, 'Four' ); vline ( 1800, str, 'Eight' ); vline( 2400, str, 'Sixteen' ); vline( 3000, str, 'None' ); 102 axis( [0 3600 332000 346000] ); 103 %axis( [0 3600 334000 348000] ); %uncompensated 104 105 %Now do sensitivity calculation 106 break; 107 figure( 'Color', [1 1 1 ] ); 108 %subplot( 2, 1, 2 ); 109 110 %For 120 um 111 %msens = 6.925; %mg/cm^2/layer 112 %x = msens * [0 1 2 3 4]; 113 %y = [mB(1) mB(2) mB(4) mB(6) mB(8)] - mB(1); 114 115 %x = msens * [0 1 2 3]; 116 %y = ( [mB(1) mB(2) mB(4) mB(6)] - mB(1) ) / mB(1) * 100; 117 118 %For 18 um 119 msens = 0.0309956; %mg/cm^2/layer 120 x = msens * [0 2 4 8 16]; 121 y = ( [mA(1) mA(2) mA(3) mA(4) mA(5)] - mA(1) ) / mA(1) * 100; 122 123 %Error bars 124 stderror = stdA(1:5)/ mA(1) * 100; 125 h = errorbar( x, y, stderror, 'bo' ); 126 set( h, 'markersize', 5 ); 127 %plot( x, y, 'o' ); 128 129 hold on 130 131 %Labels/Misc 132 set( gca, 'fontsize', 15 ); 133 xlabel( gca, 'Applied mass (mg/cm^2)' ); 134 ylabel( gca, 'Normalized Frequency (%)' ); 135 136 %Theoretical Fit for data 137 138 x = msens * [0 2 4 8 16];  208  139 y = ([mA(1) mA(2) mA(3) mA(4) mA(5)]) * 800e-6; 140 141 dPVDF = [18e-6 18e-6 18e-6 18e-6 18e-6]; 142 B = 2 * pi / 800e-6; 143 PRPVDF = 0.35; 144 145 PVAdensity = 430; 146 PRPVA = 0.45; 147 148 num = 100; 149 YMPVDFlist = linspace( 1e9, 3e9, num ); %From polymber handbook 150 YMPVAlist = linspace( 1e9, 3e9, num ); %Other sources http://www.google. ca/url?sa=t&rct=j&q=polyvinyl%20alcohol%20thin%20film%20young%27s% 20modulus&source=web&cd=2&ved=0CCgQFjAB&url=http%3A%2F%2Fmmadou.eng.uci.edu%2Fdocs% 2Fpublications%2F2011%2520Chen%2520Mechanical%2520characterizations%2520of%2520cast% 2520Poly(3%2C4-ethylenedioxythiophene).pdf&ei=5IJWT6y-CPLoiAKY-rW0Bw&usg=AFQjCNEd1Xsko5Ggrdp7wfkSZMfiReu7Q&cad=rja 151 msenslist = linspace( 0.01, 0.1, num ); 152 153 besterror = 1e15; 154 besth = 1; 155 besti = 1; 156 bestj = 1; 157 bestk = 1; 158 159 %Find best fit some of the parameters 160 figure( 'Color', [1 1 1] ); 161 for h = 1:num 162 h 163 for i = 1:num 164 for j = 1:num 165 YMPVDF = YMPVDFlist(h); 166 YMPVA = YMPVAlist(i); 167 % msens = msenslist(j); 168 % x = msens * [0 2 4 8 16]; 169 S1 = 125e6; 170 171 dPVA = x / PVAdensity / 100; %Density of PVA in mg/cm^3, should give thickness in cm, then divide by 100 for m 172 T = S1 * dPVDF - 2e6 * dPVA; 173 174 %Stiffness calculations 175 EprimePVDF = YMPVDF / (1 - PRPVDF ^ 2); 176 EprimePVA = YMPVA / (1 - PRPVA ^ 2); 177 for ii = 1:length(x) 178 h0 = 0; 179 h1 = dPVA(ii); 180 h2 = dPVA(ii) + dPVDF(ii); 181 x0 = ( EprimePVA * ( h1 ^ 2 - h0 ^ 2 ) + EprimePVDF * ( h2 ^2 - h1 ^  209  2 ) ) / ( 2 * ( EprimePVA * ( h1 - h0 ) + EprimePVDF * ( h2 - h1 ) ) ); 182 D(ii) = 1/3 * ( EprimePVA * ( ( h1 - x0 ) ^ 3 - ( h0 - x0 ) ^ 3 ) + EprimePVDF * ( ( h2 - x0 ) ^ 3 - ( h1 - x0 ) ^ 3 ) ); 183 end 184 M = dPVDF * 1780 + dPVA * PVAdensity; 185 v = sqrt( ( T + B ^ 2 * D ) ./ M ); 186 187 terror = 0; 188 for c = 1:5 189 terror = terror + ( v(c) - y(c) ) ^ 2; 190 end 191 192 if( terror < besterror ) 193 besterror = terror 194 besth(end+1) = h; 195 besti(end+1) = i; 196 bestj(end+1) = j; 197 198 plot( x, y, 'b'); 199 hold on 200 plot( x, v, 'r'); 201 hold off 202 drawnow; 203 end 204 end 205 end 206 end 207 YMPVDFlist(besth(end)) 208 YMPVAlist(besti(end)) 209 msenslist(bestj(end)) 210 211 break; 212 213 YM = 2.65e9; 214 PVAdensity = 420; 215 S1 = 125e6; 216 217 xshort = x; 218 x = linspace( x(1), x(5), 100 ); 219 dPVDF = 18e-6 * ones( length(x), 1 )'; 220 221 dPVA = x / PVAdensity / 100; %Density of PVA in mg/cm^3, should give thickness in cm, then divide by 100 for m 222 Eprime = YM / (1 - PR ^ 2); 223 T = S1 * dPVDF - 2e6 * dPVA; 224 D = Eprime / 12 * (dPVDF + dPVA) .^ 3; 225 M = dPVDF * 1780 + dPVA * PVAdensity; 226 v = sqrt( ( T + B ^ 2 * D ) ./ M ); 227  210  228 sf = v(1); %Scaling factor and offset 229 v = ( v - v(1) ) / sf * 100; 230 plot( x, v, 'r', 'linewidth', [2.0] ); 231 232 %Now extrpolate linear function for low-loading sensitivity 233 234 %Remove effects of PVA on tension and stiffness, recalculate 235 dPVDF = 18e-6 * ones( length(xshort), 1 )'; 236 dPVA = xshort / PVAdensity / 100; %Density of PVA in mg/cm^3, should give thickness in cm, then divide by 100 for m 237 Eprime = YM / (1 - PR ^ 2); 238 M = dPVDF * 1780 + dPVA * PVAdensity; 239 240 T = S1 * dPVDF - 2e6 * dPVA; 241 D = Eprime / 12 * (dPVDF + dPVA) .^ 3; 242 v1 = sqrt( ( T + B ^ 2 * D ) ./ M ); 243 244 T = S1 * dPVDF; 245 D = Eprime / 12 * (dPVDF) .^ 3; 246 v2 = sqrt( ( T + B ^ 2 * D ) ./ M ); 247 248 compData = y + (v2 - v1); 249 250 sf = compData(1); %Scaling factor and offset 251 compData = ( compData - sf ) / sf * 100; 252 %plot( x, v, '--', 'linewidth', [2.0], 'color', [0 0.5 0] ); 253 254 stderror = stdA(1:5)/ mA(1) * 100; 255 h = errorbar( xshort, compData, stderror, 'go' ); 256 set( h, 'markersize', 5 ); 257 258 p = polyfit( xshort(1:2), compData(1:2), 1 ); 259 yfit = polyval( p, xshort ); 260 plot( xshort, yfit, 'g' ); 261 disp( sprintf( 'Sensitivity: %f', p(1) * 10 ) ); %Scale to cm^2/g 262 263 %legend( 'Experimental', 'Theoretical Fit', 'Mass-only Effect' ); 264 legend( 'Experimental', 'Theoretical Fit' ); 265 %axis( [0 0.5 -1.7 0] ); 266 267 %Tack on theoretical fit to first figure 268 if 1 == 0 269 figure( fig1 ); 270 271 v = v / 100 * sf + sf; 272 f = interp1( x, v, xshort ) / 800e-6; 273 274 x = 1:600; 275 plot( x, f(1), '.', 'color', [0 0.5 0] );  211  276 x = 601:1200; 277 plot( x, f(2), '.', 'color', [0 0.5 0] 278 x = 1201:1800; 279 plot( x, f(3), '.', 'color', [0 0.5 0] 280 x = 1801:2400; 281 plot( x, f(4), '.', 'color', [0 0.5 0] 282 x = 2401:3000; 283 plot( x, f(5), '.', 'color', [0 0.5 0] 284 x = 3001:3600; 285 plot( x, f(1), '.', 'color', [0 0.5 0] 286 287 leg = legend( 'Side A (Loaded)', 'Side 'Best' ); 288 set( leg, 'FontSize', 10 ); 289 end 290  212  ); ); ); ); ); B (Unloaded)', 'Theoretical', 'Location',  1 % Calculate Time of Flight Performance based on measurements 2 3 clear all; 4 5 dat = importdata( 'C:/Projects/pvdfsensor/Calibration Data/Nov08TOF120umDedecayStudy.csv' ); 6 7 datStart = 1; 8 datEnd = size( dat.data, 1 ); 9 10 %Standard data 11 12 logFreq = dat.data(datStart:datEnd, 1); 13 logPhase = dat.data(datStart:datEnd, 2); 14 logAmplitude = dat.data(datStart:datEnd, 3); 15 logDelay(:,1) = dat.data(datStart:datEnd, 4); 16 logDelay(:,2) = dat.data(datStart:datEnd, 5); 17 logDelay(:,3) = dat.data(datStart:datEnd, 6); 18 logOvenTemp1 = dat.data(datStart:datEnd, 7); 19 logFlowRate1 = dat.data(datStart:datEnd, 8); 20 logKeithley = dat.data(datStart:datEnd, 9); 21 logOvenTemp2 = dat.data(datStart:datEnd, 10); 22 logFlowRate2 = dat.data(datStart:datEnd, 11); 23 logAgilent = dat.data(datStart:datEnd, 12); 24 logFreq2 = dat.data(datStart:datEnd, 13); 25 logPhase2 = dat.data(datStart:datEnd, 14); 26 logAmplitude2 = dat.data(datStart:datEnd, 15); 27 logDelay21 = dat.data(datStart:datEnd, 16); 28 logDelay22 = dat.data(datStart:datEnd, 17); 29 logDelay23 = dat.data(datStart:datEnd, 18); 30 logDelay(:,4) = dat.data(datStart:datEnd, 19); 31 logDelay(:,5) = dat.data(datStart:datEnd, 20); 32 logDelay(:,6) = dat.data(datStart:datEnd, 21); 33 logDelay(:,7) = dat.data(datStart:datEnd, 22); 34 35 %Order of events: 36 %2 min normal 37 %1 min +30 Hz shift (700 Hz) 38 %1 min normal 39 %1 min +60 Hz shift (1400 Hz) 40 %1 min normal 41 %1 min +90 Hz shift (2100 Hz) 42 %1 min normal 43 %1 min +1 sample shift (20 ns) 44 %1 min normal 45 %1 min +1 sample shift (40 ns) 46 %1 min normal 47 %1 min +1 sample shift (60 ns) 48 %1 min normal  213  49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97  %Order of tests: %1. Peak detect %2. BFSK cos %3. Hilbert Transform %4. Zero cross %5. BFSK Goertzel %6. DFT Freq/Phase %7. Cross Correlation %For pulse train, 120 um / many finger: %startSample = 24876; %startSample = 2009; startSample = 1904; %logDelay(:,5) = logDelay(:,5) / 1000; %For 6@500kHz + 2@600kHz, 120 um / many finger: %startSample = 28475; numtests = 9; for i = 1:numtests switch( i ) case 8 datasource = logFreq; case 9 datasource = logPhase; otherwise datasource = logDelay(:,i) * 20e-9; end sample = datasource(startSample:(startSample+1680)); samplePlot(:,i) = sample(60:1620) - mean( sample(60:180) ); %STEP 1 - Noise floor: noiseFloor(i) = std( sample(60:180) ); %30-90 second mark noiseSample(:,i) = sample(60:180) - mean( sample(60:180) ); %STEP 2 - Frequency excitation +30 Hz lvl1 = mean( sample(120:180) ); lvl2 = mean( sample(390:450) ); exFreq1(i) = mean( sample(270:330) ) - ( lvl1 + lvl2 ) / 2; %STEP 3 - Frequency excitation +60 Hz lvl1 = mean( sample(390:450) ); lvl2 = mean( sample(630:690) ); exFreq2(i) = mean( sample(510:570) ) - ( lvl1 + lvl2 ) / 2; %STEP 4 - Frequency excitation +90 Hz lvl1 = mean( sample(630:690) );  214  98 lvl2 = mean( sample(870:930) ); 99 exFreq3(i) = mean( sample(750:810) ) - ( lvl1 + lvl2 ) / 2; 100 101 %STEP 5 - +1 sample 102 lvl1 = mean( sample(870:930) ); 103 lvl2 = mean( sample(1110:1170) ); 104 exSample1(i) = mean( sample(990:1050) ) - ( lvl1 + lvl2 ) / 2; 105 106 %STEP 6 - +2 sample 107 lvl1 = mean( sample(1110:1170) ); 108 lvl2 = mean( sample(1350:1410) ); 109 exSample2(i) = mean( sample(1230:1290) ) - ( lvl1 + lvl2 ) / 2; 110 111 %STEP 7 - +3 sample 112 lvl1 = mean( sample(1350:1410) ); 113 lvl2 = mean( sample(1590:1650) ); 114 exSample3(i) = mean( sample(1470:1530) ) - ( lvl1 + lvl2 ) / 2; 115 end 116 117 %Correction for Hilbert transform - TODO 118 % samplePlot(:,3) = samplePlot(:,3) * 1000; 119 % noiseFloor(3) = noiseFloor(3) * 1000; 120 % noiseSample(:,3) = noiseSample(:,3) * 1000; 121 % exFreq(3) = exFreq(3) * 1000; 122 % exInverse(3) = exInverse(3) * 1000; 123 % exPixel(3) = exPixel(3) * 1000; 124 125 % Build overall shifted plot 126 figure( 'Color', [1 1 1 ] ); 127 ns = samplePlot(1:(end-1),1:7); 128 plot( ns ); 129 title( 'Superimposed Data From Delay Tests' ); 130 ylabel( 'Time (s)' ); 131 xlabel( 'Sample' ); 132 133 leg = legend( 'Peak Detect', 'BFSK cos', 'Hilbert', 'Zero Cross', 'BFSK Goertzel', 'DFT Freq/Phase', 'Cross Cor', 'Location', 'Best' ); 134 set( leg, 'FontSize', 10 ); 135 136 % Build comparative noise plot 137 138 figure( 'Color', [1 1 1 ] ); 139 ns = noiseSample(1:(end-1),1:7); 140 plot( ns ); 141 title( 'Delay Time Noise for Different Methods' ); 142 ylabel( 'Time (s)' ); 143 xlabel( 'Sample' ); 144 145 leg = legend( 'Peak Detect', 'BFSK cos', 'Hilbert', 'Zero Cross', 'BFSK Goertzel',  215  'DFT Freq/Phase', 'Cross Cor', 'Location', 'Best' ); 146 set( leg, 'FontSize', 10 ); 147 148 % Build noise and signal matrices 149 150 outM = [noiseFloor' exFreq1' exFreq2' exFreq3' exSample1' exSample1']; 151 snrM = 20 * log10( abs( [(exFreq1'./noiseFloor') (exFreq2'./noiseFloor'/2) (exFreq3'./noiseFloor'/3) (exSample1'./noiseFloor') (exSample2'./noiseFloor'/2) (exSample3'./noiseFloor'/3)] ) ); 152 153 154 155  216  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  % For loading sensor data from VisualDSP exports clear all; close all fid = fopen( 'D:\Projects\Thesis\Blackfin\SensorData\Config1.dat' ); i = 1; data = []; while ~feof( fid ) l = str2double( fgetl( fid ) ); if( isnan( l ) == false ) data( i ) = l; i = i + 1; end end %win = hann( 500 ); win = ones( 500, 1 ); for i = 1:(length(data) / 500) for j = 1:500 wave(j, i) = data((i-1)*500 + j); end wavefft(:, i) = abs( fft( wave(:, i) .* win ) ); end figure xmin = 2; xmax = 20; for i = 1:size(wave, 2) x = (0:499) * 50e6 / 500; plot( x(xmin:xmax), wavefft(xmin:xmax, i) ); hold on end % Interpolate avgfft = zeros( size(wave, 1), 1 ); infactor = 100; for i = 1:size(wave, 2) avgfft = avgfft + wavefft(:, i ) / size(wave, 2 ); end if( 1 == 1 ) yy = interp( avgfft, infactor, 3 ); xx = interp( x, infactor, 2 ); xxmin = (xmin-1) * infactor; xxmax = (xmax-1) * infactor; else yy = avgfft;  217  50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85  xx = x; xxmin = xmin; xxmax = xmax; end figure plot( xx(xxmin:xxmax), yy(xxmin:xxmax) ); title( 'Frequency Spectrum of Signal' ); xlabel( 'Frequency (Hz)' ); ylabel( 'Amplitude' ); [y i] = max( yy(xxmin:xxmax) ); freqcent = xx(xxmin + i - 1); freq3db1 = interp1( yy(xxmin:(xxmin+i-1)), xx(xxmin:(xxmin+i-1)), 0.707946 * y ); freq3db2 = interp1( yy((xxmin+i-1):xxmax), xx((xxmin+i-1):xxmax), 0.707946 * y ); Q = freqcent / ( freq3db2 - freq3db1 ); disp( disp( disp( disp(  sprintf( sprintf( sprintf( sprintf(  'Center Frequency = %f Hz', freqcent ) ); 'Left 3db Frequency = %f Hz', freq3db1 ) ); 'Right 3db Frequency = %f Hz', freq3db2 ) ); 'Quality Factor = %f', Q ) );  figure('Color',[1 1 1]); for i = 1:length(wave(1,:)) wave(:,i) = wave(:,i) - mean(wave(:,i)); end x = (1:500) / 500 * 10e-6; wave = wave * 2 / 65536; set(gca, 'Fontsize', 16); plot(x, wave); xlabel('Time (s)'); ylabel('Voltage (V)'); axis([0 10e-6 min(min(wave)) max(max(wave))]);  218  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  % LDV Attenuation calculator for Comsol Output clear all; close all; dat = importdata( '120um800umAtten.csv' ); vect = dat(6000:7600,4)'; width = length(vect); samplewidth = dat(2, 1) - dat(1, 1); xx = (1:width) * samplewidth; plot(vect) amp = ( max( vect ) - min( vect ) ) / 2; figure  %First approximation  % Now determine frequency numtests = 1000; x = 1:width; % First linearly compensate and shift to 0 linfit = polyfit( x, vect, 1 ); vectcomp = vect - polyval( linfit, x ); %vect = vectcomp; %OPTIONAL plot( xx, vect ); % Next locate points of zero crossing vectcompi = interp( vectcomp, 100 ); zeros = []; for i = 1:(width*100 - 1) if( vectcompi(i) < 0 && vectcompi(i + 1) > 0 ) zeros(end + 1) = i; end end % Now determine frequency from crossings for i = 1:(length( zeros ) - 1) periods(i) = zeros(i + 1) - zeros(i); end period = mean( periods ); f = width / period * 100; %Phase offset x = 1:width; phases = linspace( 0, 2 * pi, numtests ); for i = 1:numtests phase = phases(i);  219  50 phaseStrength(i) = sum( amp * cos( 2 * pi * f * x / width + phase ) .* vect ); 51 end 52 53 [b,i] = max( phaseStrength ); 54 phi = phases(i); 55 56 % Now amplitude and attenuation 57 58 numtests = 1000; 59 60 attentest = linspace( 0.1, 100, numtests ); %in per cm 61 amptest = linspace( 0.2 * amp, 5 * amp, numtests ); 62 63 for i = 1:numtests 64 for j = 1:numtests 65 stddev(i, j) = std( amptest(i) * exp( -attentest(j) * samplewidth * 100 * x ) .* cos( 2 * pi * f * x / width + phi ) - vect ); 66 end 67 end 68 69 [a,b] = min( stddev(:) ); 70 j = floor( b / numtests ); 71 i = mod( b, numtests ); 72 amp = amptest(i); 73 atten = attentest(j); 74 75 % Generate fit wave 76 for i = 1:width 77 outwave(i) = amp * exp( -atten * samplewidth * 100 * i ) * cos( 2 * pi * f * x(i) / width + phi ); 78 end 79 80 hold on 81 plot( xx, outwave, 'r' ); 82 83 title( 'Wave Amplitude vs. Position' ); 84 xlabel( 'Position (m)' ); 85 ylabel( 'Amplitude (m)' ); 86 legend( 'LDV Data', 'Calculated Fit Curve' ); 87 88 disp( sprintf( 'Amplitude: %f m', amp ) ); 89 disp( sprintf( 'Attenuation: %f /cm', atten ) ); 90 disp( sprintf( 'Attenuation: %f dB/cm', 8.6859 * atten ) ); 91 92 93 94  220  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  % Determine capacitance and electric field strength characteristics from % Comsol-generated data clear all; close all; V = 100; %Changing thickness thickness = []; cap = []; efield = zeros(1501, 8); for i = 1:10 %Filename %num = -15 + i * 20; num = 0 + i * 10; fname = sprintf( 'old/ml800t%d.csv', num ); dat = importdata( fname ); % Capacitance calculation Etot = dat(1, 5); thickness(i) = num * 1e-6; cap(i) = 2 * Etot / V ^ 2; %Electric field for j = 1:size(dat, 1) if dat(j, 4) > 0 break; end if isnan(dat(j, 4)) == 0 efield(j, i) = dat(j, 4); end end end efieldsum = sum( efield ); figure( 'Color', [1 1 1] ); y = linspace(0, 150e-6, 1501); efield(end,end) = -5e5; contourf( thickness * 1e6, y * 1e6, efield, 150, 'edgecolor', 'none' ); xlabel( 'PVDF Thickness (\mum)' ); ylabel( 'Z-axis Distance from Finger (\mum)' ); t = colorbar; set(get(t,'ylabel'),'String', 'Z-axis Electric Field (V/m)'); axis([10 100 0 100]); break;  221  50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98  figure( 'Color', [1 1 1] ); plot( thickness, efieldsum, 'o' ); title( 'Totalized Z-axis Electric Field vs. PVDF Thickness' ); ylabel( 'Totalized Electric Field (V/m)' ); xlabel( 'PVDF Thickness (m)' ); figure( 'Color', [1 1 1] ); plot( thickness, cap, 'o' ); title( 'Capacitance vs. PVDF Thickness' ); ylabel( 'Capacitance (F)' ); xlabel( 'PVDF Thickness (m)' ); %Changing lambda lambda = []; cap = []; efield = zeros(251, 7); for i = 1:7 %Filename fname = sprintf( 'l%dt25.csv', 200 + i * 200 ); dat = importdata( fname ); % Capacitance calculation Etot = dat(1, 5); lambda(i) = 200e-6 + i * 200e-6; cap(i) = 2 * Etot / V ^ 2; %Electric field for j = 1:size(efield, 1) if dat(j, 4) > 0 break; end if isnan(dat(j, 4)) == 0 efield(j, i) = dat(j, 4); end end end efieldsum = sum( efield ); figure( 'Color', [1 1 1] ); y = linspace(0, 250e-6, size(efield, 1)); contourf( lambda, y, efield, 50, 'edgecolor', 'none' ); title( 'Z-axis Electric Field Below Finger vs. Wavelength' ); ylabel( 'Z-axis Distance from Finger (m)' ); xlabel( 'Finger Wavelength (m)' ); colorbar figure( 'Color', [1 1 1] );  222  99 100 101 102 103 104 105 106 107 108 109 110 111 112  plot( lambda, efieldsum, 'o' ); title( 'Totalized Z-axis Electric Field vs. Wavelength' ); ylabel( 'Totalized Electric Field (V/m)' ); xlabel( 'Finger Wavelength (m)' ); figure( 'Color', [1 1 1] ); plot( lambda, cap, 'o' ); title( 'Capacitance vs. Wavelength' ); ylabel( 'Capacitance (F)' ); xlabel( 'Finger Wavelength (m)' );  223  1 %Simulate FPW behaviour 2 3 clear all; 4 5 %Settings 6 tstep = 0.1e-6; %Time step in s 7 tstop = 10e-6; %Stop time 8 thickness = 40e-6; 9 10 %Begin Comsol model code 11 12 import com.comsol.model.* 13 import com.comsol.model.util.* 14 15 model = ModelUtil.create('Model'); 16 17 model.modelPath('D:\Projects\Thesis\Comsol\FPWRev0'); 18 19 model.name('TDstudyMatlab.mph'); 20 21 ttmp = sprintf('%e [m]', thickness); 22 model.param.set('thickness', ttmp); 23 model.param.set('width', '100e-6 [m]'); 24 model.param.set('fin_length', '100e-6 [m]'); 25 model.param.set('lambda', '800e-6 [m]'); 26 model.param.set('fin_height', '10e-6 [m]'); 27 28 disp( 'Starting Comsol model generation...' ); 29 30 model.modelNode.create('mod1'); 31 32 disp( 'Compiling geometries...' ); 33 34 model.geom.create('geom1', 3); 35 model.geom('geom1').feature.create('blk1', 'Block'); 36 model.geom('geom1').feature.create('blk2', 'Block'); 37 model.geom('geom1').feature.create('blk3', 'Block'); 38 model.geom('geom1').feature.create('blk4', 'Block'); 39 model.geom('geom1').feature.create('blk5', 'Block'); 40 model.geom('geom1').feature.create('sph1', 'Sphere'); 41 model.geom('geom1').feature.create('cyl1', 'Cylinder'); 42 model.geom('geom1').feature.create('blk6', 'Block'); 43 model.geom('geom1').feature('blk1').set('pos', {'0' '0' '-thickness/2'}); 44 model.geom('geom1').feature('blk1').set('base', 'center'); 45 model.geom('geom1').feature('blk1').set('size', {'0.01' 'width' 'thickness'}); 46 model.geom('geom1').feature('blk2').set('pos', {'0' '0' 'fin_height / 2'}); 47 model.geom('geom1').feature('blk2').set('base', 'center'); 48 model.geom('geom1').feature('blk2').set('size', {'fin_length' 'width' 'fin_height'});  224  49 model.geom('geom1').feature('blk3').set('pos', {'lambda / 2' '0' 'fin_height / 2'}); 50 model.geom('geom1').feature('blk3').set('base', 'center'); 51 model.geom('geom1').feature('blk3').set('size', {'fin_length' 'width' 'fin_height'}); 52 model.geom('geom1').feature('blk4').set('pos', {'lambda' '0' 'fin_height / 2'}); 53 model.geom('geom1').feature('blk4').set('base', 'center'); 54 model.geom('geom1').feature('blk4').set('size', {'fin_length' 'width' 'fin_height'}); 55 model.geom('geom1').feature('blk5').set('pos', {'lambda * 3 / 2' '0' 'fin_height / 2'}); 56 model.geom('geom1').feature('blk5').set('base', 'center'); 57 model.geom('geom1').feature('blk5').set('size', {'fin_length' 'width' 'fin_height'}); 58 model.geom('geom1').feature('sph1').active(false); 59 model.geom('geom1').feature('sph1').set('pos', {'0' '0' '0'}); 60 model.geom('geom1').feature('sph1').set('r', '0.01/1.9'); 61 model.geom('geom1').feature('cyl1').set('pos', {'-0.01 * 1.05 / 2' '0' '0'}); 62 model.geom('geom1').feature('cyl1').set('axis', {'1' '0' '0'}); 63 model.geom('geom1').feature('cyl1').set('r', 'thickness * 5'); 64 model.geom('geom1').feature('cyl1').set('h', '0.01 * 1.05'); 65 model.geom('geom1').feature('blk6').active(false); 66 model.geom('geom1').feature('blk6').set('pos', {'0' '0' '-thickness/2'}); 67 model.geom('geom1').feature('blk6').set('base', 'center'); 68 model.geom('geom1').feature('blk6').set('size', {'0.01 * 1.05' 'width * 1.05' 'thickness * 10'}); 69 model.geom('geom1').run; 70 71 model.material.create('mat1'); 72 model.material('mat1').propertyGroup.create('StressCharge', 'Stress-charge form'); 73 model.material('mat1').selection.set([2]); 74 model.material.create('mat2'); 75 model.material('mat2').selection.set([3 4 5 6]); 76 model.material.create('mat3'); 77 model.material('mat3').propertyGroup('def').func.create('eta', 'Piecewise'); 78 model.material('mat3').propertyGroup('def').func.create('Cp', 'Piecewise'); 79 model.material('mat3').propertyGroup('def').func.create('rho', 'Analytic'); 80 model.material('mat3').propertyGroup('def').func.create('k', 'Piecewise'); 81 model.material('mat3').propertyGroup('def').func.create('cs', 'Analytic'); 82 model.material('mat3').selection.set([1]); 83 84 disp( 'Assigning physics...' ); 85 86 model.physics.create('pzd', 'PiezoelectricDevices', 'geom1'); 87 model.physics('pzd').feature('pzm1').feature.create('iss1', 'InitialStressandStrain', 3); 88 model.physics('pzd').feature('pzm1').feature('iss1').selection.set([2]); 89 model.physics('pzd').feature.create('roll1', 'Roller', 2); 90 model.physics('pzd').feature('roll1').selection.set([6 39]); 91 model.physics('pzd').feature.create('lemm1', 'LinearElasticModel', 3);  225  92 model.physics('pzd').feature('lemm1').selection.set([3 4 5 6]); 93 model.physics('pzd').feature.create('pot1', 'ElectricPotential', 2); 94 model.physics('pzd').feature('pot1').selection.set([11 12 13 14 15 16 25 26 27 28 29 30]); 95 model.physics('pzd').feature.create('gnd1', 'Ground', 2); 96 model.physics('pzd').feature('gnd1').selection.set([18 19 20 21 22 23 32 33 34 35 36 37]); 97 model.physics('pzd').feature.create('eqm1', 'ElectricalQuasistaticModel', 3); 98 model.physics('pzd').feature('eqm1').selection.set([1]); 99 100 disp( 'Building mesh...' ); 101 102 model.mesh.create('mesh1', 'geom1'); 103 model.mesh('mesh1').feature.create('ftet1', 'FreeTet'); 104 105 model.cpl.remove('int2'); 106 107 model.result.table.create('evl3', 'Table'); 108 109 model.view('view1').set('renderwireframe', true); 110 model.view('view1').set('transparency', 'on'); 111 112 disp( 'Compiling materials...' ); 113 114 model.material('mat1').name('PVDF'); 115 model.material('mat1').propertyGroup('def').set('density', '1778'); 116 model.material('mat1').propertyGroup('StressCharge').set('cE', {'3.61e9' '1.61e9' '1.42e9' '0' '0' '0' '1.61e9' '3.13e9' '1.31e9' '0' '0' '0' '1.42e9' '1.31e9' '1.63e9' '0' '0' '0' '0' '0' '0' '0.55e9' '0' '0' '0' '0' '0' '0' '0.59e9' '0' '0' '0' '0' '0' '0' '0.69e9'}); 117 model.material('mat1').propertyGroup('StressCharge').set('eES', {'0' '0' '0.0466' '0' '0' '0.0033' '0' '0' '-0.0157' '0' '0.0110' '0' '0.0159' '0' '0' '0' '0' '0'}); 118 model.material('mat1').propertyGroup('StressCharge').set('epsilonrS', {'6.6' '0' '0' '0' '8.3' '0' '0' '0' '7.3'}); 119 model.material('mat2').name('PEDOT'); 120 model.material('mat2').propertyGroup('def').set('youngsmodulus', '1e9'); 121 model.material('mat2').propertyGroup('def').set('poissonsratio', '0.35'); 122 model.material('mat2').propertyGroup('def').set('density', '1100'); 123 model.material('mat2').propertyGroup('def').set('relpermittivity', {'4' '0' '0' '0' '4' '0' '0' '0' '4'}); 124 model.material('mat3').name('Air'); 125 model.material('mat3').propertyGroup('def').func('eta').set('arg', 'T'); 126 model.material('mat3').propertyGroup('def').func('eta').set('pieces', {'200.0' '1600.0' '-8.38278E-7+8.35717342E-8*T^1-7.69429583E-11*T^2+4.6437266E-14*T^3-1.06585607 E-17*T^4'}); 127 model.material('mat3').propertyGroup('def').func('Cp').set('arg', 'T'); 128 model.material('mat3').propertyGroup('def').func('Cp').set('pieces', {'200.0' '1600.0' '1047.63657-0.372589265*T^1+9.45304214E-4*T^2-6.02409443E-7*T^3+1.2858961E10*T^4'});  226  129 model.material('mat3').propertyGroup('def').func('rho').set('expr', 'pA*0.02897/8. 314/T'); 130 model.material('mat3').propertyGroup('def').func('rho').set('args', {'pA' 'T'}); 131 model.material('mat3').propertyGroup('def').func('rho').set('dermethod', 'manual'); 132 model.material('mat3').propertyGroup('def').func('rho').set('argders', {'pA' 'd (pA*0.02897/8.314/T,pA)'; 'T' 'd(pA*0.02897/8.314/T,T)'}); 133 model.material('mat3').propertyGroup('def').func('rho').set('plotargs', {'pA' '' ''; 'T' '' ''}); 134 model.material('mat3').propertyGroup('def').func('k').set('arg', 'T'); 135 model.material('mat3').propertyGroup('def').func('k').set('pieces', {'200.0' '1600.0' '-0.00227583562+1.15480022E-4*T^1-7.90252856E-8*T^2+4.11702505E-11*T^37.43864331E-15*T^4'}); 136 model.material('mat3').propertyGroup('def').func('cs').set('expr', 'sqrt(1.4 *287*T)'); 137 model.material('mat3').propertyGroup('def').func('cs').set('args', {'T'}); 138 model.material('mat3').propertyGroup('def').func('cs').set('dermethod', 'manual'); 139 model.material('mat3').propertyGroup('def').func('cs').set('argders', {'T' 'd(sqrt (1.4*287*T),T)'}); 140 model.material('mat3').propertyGroup('def').func('cs').set('plotargs', {'T' '' ''}); 141 model.material('mat3').propertyGroup('def').set('relpermeability', {'1' '0' '0' '0' '1' '0' '0' '0' '1'}); 142 model.material('mat3').propertyGroup('def').set('relpermittivity', {'1' '0' '0' '0' '1' '0' '0' '0' '1'}); 143 model.material('mat3').propertyGroup('def').set('dynamicviscosity', 'eta(T[1/K]) [Pa*s]'); 144 model.material('mat3').propertyGroup('def').set('ratioofspecificheat', '1.4'); 145 model.material('mat3').propertyGroup('def').set('electricconductivity', {'0[S/m]' '0' '0' '0' '0[S/m]' '0' '0' '0' '0[S/m]'}); 146 model.material('mat3').propertyGroup('def').set('heatcapacity', 'Cp(T[1/K])[J/ (kg*K)]'); 147 model.material('mat3').propertyGroup('def').set('density', 'rho(pA[1/Pa],T[1/K]) [kg/m^3]'); 148 model.material('mat3').propertyGroup('def').set('thermalconductivity', {'k(T[1/K]) [W/(m*K)]' '0' '0' '0' 'k(T[1/K])[W/(m*K)]' '0' '0' '0' 'k(T[1/K])[W/(m*K)]'}); 149 model.material('mat3').propertyGroup('def').set('soundspeed', 'cs(T[1/K])[m/s]'); 150 model.material('mat3').propertyGroup('def').addInput('temperature'); 151 model.material('mat3').propertyGroup('def').addInput('pressure'); 152 153 model.physics('pzd').feature('pzm1').set('AdvMatRes', '1'); 154 model.physics('pzd').feature('pzm1').feature('iss1').set('Sil', {'10e6'; '0'; '0'; '0'; '0'; '0'; '0'; '0'; '0'}); 155 model.physics('pzd').feature('lemm1').set('minput_velocity_src', 'root.mod1.pzd. u_tX'); 156 model.physics('pzd').feature('pot1').set('V0', '0'); 157 model.physics('pzd').feature('eqm1').set('Fd_src', 'root.mod1.pzd.FdxX'); 158 model.physics('pzd').feature('eqm1').set('minput_velocity_src', 'root.mod1.pzd. u_tX'); 159 160 disp( 'Building mesh...' );  227  161 162 model.mesh('mesh1').feature('size').set('hauto', 3); 163 model.mesh('mesh1').run; 164 165 disp( 'Running first solution...' ); 166 167 model.result.table('evl3').name('Evaluation 3D'); 168 model.result.table('evl3').comments('Interactive 3D values'); 169 170 model.study.create('std1'); 171 model.study('std1').feature.create('time', 'Transient'); 172 173 model.sol.create('sol1'); 174 model.sol('sol1').study('std1'); 175 model.sol('sol1').attach('std1'); 176 model.sol('sol1').feature.create('st1', 'StudyStep'); 177 model.sol('sol1').feature.create('v1', 'Variables'); 178 model.sol('sol1').feature.create('t1', 'Time'); 179 model.sol('sol1').feature('t1').feature.create('fc1', 'FullyCoupled'); 180 model.sol('sol1').feature('t1').feature.create('d1', 'Direct'); 181 model.sol('sol1').feature('t1').feature.remove('fcDef'); 182 183 model.result.create('pg1', 'PlotGroup3D'); 184 model.result('pg1').feature.create('surf1', 'Surface'); 185 model.result('pg1').feature('surf1').feature.create('def', 'Deform'); 186 model.result.create('pg2', 'PlotGroup3D'); 187 model.result('pg2').feature.create('slc1', 'Slice'); 188 model.result.create('pg3', 'PlotGroup3D'); 189 model.result('pg3').feature.create('surf1', 'Surface'); 190 191 model.study('std1').feature('time').set('tlist', tstep); 192 193 model.sol('sol1').feature('st1').name('Compile Equations: Time Dependent'); 194 model.sol('sol1').feature('st1').set('studystep', 'time'); 195 model.sol('sol1').feature('v1').set('control', 'time'); 196 model.sol('sol1').feature('v1').feature('mod1_V').set('scalemethod', 'manual'); 197 model.sol('sol1').feature('v1').feature('mod1_V').set('scaleval', '100'); 198 model.sol('sol1').feature('v1').feature('mod1_u').set('scalemethod', 'manual'); 199 model.sol('sol1').feature('v1').feature('mod1_u').set('scaleval', '1e-2*0. 010636258740741499'); 200 model.sol('sol1').feature('t1').set('control', 'time'); 201 model.sol('sol1').feature('t1').set('tlist', tstep); 202 model.sol('sol1').feature('t1').set('timemethod', 'genalpha'); 203 model.sol('sol1').feature('t1').feature('d1').set('linsolver', 'pardiso'); 204 model.sol('sol1').runAll; 205 206 disp( 'Preparing results...' ); 207 208 model.result('pg1').name('Displacement (pzd)');  228  209 model.result('pg1').set('title', 'Surface: Total displacement (m) Surface Deformation: Displacement field (Material) '); 210 model.result('pg1').set('titleactive', false); 211 model.result('pg1').feature('surf1').feature('def').set('scale', '1.290774009210853 E7'); 212 model.result('pg1').feature('surf1').feature('def').set('scaleactive', false); 213 model.result('pg2').name('Potential (pzd)'); 214 model.result('pg2').set('title', 'Slice: Electric potential (V) '); 215 model.result('pg2').set('titleactive', false); 216 model.result('pg2').feature('slc1').set('expr', 'V'); 217 model.result('pg2').feature('slc1').set('unit', 'V'); 218 model.result('pg2').feature('slc1').set('descr', 'Electric potential'); 219 model.result('pg2').feature('slc1').set('quickxnumber', '50'); 220 model.result('pg3').set('title', 'Surface: Electric field norm Total electric energy (V/m) '); 221 model.result('pg3').set('titleactive', false); 222 model.result('pg3').feature('surf1').set('expr', 'pzd.normE'); 223 model.result('pg3').feature('surf1').set('unit', 'V/m'); 224 model.result('pg3').feature('surf1').set('descr', 'Electric field norm Total electric energy'); 225 226 %Now iterate through time steps 227 model.sol('sol1').feature('v1').set('initmethod', 'sol'); 228 model.sol('sol1').feature('v1').set('initsol', 'sol1'); 229 230 disp( 'Project set, starting iteration...' ); 231 232 %Prep 233 figure('Color', [1 1 1]); 234 tin = 0; 235 x = linspace(-0.004, 0.004, 500); 236 y = linspace(0, 0, 500); 237 z = linspace(-thickness / 2, -thickness / 2, 500); 238 239 x1 = linspace(0, 0, 500); 240 y1 = linspace(0, 0, 500); 241 z1 = linspace(-thickness, 0, 500); 242 243 V = []; 244 d = []; 245 tlist = []; 246 247 %Iterator, data collection 248 for i = 1:round(tstop/tstep) 249 tin = tin + tstep; 250 tlist(end + 1) = tin; 251 amp = sinc(2 * 500000 * tin) - 50000 / 500000 * sinc(2 * 50000 * tin); 252 model.physics('pzd').feature('pot1').set('V0', amp); 253  229  254 model.sol('sol1').runAll; 255 model.result('pg1').run; 256 mphplot( model, 'pg1', 'rangenum', 1 ); 257 drawnow 258 259 Vtmp = mphinterp(model, 'V', 'coord', [x;y;z]); %Voltage 260 V(:, i) = Vtmp(1, :); 261 dtmp = mphinterp(model, 'w', 'coord', [x;y;z]); %z-component displacement field 262 d(:, i) = dtmp(1, :); 263 vtmp = mphinterp(model, 'pzd.u_tZ', 'coord', [x;y;z]); %z-component velocity 264 v(:, i) = vtmp(1, :); 265 Etmp = mphinterp(model, 'pzd.intWe', 'coord', [x;y;z]); %total electrical energy 266 Et(:, i) = Etmp(1, :); 267 Etmp = mphinterp(model, 'pzd.Ex', 'coord', [x;y;z]); %Electric field along x-axis 268 Ex(:, i) = Etmp(1, :); 269 Etmp = mphinterp(model, 'pzd.Ez', 'coord', [x1;y1;z1]); %Electric field along z-axis beneath finger 270 Ez(:, i) = Etmp(1, :); 271 272 disp( sprintf( 'Iteration complete, time index %e, applying amplitude: %f', tin, amp ) ); 273 end 274 275 %Now draw useful plots 276 figure('Color', [1 1 1]); 277 contourf( x, tlist, d', 50, 'edgecolor', 'none' ); 278 title('Z-axis Displacement'); 279 ylabel('Time index (s)'); 280 xlabel('X-axis location (m)'); 281 colorbar; 282 283 figure('Color', [1 1 1]); 284 contourf( x, tlist, V', 50, 'edgecolor', 'none' ); 285 title('Potential along the X-axis'); 286 ylabel('Time index (s)'); 287 xlabel('X-axis location (m)'); 288 colorbar; 289 290 figure('Color', [1 1 1]); 291 contourf( x, tlist, Ex', 50, 'edgecolor', 'none' ); 292 title('Electric field along the X-axis'); 293 ylabel('Time index (s)'); 294 xlabel('X-axis location (m)'); 295 colorbar; 296 297 figure('Color', [1 1 1]);  230  298 299 300 301 302 303 304  contourf( z1, tlist, Ez', 50, 'edgecolor', 'none' ); title('Electric field along the Z-axis'); ylabel('Time index (s)'); xlabel('Z-axis location (m)'); colorbar;  231  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  % Process computed variables such as d, v, V, E, etc from Comsol TD study % Assumes appropriate variables are pre-loaded %First velocity and wavelength calculations %Find peaks in every time slot dwidth = size(d, 1); dtime = size(d, 2); dpeaks = []; for i = 1:dtime lpoint = d(1, i); climbing = 0; meanval = mean(d(:, i)); for j = 2:dwidth if d(j, i) > lpoint climbing = 1; end if (climbing == 1) && (d(j, i) < lpoint) && (d(j, i) > meanval) dpeaks(j, i) = d(j, i); climbing = 0; end lpoint = d(j, i); end end figure('Color', [1 1 1]); contourf( x, tlist, dpeaks', 50, 'edgecolor', 'none' ); %Separate into groups dgroupx = []; dgroupt = []; dgroupi = []; done = 0; g = 1; gi = 0; while done == 0 done = 1; %Find first available point for i = 1:dtime for j = (dwidth / 2):-1:1 if dpeaks(j, i) ~= 0 fits = 1; if done == 0 %Make sure this point belongs to the same line fits = 0; for k = 1:gi if (dgroupt(k, g) > i - 3) && (dgroupt(k, g) < i + 1) if (dgroupx(k, g) > j - 5) && (dgroupx(k, g) < j + 5) fits = 1;  232  50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98  end end end end if fits == 1 %Suck line out gi = gi + 1; dgroupx(gi, g) dgroupt(gi, g) dgroupi(gi, g) dpeaks(j, i) = end if done == 1 done = 0; end  of dpeaks = j; = i; = dpeaks(j, i); 0;  end end end if( gi > 20 ) g = g + 1; end gi = 0; end %Now make lines and plot figure('Color', [1 1 1]); plot( dgroupx, dgroupt, 'x' ); %Sort [i, j] = sort( sum(dgroupi), 2, 'descend'); dgroupi = dgroupi(:, j); dgroupx = dgroupx(:, j); dgroupt = dgroupt(:, j); p = []; px = []; pt = []; pi = []; for i = 1:4 goodx = []; goodt = []; for j = 1:size(dgroupi, 1) if (dgroupx(j, i) == 0) && (dgroupt(j, i) == 0) continue else goodx(end + 1) = dgroupx(j, i); goodt(end + 1) = dgroupt(j, i); end  233  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122  end p(:, i) = polyfit(goodx, goodt, 1); px(:, i) = 1:round(dwidth / 2); pt(:, i) = polyval(p(:, i), px(:, i)); pi(:, i) = sum(dgroupi(:, i)); end hold on plot( px, pt ); axis([0 dwidth 0 dtime]) vel = []; amp = []; legs = []; for i = 1:size(pi, 2) vel(i) = -1 / (p(1, i) * tstep / (x(2) - x(1))); amp(i) = pi(i); legs{i} = sprintf( 'Vel: %.0f m/s at %.1e', vel(i), amp(i)); end legend( legs, 'Location', 'Best' );  234  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  %Parse through PVA/Humidity data and perform theoretical calculations to %determine material/polymer properties. Uses .mat files in current %directory represents individual tests clear all close all %DATA COLLECTION SECTION %Collect list of files tests = what; Psat = 3.0; %kPa R = 8.31446; Mw = 18.02; %g/mol T = 24 + 273.15; %Temperature in Kelvin %Extract relevant data from all files disp( 'Loading data...' ); psensS = []; esensSL = []; esensSH = []; psensH = []; esensHL = []; esensHH = []; layersPVA = []; samples = []; for i = 1:length(tests.mat) if strcmp( tests.mat(i), 'errload.mat' ) continue; end disp( sprintf( 'Scanning %s...', tests.mat{i} ) ); load( tests.mat{i}, 'sensOut', 'layers' ); samples(i) = length(sensOut(:, 1));  % %  psensS = [psensS;sensOut(:, 1)]; esensSL = [esensSL;sensOut(:, 2)]; esensSH = [esensSH;sensOut(:, 3)]; psensH = [psensH;sensOut(:, 4)]; esensHL = [esensHL;sensOut(:, 5)]; esensHH = [esensHH;sensOut(:, 6)]; layersPVA = [layersPVA;(ones(samples(i), 1) * layers)];  end %Plot data disp( 'First plot...' ); figure( 'Color', [1 1 1] );  235  50 set( gca, 'FontName', 'Times', 'FontSize', [16] ); 51 hLeg = []; 52 cstring='rgbcmky'; 53 54 for i = 1:length(layersPVA) 55 hLeg(i) = errorbar( psensH(i), psensS(i), esensSL(i), esensSH(i), ['x' cstring (mod(layersPVA(i),7))] ); 56 errorbar_x( psensH(i), psensS(i), 0.7, 0.7, ['x' cstring(mod(layersPVA(i),7))] ); 57 hold on 58 end 59 60 xlabel( 'Relative Humidity (%)' ); 61 ylabel( 'Frequency (Hz)' ); 62 drawnow; 63 64 %FITTING SECTION 65 66 %Preparation of known material parameters 67 PVDF.density = 1780; %kg/m^3 68 PVDF.PR = 0.35; %Poisson ratio 69 70 PVA.PR = 0.47; %Poisson ratio 71 PVA.density = 1269; %kg/m^3 72 73 PEDOT.YM = 2.8e9; %Pa 74 PEDOT.PR = 0.35; 75 PEDOT.density = 1500; %kg/m^3 76 PEDOT.m = 7.7e-4; %kg/m^2 77 PEDOT.d = 1e-6; %m 78 79 lambda = 800e-6; %Wavelength of IDTs, m 80 81 %Unknown parameters: 82 % PVDF parameters -- assume constant 83 % PVA Young's Modulus as function of humidity -- linear func of humidity 84 % PVA thickness as function of humidity -- linear func of humidity 85 % PVA mass per unit area as a function of humidity -- linear func of humidity 86 87 %Build initial approximation variation vector 88 %%%%1 - PVDF stress A (constant) [Pa] 89 A = 30e6; %Reference 90 Ac = 30e6; %Constraint (+/-) 91 %%%%2 - PVA Young's Modulus B (Bx + C) [Pa/%] 92 B = -2e6; 93 Bc = 2e6; 94 %B = -2e5; %Reference 95 %Bc = 2e5; 96 %%%%3 - PVA Young's Modulus C (Bx + C) [Pa]  236  97 C = 2.2e9; 98 Cc = 0.5e9; 99 %%%%4 - PVA Thickness D (Dx + E) [m/%/layer] 100 D = 15e-9; 101 Dc = 5e-9; 102 %%%%5 - PVA Thickness E (Dx + E) [m/layer] 103 E = 3.15e-6; 104 Ec = 0.1e-6; 105 %%%%6 - PVA mass per unit area F (Fx + G) [kg/m^2/%/layer] 106 F = 10e-6; 107 Fc = 10e-6; 108 %%%%7 - PVA mass per unit area G (Fx + G) [kg/m^2/layer] 109 G = 4e-3; 110 Gc = 0.1e-3; 111 %%%%8 - PVA stress H (Hx + I) 112 H = 50e5; 113 Hc = 100e5; 114 %H = 1e5; 115 %Hc = 2e5; 116 %%%%9 - PVA stress I (Hx + I) 117 I = 50e6; 118 Ic = 100e6; 119 %I = 1e6; 120 %Ic = 5e6; 121 %%%%10 - Spare 122 J = 50e4; 123 Jc = 100e4; 124 %%%%11 - PVDF Young's Modulus 125 K = 1.375e9; %Reference 126 Kc = 0.3e9; 127 %%%%12 - PVDF Thickness 128 L = 21e-6; %Measured 129 Lc = 3e-6; %Experimental 130 131 x0 = [A B C D E F G H I J K L]; %Initial guess matrix 132 x0c = [Ac Bc Cc Dc Ec Fc Gc Hc Ic Jc Kc Lc]; 133 134 %Save all information for fast loading of error calculator 135 showplot = 0; 136 disp( 'Saving variables...' ); 137 save errload 138 139 %Run multivariate problem solver 140 disp( 'Running multivariable solver...' ); 141 x = x0; 142 [x fval] = fminsearch( @errcalc, x0, optimset('Display', 'iter', 'MaxFunEvals', 100000, 'MaxIter', 100000, 'TolFun', 1e-6) ); %unconstrained nonlinear optimizer using Nelder-Mead Simplex method 143 x = constraints(x, x0, x0c);  237  144 145 disp( 'Optimized values:' ); 146 fprintf( 1, 'PVDF Stress: %f [MPa]\n', x(1) / 1e6 ); 147 fprintf( 1, 'PVDF Young''s Modulus: %f [GPa]\n', x(11) / 1e9 ); 148 fprintf( 1, 'PVDF Thickness: %f [um]\n', x(12) * 1e6 ); 149 fprintf( 1, 'PVA Stress: %fx^2 + %fx + %f [MPa]\n', x(10) / 1e6, x(8) / 1e6, x(9) / 1e6 ); 150 fprintf( 1, 'PVA Young''s Modulus: %fx + %f [GPa]\n', x(2) / 1e9, x(3) / 1e9 ); 151 fprintf( 1, 'PVA Thickness/layer: %fx + %f [um]\n', x(4) * 1e6, x(5) * 1e6 ); 152 fprintf( 1, 'PVA Mass/area/layer: %fx + %f [g/m^2]\n', x(6) * 1e3, x(7) * 1e3 ); 153 fprintf( 1, 'Zero-Humidity PVA Density: %f [kg/m^3]\n', x(7) / x(5) ); 154 155 %Generation of theoretical curves 156 xHum = linspace(10, 55, 100); 157 158 phase = []; 159 PVDF.S = x(1); 160 PVDF.YM = x(11); 161 PVDF.d = x(12); 162 PVDF.m = PVDF.density * PVDF.d; %Mass per unit area 163 for i = 1:length(samples) 164 in = sum(samples(1:i)); 165 if in == 0 166 continue; 167 end 168 for j = 1:length(xHum) 169 PVA.S = x(8) * xHum(j) + x(9) + x(10) * xHum(j) ^ 2; 170 PVA.YM = x(2) * xHum(j) + x(3); 171 PVA.d = layersPVA(in) * (x(4) * xHum(j) + x(5)); 172 PVA.m = layersPVA(in) * (x(6) * xHum(j) + x(7)); 173 %PVA.d = (x(4) * xHum(j) + x(5)); %Reference 174 %PVA.m = (x(6) * xHum(j) + x(7)); 175 176 [v(j,i) f(j,i)] = psolve( PVDF, PVA, PEDOT, lambda ); %Solve 177 freq(j) = f(j,i); 178 end 179 180 hcurve = plot( xHum, freq, 'k-' ); 181 set(hcurve, 'Linewidth', 2); 182 end 183 184 for i = 1:length(layersPVA) 185 hLeg(i) = errorbar( psensH(i), psensS(i), esensSL(i), esensSH(i), ['x' cstring (mod(layersPVA(i),7))] ); 186 errorbar_x( psensH(i), psensS(i), 0.7, 0.7, ['x' cstring(mod(layersPVA(i),7))] ); 187 hold on 188 end 189  238  190 %hLegNew(1) = hLeg(find(layersPVA==1, 1 )); 191 %hLegNew(2) = hLeg(find(layersPVA==2, 1 )); 192 %hLegNew(3) = hLeg(find(layersPVA==3, 1 )); 193 %hLegNew(end + 1) = hcurve; 194 %legend( hLegNew, 'One Layer', 'Two Layers', 'Three Layers', 'Fitting Curve', 'Location', 'Best' ); 195 196 %MATERIAL CHARACTERIZATION 197 198 d = (x(4) / x(5) * xHum); 199 m = (x(6) / x(7) * xHum); 200 ym = (x(2) / x(3) * xHum); 201 202 density = (x(6) * xHum + x(7)) ./ (x(4) * xHum + x(5)) ./ (x(7)/x(5)) - 1; 203 204 figure( 'Color', [1 1 1] ); 205 set( gca, 'FontName', 'Times', 'FontSize', [16] ); 206 hline = plot( xHum, d * 100, 'r' ); 207 set( hline, 'Linewidth', 2); 208 hold on 209 hline = plot( xHum, m * 100, 'b' ); 210 set( hline, 'Linewidth', 2); 211 hline = plot( xHum, ym * 100, 'g' ); 212 set( hline, 'Linewidth', 2); 213 hline = plot( xHum, density * 100, 'c' ); 214 set( hline, 'Linewidth', 2); 215 xlabel( 'Relative Humidity (%)' ); 216 ylabel( 'Percentage Change (%)' ); 217 legend( 'Thickness', 'Mass per unit area', 'Young''s modulus', 'Density', 'Location', 'Best' ); 218 219 % Calculate partition coefficient - TODO 220 partcoeff = m(end) * PVA.density * T * R / (xHum(end) / 100 * Psat * Mw); 221 fprintf(1, 'Partition Coefficient: %f\n', partcoeff); 222 fprintf(1, 'Velocity: %f\n\n', mean(v(:,2))); 223  239  1 2 3 4 5 6  %Function to apply limiting constraints to fminsearch function xout = constraints(xin, x0, x0c) val = x0c .* sin(2 .* pi .* xin ./ x0) + x0; xout = val; end  240  1 % Calculate least squares error between theoretical and experimental 2 % PVA/humidity data 3 %Parameters: 4 %1 - PVDF stress A (constant) [Pa] 5 %2 - PVA Young's Modulus B (Bx + C) [Pa/%] 6 %3 - PVA Young's Modulus C (Bx + C) [Pa] 7 %4 - PVA Thickness D (Dx + E) [m/%/layer] 8 %5 - PVA Thickness E (Dx + E) [m/layer] 9 %6 - PVA mass per unit area F (Fx + G) [kg/m^2/%/layer] 10 %7 - PVA mass per unit area G (Fx + G) [kg/m^2/layer] 11 %8 - PVA stress H (Hx + I) 12 %9 - PVA stress I (Hx + I) 13 14 function f = errcalc(x) 15 16 %Load relevant data 17 load errload 18 19 %Apply constraints 20 x = constraints(x, x0, x0c); 21 22 PVDF.S = x(1); 23 PVDF.YM = x(11); 24 PVDF.d = x(12); 25 PVDF.m = PVDF.density * PVDF.d; %Mass per unit area 26 27 %Calculate theoretical velocities and errors 28 err = 0; 29 for i = 1:length(layersPVA) 30 PVA.S = x(8) * psensH(i) + x(9) + x(10) * psensH(i) ^ 2; 31 PVA.YM = x(2) * psensH(i) + x(3); 32 PVA.d = layersPVA(i) * (x(4) * psensH(i) + x(5)); 33 PVA.m = layersPVA(i) * (x(6) * psensH(i) + x(7)); 34 % PVA.d = (x(4) * psensH(i) + x(5)); %Reference 35 % PVA.m = (x(6) * psensH(i) + x(7)); 36 [v(i) f(i)] = psolve( PVDF, PVA, PEDOT, lambda ); %Solve 37 %vexp = (psensS(i) + x(8)) * lambda / 360 / x(9); %Phase 38 %vexp = (2 * 800e-6) ./ (psensS(i) * 4.96e-8 + x(9)); %Delay 39 vexp = lambda * psensS(i); %Frequency 40 41 err = err + abs(vexp - v(i)) ^ 2; %Error from sample points 42 end 43 44 %Contribute additional weighted error sources 45 err1 = ((PVA.density - x(7) / x(5)) / PVA.density) ^ 2; %PVA density 46 partcoeff = (x(6) / x(7) * 30) * PVA.density * T * R / (30 / 100 * Psat * Mw); %Partition coefficient 47 err3 = ((20000 - partcoeff) / 20000) ^ 2; 48  241  49 50 51 52 53 54 55 56 57 58 59 60 61 62 63  err = err + 10 * err1 + 10 * err3; if showplot phase = v * 360 * x(9) / lambda - x(8); plot( psensH, psensS, 'rx' ); hold on plot( psensH, phase, 'bo' ); hold off drawnow; end f = err; end  242  1 %Solve for phase velocity and frequency based on input substrate and 2 %sensing layer 3 4 function [v, f] = psolve( subst, sens, pedot, lambda ) 5 %Stress term 6 T = subst.S * subst.d + sens.S * sens.d; %Assume PEDOT does not contribute 7 8 %Stiffness term 9 B = 2 * pi / lambda; 10 EprimeSubst = subst.YM / (1 - subst.PR ^ 2); 11 EprimeSens = sens.YM / (1 - sens.PR ^ 2); 12 EprimePedot = pedot.YM / (1 - pedot.PR ^ 2); 13 h0 = 0; 14 h1 = sens.d; 15 h2 = sens.d + pedot.d; 16 h3 = sens.d + pedot.d + subst.d; 17 x0 = ( EprimeSens * ( h1 ^ 2 - h0 ^ 2 ) + EprimePedot * ( h2 ^ 2 - h1 ^ 2 ) + EprimeSubst * ( h3 ^ 2 - h2 ^ 2 ) ) / ( 2 * ( EprimeSens * ( h1 - h0 ) + EprimePedot * ( h2 - h1 ) + EprimeSubst * ( h3 - h2 ) ) ); 18 D = 1/3 * ( EprimeSens * ( ( h1 - x0 ) ^ 3 - ( h0 - x0 ) ^ 3 ) + EprimePedot * ( ( h2 - x0 ) ^ 3 - ( h1 - x0 ) ^ 3 ) + EprimeSubst * ( ( h3 - x0 ) ^ 3 - ( h2 - x0 ) ^ 3 ) ); 19 20 %Mass term 21 M = subst.m + sens.m + pedot.m; 22 23 %Final velocity and frequency calculation 24 v = sqrt( ( T + B ^ 2 * D ) ./ M ); 25 f = v / lambda; 26 end 27  243  1 %Class library for Walus printer 2 3 classdef printclass < handle 4 properties (SetAccess = private) 5 curx = 0; 6 cury = 0; 7 code = ''; 8 plotx = []; 9 ploty = []; 10 plotcolour = [0 0 1]; 11 res = 0; 12 stepsize = 2.5; 13 detail = 1; 14 figname = 0; 15 doplot = false; 16 inloop = false; 17 loopcurx = 0; 18 loopcury = 0; 19 loopres = 0; 20 loopcount = 0; 21 loopcode = ''; 22 end 23 methods 24 %Adds code to the existing code block. Returns code block. 25 function newcode = addcode( pd, addition ) 26 if pd.inloop == true 27 pd.loopcode = strcat( pd.loopcode, addition ); 28 newcode = pd.loopcode; 29 else 30 pd.code = strcat( pd.code, addition ); 31 newcode = pd.code; 32 end 33 end 34 35 function codedata = retcode( pd ) 36 codedata = strcat( pd.code, 'S' ); 37 end 38 39 %Add offset to current x-axis position 40 function newx = addx( pd, x ) 41 if pd.inloop == true 42 pd.loopcurx = pd.loopcurx + x; 43 newx = pd.loopcurx; 44 else 45 pd.curx = pd.curx + x; 46 newx = pd.curx; 47 end 48 end 49  244  50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98  %Add offset to current x-axis position function newy = addy( pd, y ) if pd.inloop == true pd.loopcury = pd.loopcury + y; newy = pd.loopcury; else pd.cury = pd.cury + y; newy = pd.cury; end end %Adds a point to the plot function addplot( pd, x, y ) if pd.doplot == true pd.plotx = [pd.plotx x]; pd.ploty = [pd.ploty y]; plot( x, y, 'o', 'color', pd.plotcolour ); drawnow; end end %Sets the resolution function setres( pd, newres ) if pd.inloop == true if newres == pd.loopres return; end else if newres == pd.res return; end end pd.addcode( sprintf( 'REZ%04d', newres ) ); pd.res = newres; end %Sets plot colour function setplotcolour( pd, newcolour ) pd.plotcolour = newcolour; end %Move printer along x-axis function mx(pd, xdisp) if xdisp == 0 return; end xdisp = xdisp / pd.res / pd.stepsize; %TODO - fractions if ~mod( xdisp, 1 ) == true pd.addcode( sprintf( 'MX%+05d', xdisp ) );  245  99 else 100 error( 'Non-integer stepping in x-direction' ); 101 end 102 end 103 104 %Move printer along y-axis 105 function my(pd, ydisp) 106 if ydisp == 0 107 return; 108 end 109 ydisp = ydisp / pd.res / pd.stepsize; %TODO - fractions 110 if ~mod( ydisp, 1 ) == true 111 pd.addcode( sprintf( 'MY%+05d', ydisp ) ); 112 else 113 error( 'Non-integer stepping in y-direction' ); 114 end 115 end 116 117 %Print along x-axis 118 function px(pd, xdisp) 119 xdispp = xdisp / pd.res / pd.stepsize; %TODO - fractions 120 if ~mod( xdispp, 1 ) == true 121 pd.addcode( sprintf( 'PX%+05d', xdispp ) ); 122 pd.addplot( linspace(pd.addx(0), pd.addx(0) + xdisp, abs(xdispp) + 1), pd.addy(0) * ones(abs(xdispp) + 1, 1)' ); 123 else 124 error( 'Non-integer stepping in x-direction' ); 125 end 126 end 127 128 %Print along y-axis 129 function py(pd, ydisp) 130 ydispp = ydisp / pd.res / pd.stepsize; %TODO - fractions 131 if ~mod( ydispp, 1 ) == true 132 pd.addcode( sprintf( 'PY%+05d', ydispp ) ); 133 pd.addplot( pd.addx(0) * ones(abs(ydispp) + 1, 1)', linspace(pd.addy (0), pd.addy(0) + ydisp, abs(ydispp) + 1) ); 134 else 135 error( 'Non-integer stepping in y-direction' ); 136 end 137 end 138 139 %Instantiation class 140 function pd = printclass( initres, initstep, posx, posy ) %Initial resolution and x,y position 141 pd.curx = posx; 142 pd.cury = posy; 143 pd.stepsize = initstep; 144  246  145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193  pd.setres( initres ); end %Starts loop function startloop( pd, num ) pd.inloop = true; %At this point, all functions will use the loop*. pd.loopcount = num; pd.loopcode = ''; pd.loopcurx = pd.curx; pd.loopcury = pd.cury; pd.addcode( sprintf( '{%02d', num ) ); end %Stop loop - TODO - missing plotting function stoploop( pd ) pd.inloop = false; pd.addx( pd.loopcurx - pd.curx ); pd.addy( pd.loopcury - pd.cury ); pd.addcode( pd.loopcode ); pd.addcode( '}' ); %Repeat commands for the plotter codebak = pd.code; for i = 1:(pd.loopcount - 1); pd.interpret( pd.loopcode(4:end) ); end pd.code = codebak; end %Activates plotting function initplot( pd, figname ) pd.figname = figname; figure( pd.figname ); plottitle = sprintf( 'X: %d Y: %d', pd.curx, pd.cury ); xlabel('X (\mum)'); ylabel('Y (\mum)'); title( plottitle ); hold on; pd.doplot = 1; end %Locates printer head to correct location without printing function mlocate(pd, x, y) if x ~= pd.addx(0) pd.mx( x - pd.addx(0) ); pd.addx( x - pd.addx(0) ); end if y ~= pd.addy(0) pd.my( y - pd.addy(0) );  247  194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242  pd.addy( y - pd.addy(0) ); end end %Prints from current location to target location function plocate(pd, x, y) if x ~= pd.addx(0) pd.px( x - pd.addx(0) ); pd.addx( x - pd.addx(0) ); end if y ~= pd.addy(0) pd.py( y - pd.addy(0) ); pd.addy( y - pd.addy(0) ); end end %Set detail level function setdetail(pd, newlevel) if (newlevel < 1) || (newlevel > 3) return end pd.detail = newlevel; end %Get detail level function detail = getdetail(pd) detail = pd.detail; end %Draw a single point function point(pd, x, y) pd.mlocate(x, y); pd.px( 0 ); end %Draw a line function line(pd, x1, y1, x2, y2, direction) if direction == 1 %Reverse direction, flip coefficients x3 = x1; y3 = y1; x1 = x2; y1 = y2; x2 = x3; y2 = y3; end %Print layer  248  243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291  switch( pd.detail ) case 1 %First layer %First move printer to appropriate location pd.mlocate( x1, y1 ); pd.plocate( x2, y2 ); case 2 %Second layer %First move printer to appropriate location pd.mlocate( x1, y1 ); %Shift by half a resolution pd.setres( pd.res / 2 ); offx = sign( x2 - x1 ) * pd.res * pd.stepsize; offy = sign( y2 - y1 ) * pd.res * pd.stepsize; pd.mlocate( pd.curx + offx, pd.cury + offy ); pd.setres( pd.res * 2 ); %Back to normal pd.plocate( x2 - offx, y2 - offy ); %Shift back by half pd.setres( pd.res / pd.mlocate( pd.curx pd.setres( pd.res *  a 2 + 2  resolution ); offx, pd.cury + offy ); );  case 3 %First move printer to appropriate location pd.mlocate( x1, y1 ); %Shift by a quarter and print at half resolution pd.setres( pd.res / 4 ); offx = sign( x2 - x1 ) * pd.res * pd.stepsize; offy = sign( y2 - y1 ) * pd.res * pd.stepsize; pd.mlocate( pd.curx + offx, pd.cury + offy ); pd.setres( pd.res * 2 ); %Still half original for printing pd.plocate( x2 - offx, y2 - offy ); %Shift back by half pd.setres( pd.res / pd.mlocate( pd.curx pd.setres( pd.res *  a 2 + 4  resolution ); offx, pd.cury + offy ); );  otherwise error( 'Unsupported number of layers in line print' ); end end %Draw a filled box (ie. pad) function box(pd, x1, y1, x2, y2, orientation)  249  292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340  %Starting corner pd.mlocate( x1, y1 ); switch( orientation ) case 0 %Draw lines along x-axis %TODO - detail support numlines = (y2 - y1) / pd.res / pd.stepsize / 2; pd.startloop( numlines ); pd.plocate( x2, y1 ); pd.mlocate( x2, y1 + sign(y2 - y1) * pd.res * pd.stepsize ); pd.plocate( x1, y1 + sign(y2 - y1) * pd.res * pd.stepsize ); pd.mlocate( x1, y1 + 2 * sign(y2 - y1) * pd.res * pd.stepsize ); pd.stoploop(); case 1 %Draw lines along y-axis %TODO - detail support numlines = (x2 - x1) / pd.res / pd.stepsize / 2; pd.startloop( numlines ); pd.plocate( x1, y2 ); pd.mlocate( x1 + sign(x2 - x1) * pd.res * pd.stepsize, y2 ); pd.plocate( x1 + sign(x2 - x1) * pd.res * pd.stepsize, y1 ); pd.mlocate( x1 + 2 * sign(x2 - x1) * pd.res * pd.stepsize, y1 ); pd.stoploop(); otherwise error( 'Unsupported orientation selected in box' ); end end %Interpret and plot a segment of generated code - TODO - add loop %support function interpret(pd, codeseg) %Scan through code string and recreate with plot i = 1; while i < length(codeseg) switch codeseg(i) case 'R' newres = sscanf(codeseg((i+3):(i+6)), '%d'); pd.setres( newres ); i = i + 7; case 'M' newm = sscanf(codeseg((i+2):(i+6)), '%d'); newm = newm * pd.res * pd.stepsize; if codeseg(i + 1) == 'X' pd.mx( newm ); pd.addx( newm );  250  341 else 342 pd.my( newm ); 343 pd.addy( newm ); 344 end 345 i = i + 7; 346 347 case 'P' 348 newp = sscanf(codeseg((i+2):(i+6)), '%d'); 349 newp = newp * pd.res * pd.stepsize; 350 if codeseg(i + 1) == 'X' 351 pd.px( newp ); 352 pd.addx( newp ); 353 else 354 pd.py( newp ); 355 pd.addy( newp ); 356 end 357 i = i + 7; 358 359 otherwise 360 i = i + 1; 361 362 end 363 end 364 end 365 366 end % methods 367 end % classdef 368 369  251  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  %Printing library sample %Using printing library rev1 clear all; close all; clc; %Initialize, starting res 80, step size 2.5, origin at 0,0 pd = printclass( 80, 2.5, 0, 0 ); %Initialize plot plotfig = figure; pd.initplot( plotfig ); %Simple line segments pd.line( 200, 200, 200, 2000, 0 ); pd.line( 200, 2000, 2000, 2000, 0 ); pd.line( 2000, 2000, 2000, 1000, 0 ); %Build thicker lines for i = 1:3 pd.setdetail( i ); switch i case 1 pd.setplotcolour( [0 0 1] ); case 2 pd.setplotcolour( [0 1 0] ); case 3 pd.setplotcolour( [1 0 0] ); end pd.line( 600, 600, 1400, 600, 0 ); pd.line( 600, 1400, 1400, 1400, 1 ); end %Back to defaults pd.setplotcolour( [0 0 1] ); pd.setdetail( 1 ); %Draw points pd.point(800, 800); pd.point(1000, 1000); %Now a box pd.box( 4000, 200, 6000, 4200, 0 ); %Now a denser box pd.setres(40); pd.setplotcolour( [0 1 0] ); pd.box( 8000, 200, 12000, 1200, 1 );  252  50 51 52 53 54 55 56  pd.setplotcolour( [0 0 1] ); pd.setres(80); %Show code disp( pd.retcode() );  253  Appendix E  Conference Material Poster and other relevant conference material.  254  INKJET PRINTED ALL-POLYMER FLEXURAL PLATE WAVE SENSORS  J.R. Busch, C. Sielmann, G. Man, D. Tsan, K. Walus, B. Stoeber The University of British Columbia, Vancouver, CANADA  4. Device Characterization  We demonstrate the fabrication and mass sensing performance of an all-polymer acoustic sensor. Polyvinylidene fluoride (PVDF) is a low-cost piezoelectric material that forms the substrate of our sensor. Polymers have a low acoustic wave speed, which can limit the overall sensitivity when used in a surface acoustic wave (SAW) configuration, suggesting a flexural plate wave (FPW) configuration. All-polymer FPW mass sensors: • Detect mass on both sides of the substrate • Have mass sensitivity independent of frequency  low frequency operation • Can operate at long wavelengths, permitting the use of low cost techniques such as inkjet printing • Demonstrate good sensitivity due to low substrate density FPW Mass Measurement Design Concept: 1.Gas molecules are adsorbed by a thin, selective polymer layer (e.g. PVA) bonded to the piezoelectric substrate between the electrodes. 2.A high voltage alternating signal is applied to the transmitting IDT, generating a travelling wave. 3.The travelling wave is affected by density and stiffness changes caused by chemical adsorption. 4.The travelling wave is measured by the receiving IDT and is analyzed, relating small variations in transmission to target chemical concentration. Approximation of FPW Wave Behaviour: The wave velocity can be measured by launching and receiving an acoustic wave through the IDTs. The velocity is a function of stress, stiffness and density [1]. v ( m) =  T ( m) + β 2 D ( m) M ( m)  T (m) = S1d PVDF + S 2 D ( m) =  m ρPVA   E m   d PVDF +  ρ PVA  12(1 − σ 2 )   3  Laser Doppler Vibrometer Measurements:  3  1 0.5  Schematic of LDV measurement system  With experimental agreement shown right.  1  1.5 2 2.5 x-axis position (m)  3  3.5 -3  x 10  Contour map of instantaneous out-ofplane velocity of an FPW sensor λ = 400 μm, 125 μm thick  λ = 800 μm, 125 μm thick  λ = 800 μm, 18 μm thick  Average magnitude of out-of-plane velocity as a function of frequency  Electronic Data Acquisition System Measurements:  Driving Waveform  Electrical received signal (eight consecutive buffers) Electrical measurement setup 50X  Neglecting stiffness, mass sensitivity (SM) can be expressed as: −1 1 Δf = Δm f 0 2 ρd  SM = Mass sensitivity (generally in cm2/g) f = Frequency of traveling wave f0 = Unperturbed resonant frequency of acoustic wave Δm = Change in total mass per unit area  Δf = f − f 0  2. Stretching and Poling The piezoelectric polymer, PVDF, is the substrate material. Manifesting piezoelectric properties within the PVDF requires the transition of the polymer chains from an α to a polar β phase through stretching and the application of a strong electric field at a temperature above the Curie temperature, which is around 100°C for PVDF [2]. The resulting films have dPVDF = 18 μm or 125 μm.  4  polymer load  M (m) = d PVDF ρ PVDF + m  SM =  5  2  λ  m = Applied polymer mass per unit area v(m) = Antisymmetric (A0) in-plane wave velocity T(m) = In-plane stress coefficient M(m) = Total mass per unit area, including substrate D(m) = In-plane stiffness coefficient E = Young’s Modulus β = 2π / λ where λ is the IDT wavelength S1, S2 = In-plane stress contributed by substrate and  x-y Contour Map of LDV Data  6  Resonance Frequency Behaviour: In-plane wave velocity of strictly the substrate can be approximated in terms of the thickness to wavelength ratios [5]. C and S are stress and stiffness constants, leading to resonant velocities and frequencies that vary with the PVDF thickness to wavelength ratio. Further approximation allows for:  Flexural plate wave measurement concept  -4  x 10 7  y-axis position (m)  1. Background  a  Analog conditioning  10x  50X Gain Amplifier  PVDF Sensor  10X Gain Amplifier  DSP  Resonance Frequency  Electrical measurement schematic  5. Load Sensitivity Increasing layers of polyvinyl alcohol (PVA) were printed onto receiver A, resulting in a unilateral shift in frequency correlating to mass and stiffness response.  A f ( m) ∝ v ( m)  B  thickness, XRD showing transition of PVDF from α to β phase through stretching and poling  3. Electrode Printing Procedure: 1. Pre-tension poled film and secure in frame. 2. Prepare ink. The ink consists of a mixture of 95 wt% Clevios PH 1000 poly(3,4ethylenedioxythiophene)poly(styrenesulfonate)(PEDOT:PSS), 5 wt% dimethyl sulfoxide (DMSO) and 0.1 wt% Triton X100 (surfactant) [3][4]. 3. The ink is printed using an inkjet nozzle (Microfab Inc.) with an orifice diameter of 40 µm. The minimum achievable line width using this nozzle, ink, and substrate is approximately 100 µm, resulting in a minimum acoustic wavelength of 400 µm. Sensors with an acoustic wavelength of 800 µm or 400 µm are used in this work.  λ=800 µm differential pattern  Resonant frequency of a sensor loaded with several PVA layers  Normalized frequency as a function of applied mass, including tension and stiffness effects  To calculate the mass sensitivity, effects of the PVA on tension and stiffness are mathematically removed by subtracting the theoretical impact of stiffness from the experimental data. This compensation results in a low-load mass sensitivity of -153 cm2/g, which compares favorably with the theoretical mass sensitivity of -156 cm2/g.  References [1] S. W. Wenzel and R. M. White, “Analytic comparison of the sensitivities of bulk-wave, surface-wave, and flexural plate-wave ultrasonic gravimetric sensors,” Applied Physics Letters, vol. 54, no. 20, p. 1976, 1989. [2] Y. Huan, Y. Liu, Y. Yang, “Simultaneous stretching and static electric field poling of poly(vinylidene fluoride‐hexafluoropropylene) copolymer films,” Polymer Engineering & Science, vol. 47, no. 10, pp. 1630-1633, Oct. 2007. [3] J. Y. Kim, J. H. Jung, D. E. Lee, J. Joo, “Enhancement of electrical conductivity of poly(3,4-ethylenedioxythiophene)/poly(4styrenesulfonate) by a change of solvents,” Synthetic Metals, vol. 126, no. 2-3, pp. 311-316, Feb. 2002. [4] G. Man, “Towards all-polymer surface acoustic wave chemical sensors for air quality monitoring,” Master’s Thesis, The University of British Columbia, 2009. [5] S. Wenzel, “Applications of Ultrasonic Lamb Waves,” Doctoral Dissertation, Berkeley, 1992.  Acknowledgments 255 Funding for this project is provided by the BCFIRST Natural Resources and Applied Science (NRAS)  Endowment through the Research Team Program and by the Fraser Basin Council through the BC Clean Air Research (BC CLEAR) Fund. Support for equipment and travel was received from Natural Sciences and Engineering Research Council of Canada (NSERC), the Canada Foundation for Innovation (CFI) and the Transducer Research Foundation. We would also like to acknowledge Dr. Edmond Cretu for the use of his laboratory facilities including the Polytec MSA-500 LDV, Lisheng Wang for XRD measurement contributions and John Berring for equipment photos.  Inkjet printing setup, printing in progress, and completed λ=800 µm sensor  Contact: Konrad Walus – konradw@ece.ubc.ca - Department of Electrical and Computer Engineering The University of British Columbia, Vancouver, BC V6T 1Z4, Canada  Appendix F  Delay Measurement Techniques Report on delay calculation methods and relative performance.  256  All-Polymer Flexural Plate Time of Flight Study This document briefly discusses the methodology and results from a series of time of flight tests on two high Q and low Q all-polymer flexural plate wave sensors. Tests were performed using an electronic data acquisition system with 50 MS/s time resolution, with each time of flight mechanism specialized to increase time resolution by examining the shape of the received signal. Two sets of experiments were performed, with all time of flight and frequency measurements algorithms operating concurrently. Small perturbations in the waveform delay and frequency are created by changing excitation waveform properties. The impacts of the shifts are shown in a final table, comparing each algorithm’s ability to discriminate the delay and frequency changes over the collected noise. Labview, DSP, and Matlab code are included in separate appendices. Sensors Examined: The tests involved two sensors, one of which representing IDTs with many fingers, and the other representing transmitter and receiver IDTs with only one pair of fingers each. Sensor # 1 2  Thickness (d) 120 um 60 um  Wavelength (λ) 800 um 800 um  # of Fingers 12 2  Tensioned Yes Yes  Width 10 mm 17 mm  The extra width for sensor 2 is in part accidental but also useful, as it increases the amount of energy transferred with the wave, to some small extent compensating for the loss of incident energy resulting from the removal of the majority of the fingers. Driving Waveforms: Each sensor and acquisition methodology was exposed both to an FSK signal and pulse train. The FSK signal was composed of a sequence of 500 kHz pulses followed immediately by two 600 kHz pulses.  257  The long string of 500 KHz pulses earlier in the waveform (preamble) is intended to permit the stabilization of the signal through the amplifier prior to the contents of the signal becoming relevant. The second waveform tested, the pulse train, is similar to the FSK modulated signal with the exception that the entire signal is 550 kHz. The pulse train provides a consistent, narrow bandwidth signal to the sensor that concentrates as much energy as possible into the resonance frequency of the IDTs.  The waveforms are driven by the function generator configured for 2 Vpp (50 Ohm output) driving the 50x amplifier, resulting in an excitation signal of 100 Vpp. The receiver passes through a gain block which normalizes the received acoustic signal to ~1 Vpp. The following is an example of the received waveform from the Pulse Train input signal:  258  Details of Time of Flight Methods For all time of flight methods used, the output data is in samples with each sample representing 20 ns of time. Unless specified otherwise, each technique first removes DC offsets and linear trending to minimize non-acoustic interference.  Method #1: Peak Detect The Peak Detect method is based on the work of Papageorgiou, et al [1] and uses quadratic interpolation to pick up peaks and valleys in the received signal, after linearly shifting the signal around 0 Vpp:  The best two peaks and valleys are selected with the first peak used for delay calculation. The quadratic interpolation occurs over 25 samples with the center being the peak or trough of each sinusoidal period.  Method #2: Zero-Cross Detection The zero-cross detector is based on the work of Papageorgiou, et al [1] and is similar to the peakdetector, but linear regression interpolation is used rather than quadratic interpolation to estimate the precise point of amplitude-axis interception.  The linear interpolation consists of 21 points including and surrounding the detected zerocrossing points. The second zero-crossing is used for delay measurement.  Method #3: Hilbert Transform The Hilbert Transform method is based on the work of Duncan [2]. The Hilbert transform of the incoming wave is mixed with the originating waveform to generate an envelope of the waveform. The envelope magnitude is matched to an exponential fit, although this information 259  is not used at this time. The envelope phase is mostly matched to a linear fit and the x-axis intercept is calculated. The phase is then converted to a delay using the slope of the linear fit to represent radial velocity.  A demonstration of the output of the procedure:  The Hilbert Output window shows the incident wave (in white) plotted against the output of the Hilbert transform (in red). After a complex domain summation (mixing), the resulting envelope magnitude can be seen in the Hilbert Magnitude window where the white line is the calculated envelope magnitude and the red is an exponential fit. Only half the sample space is used for the fits in order to minimize interference caused by low/decayed signal strength. The bottom right 260  plot shows the calculated Hilbert phase (in white) with a linear fit (in red). The slope and intercept of the red linear fit is then used to calculate delay (in samples).  Method #4: Delay from DFT-Calculated Phase Calculating the delay from the DFT-calculated phase involves using the calculated phase and frequency, derived through DFT techniques, and uses ‫ ݕ݈ܽ݁ܦ‬ൌ  ϕ 360݂ܵ  where ϕ is phase angle in degrees, f is resonance frequency (Hz), and S is sampling time (s). This equation is implemented in the following LabView:  Calculated phase and frequency are determined external to the delay routing using the Single Tone Information VI, which leverages DFT techniques through a Hanning window.  Method #5: Cross-Correlation with Self The cross-correlation methodology permits the user to grab a “calibration” snapshot of the waveform which is then used with cross-correlation techniques to determine similarities with future waveform [3]. The resulting cross-correlation plot is passed through a quadratic peak detect (as described earlier) with a sample size of 50 to determine the peak of the correlation, functionally representing the time shift required in order to achieve maximum matching between the reference signal and newly acquired signal.  261  An example of the plots can be seen as follows:  Although it is difficult to see in the bottom left plot, there are two signals, white and red, representing the new waveform and previously stored calibration waveform respectively. The plot on the bottom right shows the result of the correlation function, demonstrating a narrow peak in the center (500) emphasizing a high degree of correlation.  Method #6: BFSK cos Detection The BFSK cos method is based on work by Webster [4], where a variable frequency source is used and the point of frequency transition is interpolated. It will will only produce meaningful results with an FSK (frequency shift key) input pattern. The cos detection mechanism performs the following steps to calculate time-varying phase for reference frequencies of 500 kHz and 600 kHz: 1. 2. 3. 4. 5.  Removal of DC offset and linear trending from input data Determination of peaks using peak detect VI Fitting of peak data to exponential fitting tool Use of exponential fit amplitude and attenuation coefficient to normalize input waveform Generation and mixing of normalized input waveform with idealized sinusoids at 500 and 600 kHz 262  6. Linear regressive fit to resulting mixed signals 7. Computation of precise time of interception of the two linear fits, representing the halfway point between 500 and 600 kHz in the FSK signal  The resulting plots illustrate these steps:  The green and blue linear fits in the bottom right plot represents 500 (white) and 600 (red) kHz respectively. The result of the frequency mixing can be seen in the bottom right with a doubling of frequency and amplitude proportional to the phase error between the reference sinusoid and sample waveform.  Method #7: BFSK Goertzel Detection The Goertzel detection mechanism, similar to the BFSK cos detection mechanism, requires a BFSK signal to operate correctly. The Goertzel algorithm is a computationally efficient DFT technique that calculates the phase and amplitude of a single frequency component. It is often 263  used in digital touch tone dialling for decoding keypad button presses. The Goertzel was implemented in LabView as shown:  The algorithm was then used with a 50 sample rolling buffer to calculate the magnitude of the 500 and 600 kHz components in the waveform data. Unfortunately, the small amount of time that the data represents leads to very low convergence within the algorithm. There is a similar challenge with FFT algorithms where small amounts of data create very low frequency resolution. Similar to the BFSK cos method, exponential fits were applied to the resulting waveforms and their intercepts were calculated to determine the moment of interception.  The following plots demonstrate this process:  264  The left plot shows the computed Goertzel amplitude (white for 500 kHz and red for 600 kHz). The green and blue lines are exponential decay fits for the white and red curves respectively. System Perturbations In order to determine signal to noise ratio, various controllable perturbations were applied. The experimental procedure is described as: 1. 2 min period of unperturbed noise measurement 2. 1 min period of 700 Hz increase to driving waveform frequency 3. 1 min return to unperturbed state 4. 1 min period of 1400 Hz increase to driving waveform frequency 5. 1 min return to unperturbed state 6. 1 min period of 2100 Hz increase to driving waveform frequency 7. 1 min return to unperturbed state 8. 1 min period of single sample (20 ns) delay added through LabView 9. 1 min return to unperturbed state 10. 1 min period of single sample (40 ns) delay added through LabView 11. 1 min return to unperturbed state 12. 1 min period of single sample (60 ns) delay added through LabView These tests allow the determination of signal to noise ratio of small and large signal perturbations occurring as frequency or delay shifts. Although response to small, concurrent changes in frequency and delay is important for high analyte sensitivity, it is also important to appreciate large scale response as major temperature changes or other environmental factors can lead to suboptimal operating conditions with frequency and delay far from the ideal. Data and Analysis The section details the data collected from time of flight tests using the above algorithms.  Sensor 1 with Pulse Train Sensor 1 is the standard sensor with 12 finger pairs, 120 µm thickness, and 800 µm wavelength. The sensor was tested on one side only without compensation. The following plot shows all data delay data captured for this test:  265  The following is the noise plot showcasing the noise floors of each algorithm:  266  The following shows the signal-to-noise ratio of every algorithm tested in this sensor/driving waveform configuration. All measurements are in dB:  Algorithm  +700 Hz Bump  Frequency Perturbations +1400 Hz +2100 Hz Bump Bump  +20 ns Bump  Delay Perturbations +40 ns +60 ns Bump Bump  Peak Detect  23.8  -3.9  10.8  41.3  41.2  41.2  BFSK cos Hilbert Transform  35.3  31.0  32.3  44.8  43.9  43.1  31.1  32.0  32.2  22.1  19.7  18.9  Zero Cross  25.9  0.0  0.0  42.0  41.9  41.9  BFSK Goertzel  12.3  4.8  5.1  29.8  33.5  40.7  DFT Freq/Phase Cross Correlation  35.8  34.0  34.7  42.5  42.4  42.4  23.6  -8.9  9.5  42.6  42.6  42.7  Frequency  36.6  38.5  39.5  23.6  24.4  24.4  Phase  36.4  34.8  35.6  42.5  42.5  42.5  Sensor 1 with BFSK Signal Sensor 1 is the standard sensor with 12 finger pairs, 120 µm thickness, and 800 µm wavelength. The sensor was tested on one side only without compensation. The following plot shows all data delay data captured for this test:  267  The following is the noise plot showcasing the noise floors of each algorithm:  The following shows the signal-to-noise ratio of every algorithm tested in this sensor/driving waveform configuration. All measurements are in dB:  120 um Thick, 800 um wavelength, 12 finger pair, BFSK train  Algorithm Peak Detect  +700 Hz Bump  Frequency Perturbations +1400 Hz +2100 Hz Bump Bump  +20 ns Bump  Delay Perturbations +40 ns +60 ns Bump Bump  6.3  28.0  25.1  39.2  39.3  39.3  BFSK cos Hilbert Transform  10.7  22.3  16.5  35.6  37.0  30.5  12.7  8.6  0.0  10.5  15.8  15.7  Zero Cross  -3.9  27.0  23.4  37.7  37.8  37.7  BFSK Goertzel  25.3  20.1  21.7  31.9  30.8  29.9  DFT Freq/Phase Cross Correlation  23.5  21.4  15.1  38.3  38.5  38.5  13.7  29.7  25.6  39.8  39.9  39.8  Frequency  31.2  28.8  28.8  19.6  20.2  20.6  Phase  23.4  21.5  15.3  38.3  38.5  38.5  268  Sensor 2 It was not possible to achieve a measurable signal with this sensor configuration, most likely caused by poor piezoelectric properties and high attenuation of the material.  Summary and Discussion 120 um Thick, 800 um wavelength, 12 finger pair, pulse train  Algorithm  +700 Hz Bump  Frequency Perturbations +1400 Hz +2100 Hz Bump Bump  +20 ns Bump  Delay Perturbations +40 ns +60 ns Bump Bump  Peak Detect  23.8  -3.9  10.8  41.3  41.2  41.2  BFSK cos Hilbert Transform  35.3  31.0  32.3  44.8  43.9  43.1  31.1  32.0  32.2  22.1  19.7  18.9  Zero Cross  25.9  0.0  0.0  42.0  41.9  41.9  BFSK Goertzel  12.3  4.8  5.1  29.8  33.5  40.7  DFT Freq/Phase Cross Correlation  35.8  34.0  34.7  42.5  42.4  42.4  23.6  -8.9  9.5  42.6  42.6  42.7  Frequency  36.6  38.5  39.5  23.6  24.4  24.4  Phase  36.4  34.8  35.6  42.5  42.5  42.5  120 um Thick, 800 um wavelength, 12 finger pair, BFSK train  Algorithm Peak Detect  +700 Hz Bump  Frequency Perturbations +1400 Hz +2100 Hz Bump Bump  +20 ns Bump  Delay Perturbations +40 ns +60 ns Bump Bump  6.3  28.0  25.1  39.2  39.3  39.3  10.7  22.3  16.5  35.6  37.0  30.5  12.7  8.6  0.0  10.5  15.8  15.7  Zero Cross  -3.9  27.0  23.4  37.7  37.8  37.7  BFSK Goertzel  25.3  20.1  21.7  31.9  30.8  29.9  DFT Freq/Phase Cross Correlation  23.5  21.4  15.1  38.3  38.5  38.5  13.7  29.7  25.6  39.8  39.9  39.8  Frequency  31.2  28.8  28.8  19.6  20.2  20.6  Phase  23.4  21.5  15.3  38.3  38.5  38.5  BFSK cos Hilbert Transform  The results demonstrate some very noticeable trends. Each SNR is normalized to the magnitude of the perturbation, meaning that an ideal result is one that shows a large but consistent SNR for every test within a category. •  Frequency measurements perform consistently well with the pure sinusoid and show much lower SNR with the mixed 500/600 kHz waveform. This is as expected. However, 269  •  •  the frequency also demonstrated some non-linearity with increasing frequency shift, suggesting non-linearity within the actuation/acquisition/decoding process. The shift in frequency when the delay, but not excitation frequency, was varied is due to the shift in power spectral density as a different subset of the exponentially decaying waveform is examined by the DFT algorithm. The test performed with the pure pulse train shows overall much better performance than the BFSK signal.  Peak Detect and Zero Cross Algorithms: These algorithms performed exceptionally well in both tests, ranking these algorithms among the best for delay measurement. This is the algorithm that has been used to date. BFSK cos Algorithm: This algorithm performed well with pulse train actuation, but not very well with the BFSK actuation. This is the only algorithm that attempts to normalize and compensate for exponential decay before performing delay detection. The spectral bleeding and wide center frequency lobe due to wave decay must contribute more effectively than the received BFSK signal. Further analysis and procedural verification is necessary to determine why the algorithm works with a non-BFSK signal. Hilbert Transform: This algorithm needs to be explored further, as it has a bit of potential, but the noise floor is too high. The signal magnitudes also vary substantially between the Pulse Train and BFSK Signal excitation waveforms. Better performance may be observed by considering the phase intercept data independent of phase vs. time slope (used to convert to delay time). As implemented, this method had the highest consistent sensitivity to frequency shifts. BFSK Goertzel: This algorithm worked well with the BFSK signal as expected, but did not perform very well compared to other delay measurement techniques. DFT/Phase: As expected, this algorithm performed moderately well for the Pulse Train signal and not as well for the BFSK waveform. Cross-Correlation: This algorithm shows good consistency, signal to noise ratio, and ability to adapt to different waveforms, making this waveform one of the best for delay measurement. A further benefit for the cross-correlation method is that it can provide additional information on overall changes in wave transfer function, including amplitude, thereby representing a large picture of perturbation in the measured signal.  270  References  [1]  C. Papageorgiou, C. Kosmatopoulos, and T. Laopoulos, “Automated characterization and calibration of ultrasonic transducers,” in Electrotechnical Conference, 1998. MELECON 98., 9th Mediterranean, 1998, vol. 2, pp. 1214–1218 vol.2.  [2]  M. G. Duncan, “Real-time analytic signal processor for ultrasonic nondestructive testing,” in , 7th IEEE Instrumentation and Measurement Technology Conference, 1990. IMTC-90. Conference Record, 1990, pp. 32–37.  [3]  D. Marioli, C. Narduzzi, C. Offelli, D. Petri, E. Sardini, and A. Taroni, “Digital time-offlight measurement for ultrasonic sensors,” IEEE Transactions on Instrumentation and Measurement, vol. 41, no. 1, pp. 93–97, Feb. 1992.  [4]  D. Webster, “A pulsed ultrasonic distance measurement system based upon phase digitizing,” IEEE Transactions on Instrumentation and Measurement, vol. 43, no. 4, pp. 578–582, Aug. 1994.  271  Appendix G  Calibration System Rack Layout Calibration system rack diagram showing front and back of the rack.  272  6-78'( 0 1234567869     9:;<=9>;<;*?+0'+(#*!@       98?<=9:;<;*?+0'+(#*!@     !#$!%  A.0+,=B+'+,C,!'        &!'%('!)*$!%%('!*+,!-(*.'!   &.(. /0!%('1(1  (.! 1(2!'0'            &!'%('!)*$!%3$!4).0'+,5   &.(. /)!!1)'2!'3@.*D*1'!1'*5    273  3286                                           1"+)"+ 0                                          1234567869   ()"*+,"*- .,'&-"&/0   "#$%&'  274  3286                                           

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.24.1-0073105/manifest

Comment

Related Items