READ ME ======================== General information ======================== Author: J M Hale Contact: jack.hale@ncl.ac.uk DOI: License: Last updated: Related article: ======================== Introductory information ======================== The files relate to an experiment to determine the effectiveness of a "hardware-in-the-loop" active vibration control (AVC) system. There is no mathematical model of the structure; the physical structure is fitted with an accelerometer sensor and an electromechanical actuator to provide input and output to/from the controller. The sytem comprised: - a structure (a cantilever beam) fitted with with vibration sensor and actuator; - an Arduino Due microcontroller used as a real time controller; - a PC running a Matlab program to supervise the Arduino. The controller implemented in the Arduino is a tapped delay line (TDL). Each tap has a coefficient, provided by a supervising PC via a USB link. The objective of this work was to optimise the values of these taps to reduce the vibration of the structure which was subject to forced vibration in two resonant modes simultaneously. The optimisation was performed by a genetic algorithm (GA) running on the PC. This generated sets of TDL coefficients to send to the Arduino and used the vibration amplitude returned to it to evaluate the "fitness" of each set. From this it gradually "bred" increasingly effective sets of TDL coefficients. The results obtained with this system applied to a cantilever beam are contained in the Excel spreadsheet. Files included: 1) GenAlgor4_1_5Arduino.m A Matlab GA program running on a PC, used to optimise TDL coefficients for active vibration control. 2) DueMatlabControllerV6_2.ino An Arduino sketch (program) for an Arduino Due used as a microcontroller for active vibration control. The control function is a tapped delay line (TDL: a type of finite impulse response digital filter) where the tap coefficients are provided by the GA. Real-time control is obtained by the controller reading instantaneous vibration from the sensor (accelerometer), from which the TDL generates a drive voltage for the actuator. 3) run 3 data_250.xls An Excel spreadsheet containing the raw data generated by the GA over 250 generations as the optimised TDL coefficients evolved. ========================== Methodological information ========================== The spreadsheet contains raw data from a run of 250 generations of the GA optimising controller coefficients for active vibration control (AVC). The run in this file was for a population of 50 individuals, each of 60 x 4 bit genes. The "genes" form the TDL coefficients: integers 0-15. Breeding was by elite selection with double point crossover and 1% mutation. The first six rows contain the GA set up: row 1: population size row 2: number of genes per chromosome (population member) row 3: number of bits per gene row 4: breeding selection type (1=elite, 2=roulette) row 5: breeding crossover type (1=single point, 2=double point or circular) row 6: mutation rate Rows 7 onwards give population genes and AVC results in each generation, sorted in order of performance index (PI) = fitness - cost 1st generation and thereafter every 10th generation are given for the whole population. Other generations’ results are given for the best, middle and worst individuals only. Each row gives the value of each gene in columns A-BH for 60 genes. This is followed by three columns containing the AVC results: column BI: performance index = fitness - cost column BJ: vibration amplitude returned from Arduino column BK: cost fitness = amplitude reduction amplitude reduction = uncontrolled - AVC amplitude cost = sum of delay line coefficients × a constant Instruments, hardware and software used: PC running Matlab for the GA program Arduino Due for the control program elactromechanical shakers: Ling Dynamics type LDS V101 for driving the structure accelerometer: Analog Devices type ADXL335 for feedback Date of data collection: 20th March 2019